Add agent definitions, slash commands, hooks, and settings for Claude Code project tooling.
8.2 KiB
description, category, allowed-tools
| description | category | allowed-tools |
|---|---|---|
| Create a specialized AI subagent following domain expert principles | claude-setup | Write, Bash(mkdir:*), Read |
Create Domain Expert Subagent
Create a specialized AI subagent following the domain expert principles. This command helps you build concentrated domain expertise rather than single-task agents.
Setup
First, specify the subagent location:
- project - Add to
.claude/agents/(shared with team, higher priority) - user - Add to
~/.claude/agents/(personal use across projects)
If not specified, ask which type to create.
Required Information
Gather the following from the user:
1. Domain Identification
- Domain name: The expertise area (e.g., typescript, testing, database)
- Sub-domain (optional): Specific area within domain (e.g., typescript-type, test-jest)
- Hierarchical placement: Is this a broad expert or sub-domain specialist?
2. Domain Coverage Assessment
Ask the user to identify 5-15 related problems this expert will handle. Examples:
- TypeScript type expert: generics, conditionals, mapped types, declarations, performance
- Database performance expert: query optimization, indexing, execution plans, partitioning
- Testing expert: structure, patterns, fixtures, debugging, coverage
If they list fewer than 5 problems, suggest expanding scope or reconsidering as a slash command instead.
3. Tool Requirements
- Leave blank to inherit all tools (recommended for broad experts)
- Specify specific tools for focused permissions (e.g., Read, Grep, Glob for analysis-only)
- Common patterns:
- Analysis experts:
Read, Grep, Glob, Bash - Fix experts:
Read, Edit, MultiEdit, Bash, Grep - Architecture experts:
Read, Write, Edit, Bash, Grep
- Analysis experts:
Tip: Use /agents to adjust tool permissions interactively later.
4. Environmental Adaptation
Help define how the agent detects and adapts to project context:
- Framework/library detection (prefer config reads over heavy commands)
- Configuration file checks using internal tools first
- Project structure analysis
- Available tool discovery
Note: Prefer internal tools (Read, Grep, Glob) over shell commands for better performance.
Subagent Template Structure
YAML Frontmatter
---
# REQUIRED FIELDS
name: domain-expert # Unique identifier (lowercase, hyphens only)
description: Expert in {domain} handling {problem-list}. Use PROACTIVELY for {trigger-conditions}.
# OPTIONAL FIELDS
tools: Read, Grep, Bash # If omitted, inherits ALL tools
model: opus # opus, sonnet, or haiku
category: general # For UI grouping
color: indigo # Visual color in UI
displayName: Domain Expert # Human-readable name
bundle: ["related-expert"] # Related agents to install together
---
Important: Omitting the tools field grants ALL tools. An empty tools: field grants NO tools.
Content Template
# {Domain} Expert
You are a {domain} expert with deep knowledge of {specific-areas}.
## Delegation First
0. **If ultra-specific expertise needed, delegate immediately**:
- {Area 1} → {specialist-1}
- {Area 2} → {specialist-2}
Output: "This requires {specialty}. Use {expert-name}. Stopping here."
## Core Process
1. **Environment Detection** (Use Read/Grep before shell):
- Check configuration files
- Detect framework/tools
- Analyze project structure
2. **Problem Analysis** (4-6 categories):
- {Category 1}: {Description}
- {Category 2}: {Description}
- {Category 3-6}: {Description}
3. **Solution Implementation**:
- Apply domain best practices
- Use progressive solutions (quick/proper/best)
- Validate with established workflows
Delegation Patterns
Broad Domain Experts
- Include step 0 delegation to specialists
- Reference related domain experts
- Clear "stopping here" language
- Example:
typescript-expertdelegates totypescript-type-expert
Sub-Domain Experts
- Reference parent domain expert
- Define specialization boundaries
- Provide escalation paths
- Example:
typescript-type-expertreferencestypescript-expert
Quality Checks
Before creating, verify:
Domain Expert Criteria
- Covers 5-15 related problems (not just 1-2)
- Has concentrated, non-obvious knowledge
- Detects and adapts to environment
- Integrates with specific tools
- Would pass the "Would I pay $5/month for this?" test
Boundary Check
Ask: "Would someone put '{{Domain}} Expert' on their resume?"
- Yes → Good domain boundary
- No → Too narrow, consider broader scope
Naming Check
- ✅ Good:
typescript-expert,database-performance-expert - ❌ Avoid:
fix-circular-deps,enhanced-typescript-helper
Proactive Triggers
For agents that should be used automatically, include trigger phrases:
- "Use PROACTIVELY when {{condition}}"
- "MUST BE USED for {{scenario}}"
- "Automatically handles {{problem-type}}"
Implementation Steps
-
Create Directory Structure
# For project subagent mkdir -p .claude/agents # For user subagent mkdir -p ~/.claude/agents -
Generate Agent File First, convert agent name to kebab-case filename:
- "TypeScript Expert" →
typescript-expert.md - "Database Performance" →
database-performance.md
Check if file exists before writing:
# Check for existing file if [[ -f "{{path}}/{{kebab-name}}.md" ]]; then # Ask user: overwrite or create {{kebab-name}}-new.md? fiCreate
{{kebab-name}}.mdwith the populated template - "TypeScript Expert" →
-
Validate Structure
- Ensure YAML frontmatter is valid
- Check name follows kebab-case convention
- Verify description is clear and actionable
-
Show Usage Examples
# Automatic invocation based on description > Fix the TypeScript type errors in my code # Explicit invocation > Use the {{agent-name}} to analyze this issue
Common Domain Expert Examples
Complete Example: TypeScript Type Expert
---
name: typescript-type-expert
description: Advanced TypeScript type system specialist for complex generics, conditional types, and type-level programming. Use PROACTIVELY for type errors, generics issues, or declaration problems.
tools: Read, Edit, MultiEdit, Grep, Glob
category: general
---
# TypeScript Type System Expert
You are a TypeScript type system specialist with deep knowledge of advanced type features.
## Delegation First
0. **If different expertise needed, delegate immediately**:
- General TypeScript issues → typescript-expert
- Build/compilation → typescript-build-expert
- Testing → testing-expert
Output: "This requires {specialty}. Use {expert-name}. Stopping here."
## Core Process
1. **Environment Detection**:
- Check tsconfig.json for strict mode settings
- Detect TypeScript version
- Analyze type complexity in codebase
2. **Problem Analysis**:
- Generic constraints and inference
- Conditional types and mapped types
- Template literal types
- Type-level programming
3. **Solution Implementation**:
- Apply progressive fixes (quick/proper/best)
- Ensure type safety without runtime overhead
- Validate with tsc --noEmit
Other Language Experts
typescript-type-expert: Type system, generics, conditionals, declarationspython-async-expert: asyncio, concurrency, event loopsrust-ownership-expert: Lifetimes, borrowing, memory safety
Infrastructure Experts
database-performance-expert: Query optimization, indexing, execution planscontainer-optimization-expert: Docker, image size, securitykubernetes-expert: Deployments, networking, scaling
Quality Experts
test-architecture-expert: Test structure, fixtures, patternswebapp-security-expert: XSS, CSRF, authenticationfrontend-performance-expert: Bundle size, lazy loading, caching
Notes
- Start with Claude-generated agents, then customize to your needs
- Design focused agents with single, clear responsibilities
- Check project agents into version control for team sharing
- Limit tool access to what's necessary for the agent's purpose
Remember: The goal is concentrated domain expertise that handles multiple related problems, not single-task agents. When in doubt, expand the scope to cover more related problems within the domain.