# claude-agent-development > Use this agent for security vulnerability detection. Triggers on security audits, OWASP, injection, XSS. - Author: Matt Galligan - Repository: outfitter-dev/agents - Version: 20260111123237 - Stars: 19 - Forks: 0 - Last Updated: 2026-02-06 - Source: https://github.com/outfitter-dev/agents - Web: https://mule.run/skillshub/@@outfitter-dev/agents~claude-agent-development:20260111123237 --- --- name: claude-agent-development version: 1.0.0 description: This skill should be used when creating agents, writing agent frontmatter, configuring subagents, or when "create agent", "agent.md", "subagent", or "Task tool" are mentioned. user-invocable: true --- # Claude Agent Development Create and validate specialized subagents that extend Claude Code with focused expertise. ## Agents vs Skills **Critical distinction**: | Aspect | Agents (This Skill) | Skills | | -------------- | ------------------------------------------- | -------------------------------------- | | **Purpose** | Specialized subagents with focused expertise | Capability packages with instructions | | **Invocation** | Task tool (`subagent_type` parameter) | Automatic (model-triggered by context) | | **Location** | `agents/` directory | `skills/` directory | | **Structure** | Single `.md` file with frontmatter | Directory with `SKILL.md` + resources | See [agent-vs-skill.md](references/agent-vs-skill.md) for details. ## Quick Start ### Using Templates Copy a template from `templates/`: | Template | Use When | | ----------------- | -------------------------------------------- | | `basic.md` | Simple agents with focused expertise | | `advanced.md` | Full-featured agents with all config options | ### Scaffolding ```bash ./scripts/scaffold-agent.sh security-reviewer -t reviewer ``` ## Workflow Overview 1. **Discovery** - Define purpose, scope, and triggers 2. **Design** - Choose archetype and configuration 3. **Implementation** - Write frontmatter and instructions 4. **Validation** - Verify against quality standards --- ## Phase 1: Discovery Before writing code, clarify: - **Purpose**: What specialized expertise does this agent provide? - **Triggers**: What keywords/phrases should invoke it? - **Scope**: What does it do? What does it NOT do? - **Location**: Personal (`~/.claude/agents/`), project (`agents/`), or plugin? **Key questions**: - Is this a specialized role or a general capability? (Role = agent, Capability = skill) - What user phrases should trigger this agent? - What tools does it need access to? --- ## Phase 2: Design ### Agent Archetypes | Type | Purpose | Typical Tools | |------|---------|---------------| | **Analyzer** | Examine without modifying | `Glob, Grep, Read, Skill, Task, TodoWrite` | | **Implementer** | Build and modify code | Full access (inherit) | | **Reviewer** | Provide feedback | `Glob, Grep, Read, Skill, Task, TodoWrite` | | **Tester** | Create and manage tests | `Glob, Grep, Read, Write, Edit, Bash, ...` | | **Researcher** | Find and synthesize info | `..., WebSearch, WebFetch` | | **Deployer** | Handle infrastructure | `..., Bash(kubectl *), Bash(docker *)` | See [agent-types.md](references/agent-types.md) for details. ### Frontmatter Schema ```yaml --- name: agent-name # Required: kebab-case, matches filename description: | # Required: when to use + triggers + examples Use this agent when [conditions]. Triggers on [keywords]. Context: [Situation] user: "[User message]" assistant: "I'll use the agent-name agent to [action]." model: inherit # Optional: inherit|haiku|sonnet|opus tools: Glob, Grep, Read # Optional: restrict tools (default: inherit all) skills: tdd, debugging # Optional: skills to auto-load (NOT inherited) permissionMode: default # Optional: default|acceptEdits|bypassPermissions --- ``` See [frontmatter.md](references/frontmatter.md) for complete schema. ### Model Selection | Model | When to Use | |-------|-------------| | `inherit` | Recommended default - adapts to parent context | | `haiku` | Fast exploration, simple tasks, low-latency | | `sonnet` | Balanced cost/capability (default if omitted) | | `opus` | Nuanced judgment, security/architecture review, irreversible decisions | ### Tool Configuration **Philosophy**: Don't over-restrict. Only limit tools when there's a specific safety reason. **Baseline** (always include when restricting): ```yaml tools: Glob, Grep, Read, Skill, Task, TodoWrite ``` See [tools.md](references/tools.md) for patterns. --- ## Phase 3: Implementation ### Agent File Structure ```markdown --- name: security-reviewer description: | Use this agent for security vulnerability detection. Triggers on security audits, OWASP, injection, XSS. Context: User wants security review. user: "Review auth code for vulnerabilities" assistant: "I'll use the security-reviewer agent." model: inherit --- # Security Reviewer You are a security expert specializing in [expertise]. ## Expertise - Domain expertise 1 - Domain expertise 2 ## Process ### Step 1: [Phase Name] - Action item - Action item ### Step 2: [Phase Name] - Action item ## Output Format For each finding: - **Severity**: critical|high|medium|low - **Location**: file:line - **Issue**: Description - **Remediation**: How to fix ## Constraints **Always:** - Required behavior **Never:** - Prohibited action ``` ### Description Guidelines Descriptions are the most critical field for agent discovery: 1. **Start with trigger conditions**: "Use this agent when..." 2. **Include 3-5 trigger keywords**: specific terms users would say 3. **Add 2-3 examples**: showing user request -> assistant delegation 4. **Be specific**: avoid vague descriptions like "helps with code" ### Best Practices **Single Responsibility** ```yaml # Good: Focused description: SQL injection vulnerability detector # Bad: Too broad description: Security expert handling all issues ``` **Document Boundaries** ```markdown ## What I Don't Do - I analyze, not implement fixes - I review, not build from scratch ``` **Consistent Output Format** Define structured output so results are predictable and parseable. --- ## Phase 4: Validation After creating an agent, validate against these checklists. ### YAML Frontmatter Checks - [ ] Opens with `---` on line 1 - [ ] Closes with `---` before content - [ ] `name` present and matches filename (without `.md`) - [ ] `description` present and non-empty - [ ] Uses spaces (not tabs) for indentation - [ ] `tools` uses comma-separated valid tool names - [ ] `model` is valid: `sonnet`, `opus`, `haiku`, or `inherit` ### Naming Conventions - [ ] Kebab-case (lowercase-with-hyphens) - [ ] Follows `[role]-[specialty]` or `[specialty]` pattern - [ ] Specific, not generic - [ ] Concise (1-3 words, max 4) **Good**: `code-reviewer`, `test-runner`, `security-auditor` **Bad**: `helper`, `my-agent`, `the-best-agent` ### Description Quality - [ ] **WHAT**: Explains what the agent does - [ ] **WHEN**: States when to invoke it - [ ] **TRIGGERS**: Includes 3-5 trigger keywords - [ ] **EXAMPLES**: Has 2-3 example conversations - [ ] Specific about agent's purpose (not vague) - [ ] Clear about scope **Anti-patterns**: - "Helps with code" - too vague - No trigger conditions - Missing keywords ### System Prompt Quality - [ ] Clear role definition - [ ] Step-by-step process - [ ] Key practices or guidelines - [ ] Output format specification - [ ] Specific and actionable instructions - [ ] Constraints (what NOT to do) - [ ] Single responsibility focus **Anti-patterns**: - "You are helpful" - too vague - No process defined - Missing constraints - Scope creep ### Tool Configuration - [ ] Field name is `tools:` (not `allowed-tools:`) - [ ] Comma-separated list - [ ] Tool names correctly spelled and case-sensitive - [ ] Includes baseline tools if restricting: `Glob, Grep, Read, Skill, Task, TodoWrite` - [ ] Tools appropriate for agent's purpose **Common patterns**: ```yaml # Read-only tools: Glob, Grep, Read, Skill, Task, TodoWrite # Read-only + git tools: Glob, Grep, Read, Skill, Task, TodoWrite, Bash(git show:*), Bash(git diff:*) # Research tools: Glob, Grep, Read, Skill, Task, TodoWrite, WebSearch, WebFetch # Full access # (omit field to inherit all) ``` ### Validation Report Format ```markdown # Agent Validation Report: [Agent Name] ## Summary - **Status**: PASS | FAIL | WARNINGS - **Location**: [path] - **Issues**: [count critical] / [count warnings] ## Critical Issues (must fix) 1. [Issue with specific fix] ## Warnings (should fix) 1. [Issue with specific fix] ## Strengths - [What's done well] ``` --- ## Agent Scopes | Scope | Location | Priority | Visibility | |-------|----------|----------|------------| | Project | `agents/` | Highest | Team via git | | Personal | `~/.claude/agents/` | Medium | You only | | Plugin | `/agents/` | Lowest | Plugin users | Project agents override personal agents with the same name. --- ## Testing Agents ### Manual Testing 1. Create agent file in `agents/` 2. In Claude Code: "Use the [agent-name] agent to [task]" 3. Claude invokes via Task tool 4. Review results ### Verify Discovery Agents are loaded from: - `~/.claude/agents/` (personal) - `./agents/` (project) - Plugins (installed) Debug with: `claude --debug` --- ## Troubleshooting ### Agent Not Being Invoked - Check file location: `agents/agent-name.md` - Validate YAML frontmatter syntax - Make description more specific with trigger keywords - Add example conversations ### Wrong Agent Invoked - Make description more distinct - Add specific trigger keywords - Include negative examples (what NOT to use it for) ### Agent Has Wrong Tools Prefer `model: inherit` to use parent's tool access. Only specify `tools:` when agent needs different access. --- ## References | Reference | Content | |-----------|---------| | [agent-vs-skill.md](references/agent-vs-skill.md) | Agents vs Skills distinction | | [frontmatter.md](references/frontmatter.md) | YAML schema and fields | | [tools.md](references/tools.md) | Tool configuration patterns | | [task-tool.md](references/task-tool.md) | Task tool integration | | [discovery.md](references/discovery.md) | How agents are found and loaded | | [agent-types.md](references/agent-types.md) | Archetypes: analysis, implementation, etc. | | [patterns.md](references/patterns.md) | Best practices and multi-agent patterns | | [todowrite.md](references/todowrite.md) | TodoWrite patterns for agents | | [advanced-features.md](references/advanced-features.md) | Resumable agents, CLI config | See [EXAMPLES.md](EXAMPLES.md) for complete real-world agent examples. See `templates/` for starter templates. --- ## Related Skills - **skills-development**: Create Skills (different from agents) - **claude-plugin-development**: Bundle agents into plugins