--- name: add-agent description: "Add a new Claude agent definition to ~/.claude/agents/ and an accompanying skill to ~/.pi/agent/skills/. Use when creating new specialized agents." --- # Add Agent When the user wants to create a new specialized Claude agent: ## Agent File Convention Create a `.md` file in `~/.claude/agents/` with this structure: ```markdown --- name: agent_name description: One-line description of what the agent does tools: Read, Bash[, Edit, Write] # include only what's needed model: sonnet | opus --- You are an [role]. [1-2 sentence description of purpose]. Available tools: - read: Read file contents - bash: Execute bash commands - edit: Make surgical edits to files # if applicable - write: Create or overwrite files # if applicable Guidelines: - Use bash for file operations: prefer `rg` over grep, `fd` over find, glob patterns for batch file matching - Use read to examine files [before editing] # adapt phrasing - [Agent-specific guidelines] - When summarizing your actions, output plain text directly - do NOT use cat or bash to display what you did - Be concise in your responses - Show file paths clearly when working with files ``` ## Key Rules 1. **`name`** in frontmatter must match what skills reference as `agent: "name"` 2. **`tools`** — only include tools the agent actually needs. Read-only agents use `Read, Bash` 3. **`model`** — `sonnet` for execution/review, `opus` for strategic/advisory work 4. **Always include** the "output plain text directly" guideline — agents without it tend to use `cat`/`echo` instead of responding directly 5. **Bash guideline** should read: `prefer \`rg\` over grep, \`fd\` over find, glob patterns for batch file matching` 6. **Bash tool description** should be: `Execute bash commands` ## Skill File Convention Create `~/.pi/agent/skills//SKILL.md`: ```markdown --- name: skill-name description: "What triggers this skill. Use when [condition]." --- # Skill Title When [trigger condition]: ## What to include in the prompt 1. **[Section 1]** — description 2. **[Section 2]** — description ... The `agent_name` agent has `Tool1` and `Tool2` tools only — [what it can/can't do]. ## How to call \``` ask_claude({ agent: "agent_name", question: "Specific instruction for the agent.", prompt: ` ## Section 1 [Template] ## Section 2 [Template] ` }) \``` ## After the review - [What to do with the agent's output] - [How to summarize for the user] - [When to loop back or escalate] ``` ## Skill Key Rules 1. **Skill `name`** should be kebab-case (e.g., `claude-debug`, not `claude_debug`) 2. **Description** must be in quotes if it contains special characters 3. **`agent:` in `ask_claude()`** must match the agent's `name:` exactly 4. **Include a "What to include" section** — gives the calling agent a template 5. **Include a "How to call" section** — with a concrete `ask_claude()` example 6. **Include an "After the review" section** — what to do with the output ## Existing Agents (for reference) | Agent | Model | Tools | Purpose | |-------|-------|-------|---------| | `minimal` | sonnet | Read, Bash, Edit, Write | General coding | | `code_review` | sonnet | Read, Bash, Edit, Write | Review & fix code | | `plan_review` | opus | Read, Bash | Review plans | | `debug` | sonnet | Read, Bash | Trace bugs | | `oracle` | opus | Read, Bash | Strategic guidance |