Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create production-grade agent .md files aligned with the Anthropic 2026 spec (16-field schema). Also validates existing agents against the marketplace compliance rules. Use when building custom subagents, reviewing agent quality, or creating parallel agent architectures for orchestrator skills. Trigger with "/agent-creator", "create an agent", "build a subagent", or "validate my agent". Make sure to use this skill whenever creating agents/*.md files for plugins or standalone use.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 322% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 429% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 228% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 101% | 0% |
Creates spec-compliant agent .md files following the Anthropic 2026 16-field schema. Supports both creation of new agents and validation of existing ones.
Agent Creator fills the gap between ad-hoc agent files and production-grade agents that pass marketplace validation. It enforces the Anthropic agent schema (14 valid fields), prevents common mistakes (using allowed-tools instead of disallowedTools, adding invalid fields like capabilities or expertise_level), and produces agents with substantive body content that actually guides Claude's behavior.
Key difference from skill-creator: agents support both tools (allowlist) AND disallowedTools (denylist). Skills use allowed-tools (allowlist) and, since schema 3.7.0, an optional kebab-case disallowed-tools denylist — a parallel field, not a unification. Agents also support effort, maxTurns, skills, memory, isolation, permissionMode, background, color, and initialPrompt — fields that don't exist for skills. The agent body becomes the system prompt that drives the subagent — it does NOT receive the full Claude Code system prompt.
Field-naming warning: Agents use camelCase disallowedTools: (canonical sub-agents spec); skills use kebab-case disallowed-tools: (schema 3.7.0+). The validator rejects either mismatch — never copy-paste between agent and skill frontmatter without renaming.
agents/ within a plugin or ~/.claude/agents/ for standalone)Determine user intent from their prompt:
Ask the user with AskUserQuestion:
Agent Identity:
risk-assessor, clause-analyzer)Execution Context:
plugins/*/agents/) or standalone (~/.claude/agents/)?Task tool?skills: [skill-name])Behavioral Controls:
sonnet for speed, opus for quality, inherit for default)low for simple, medium default, high for complex analysis)maxTurns — how many tool-use loops before stopping)disallowedTools — denylist approach, opposite of skills)Plugin Restrictions (if plugin agent):
hooks — NOT supported in plugin agents (use plugin-level hooks)mcpServers — NOT supported in plugin agentspermissionMode — standalone only, NOT plugin agentsBefore writing, determine:
Agent Role Clarity: The agent body must make three things unambiguous:
Body Structure Pattern: All production agents should follow this body structure:
| Section | Purpose | Required? | |---------|---------|-----------| | # Title | Agent name as heading | Yes | | ## Role | 2-3 sentence domain description with boundaries | Yes | | ## Inputs | Parameters the agent receives when spawned | Yes (if spawned by orchestrator) | | ## Process | Step-by-step methodology (numbered steps with ### headings) | Yes | | ## Output Format | Structured output spec (JSON, markdown, or table) | Yes | | ## Guidelines | Do/don't behavioral rules | Yes | | ## When Activated | Trigger conditions (when spawned or auto-detected) | Recommended | | ## Communication Style | Tone and formatting preferences | Recommended | | ## Success Criteria | What good vs poor output looks like | Recommended | | ## Examples | Concrete interaction examples | For complex agents |
Output Structure Decision:
Generate the agent .md using the template from ${CLAUDE_SKILL_DIR}/../skill-creator/templates/agent-template.md.
Frontmatter Rules (Anthropic 16-field schema):
See Anthropic Agent Spec for the full official reference.
Required fields:
yamlname: {agent-name} # Lowercase letters and hyphens, unique identifier description: "{specialty}" # When Claude should delegate to this subagent
Optional fields (include only what's needed):
yamltools: "Read, Glob, Grep" # Allowlist — inherits all tools if omitted disallowedTools: "Write" # Denylist — removed from inherited/specified list model: sonnet # sonnet|haiku|opus|inherit|full model ID effort: medium # low|medium|high|max (max = Opus 4.6 only) maxTurns: 15 # Max agentic turns before stopping skills: [skill-name] # Skills to inject at startup (full content loaded) memory: project # user|project|local — persistent cross-session background: false # Always run as background task isolation: worktree # Run in temporary git worktree color: blue # Display: red|blue|green|yellow|purple|orange|pink|cyan initialPrompt: "..." # Auto-submitted first turn (--agent mode only) permissionMode: default # Standalone only, NOT plugin agents hooks: {} # Standalone only, NOT plugin agents mcpServers: {} # Standalone only, NOT plugin agents
Tool access:
tools = allowlist (like skills' allowed-tools)disallowedTools = denylist (remove specific tools)disallowedTools on agents. Skills spell their denylistkebab-case (disallowed-tools, schema 3.7.0+) — the validator rejects camelCase on skills and kebab-case on agents, so never copy-paste between the two without renaming
Invalid fields (ERROR — never use these):
capabilities — looks valid but flagged by validatorexpertise_level — invented, not in Anthropic specactivation_priority — invented, not in Anthropic specactivation_triggers, type, category — not in specallowed-tools — that's the skill-only syntax; agents use tools or disallowedToolsdisallowed-tools (kebab-case) — skill-only spelling (schema 3.7.0+); agents use camelCase disallowedToolsBody Content Guidelines:
does NOT do. Example: "You analyze contract clauses for risk. You do NOT provide legal advice or make recommendations — that is the recommendations agent's responsibility."
not vaguely gesture at an activity. Bad: "Analyze the document." Good: "Read the full contract. For each clause, extract: (a) the exact text, (b) the clause category from the taxonomy below, (c) a plain English summary in one sentence."
a concrete schema example. Include field descriptions so Claude knows what each field means.
If the agent needs extensive reference material, create a companion skill with references/ directory and preload it via the skills field.
Run validation against the Anthropic 16-field schema:
Manual checklist:
| Check | Rule | |-------|------| | name present | 1-64 chars, kebab-case | | description present | 20-200 chars | | No invalid fields | None of: capabilities, expertise_level, activation_priority, type, category | | No skill-only fields | No allowed-tools, no kebab-case disallowed-tools (agents use tools / camelCase disallowedTools) | | Plugin restrictions | No hooks/mcpServers/permissionMode if plugin agent | | Body has Role section | Clear domain + boundaries | | Body has Process section | Numbered steps | | Body has Output Format | Concrete schema example | | Body has Guidelines | Do/don't rules | | Body under 300 lines | Offload to references if longer (prevents context bloat) |
Automated validation:
bashpython3 ${CLAUDE_SKILL_DIR}/../skill-creator/scripts/validate-skill.py --agents-only {plugin-dir}/
Test the agent by spawning it via the Task tool or the Agent tool:
Provide a summary:
When the user wants to validate an existing agent:
name present and valid (1-64 chars, kebab-case)?description present and valid (20-200 chars)?allowed-tools, kebab-case disallowed-tools)## Role section?## Process section with numbered steps?## Output Format with concrete example?## Guidelines?plus a creation report with validation status.
specific fix recommendations for each.
Input: "Create a risk assessment agent that scores contract clauses"
Output: agents/risk-assessor.md with frontmatter:
yamlname: risk-assessor description: "Score contract clauses for legal and financial risk on a 1-10 scale" model: sonnet effort: high maxTurns: 10
Body sections: Role (risk scoring specialist, does NOT make recommendations), Inputs (contract_text, contract_type, output_path), Process (4 steps: read, categorize, score, aggregate), Output Format (JSON with clause scores and risk matrix), Guidelines (be specific, cite clause text, use 4-factor scoring methodology).
Input: "Create a code review agent"
Output: ~/.claude/agents/code-reviewer.md with frontmatter:
yamlname: code-reviewer description: "Review code for bugs, performance issues, and security vulnerabilities" effort: high
Body sections: Role (code quality specialist), Process (read code, check patterns, identify issues, suggest fixes), Output Format (markdown with severity-rated findings), Guidelines (cite line numbers, explain why not just what), Communication Style (direct, educational, actionable).
| Error | Cause | Resolution | |-------|-------|------------| | allowed-tools in agent | Used skill-only field | Replace with tools (allowlist) or disallowedTools (denylist), or remove | | disallowed-tools (kebab-case) in agent | Copy-pasted from skill frontmatter | Rename to camelCase disallowedTools — the validator rejects the kebab-case spelling on agents | | capabilities field | Common mistake — looks valid but isn't in Anthropic spec | Remove field entirely | | expertise_level field | Invented field from community templates | Remove — express expertise in body content | | Description > 200 chars | Exceeds Anthropic limit | Shorten to 20-200 char range | | Description < 20 chars | Below minimum | Expand to describe agent's specific specialty | | permissionMode in plugin agent | Standalone-only field used in plugin context | Remove — only valid in ~/.claude/agents/ | | hooks in plugin agent | Plugin agents can't have hooks | Move to plugin-level hooks/hooks.json | | Body has no Process section | Agent lacks step-by-step methodology | Add numbered steps under ## Process | | Body over 300 lines | Too long for agent context | Extract reference material to companion skill |
Other measured skills in the registry, with their headline benchmark lift.