Initial commit
This commit is contained in:
199
skills/agent-creator/SKILL.md
Normal file
199
skills/agent-creator/SKILL.md
Normal file
@@ -0,0 +1,199 @@
|
||||
---
|
||||
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
|
||||
Reference in New Issue
Block a user