subagent-creator
Create specialized Claude Code sub-agents with custom system prompts and tool configurations. Use when users ask to create a new sub-agent, custom agent, specialized assistant, or want to configure task-specific AI workflows for Claude Code.
When & Why to Use This Skill
The Sub-agent Creator is a specialized tool for Claude Code designed to build and manage modular AI workflows. It allows developers to create task-specific sub-agents with customized system prompts, restricted toolsets, and lifecycle hooks. By defining clear triggers in the sub-agent's description, it enables seamless auto-delegation, ensuring that complex software engineering tasks—such as debugging, security auditing, or code refactoring—are handled by an AI assistant optimized for that specific context.
Use Cases
- Case 1: Automated Code Reviewer - Create a sub-agent that proactively triggers after code changes to review logic, security, and adherence to style guides using a 'PostToolUse' hook.
- Case 2: Specialized Debugging Assistant - Configure a sub-agent with deep access to logs and testing tools to isolate and fix complex regressions without polluting the main agent's context.
- Case 3: Security & Compliance Guardrails - Implement sub-agents with 'PreToolUse' hooks to validate shell commands or file edits, preventing dangerous operations in sensitive environments.
- Case 4: Documentation & Maintenance - Build a dedicated assistant that monitors file changes and automatically updates technical documentation or generates changelogs using specialized prompts.
- Case 5: CI/CD Integration - Set up a sub-agent specifically designed to interface with build pipelines, interpreting test failures and suggesting immediate fixes.
| name | subagent-creator |
|---|---|
| description | Create specialized Claude Code sub-agents with custom system prompts and tool configurations. Use when users ask to create a new sub-agent, custom agent, specialized assistant, or want to configure task-specific AI workflows for Claude Code. |
Sub-agent Creator
Create specialized AI sub-agents for Claude Code that handle specific tasks with customized prompts and tool access.
Sub-agent File Format
Sub-agents are Markdown files with YAML frontmatter stored in:
- Project:
.claude/agents/(higher priority) - User:
~/.claude/agents/(lower priority)
Structure
---
name: subagent-name
description: When to use this subagent (include "use proactively" for auto-delegation)
tools: Tool1, Tool2, Tool3 # Optional - inherits all if omitted
model: sonnet # Optional - sonnet/opus/haiku/inherit
permissionMode: default # Optional - default/acceptEdits/bypassPermissions/plan
skills: skill1, skill2 # Optional - auto-load skills
hooks: # Optional - lifecycle hooks (PreToolUse, PostToolUse, Stop only)
PreToolUse:
- matcher: "Edit"
hooks:
- type: command
command: "jq -r '.tool_input' | ./scripts/validate.sh"
---
System prompt goes here. Define role, responsibilities, and behavior.
Configuration Fields
| Field | Required | Description |
|---|---|---|
name |
Yes | Lowercase with hyphens |
description |
Yes | Purpose and when to use (key for auto-delegation) |
tools |
No | Comma-separated tool list (omit to inherit all) |
model |
No | sonnet, opus, haiku, or inherit |
permissionMode |
No | default, acceptEdits, bypassPermissions, plan |
skills |
No | Skills to auto-load |
hooks |
No | Lifecycle hooks (PreToolUse, PostToolUse, Stop) |
Creation Workflow
- Gather requirements: Ask about the sub-agent's purpose, when to use it, and required capabilities
- Choose scope: Project (
.claude/agents/) or user (~/.claude/agents/) - Define configuration: Name, description, tools, model
- Write system prompt: Clear role, responsibilities, and output format
- Create file: Write the
.mdfile to the appropriate location
Writing Effective Sub-agents
Description Best Practices
The description field is critical for automatic delegation:
# Good - specific triggers
description: Expert code reviewer. Use PROACTIVELY after writing or modifying code.
# Good - clear use cases
description: Debugging specialist for errors, test failures, and unexpected behavior.
# Bad - too vague
description: Helps with code
System Prompt Guidelines
- Define role clearly: "You are a [specific expert role]"
- List actions on invocation: What to do first
- Specify responsibilities: What the sub-agent handles
- Include guidelines: Constraints and best practices
- Define output format: How to structure responses
Tool Selection
- Read-only tasks:
Read, Grep, Glob, Bash - Code modification:
Read, Write, Edit, Grep, Glob, Bash - Full access: Omit
toolsfield
See references/available-tools.md for complete tool list.
Example Sub-agents
See references/examples.md for complete examples:
- Code Reviewer
- Debugger
- Data Scientist
- Test Runner
- Documentation Writer
- Security Auditor
Agent Hooks
Sub-agents can include lifecycle hooks that execute automatically during agent execution. These hooks are scoped to the agent's lifecycle and are automatically cleaned up when the agent finishes.
When to Use Agent Hooks
- Validation: Verify inputs before tools execute (e.g., lint code before Edit)
- Quality control: Auto-format files after editing
- Logging: Track agent's tool usage for debugging
- Security: Block dangerous operations for this specific agent
- Post-processing: Generate reports or cleanup after agent completes
Hook Configuration
Add hooks to the agent's frontmatter:
---
name: code-reviewer
description: Reviews code for quality and security. Use proactively after code changes.
tools: Read, Grep, Glob, Bash
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "jq -r '.tool_input' | ./scripts/check-safe-command.sh"
PostToolUse:
- matcher: "Read"
hooks:
- type: command
command: "jq -r '.tool_output' | ./scripts/log-reviewed-file.sh"
Stop:
- matcher: "*"
hooks:
- type: command
command: "./scripts/generate-review-report.sh"
---
Supported Hook Events
- PreToolUse: Runs before tool calls (can block with exit code 2)
- PostToolUse: Runs after tool calls complete
- Stop: Runs when agent finishes responding
Key Characteristics
- Hooks are scoped to agent lifecycle - only active when this agent is executing
- Hooks are automatically cleaned up when agent finishes
- Scripts use relative paths from agent
.mdfile location (e.g.,./scripts/validate.shrelative to.claude/agents/my-agent.md) - JSON input is piped to stdin - use
jqto parse (e.g.,jq -r '.tool_input.file_path') once: trueis NOT supported for Agent hooks (only for Skills and Slash commands)- Exit code 2 in PreToolUse blocks the tool
Example: Auto-formatting Agent
---
name: code-formatter
description: Format code files automatically
tools: Read, Edit, Bash
hooks:
PostToolUse:
- matcher: "Edit"
hooks:
- type: command
command: "jq -r '.tool_input.file_path' | xargs npx prettier --write"
---
You are a code formatting specialist.
When invoked:
1. Read the target files
2. Apply formatting rules
3. Edit files with proper formatting
The PostToolUse hook will automatically run prettier after each edit. The hook receives JSON via stdin and uses `jq` to extract the file path.
Template
Copy from assets/subagent-template.md to start a new sub-agent.
Quick Start Example
Create a code reviewer sub-agent:
mkdir -p .claude/agents
Basic Version (without hooks)
Write to .claude/agents/code-reviewer.md:
---
name: code-reviewer
description: Reviews code for quality and security. Use proactively after code changes.
tools: Read, Grep, Glob, Bash
model: inherit
---
You are a senior code reviewer.
When invoked:
1. Run git diff to see changes
2. Review modified files
3. Report issues by priority
Focus on:
- Code readability
- Security vulnerabilities
- Error handling
- Best practices
Advanced Version (with hooks)
For automatic validation and reporting, add hooks:
---
name: code-reviewer
description: Reviews code for quality and security. Use proactively after code changes.
tools: Read, Grep, Glob, Bash
model: inherit
hooks:
PreToolUse:
- matcher: "Bash"
hooks:
- type: command
command: "jq -r '.tool_input.command' | grep -q 'rm -rf' && exit 2 || exit 0"
Stop:
- matcher: "*"
hooks:
- type: command
command: "echo 'Code review completed' >> ~/.claude/review-log.txt"
---
You are a senior code reviewer.
When invoked:
1. Run git diff to see changes
2. Review modified files
3. Report issues by priority
Focus on:
- Code readability
- Security vulnerabilities
- Error handling
- Best practices
The PreToolUse hook blocks dangerous bash commands, and the Stop hook logs completion.