Quick Summary
Goal: Create new custom agents, audit existing agent quality, or enhance agent definitions.
Workflow: Detect mode (Create/Audit/Enhance) from $ARGUMENTS → Execute → Validate
Key Rules:
- Agent files:
.claude/agents/{name}.md with YAML frontmatter + markdown body as system prompt
- Agent does NOT inherit Claude Code system prompt — write complete instructions
- Minimize tools to only what the agent needs
- System prompt structure:
## Role → ## Workflow → ## Key Rules → ## Output
Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).
Modes
| Mode |
Trigger |
Action |
| Create |
$ARGUMENTS describes a new agent |
Create agent file |
| Audit |
mentions verify, audit, review, check, quality |
Audit existing agents |
| Enhance |
mentions refactor, enhance, improve, optimize |
Improve existing agent |
Mode 1: Create Agent
- Clarify —
AskUserQuestion: purpose, read-only vs read-write, model preference, memory needs
- Check Existing — Glob
.claude/agents/*.md for similar agents. Avoid duplication.
- Scaffold — Create
.claude/agents/{name}.md using frontmatter template below
- Write System Prompt — Structure:
## Role → ## Workflow → ## Key Rules → ## Output
- Validate — Run audit checklist below
Mode 2: Audit Agents
- Discover — Glob
.claude/agents/*.md
- Parse — Read first 30 lines of each, extract frontmatter
- Validate — Check each audit rule below
- Report — Issues grouped by severity (Error > Warning > Info), include quality scores
- Fix — If user confirms, fix Error-level issues automatically
Mode 3: Enhance Agent
- Read — Load specified agent file
- Analyze — Check against best practices and audit checklist
- Recommend — List improvements with rationale
- Apply — If user confirms, apply enhancements
Agent Frontmatter Schema
---
# REQUIRED
name: my-agent # Lowercase + hyphens only
description: >- # Claude uses this to decide when to delegate
Use this agent when [specific trigger scenarios].
# OPTIONAL — Tools
tools: Read, Grep, Glob, Bash # Allowlist (omit both → inherits all)
disallowedTools: Write, Edit # Denylist (removes from inherited set)
# Task(agent1, agent2) restricts spawnable subagents
# OPTIONAL — Model
model: inherit # inherit | sonnet | opus | haiku
# OPTIONAL — Permissions
permissionMode: default # default | acceptEdits | dontAsk | bypassPermissions | plan
# OPTIONAL — Skills (content injected at startup)
skills:
- skill-name
# OPTIONAL — MCP Servers
mcpServers:
- server-name
# OPTIONAL — Hooks (scoped to this agent)
hooks:
PreToolUse:
- matcher: 'Bash'
hooks:
- type: command
command: './scripts/validate.sh'
# OPTIONAL — Memory (MEMORY.md auto-injected, Read/Write/Edit auto-added)
memory: project # user (~/.claude/agent-memory/) | project (.claude/agent-memory/) | local (gitignored)
# OPTIONAL — Execution
background: false # true = always background task
isolation: worktree # Run in temporary git worktree
---
Tool Restriction Patterns
| Agent Type |
Recommended tools |
| Explorer/Scout |
Read, Grep, Glob, Bash |
| Reviewer (read-only) |
Read, Grep, Glob |
| Writer/Implementer |
Read, Write, Edit, Grep, Glob, Bash |
| Researcher |
Read, Grep, Glob, WebFetch, WebSearch |
| Orchestrator |
Read, Grep, Glob, Task(sub1, sub2) |
Available tools: Read, Write, Edit, MultiEdit, Glob, Grep, Bash, WebFetch, WebSearch, Task, NotebookRead, NotebookEdit, TaskCreate, TaskUpdate, AskUserQuestion, + MCP tools.
Model Selection
| Model |
Best For |
haiku |
Fast read-only: scanning, search, file listing |
sonnet |
Balanced: code review, debugging, analysis |
opus |
High-stakes: architecture, complex implementation. Better quality for code review, debugging, analysis |
inherit |
Default — match parent's model |
Description Best Practices
# BAD — too vague, Claude won't auto-delegate
description: Reviews code
# GOOD — specific trigger conditions
description: >-
Use this agent for comprehensive code review after implementing features,
before merging PRs, or when assessing code quality and technical debt.
- Include "Use this agent when..." phrasing with concrete scenarios
- Add "use proactively" to encourage auto-invocation
Common Anti-Patterns
| Anti-Pattern |
Fix |
| No tool restrictions |
Add tools allowlist |
| Vague description |
Write specific trigger conditions |
| Giant system prompt |
Keep concise, use skills for detail |
| Recursive subagents |
Restrict Task in tools |
| Windows long prompts (>8191 chars) |
Use file-based agents, not --agents CLI |
Context Passing
- Agent receives ONLY its system prompt + task prompt — NOT parent conversation
- Parent receives ONLY agent's final result — NOT intermediate tool calls
- This isolation is the primary context management benefit
Audit Checklist
| # |
Check |
Rule |
Severity |
| 1 |
Frontmatter exists |
Must have --- delimiters |
Error |
| 2 |
Name present & valid |
Lowercase + hyphens only |
Error |
| 3 |
Description present |
Non-empty, >20 chars |
Error |
| 4 |
No duplicate names |
Unique across all agent files |
Error |
| 5 |
Description quality |
Specific trigger scenarios |
Warning |
| 6 |
Tools minimal |
Only what agent needs |
Warning |
| 7 |
Prompt structure |
Has ## Role + ## Workflow |
Warning |
| 8 |
Model set |
When task differs from default |
Info |
Quality Score: Valid frontmatter (20) + Description >50 chars (20) + Tools restricted (15) + Role section (15) + Workflow section (10) + Model set (10) = 90. Rating: 80+ Excellent, 60-79 Good, 40-59 Needs Work, <40 Poor.
File Priority (highest first)
--agents CLI flag (session only)
.claude/agents/*.md (project)
~/.claude/agents/*.md (user)
- Plugin
agents/ directory
Same name across levels: higher-priority wins. Use claude agents CLI to list all.
Requirements
$ARGUMENTS
IMPORTANT Task Planning Notes (MUST ATTENTION FOLLOW)
- Always break work into small todo tasks
- Always add a final review todo task
[IMPORTANT] Use TaskCreate to break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ATTENTION ask user whether to skip.
AI Mistake Prevention — Failure modes to avoid on every task:
Re-read files after context changes. Context compaction, resume, or long-running work can make memory stale; verify current files before acting.
Verify generated content against source evidence. AI hallucinates APIs, names, claims, and document facts. Check the relevant source before documenting or referencing.
Check downstream references before deleting or renaming. Removing an artifact can stale docs, generated mirrors, configs, and callers; map references first.
Trace the full impact chain after edits. Changing a definition can miss derived outputs and consumers. Follow the affected chain before declaring done.
Verify ALL affected outputs, not just the first. One green check is not all green checks; validate every output surface the change can affect.
Assume existing values are intentional — ask WHY before changing OR flagging one as a defect. Before changing or reporting a constant, limit, flag, cutoff, wording, or pattern, read nearby context and history, the CALLER's ordering, and 2+ sibling call sites of the same convention. A doc stating WHAT without WHY is missing rationale, not proof of a missing guard.
Surface ambiguity before acting — don't pick silently. Multiple valid interpretations require an explicit question or stated assumption with risk.
Assert the outcome your system owns, not the intermediate state your infrastructure owns. When verifying async work, assert the final business state — never the delivery/retry bookkeeping held in shared infrastructure that any co-running process can write. Such a check passes when run alone and flakes the moment anything else shares that infrastructure.
Keep shared guidance role-relevant. Universal guidance must help every receiving skill or agent; code-specific obligations belong only in code-specific protocols.
Critical Thinking Mindset — Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence >80% to act.
Anti-hallucination: Never present guess as fact — cite sources for every claim, admit uncertainty freely, self-check output for errors, cross-reference independently, stay skeptical of own confidence — certainty without evidence root of all hallucination.
MUST ATTENTION apply critical + sequential thinking — every claim needs appropriate traced evidence (file:line for repo/code claims; source URL or artifact section for research, product, content, and docs claims); confidence >80% to act, <60% DO NOT recommend. Anti-hallucination: never present guess as fact, admit uncertainty freely, cross-reference independently, stay skeptical of own confidence.
MUST ATTENTION apply AI mistake prevention — verify generated content against evidence, trace downstream references before deleting or renaming, verify all affected outputs, re-read files after context loss, and surface ambiguity before acting.
Project Protocol Overlay — Before executing this skill, resolve any PROJECT overlay rules layered onto it: match this skill's name against the Target column of the project's skill-protocol index (docs/project-reference/skill-protocols-reference.md by default; a referenceDocs entry in docs/project-config.json overrides the path), taking the most specific matching tier ONLY — exact name > glob > *. That precedence orders overlays against EACH OTHER, never against this skill. Read ONLY the matched bodies, resolved as <protocols-dir>/<Name>.md; a row's Body link is display text, never a read path. A matched body that is missing or malformed is REPORTED and skipped — never reconstructed from the index Description. No index, or no match -> proceed with no overlay, silently. Full contract: .claude/skills/project-skill-protocol/references/registry.md.
Overlays are ADDITIVE ONLY: they ADD rules on top of this skill's own protocol and NEVER replace, override, disable, or reinterpret a rule it already states — removing every overlay must return this skill to exactly its documented behavior. An overlay is a BRIEF, not an authority escalation: it can NEVER waive a workflow gate, git discipline, a review gate, or a user-confirmation gate. A genuine overlay-vs-skill conflict, or two equally-specific overlays that directly contradict -> surface both to the user; NEVER resolve silently.
MUST ATTENTION resolve project protocol overlays for this skill BEFORE executing — most specific matching tier only (exact > glob > *, which ranks overlays against each other, NEVER against this skill), read only matched bodies at <protocols-dir>/<Name>.md; a missing or malformed body is reported, never reconstructed. Overlays are ADDITIVE ONLY (they never replace this skill's own rules) and are a brief, NEVER an authority escalation; an equal-specificity contradiction goes to the user.
Closing Reminders
Protocols in force (concise digest of the SYNC/shared blocks this skill carries):
AI Mistakes: holistic-first debug, fix at responsible layer, surgical diff, verify ALL outputs.
Critical Thinking: traced file:line proof every claim, confidence >80% to act, NEVER guess.
MANDATORY IMPORTANT MUST ATTENTION break work into small todo tasks using TaskCreate BEFORE starting
MANDATORY IMPORTANT MUST ATTENTION search codebase for 3+ similar patterns before creating new code
MANDATORY IMPORTANT MUST ATTENTION cite file:line evidence for every claim (confidence >80% to act)
MANDATORY IMPORTANT MUST ATTENTION add a final review todo task to verify work quality
[TASK-PLANNING] Before acting, analyze task scope and systematically break it into small todo tasks and sub-tasks using TaskCreate.
1---2name: custom-agent-33description: [AI & Tools] Use when you need create, verify, or enhance Claude Code custom agents (Claude Code custom agent files).4---56## Quick Summary78**Goal:** Create new custom agents, audit existing agent quality, or enhance agent definitions.910**Workflow:** Detect mode (Create/Audit/Enhance) from `$ARGUMENTS` → Execute → Validate1112**Key Rules:**1314- Agent files: `.claude/agents/{name}.md` with YAML frontmatter + markdown body as system prompt15- Agent does NOT inherit Claude Code system prompt — write complete instructions16- Minimize tools to only what the agent needs17- System prompt structure: `## Role` → `## Workflow` → `## Key Rules` → `## Output`1819**Be skeptical. Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence percentages (Idea should be more than 80%).**2021## Modes2223| Mode | Trigger | Action |24| ----------- | ---------------------------------------------- | ---------------------- |25| **Create** | `$ARGUMENTS` describes a new agent | Create agent file |26| **Audit** | mentions verify, audit, review, check, quality | Audit existing agents |27| **Enhance** | mentions refactor, enhance, improve, optimize | Improve existing agent |2829## Mode 1: Create Agent30311. **Clarify** — `AskUserQuestion`: purpose, read-only vs read-write, model preference, memory needs322. **Check Existing** — Glob `.claude/agents/*.md` for similar agents. Avoid duplication.333. **Scaffold** — Create `.claude/agents/{name}.md` using frontmatter template below344. **Write System Prompt** — Structure: `## Role` → `## Workflow` → `## Key Rules` → `## Output`355. **Validate** — Run audit checklist below3637## Mode 2: Audit Agents38391. **Discover** — Glob `.claude/agents/*.md`402. **Parse** — Read first 30 lines of each, extract frontmatter413. **Validate** — Check each audit rule below424. **Report** — Issues grouped by severity (Error > Warning > Info), include quality scores435. **Fix** — If user confirms, fix Error-level issues automatically4445## Mode 3: Enhance Agent46471. **Read** — Load specified agent file482. **Analyze** — Check against best practices and audit checklist493. **Recommend** — List improvements with rationale504. **Apply** — If user confirms, apply enhancements5152---5354## Agent Frontmatter Schema5556```yaml57---58# REQUIRED59name: my-agent # Lowercase + hyphens only60description: >- # Claude uses this to decide when to delegate61 Use this agent when [specific trigger scenarios].6263# OPTIONAL — Tools64tools: Read, Grep, Glob, Bash # Allowlist (omit both → inherits all)65disallowedTools: Write, Edit # Denylist (removes from inherited set)66# Task(agent1, agent2) restricts spawnable subagents6768# OPTIONAL — Model69model: inherit # inherit | sonnet | opus | haiku7071# OPTIONAL — Permissions72permissionMode: default # default | acceptEdits | dontAsk | bypassPermissions | plan7374# OPTIONAL — Skills (content injected at startup)75skills:76 - skill-name7778# OPTIONAL — MCP Servers79mcpServers:80 - server-name8182# OPTIONAL — Hooks (scoped to this agent)83hooks:84 PreToolUse:85 - matcher: 'Bash'86 hooks:87 - type: command88 command: './scripts/validate.sh'8990# OPTIONAL — Memory (MEMORY.md auto-injected, Read/Write/Edit auto-added)91memory: project # user (~/.claude/agent-memory/) | project (.claude/agent-memory/) | local (gitignored)9293# OPTIONAL — Execution94background: false # true = always background task95isolation: worktree # Run in temporary git worktree96---97```9899## Tool Restriction Patterns100101| Agent Type | Recommended `tools` |102| -------------------- | --------------------------------------- |103| Explorer/Scout | `Read, Grep, Glob, Bash` |104| Reviewer (read-only) | `Read, Grep, Glob` |105| Writer/Implementer | `Read, Write, Edit, Grep, Glob, Bash` |106| Researcher | `Read, Grep, Glob, WebFetch, WebSearch` |107| Orchestrator | `Read, Grep, Glob, Task(sub1, sub2)` |108109Available tools: Read, Write, Edit, MultiEdit, Glob, Grep, Bash, WebFetch, WebSearch, Task, NotebookRead, NotebookEdit, TaskCreate, TaskUpdate, AskUserQuestion, + MCP tools.110111## Model Selection112113| Model | Best For |114| --------- | ------------------------------------------------------------------------------------------------------ |115| `haiku` | Fast read-only: scanning, search, file listing |116| `sonnet` | Balanced: code review, debugging, analysis |117| `opus` | High-stakes: architecture, complex implementation. Better quality for code review, debugging, analysis |118| `inherit` | Default — match parent's model |119120## Description Best Practices121122```yaml123# BAD — too vague, Claude won't auto-delegate124description: Reviews code125126# GOOD — specific trigger conditions127description: >-128 Use this agent for comprehensive code review after implementing features,129 before merging PRs, or when assessing code quality and technical debt.130```131132- Include "Use this agent when..." phrasing with concrete scenarios133- Add "use proactively" to encourage auto-invocation134135## Common Anti-Patterns136137| Anti-Pattern | Fix |138| ---------------------------------- | ----------------------------------------- |139| No tool restrictions | Add `tools` allowlist |140| Vague description | Write specific trigger conditions |141| Giant system prompt | Keep concise, use `skills` for detail |142| Recursive subagents | Restrict `Task` in tools |143| Windows long prompts (>8191 chars) | Use file-based agents, not `--agents` CLI |144145## Context Passing146147- Agent receives ONLY its system prompt + task prompt — NOT parent conversation148- Parent receives ONLY agent's final result — NOT intermediate tool calls149- This isolation is the primary context management benefit150151## Audit Checklist152153| # | Check | Rule | Severity |154| --- | -------------------- | ------------------------------ | -------- |155| 1 | Frontmatter exists | Must have `---` delimiters | Error |156| 2 | Name present & valid | Lowercase + hyphens only | Error |157| 3 | Description present | Non-empty, >20 chars | Error |158| 4 | No duplicate names | Unique across all agent files | Error |159| 5 | Description quality | Specific trigger scenarios | Warning |160| 6 | Tools minimal | Only what agent needs | Warning |161| 7 | Prompt structure | Has `## Role` + `## Workflow` | Warning |162| 8 | Model set | When task differs from default | Info |163164**Quality Score:** Valid frontmatter (20) + Description >50 chars (20) + Tools restricted (15) + Role section (15) + Workflow section (10) + Model set (10) = 90. Rating: 80+ Excellent, 60-79 Good, 40-59 Needs Work, <40 Poor.165166## File Priority (highest first)1671681. `--agents` CLI flag (session only)1692. `.claude/agents/*.md` (project)1703. `~/.claude/agents/*.md` (user)1714. Plugin `agents/` directory172173Same `name` across levels: higher-priority wins. Use `claude agents` CLI to list all.174175## Requirements176177<user-prompt>$ARGUMENTS</user-prompt>178179---180181**IMPORTANT Task Planning Notes (MUST ATTENTION FOLLOW)**182183- Always break work into small todo tasks184- Always add a final review todo task185186---187188> **[IMPORTANT]** Use `TaskCreate` to break ALL work into small tasks BEFORE starting — including tasks for each file read. This prevents context loss from long files. For simple tasks, AI MUST ATTENTION ask user whether to skip.189190<!-- SYNC:ai-mistake-prevention -->191192> **AI Mistake Prevention** — Failure modes to avoid on every task:193>194> **Re-read files after context changes.** Context compaction, resume, or long-running work can make memory stale; verify current files before acting.195> **Verify generated content against source evidence.** AI hallucinates APIs, names, claims, and document facts. Check the relevant source before documenting or referencing.196> **Check downstream references before deleting or renaming.** Removing an artifact can stale docs, generated mirrors, configs, and callers; map references first.197> **Trace the full impact chain after edits.** Changing a definition can miss derived outputs and consumers. Follow the affected chain before declaring done.198> **Verify ALL affected outputs, not just the first.** One green check is not all green checks; validate every output surface the change can affect.199> **Assume existing values are intentional — ask WHY before changing OR flagging one as a defect.** Before changing or reporting a constant, limit, flag, cutoff, wording, or pattern, read nearby context and history, the CALLER's ordering, and 2+ sibling call sites of the same convention. A doc stating WHAT without WHY is missing rationale, not proof of a missing guard.200> **Surface ambiguity before acting — don't pick silently.** Multiple valid interpretations require an explicit question or stated assumption with risk.201> **Assert the outcome your system owns, not the intermediate state your infrastructure owns.** When verifying async work, assert the final business state — never the delivery/retry bookkeeping held in shared infrastructure that any co-running process can write. Such a check passes when run alone and flakes the moment anything else shares that infrastructure.202> **Keep shared guidance role-relevant.** Universal guidance must help every receiving skill or agent; code-specific obligations belong only in code-specific protocols.203204<!-- /SYNC:ai-mistake-prevention -->205206<!-- SYNC:critical-thinking-mindset -->207208> **Critical Thinking Mindset** — Apply critical thinking, sequential thinking. Every claim needs traced proof, confidence >80% to act.209> **Anti-hallucination:** Never present guess as fact — cite sources for every claim, admit uncertainty freely, self-check output for errors, cross-reference independently, stay skeptical of own confidence — certainty without evidence root of all hallucination.210211<!-- /SYNC:critical-thinking-mindset -->212213<!-- SYNC:critical-thinking-mindset:reminder -->214215**MUST ATTENTION** apply critical + sequential thinking — every claim needs appropriate traced evidence (`file:line` for repo/code claims; source URL or artifact section for research, product, content, and docs claims); confidence >80% to act, <60% DO NOT recommend. Anti-hallucination: never present guess as fact, admit uncertainty freely, cross-reference independently, stay skeptical of own confidence.216217<!-- /SYNC:critical-thinking-mindset:reminder -->218219<!-- SYNC:ai-mistake-prevention:reminder -->220221**MUST ATTENTION** apply AI mistake prevention — verify generated content against evidence, trace downstream references before deleting or renaming, verify all affected outputs, re-read files after context loss, and surface ambiguity before acting.222223<!-- /SYNC:ai-mistake-prevention:reminder -->224225<!-- SYNC:project-protocol-overlay -->226227> **Project Protocol Overlay** — Before executing this skill, resolve any PROJECT overlay rules layered onto it: match this skill's name against the `Target` column of the project's skill-protocol index (`docs/project-reference/skill-protocols-reference.md` by default; a `referenceDocs` entry in `docs/project-config.json` overrides the path), taking the most specific matching tier ONLY — exact name > glob > `*`. **That precedence orders overlays against EACH OTHER, never against this skill.** Read ONLY the matched bodies, resolved as `<protocols-dir>/<Name>.md`; a row's Body link is display text, never a read path. A matched body that is missing or malformed is REPORTED and skipped — never reconstructed from the index Description. No index, or no match -> proceed with no overlay, silently. Full contract: `.claude/skills/project-skill-protocol/references/registry.md`.228>229> Overlays are **ADDITIVE ONLY**: they ADD rules on top of this skill's own protocol and NEVER replace, override, disable, or reinterpret a rule it already states — removing every overlay must return this skill to exactly its documented behavior. An overlay is a BRIEF, not an authority escalation: it can NEVER waive a workflow gate, git discipline, a review gate, or a user-confirmation gate. A genuine overlay-vs-skill conflict, or two equally-specific overlays that directly contradict -> surface both to the user; NEVER resolve silently.230231<!-- /SYNC:project-protocol-overlay -->232233<!-- SYNC:project-protocol-overlay:reminder -->234235**MUST ATTENTION** resolve project protocol overlays for this skill BEFORE executing — most specific matching tier only (exact > glob > `*`, which ranks overlays against each other, NEVER against this skill), read only matched bodies at `<protocols-dir>/<Name>.md`; a missing or malformed body is reported, never reconstructed. Overlays are ADDITIVE ONLY (they never replace this skill's own rules) and are a brief, NEVER an authority escalation; an equal-specificity contradiction goes to the user.236237<!-- /SYNC:project-protocol-overlay:reminder -->238239## Closing Reminders240241**Protocols in force (concise digest of the SYNC/shared blocks this skill carries):**242243- **AI Mistakes:** holistic-first debug, fix at responsible layer, surgical diff, verify ALL outputs.244- **Critical Thinking:** traced `file:line` proof every claim, confidence >80% to act, NEVER guess.245246- **MANDATORY IMPORTANT MUST ATTENTION** break work into small todo tasks using `TaskCreate` BEFORE starting247- **MANDATORY IMPORTANT MUST ATTENTION** search codebase for 3+ similar patterns before creating new code248- **MANDATORY IMPORTANT MUST ATTENTION** cite `file:line` evidence for every claim (confidence >80% to act)249- **MANDATORY IMPORTANT MUST ATTENTION** add a final review todo task to verify work quality250251**[TASK-PLANNING]** Before acting, analyze task scope and systematically break it into small todo tasks and sub-tasks using TaskCreate.