Initial commit
This commit is contained in:
121
commands/create-agent.md
Normal file
121
commands/create-agent.md
Normal file
@@ -0,0 +1,121 @@
|
||||
---
|
||||
description: Create a new custom subagent for specialized tasks
|
||||
argument-hint: [name] [description]
|
||||
---
|
||||
|
||||
# /create-agent
|
||||
|
||||
## Purpose
|
||||
Create a new custom subagent (skill) for specialized tasks with proper configuration and system prompts.
|
||||
|
||||
## Contract
|
||||
**Inputs:**
|
||||
- `$1` — AGENT_NAME (lowercase, kebab-case, e.g., "code-reviewer")
|
||||
- `$2` — DESCRIPTION (when this agent should be invoked, e.g., "Expert code reviewer. Use proactively after code changes.")
|
||||
- `--user` — Create user-level agent in `~/.claude/agents/` (default: project-level in `.claude/agents/`)
|
||||
- `--tools` — Comma-separated list of tools (e.g., "Read,Grep,Glob,Bash")
|
||||
- `--model` — Model to use: "sonnet", "opus", "haiku", or "inherit" (default: sonnet)
|
||||
|
||||
**Outputs:**
|
||||
- `STATUS=<CREATED|EXISTS|FAIL> PATH=<path> AGENT=<name>`
|
||||
|
||||
## Instructions
|
||||
|
||||
1. **Validate inputs:**
|
||||
- Agent name must be lowercase, kebab-case only
|
||||
- Description must be non-empty and descriptive
|
||||
- If `--tools` specified, validate tool names against available tools
|
||||
- If `--model` specified, validate it's one of: sonnet, opus, haiku, inherit
|
||||
|
||||
2. **Determine file location:**
|
||||
- Default: `.claude/agents/{AGENT_NAME}.md` (project-level)
|
||||
- With `--user`: `~/.claude/agents/{AGENT_NAME}.md` (user-level)
|
||||
- Create directory if it doesn't exist
|
||||
|
||||
3. **Check for existing agent:**
|
||||
- If file exists, output `STATUS=EXISTS` and exit
|
||||
- Recommend using `/agents` command to edit existing agents
|
||||
|
||||
4. **Generate agent file content:**
|
||||
```markdown
|
||||
---
|
||||
name: {AGENT_NAME}
|
||||
description: {DESCRIPTION}
|
||||
tools: {TOOLS} # Optional - only include if specified
|
||||
model: {MODEL} # Optional - only include if specified
|
||||
---
|
||||
|
||||
You are a specialized agent for {purpose based on description}.
|
||||
|
||||
When invoked:
|
||||
1. Understand the specific task or problem
|
||||
2. Analyze the relevant context
|
||||
3. Execute your specialized function
|
||||
4. Provide clear, actionable results
|
||||
|
||||
Key responsibilities:
|
||||
- {Responsibility 1 based on description}
|
||||
- {Responsibility 2 based on description}
|
||||
- {Responsibility 3 based on description}
|
||||
|
||||
Best practices:
|
||||
- Be focused and efficient
|
||||
- Provide specific, actionable feedback
|
||||
- Document your reasoning
|
||||
- Follow established patterns and conventions
|
||||
|
||||
For each task:
|
||||
- Explain your approach
|
||||
- Show your work
|
||||
- Highlight key findings or changes
|
||||
- Suggest next steps if applicable
|
||||
```
|
||||
|
||||
5. **Write the file:**
|
||||
- Create the agent file with proper frontmatter
|
||||
- Ensure proper formatting and indentation
|
||||
- Set appropriate file permissions
|
||||
|
||||
6. **Output result:**
|
||||
- Print: `STATUS=CREATED PATH={path} AGENT={name}`
|
||||
- Provide usage example: `Use the {name} agent to...`
|
||||
|
||||
## Examples
|
||||
|
||||
### Basic project-level agent
|
||||
```bash
|
||||
/create-skill code-reviewer "Expert code review specialist. Use proactively after code changes."
|
||||
# Output: STATUS=CREATED PATH=.claude/agents/code-reviewer.md AGENT=code-reviewer
|
||||
```
|
||||
|
||||
### User-level agent with specific tools
|
||||
```bash
|
||||
/create-skill debugger "Debugging specialist for errors and test failures" --user --tools "Read,Edit,Bash,Grep,Glob"
|
||||
# Output: STATUS=CREATED PATH=~/.claude/agents/debugger.md AGENT=debugger
|
||||
```
|
||||
|
||||
### Agent with specific model
|
||||
```bash
|
||||
/create-skill data-scientist "Data analysis expert for SQL queries and insights" --tools "Bash,Read,Write" --model "sonnet"
|
||||
# Output: STATUS=CREATED PATH=.claude/agents/data-scientist.md AGENT=data-scientist
|
||||
```
|
||||
|
||||
## Constraints
|
||||
- Idempotent: Won't overwrite existing agents
|
||||
- No network access required
|
||||
- Agent names must follow naming conventions
|
||||
- Tools list must match available Claude Code tools
|
||||
- Model must be valid alias or 'inherit'
|
||||
|
||||
## Best Practices
|
||||
- Use descriptive, action-oriented descriptions
|
||||
- Include "use PROACTIVELY" in description for automatic invocation
|
||||
- Start with Claude-generated agents via `/agents` for complex cases
|
||||
- Limit tools to only what the agent needs
|
||||
- Design focused agents with single, clear responsibilities
|
||||
- Add to version control for team collaboration
|
||||
|
||||
## Related Commands
|
||||
- `/agents` - Interactive interface for managing agents (recommended for editing)
|
||||
- Use created agents: "Use the {name} agent to..."
|
||||
- Invoke explicitly: "Ask the {name} agent to investigate..."
|
||||
Reference in New Issue
Block a user