200 lines
5.7 KiB
Markdown
200 lines
5.7 KiB
Markdown
---
|
|
name: agent-creator
|
|
description: >
|
|
This skill should be used when the user asks to "create an agent", "write a subagent", "generate
|
|
agent definition", "add agent to plugin", "write agent frontmatter", "create autonomous agent",
|
|
"build subagent", needs agent structure guidance, YAML frontmatter configuration, invocation
|
|
criteria with examples, or wants to add specialized subagents to Claude Code plugins with proper
|
|
capabilities lists and tool access definitions.
|
|
---
|
|
|
|
# Agent Creator
|
|
|
|
## Overview
|
|
|
|
Creates subagent definitions for Claude Code. Subagents are specialized assistants
|
|
that Claude can invoke for specific tasks.
|
|
|
|
**When to use:** User requests an agent, wants to add specialized subagent to plugin, or needs agent structure guidance.
|
|
|
|
**References:** Consult
|
|
`plugins/meta/claude-docs/skills/official-docs/reference/plugins-reference.md` and
|
|
`plugins/meta/claude-docs/skills/official-docs/reference/sub-agents.md` for specifications.
|
|
|
|
## CRITICAL: Two Types of Agents
|
|
|
|
Claude Code has **two distinct agent types** with **different requirements**:
|
|
|
|
### Plugin Agents (plugins/*/agents/)
|
|
|
|
**Purpose:** Agents distributed via plugins for team/community use
|
|
|
|
**Required frontmatter fields:**
|
|
- `description` (required) - What this agent specializes in
|
|
- `capabilities` (required) - Array of specific capabilities
|
|
|
|
**Location:** `plugins/<category>/<plugin-name>/agents/agent-name.md`
|
|
|
|
**Example:**
|
|
```markdown
|
|
---
|
|
description: Expert code reviewer validating security and quality
|
|
capabilities: ["vulnerability detection", "code quality review", "best practices"]
|
|
---
|
|
```
|
|
|
|
### User/Project Agents (.claude/agents/)
|
|
|
|
**Purpose:** Personal agents for individual workflows
|
|
|
|
**Required frontmatter fields:**
|
|
- `name` (required) - Agent identifier
|
|
- `description` (required) - When to invoke this agent
|
|
- `tools` (optional) - Comma-separated tool list
|
|
- `model` (optional) - Model alias (sonnet, opus, haiku)
|
|
|
|
**Location:** `.claude/agents/agent-name.md` or `~/.claude/agents/agent-name.md`
|
|
|
|
**Example:**
|
|
```markdown
|
|
---
|
|
name: code-reviewer
|
|
description: Expert code review. Use after code changes.
|
|
tools: Read, Grep, Glob, Bash
|
|
model: sonnet
|
|
---
|
|
```
|
|
|
|
**Key difference:** User agents have `name` field and system prompt. Plugin agents have `capabilities` array and documentation.
|
|
|
|
## Agent Structure Requirements (Plugin Agents)
|
|
|
|
Every **plugin agent** MUST include:
|
|
|
|
1. **Frontmatter** with `description` and `capabilities` array
|
|
2. **Agent title** as h1
|
|
3. **Capabilities** section explaining what agent does
|
|
4. **When to Use** section with invocation criteria
|
|
5. **Context and Examples** with concrete scenarios
|
|
6. Located in `agents/agent-name.md` within plugin
|
|
|
|
## Creation Process
|
|
|
|
### Step 0: Determine Agent Type
|
|
|
|
**Ask the user:**
|
|
- Is this for a plugin (team/community distribution)?
|
|
- Or for personal use (.claude/agents/)?
|
|
|
|
**If personal use:** Use user agent format with `name`, `description`, system prompt. See `plugins/meta/claude-docs/skills/official-docs/reference/sub-agents.md` for examples.
|
|
|
|
**If plugin:** Continue with plugin agent format below.
|
|
|
|
### Step 1: Define Agent Purpose
|
|
|
|
Ask the user:
|
|
|
|
- What specialized task does this agent handle?
|
|
- What capabilities distinguish it from other agents?
|
|
- When should Claude invoke this vs doing work directly?
|
|
|
|
### Step 2: Determine Agent Name
|
|
|
|
Create descriptive kebab-case name:
|
|
|
|
- "security review" → `security-reviewer`
|
|
- "performance testing" → `performance-tester`
|
|
- "API documentation" → `api-documenter`
|
|
|
|
### Step 3: List Capabilities
|
|
|
|
Identify 3-5 specific capabilities:
|
|
|
|
- Concrete actions the agent performs
|
|
- Specialized knowledge it applies
|
|
- Outputs it generates
|
|
|
|
### Step 4: Structure the Agent
|
|
|
|
Use this template:
|
|
|
|
```markdown
|
|
---
|
|
description: One-line agent description
|
|
capabilities: ["capability-1", "capability-2", "capability-3"]
|
|
---
|
|
|
|
# Agent Name
|
|
|
|
Detailed description of agent's role and expertise.
|
|
|
|
## Capabilities
|
|
|
|
- **Capability 1**: What this enables
|
|
- **Capability 2**: What this enables
|
|
- **Capability 3**: What this enables
|
|
|
|
## When to Use This Agent
|
|
|
|
Claude should invoke when:
|
|
- Specific condition 1
|
|
- Specific condition 2
|
|
- Specific condition 3
|
|
|
|
## Context and Examples
|
|
|
|
**Example 1: Scenario Name**
|
|
|
|
User requests: "Help with X"
|
|
Agent provides: Specific assistance using capabilities
|
|
|
|
**Example 2: Another Scenario**
|
|
|
|
When Y happens, agent does Z.
|
|
```
|
|
|
|
### Step 5: Verify Against Official Docs
|
|
|
|
**For plugin agents:**
|
|
Check `plugins/meta/claude-docs/skills/official-docs/reference/plugins-reference.md` (requires `capabilities` array).
|
|
|
|
**For user agents:**
|
|
Check `plugins/meta/claude-docs/skills/official-docs/reference/sub-agents.md` (requires `name` field).
|
|
|
|
## Key Principles
|
|
|
|
- **Specialization**: Agents should have focused expertise
|
|
- **Clear Invocation**: Claude must know when to use this agent
|
|
- **Concrete Capabilities**: List specific things agent can do
|
|
- **Examples**: Show real scenarios where agent helps
|
|
|
|
## Examples
|
|
|
|
### Example 1: Security Reviewer Agent
|
|
|
|
User: "Create an agent for security reviews"
|
|
|
|
Process:
|
|
|
|
1. Purpose: Reviews code for security vulnerabilities
|
|
2. Name: `security-reviewer`
|
|
3. Capabilities: ["vulnerability detection", "security best practices", "threat modeling"]
|
|
4. Structure: Include when to invoke, examples of security issues
|
|
5. Create: `agents/security-reviewer.md`
|
|
|
|
Output: Agent that Claude invokes for security-related code review
|
|
|
|
### Example 2: Performance Tester Agent
|
|
|
|
User: "I need an agent for performance testing"
|
|
|
|
Process:
|
|
|
|
1. Purpose: Designs and analyzes performance tests
|
|
2. Name: `performance-tester`
|
|
3. Capabilities: ["load testing", "benchmark design", "performance analysis"]
|
|
4. Structure: When to use for optimization vs testing
|
|
5. Create: `agents/performance-tester.md`
|
|
|
|
Output: Agent that Claude invokes for performance concerns
|