Initial commit
This commit is contained in:
172
skills/sub-agents/SKILL.md
Normal file
172
skills/sub-agents/SKILL.md
Normal file
@@ -0,0 +1,172 @@
|
||||
---
|
||||
name: sub-agents
|
||||
description: How to create and use specialized subagents in Claude Code for task delegation. Use when user asks about creating specialized agents, delegating tasks, agent configuration, or subagent features.
|
||||
---
|
||||
|
||||
# Subagents
|
||||
|
||||
## Overview
|
||||
Subagents are specialized AI assistants that Claude Code can delegate tasks to. Each operates with its own context window, custom system prompt, and configurable tool access.
|
||||
|
||||
## Key Features
|
||||
|
||||
**Context Management**: Each subagent operates in its own context, preventing pollution of the main conversation
|
||||
|
||||
**Specialization**: Task-specific configurations enable higher success rates on designated work
|
||||
|
||||
**Reusability**: Once created, subagents work across different projects and teams
|
||||
|
||||
**Flexible Permissions**: Individual tool access control per subagent
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Run `/agents` command
|
||||
2. Select "Create New Agent"
|
||||
3. Choose project-level or user-level scope
|
||||
4. Define purpose, select tools, customize system prompt
|
||||
5. Save and invoke automatically or explicitly
|
||||
|
||||
## Configuration
|
||||
|
||||
### File Locations
|
||||
- **Project subagents**: `.claude/agents/`
|
||||
- **User subagents**: `~/.claude/agents/`
|
||||
- Project-level takes precedence over user-level
|
||||
|
||||
### File Format
|
||||
Markdown with YAML frontmatter containing:
|
||||
- `name`: Unique identifier
|
||||
- `description`: Purpose and invocation guidance
|
||||
- `tools`: Optional comma-separated list
|
||||
- `model`: Optional model alias (sonnet/opus/haiku) or 'inherit'
|
||||
|
||||
### Example Structure
|
||||
```yaml
|
||||
---
|
||||
name: code-reviewer
|
||||
description: Expert code review specialist. Use proactively after code changes.
|
||||
tools: Read, Grep, Glob, Bash
|
||||
model: inherit
|
||||
---
|
||||
|
||||
Your system prompt explaining the subagent's role and approach...
|
||||
```
|
||||
|
||||
## Available Tools
|
||||
|
||||
When configuring subagents, you can grant access to these tools via the `tools` field in frontmatter:
|
||||
|
||||
### Tools That Require Permission
|
||||
|
||||
**Bash** - Executes shell commands in your environment
|
||||
- Use for: Running tests, git commands, build scripts
|
||||
- Example: `Bash`
|
||||
|
||||
**Edit** - Makes targeted edits to specific files
|
||||
- Use for: Code modifications, refactoring
|
||||
- Example: `Edit`
|
||||
|
||||
**NotebookEdit** - Modifies Jupyter notebook cells
|
||||
- Use for: Data science workflows, notebook updates
|
||||
- Example: `NotebookEdit`
|
||||
|
||||
**SlashCommand** - Runs a custom slash command
|
||||
- Use for: Invoking user-defined commands
|
||||
- Example: `SlashCommand`
|
||||
|
||||
**WebFetch** - Fetches content from a specified URL
|
||||
- Use for: Documentation lookup, API calls
|
||||
- Example: `WebFetch`
|
||||
|
||||
**WebSearch** - Performs web searches with domain filtering
|
||||
- Use for: Finding current information, research
|
||||
- Example: `WebSearch`
|
||||
|
||||
**Write** - Creates or overwrites files
|
||||
- Use for: Generating new files, reports
|
||||
- Example: `Write`
|
||||
|
||||
### Tools That Don't Require Permission
|
||||
|
||||
**Glob** - Finds files based on pattern matching
|
||||
- Use for: Finding files by name pattern
|
||||
- Example: `Glob`
|
||||
|
||||
**Grep** - Searches for patterns in file contents
|
||||
- Use for: Code search, pattern matching
|
||||
- Example: `Grep`
|
||||
|
||||
**NotebookRead** - Reads and displays Jupyter notebook contents
|
||||
- Use for: Analyzing notebooks
|
||||
- Example: `NotebookRead`
|
||||
|
||||
**Read** - Reads the contents of files
|
||||
- Use for: Code review, analysis
|
||||
- Example: `Read`
|
||||
|
||||
**Task** - Runs a sub-agent to handle complex, multi-step tasks
|
||||
- Use for: Delegating to other specialized agents
|
||||
- Example: `Task`
|
||||
|
||||
**TodoWrite** - Creates and manages structured task lists
|
||||
- Use for: Planning and tracking work
|
||||
- Example: `TodoWrite`
|
||||
|
||||
### Configuring Tool Access
|
||||
|
||||
**Grant all tools:**
|
||||
```yaml
|
||||
tools: Bash, Edit, Read, Write, Glob, Grep, WebFetch, WebSearch
|
||||
```
|
||||
|
||||
**Grant minimal tools (read-only):**
|
||||
```yaml
|
||||
tools: Read, Glob, Grep
|
||||
```
|
||||
|
||||
**Grant specific tools for specialized tasks:**
|
||||
```yaml
|
||||
tools: Read, Bash, TodoWrite # For a test runner agent
|
||||
```
|
||||
|
||||
**Omit tools field to inherit from parent:**
|
||||
```yaml
|
||||
# No tools field - uses same tools as main Claude instance
|
||||
```
|
||||
|
||||
## Usage Patterns
|
||||
|
||||
**Automatic Delegation**: Claude recognizes matching tasks and invokes appropriate subagents
|
||||
|
||||
**Explicit Invocation**: Request specific subagents via natural language commands like "Use the debugger subagent to investigate this error"
|
||||
|
||||
## Example Subagents
|
||||
|
||||
### Code Reviewer
|
||||
Reviews code for quality, security, and maintainability. Provides feedback categorized by priority (critical/warnings/suggestions).
|
||||
|
||||
### Debugger
|
||||
Specializes in root cause analysis. Captures error messages, isolates failures, and implements minimal fixes.
|
||||
|
||||
### Data Scientist
|
||||
Handles SQL queries and data analysis. Writes optimized queries and provides data-driven recommendations.
|
||||
|
||||
## Best Practices
|
||||
|
||||
- Generate initial subagents with Claude, then customize
|
||||
- Design focused subagents with single responsibilities
|
||||
- Write detailed system prompts with specific instructions
|
||||
- Limit tool access to necessary functions only
|
||||
- Version control project-level subagents
|
||||
|
||||
## Advanced Usage
|
||||
|
||||
**Chaining**: Combine multiple subagents for complex workflows
|
||||
|
||||
**Dynamic Selection**: Claude intelligently chooses subagents based on task context and description fields
|
||||
|
||||
**Performance**: Subagents preserve main context but may add latency during initial context gathering
|
||||
|
||||
## CLI Configuration
|
||||
|
||||
Define subagents dynamically with `--agents` flag accepting JSON objects for session-specific or automation-based configurations.
|
||||
Reference in New Issue
Block a user