Use when you have a spec or research and need to create an implementation plan. Creates detailed, bite-sized tasks that enable autonomous execution.
This skill inherits all available tools. When active, it can use any tool Claude has access to.
Create comprehensive plans assuming the implementer has zero project context. This enables long autonomous coding sessions.
Announce at start: "I'm creating an implementation plan for [feature]."
"A bad line of code is a bad line. But a bad line of a plan could lead to hundreds of bad lines."
Human effort concentrates on plan review, not code review. Reading a 200-line plan beats reviewing 2,000 lines of code.
Save plans to: docs/plans/YYYY-MM-DD-<feature-name>.md
Every plan MUST start with:
# [Feature Name] Implementation Plan
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
---
Each task is one focused unit of work (15-30 minutes):
Tasks should be small enough that:
### Task N: [Component Name]
**Files:**
- Create: `exact/path/to/file.ts`
- Modify: `exact/path/to/existing.ts:123-145`
- Test: `tests/exact/path/to/test.ts`
**What to Build:**
[Clear description of what this task produces]
**Implementation:**
[Specific code or pseudocode - be precise]
**Tests:**
[What tests to write, what they verify]
**Verification:**
Run: `[test command]`
Expected: [what success looks like]
Offer execution options:
Plan saved to docs/plans/YYYY-MM-DD-feature.md
Two execution options:
1. **Subagent-Driven (this session)** - I dispatch fresh subagent per task,
review between tasks, fast iteration
2. **New Session** - Open fresh session, work through plan with checkpoints
Which approach?
If Subagent-Driven: Use subagent-driven-development skill
### Task 3: Add User Validation
**Files:**
- Create: `src/validation/user.ts`
- Test: `tests/validation/user.test.ts`
**What to Build:**
Validation function for user input with email format and password strength checks.
**Implementation:**
```typescript
export function validateUser(input: UserInput): ValidationResult {
const errors: string[] = [];
if (!EMAIL_REGEX.test(input.email)) {
errors.push('Invalid email format');
}
if (input.password.length < 8) {
errors.push('Password must be at least 8 characters');
}
return { valid: errors.length === 0, errors };
}
Tests:
Verification:
Run: npm test -- --grep "user validation"
Expected: All 4 tests pass
## Plan Review
Before finalizing, verify:
- [ ] Every task has exact file paths
- [ ] Implementation is specific, not vague
- [ ] Tests are defined for each task
- [ ] Tasks are ordered by dependency
- [ ] No YAGNI violations (unnecessary features)