create-profile
Creates agent profiles that define roles with scoped permissions and constraints. Investigates the repo for existing profiles and conventions, writes a focused profile markdown file, and validates scope boundaries. Use when the user wants to create an agent profile, define a specialized role, scope an agent to specific files or domains, set up a new team member persona, restrict what an agent can touch, or wants consistent behavior from a domain-specific agent.
Create agent profiles — role definitions that scope an agent to a specific domain with explicit constraints and permissions. Profiles are standalone markdown files that define agent roles.
Workflow
-
Gather intent — Understand what the profile should scope. Collect:
- A short name (lowercase, one word preferred)
- What domain or responsibility the agent covers
- What it should and should not touch
-
Investigate the repo — Before asking questions, search for facts that reduce ambiguity:
- Existing profiles (find where they live in this repo; ask the user if ambiguous)
- Project structure to understand domain boundaries
- Existing rules that the profile should reference
- File patterns that define the scope
Don't ask the user what you can look up yourself.
-
Clarify — Ask only questions that materially affect the profile:
- Which files/directories are in scope
- Which are explicitly out of scope
- What rules the profile must follow
- Whether the profile has design authority or just executes
-
Write the profile — Structure:
# <Name> Agent One-line role description — domain and boundary. ## Constraints - Hard rules this agent must follow - Which rules or conventions the profile must follow ## Scope What files and actions are in bounds. What is explicitly out of bounds. When to stop and hand off. ## Design Intent How this agent should approach decisions within its domain. What aesthetic or architectural principles guide its choices.Writing principles:
- Scope is a boundary, not a task list. State what's in and out, not every possible action.
- Constraints are non-negotiable. If it's a preference, it belongs in Design Intent.
- Include a stop condition. State when the agent should stop and hand off to a human or another profile.
- Keep it under 40 lines. A profile is a lens, not a manual.
- Reference rules, don't repeat them. If a rule covers it, point to it.
-
Validate — Check the profile against the repo:
- Verify the scope matches actual file structure
- Confirm no overlap with existing profiles
- Check that referenced rules exist
-
Confirm — Show the user the created profile and ask if adjustments are needed.
Example Scenario
User: "I want an agent that only handles database migrations and schema changes."
- Investigates repo — finds
migrations/, Flyway config, existingfrontendprofile for reference - Asks: "Should it also handle seed data, or just schema?"
- Creates
database.mdprofile scoping tomigrations/and schema files, excluding application code - Validates — directory exists, no overlap with frontend profile
Example Output
# Database Agent
Manages database migrations and schema changes.
## Constraints
- Follow the git-naming rule for branches and commits
- Never modify application code
- Run migrations in a transaction when supported
## Scope
Modify only:
- `migrations/`
- `schema/`
Do not touch: application code, API handlers, frontend.
If a migration requires application changes, describe
what's needed and stop.
## Design Intent
Prefer reversible migrations. Every up migration has a
corresponding down. Avoid data-destructive operations
without explicit confirmation.
Common Failures
- Scope too broad — "handles backend" is half the repo. Narrow to specific directories or file types.
- Scope too narrow — if the agent can't do useful work within its boundaries, the profile is over-constrained.
- Missing stop condition — without "stop and hand off" guidance, the agent will attempt out-of-scope work rather than flagging it.
- Duplicates a rule — if the constraint applies to all agents, it's a rule, not a profile constraint.
Boundaries
Does:
- Create profile markdown files in the project's profile directory
- Investigate repo structure to define scope
- Reference existing rules
Does not:
- Create skills or rules (use create-skill, create-rule)
- Modify existing profiles without confirmation
- Create profiles for non-agent roles
SKILL.md | | Raw
Create Profile
Create agent profiles — role definitions that scope an agent to a specific domain with explicit constraints and permissions. Profiles are standalone markdown files that define agent roles.
Workflow
-
Gather intent — Understand what the profile should scope. Collect:
- A short name (lowercase, one word preferred)
- What domain or responsibility the agent covers
- What it should and should not touch
-
Investigate the repo — Before asking questions, search for facts that reduce ambiguity:
- Existing profiles (find where they live in this repo; ask the user if ambiguous)
- Project structure to understand domain boundaries
- Existing rules that the profile should reference
- File patterns that define the scope
Don't ask the user what you can look up yourself.
-
Clarify — Ask only questions that materially affect the profile:
- Which files/directories are in scope
- Which are explicitly out of scope
- What rules the profile must follow
- Whether the profile has design authority or just executes
-
Write the profile — Structure:
# <Name> Agent One-line role description — domain and boundary. ## Constraints - Hard rules this agent must follow - Which rules or conventions the profile must follow ## Scope What files and actions are in bounds. What is explicitly out of bounds. When to stop and hand off. ## Design Intent How this agent should approach decisions within its domain. What aesthetic or architectural principles guide its choices.Writing principles:
- Scope is a boundary, not a task list. State what's in and out, not every possible action.
- Constraints are non-negotiable. If it's a preference, it belongs in Design Intent.
- Include a stop condition. State when the agent should stop and hand off to a human or another profile.
- Keep it under 40 lines. A profile is a lens, not a manual.
- Reference rules, don't repeat them. If a rule covers it, point to it.
-
Validate — Check the profile against the repo:
- Verify the scope matches actual file structure
- Confirm no overlap with existing profiles
- Check that referenced rules exist
-
Confirm — Show the user the created profile and ask if adjustments are needed.
Example Scenario
User: "I want an agent that only handles database migrations and schema changes."
- Investigates repo — finds
migrations/, Flyway config, existingfrontendprofile for reference - Asks: "Should it also handle seed data, or just schema?"
- Creates
database.mdprofile scoping tomigrations/and schema files, excluding application code - Validates — directory exists, no overlap with frontend profile
Example Output
# Database Agent
Manages database migrations and schema changes.
## Constraints
- Follow the git-naming rule for branches and commits
- Never modify application code
- Run migrations in a transaction when supported
## Scope
Modify only:
- `migrations/`
- `schema/`
Do not touch: application code, API handlers, frontend.
If a migration requires application changes, describe
what's needed and stop.
## Design Intent
Prefer reversible migrations. Every up migration has a
corresponding down. Avoid data-destructive operations
without explicit confirmation.
Common Failures
- Scope too broad — "handles backend" is half the repo. Narrow to specific directories or file types.
- Scope too narrow — if the agent can't do useful work within its boundaries, the profile is over-constrained.
- Missing stop condition — without "stop and hand off" guidance, the agent will attempt out-of-scope work rather than flagging it.
- Duplicates a rule — if the constraint applies to all agents, it's a rule, not a profile constraint.
Boundaries
Does:
- Create profile markdown files in the project's profile directory
- Investigate repo structure to define scope
- Reference existing rules
Does not:
- Create skills or rules (use create-skill, create-rule)
- Modify existing profiles without confirmation
- Create profiles for non-agent roles
create-profile builds agent role definitions that scope an agent to specific files, domains, and permissions.
Why profiles have a 40-line limit
Profiles are lenses, not manuals. They scope an agent to a domain — anything longer means the profile is trying to teach rather than constrain. Long profiles also consume tokens every session.
Why profiles require mandatory stop conditions
Without explicit boundaries, agents attempt work outside their scope silently. A stop condition like "never modify application code" makes violations detectable and correctable.
Why profiles separate constraints from design intent
Constraints are non-negotiable ("never push without confirmation"). Design intent is preferred behavior ("prefer small commits"). The distinction lets agents prioritize when guidance conflicts.
Why profiles reference rules instead of repeating them
Repeating rule content in profiles causes drift. When the rule updates, profiles become stale. References ensure a single source of truth.
[1.1.0] - 2026-06-11
Changed
- Removed project-specific paths and terminology
- Made skill fully portable across any directory layout
- Updated evals to use generic language
[1.0.0] - 2026-05-24
Added
- Initial skill for creating agent profiles
- Workflow: gather, investigate, clarify, write, validate, confirm
- Profile structure: Constraints, Scope, Design Intent