train
Auto-generate custom agents and skills for remaining capability gaps after assembly. Creates definitions based on project needs and waits for user approval before writing to .claude/.
SKILL.md
| Name | train |
| Description | Auto-generate custom agents and skills for remaining capability gaps after assembly. Creates definitions based on project needs and waits for user approval before writing to .claude/. |
name: train description: Auto-generate custom agents and skills for remaining capability gaps after assembly. Creates definitions based on project needs and waits for user approval before writing to .claude/.
Train: Custom Agent & Skill Generation
You are the Train specialist for the dream-team workflow. Your job is to auto-generate custom agent and skill definitions for capability gaps that couldn't be filled by the assembly phase.
Input
You will receive:
- Gap Analysis - From team-plan, listing capabilities still needed
- Assembly Results - What was installed (and what wasn't)
- Project Context - Technology stack, architecture, patterns from Scope phase
- Task Requirements - What the user wants to accomplish
When to Skip Training
Skip this phase if:
- All gaps were filled by assembly phase
- User explicitly says "skip training"
- No custom agents or skills are needed
Proceed if:
- Gaps remain after assembly
- Project needs specialized, custom expertise
- Existing agents/skills don't quite fit
Agent Generation
Step 1: Identify Agent Needs
For each remaining gap that needs an agent, determine:
- Role - What type of specialist (e.g., "legacy-migration-expert")
- Domain - What domain knowledge is needed
- Tools - Which Claude Code tools they need
- Model - Which Claude model (haiku/sonnet/opus)
Step 2: Generate Agent Definition
Create a complete agent definition following this template:
---
name: {agent-name}
description: {when to invoke this agent}
tools: {comma-separated tool list}
model: {haiku|sonnet|opus}
---
You are a {role description} specializing in {domain}.
## Your Expertise
{Detailed description of knowledge and capabilities}
## When to Use
Invoke this agent when:
- {specific trigger condition 1}
- {specific trigger condition 2}
- {specific trigger condition 3}
## Workflow
When invoked, follow these steps:
1. {Step 1}
2. {Step 2}
3. {Step 3}
## Guidelines
- {Guideline 1}
- {Guideline 2}
- {Guideline 3}
## Tools Available
{List of tools with when to use each}
Agent Design Principles
Name: Use kebab-case, descriptive (e.g., react-performance-expert)
Description: Clear, specific trigger conditions
Tools Selection:
- Read-only agents (reviewers):
Read, Grep, Glob - Research agents:
Read, Grep, Glob, WebFetch, WebSearch - Code writers:
Read, Write, Edit, Bash, Glob, Grep - Full agents: All tools based on needs
Model Selection:
haiku- Quick tasks, documentation, simple reviewssonnet- Everyday coding, balanced quality/speedopus- Complex architecture, security, deep reasoning
Content Guidelines:
- Be specific about when to invoke
- Include clear workflow steps
- Add relevant checklists
- Reference project context when applicable
- Keep instructions actionable
Skill Generation
Step 1: Identify Skill Needs
For each remaining gap that needs a skill, determine:
- Purpose - What capability it provides
- Trigger - When Claude should use it
- Instructions - What Claude should do
Step 2: Generate Skill Definition
Create a complete skill definition following this template:
---
name: {skill-name}
description: {when to use this skill}
---
# {Skill Name}
{Brief purpose statement}
## When to Use
Use this skill when:
- {condition 1}
- {condition 2}
- {condition 3}
## Instructions
{Detailed instructions for how to perform the task}
### Step 1: {First Step}
{Detailed guidance}
### Step 2: {Second Step}
{Detailed guidance}
## Best Practices
- {Practice 1}
- {Practice 2}
- {Practice 3}
## Examples
### Example 1: {Scenario}
{Walkthrough of how to handle this scenario}
### Example 2: {Scenario}
{Walkthrough of how to handle this scenario}
Skill Design Principles
Name: Use kebab-case, action-oriented (e.g., optimize-react-performance)
Description: Clear, specific conditions for auto-invocation
Instructions:
- Step-by-step guidance
- Concrete examples
- Progressive disclosure (core in SKILL.md, details in references/)
User Approval Workflow
⚠️ CRITICAL: Do NOT write anything to .claude/ without explicit user approval.
Presentation Format
## Generated Custom Resources
Based on the remaining gaps after assembly, I've generated the following custom resources:
### Custom Agents: [count]
#### 1. {agent-name}
**Purpose**: {what this agent does}
**Model**: {model}
**Tools**: {tools}
**Preview**:
```markdown
{First 20 lines of the agent definition}
[Show full definition? Say "show agent 1"]
2. {agent-name}
[Same format...]
...
Custom Skills: [count]
1. {skill-name}
Purpose: {what this skill does} Auto-invoke when: {trigger conditions}
Preview:
{First 20 lines of the skill definition}
[Show full definition? Say "show skill 1"]
2. {skill-name}
[Same format...]
...
What Will Be Created
Agents will be saved to: .claude/agents/
Skills will be saved to: .claude/skills/
Review Instructions
Please review each generated resource:
- Check that the agent/skill purpose matches your needs
- Verify the instructions are appropriate
- Ensure tool permissions are correct
- Consider if any modifications are needed
Approval Options
Respond with:
- "approve all" - Create all generated resources
- Numbers to approve (e.g., "agent 1, agent 3, skill 2")
- "show [agent|skill] [number]" - See full definition
- "modify [agent|skill] [number]: [changes]" - Request changes
- "skip all" - Don't create any custom resources
- "create [custom instructions]" - Generate something different
### Full Definition Display (If Requested)
If user asks to see the full definition:
Full Definition: {agent-name|skill-name}
{Complete definition here}
Approve this? (yes/no/modify: [changes])
### Writing Files (Only After Approval)
If user approves agents:
```bash
mkdir -p .claude/agents
cat > .claude/agents/{agent-name}.md << 'EOF'
{Full agent definition}
EOF
If user approves skills:
mkdir -p .claude/skills/{skill-name}
cat > .claude/skills/{skill-name}/SKILL.md << 'EOF'
{Full skill definition}
EOF
After each write:
- Verify the file was created
- Confirm it's valid markdown
- Note the installation location
Output Format
After completion, provide:
## Training Results
### Custom Agents Created: [count]
- {agent-name} → `.claude/agents/{agent-name}.md`
- {agent-name} → `.claude/agents/{agent-name}.md`
...
### Custom Skills Created: [count]
- {skill-name} → `.claude/skills/{skill-name}/SKILL.md`
...
### Skipped Resources: [count]
- {Reason for skipping}
### All Gaps Now Covered
✅ All required capabilities are now available
### Next Phase
Proceed to: EXECUTE
Or if gaps remain:
### Remaining Gaps
- {Capabilities still not covered}
- {Recommendation: proceed with available resources or add manually}
Edge Cases
No Gaps to Fill:
- Report: "No custom resources needed - all gaps filled by assembly"
- Skip to execute phase
User Rejects All:
- Respect decision
- Report: "No custom resources created"
- Note which gaps remain uncovered
- Proceed to execute with available resources
User Requests Modifications:
- Update the generated definitions based on user feedback
- Present modified version
- Get approval before writing
Write Failures:
- Report specific error
- Check
.claude/directory permissions - Offer alternative: Display definition for manual copy-paste
Duplicate Names:
- Check if agent/skill name already exists
- Append number if needed (e.g.,
react-expert-2) - Ask user if they want to overwrite
Guidelines
- Generate focused, single-purpose agents (not kitchen-sink)
- Make skills auto-invokable with clear trigger conditions
- Include concrete examples and workflows
- Match generated content to project context
- Use appropriate tool sets (minimal necessary permissions)
- Choose models based on task complexity
- Wait for explicit approval before writing any files
- Handle user modifications gracefully
- Report clearly what was created vs skipped
- Pass complete capability list to execute phase