Generate comprehensive execution plans for features, epics, or large tasks. Use when asked to plan a feature, create a roadmap, break down work into tracks/beads, or design implementation strategy.
A specialized planning skill for breaking down complex features into executable tracks and beads with clear dependencies, file scopes, and verification criteria.
┌─────────────────────────────────────────────────────────────────┐
│ PLANNING PIPELINE │
├─────────────────────────────────────────────────────────────────┤
│ Discovery → Approach → Spike (optional) → Execution Plan │
│ ↓ ↓ ↓ ↓ │
│ [CHECKPOINT] [CHECKPOINT] [CHECKPOINT] [HANDOFF] │
└─────────────────────────────────────────────────────────────────┘
Goal: Understand the feature scope and codebase context.
| Input | Output |
|---|---|
| Feature request | history/<feature>/discovery.md |
Steps:
Discovery Template:
# Discovery: <Feature Name>
## Feature Summary
<Brief description of what we're building>
## Codebase Context
- **Affected Areas**: <list of files/directories>
- **Existing Patterns**: <relevant patterns found>
- **Dependencies**: <external/internal dependencies>
## Technical Constraints
- <constraint 1>
- <constraint 2>
## Open Questions
- [ ] <question needing clarification>
## Risk Assessment
| Risk | Impact | Likelihood | Mitigation |
|------|--------|------------|------------|
| <risk> | High/Med/Low | High/Med/Low | <strategy> |
## Research Notes
<findings from codebase exploration>
Checkpoint Output:
═══════════════════════════════════════════════════════════
[CHECKPOINT: DISCOVERY_COMPLETE]
═══════════════════════════════════════════════════════════
📋 Feature: <name>
📁 Affected Areas: <count> files across <count> directories
⚠️ Open Questions: <count>
🔴 Risks Identified: <count>
Key Findings:
• <finding 1>
• <finding 2>
❓ Questions for You:
1. <question>
2. <question>
👉 Ready to proceed to Approach phase? (yes/no/clarify)
═══════════════════════════════════════════════════════════
Goal: Define high-level implementation strategy.
| Input | Output |
|---|---|
| discovery.md | history/<feature>/approach.md |
Steps:
Approach Template:
# Approach: <Feature Name>
## Options Considered
### Option A: <Name>
- **Description**: <how it works>
- **Pros**: <advantages>
- **Cons**: <disadvantages>
- **Risk Level**: Low/Medium/High
- **Effort**: S/M/L/XL
### Option B: <Name>
...
## Comparison Matrix
| Criteria | Option A | Option B | Option C |
|----------|----------|----------|----------|
| Complexity | ⭐⭐ | ⭐⭐⭐ | ⭐ |
| Performance | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| Maintainability | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
| Time to implement | ⭐⭐ | ⭐ | ⭐⭐⭐ |
## Recommended Approach
**Selected**: Option <X>
**Justification**:
<Detailed reasoning>
## Success Criteria
- [ ] <measurable criterion 1>
- [ ] <measurable criterion 2>
## Verification Strategy
- **Unit Tests**: <what to test>
- **Integration Tests**: <what to test>
- **Manual Verification**: <steps>
Checkpoint Output:
═══════════════════════════════════════════════════════════
[CHECKPOINT: APPROACH_SELECTED]
═══════════════════════════════════════════════════════════
🎯 Recommended: <Option Name>
| Option | Effort | Risk | Score |
|--------|--------|------|-------|
| A: <name> | M | Low | ⭐⭐⭐ ← Recommended |
| B: <name> | L | Med | ⭐⭐ |
Why this approach:
• <reason 1>
• <reason 2>
⚠️ Trade-offs to accept:
• <trade-off>
👉 Approve this approach? (yes/no/option-b/discuss)
═══════════════════════════════════════════════════════════
Goal: Validate risky assumptions through time-boxed experiments.
| Input | Output |
|---|---|
| approach.md, risk items | .spikes/<feature>/<spike-id>/, history/<feature>/spike-learnings.md |
When to Spike (AI should suggest spike if):
Spike Rules:
| Rule | Description |
|---|---|
| Time-boxed | Max 2-4 hours, set timer |
| Throwaway code | Code in .spikes/ is disposable |
| Document learnings | Focus on what we learned, not just results |
| Update approach | Revise approach.md based on findings |
| Go/No-Go decision | Spike must end with clear recommendation |
Spike Template:
# Spike: <Spike Name>
## Hypothesis
<What we're trying to validate>
## Time Box
- **Allocated**: <X> hours
- **Started**: <timestamp>
- **Ended**: <timestamp>
## Experiment
<What we tried>
## Results
- ✅ <what worked>
- ❌ <what didn't work>
## Learnings
1. <learning>
2. <learning>
## Recommendation
- [ ] Proceed with original approach
- [ ] Modify approach: <how>
- [ ] Abandon approach, use alternative
Checkpoint Output:
═══════════════════════════════════════════════════════════
[CHECKPOINT: SPIKE_COMPLETE]
═══════════════════════════════════════════════════════════
🧪 Spike: <name>
⏱️ Time spent: <X>h / <Y>h allocated
Results:
✅ <validated assumption>
❌ <invalidated assumption>
📝 Key Learning: <most important insight>
Recommendation: <proceed/modify/abandon>
👉 Accept spike findings? (yes/rerun/discuss)
═══════════════════════════════════════════════════════════
Goal: Create detailed, executable work breakdown.
| Input | Output |
|---|---|
| approach.md, spike-learnings.md | history/<feature>/execution-plan.md |
Core Concepts:
| Concept | Definition | Constraint |
|---|---|---|
| Track | Parallel work stream | Non-overlapping file scopes |
| Bead | Atomic work unit | 15-60 min, max 3 dependencies |
| File Scope | Glob patterns per track | Must not overlap between tracks |
Bead Sizing Guide:
| Size | Time | Files | Complexity | Example |
|---|---|---|---|---|
| S | 15-30 min | 1 file | Simple logic | Add prop, fix typo |
| M | 30-60 min | 2-3 files | Moderate logic | New component with hook |
| L | 60-90 min | 3-5 files | Complex logic | Feature with API call |
| XL | >90 min | >5 files | Very complex | ⚠️ Must split! |
Execution Plan Template:
# Execution Plan: <Feature Name>
## Overview
- **Epic ID**: <unique-id>
- **Total Estimated Effort**: <X>h
- **Parallel Tracks**: <count>
- **Critical Path**: <bead-ids>
## Tracks
### Track 1: <Track Name>
**Scope**: `src/components/**/*.tsx`, `src/hooks/use<Feature>*.ts`
**Dependencies**: None
**Estimated**: <X>h
#### Bead 1.1: <Bead Title>
- **Size**: S/M/L
- **Description**: <what to do>
- **Files**:
- `src/components/Feature.tsx` (create)
- `src/hooks/useFeature.ts` (modify)
- **Acceptance**: <how to verify completion>
- **Dependencies**: None
#### Bead 1.2: <Bead Title>
- **Size**: M
- **Dependencies**: Bead 1.1
...
### Track 2: <Track Name>
**Scope**: `src/api/**/*.ts`, `src/services/<feature>*.ts`
**Dependencies**: None
...
## Dependency Graph
\`\`\`
Track 1: [1.1] ──▶ [1.2] ──▶ [1.3]
│
Track 2: [2.1] ──▶ [2.2] ──┴──▶ [Integration]
│
Track 3: [3.1] ──▶ [3.2] ──────┘
\`\`\`
## Critical Path
1. Bead 1.1 (blocker for all)
2. Bead 2.2 (API layer)
3. Integration bead
## Verification Checklist
- [ ] All beads completed
- [ ] Tests passing: `yarn test`
- [ ] No type errors: `yarn build`
- [ ] Lint clean: `yarn lint`
- [ ] Manual verification done
IMPORTANT: Every execution plan MUST include this YAML block for machine parsing by the orchestrator skill:
# execution-plan.yaml