# 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/. Use when this capability is needed.

- Skill: `tomevault-io/train-2` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/train-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/train-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector CAUTION)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/train-2

---


# 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:

```markdown
---
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 reviews
- `sonnet` - Everyday coding, balanced quality/speed
- `opus` - 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:

```markdown
---
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**:
```markdown
{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}

```markdown
{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:

```bash
mkdir -p .claude/skills/{skill-name}
cat > .claude/skills/{skill-name}/SKILL.md << 'EOF'
{Full skill definition}
EOF
```

After each write:
1. Verify the file was created
2. Confirm it's valid markdown
3. 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

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/drbscl) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

