Use when creating specialized subagents for Claude Code plugins or the Task tool - covers description writing for auto-delegation, tool selection, prompt structure, and testing agents
View on GitHubed3dai/ed3d-plugins
ed3d-extending-claude
January 25, 2026
Select agents to install to:
npx add-skill https://github.com/ed3dai/ed3d-plugins/blob/main/plugins/ed3d-extending-claude/skills/creating-an-agent/SKILL.md -a claude-code --skill creating-an-agentInstallation paths:
.claude/skills/creating-an-agent/# Creating an Agent **REQUIRED BACKGROUND:** Read ed3d-extending-claude:writing-claude-directives for foundational guidance on token efficiency, compliance techniques, and directive structure. This skill focuses on agent-specific patterns. ## What is an Agent? An **agent** is a specialized Claude instance with: - Defined tools (Read, Edit, Bash, etc.) - Specific responsibilities (code review, security audit, research) - A focused system prompt Agents are spawned via the Task tool or defined in plugin `agents/` directories. ## When to Create an Agent **Create when:** - Task requires specialized expertise - Workflow benefits from tool restrictions - You want consistent behavior across invocations - Task is complex enough to warrant context isolation **Don't create for:** - Simple, one-off tasks - Tasks the main Claude handles well - Purely conversational interactions ## Agent File Structure ``` agents/ my-agent.md ``` **Template:** ```markdown --- name: agent-name description: Use when [specific triggers] - [what agent does] tools: Read, Grep, Glob, Bash model: sonnet --- # Agent Name [Agent system prompt - who they are, what they do] ## Responsibilities - Task 1 - Task 2 ## Workflow 1. Step 1 2. Step 2 ``` ## Description: The Critical Field The `description` field determines when Claude auto-delegates to your agent. It's searched when matching tasks to available agents. ### Writing Effective Descriptions **Format:** "Use when [specific triggers/symptoms] - [what the agent does]" **Write in third person.** Injected into system prompt. ```yaml # Bad: vague, no triggers description: Helps with code # Bad: first person description: I review code for security issues # Good: specific triggers + action description: Use when reviewing code for security vulnerabilities, analyzing authentication flows, or checking for common security anti-patterns like SQL injection, XSS, or insecure dependencies ``` **Include:** - Specific symptoms that trigger use -