Use when you have a design doc or requirements for a multi-step task, before touching code — decomposes work into vertical slices with TDD baked in
Decompose a design into a numbered, dependency-annotated task list using vertical slices. Assume the implementing agent has zero context and questionable taste. Every task includes exact file paths, complete code, TDD steps, and commands with expected output.
Announce at start: "I'm using the plan skill to create the implementation plan."
Read the design doc from docs/plans/. All questions should already be resolved by design + grill. If anything is ambiguous, resolve it now — do not leave gaps for the implementer to figure out.
Break the work into tracer bullet slices — each cuts end-to-end through ALL layers, not horizontal slabs.
Each slice:
Convert slices into numbered tasks with dependency annotations (for parallel subagent execution). Independent tasks can run in parallel; dependent tasks must wait.
Each task includes:
docs/spec.md — new features get e2e coverageSave to docs/plans/YYYY-MM-DD-<topic>-plan.md using the format below.
"Plan complete and saved. Two execution options:
1. Subagent-Driven (this session) — I dispatch fresh subagent per task, review between tasks, fast iteration
2. New session — Open new session, load the plan, execute with checkpoints
Which approach?"
docs/plans/YYYY-MM-DD-<topic>-plan.md)# [Feature Name] Implementation Plan
> **For Claude:** REQUIRED SUB-SKILL: Use tomek-superpowers:build to implement this plan task-by-task.
**Goal:** [One sentence]
**Architecture:** [2-3 sentences]
**Tech Stack:** [Key technologies]
**Design:** `docs/plans/YYYY-MM-DD-<topic>-design.md`
---
### Task 1: [Name]
**Depends on:** none
**Files:**
- Create: `exact/path/to/file.ts`
- Test: `tests/exact/path/to/test.ts`
**Step 1: Write the failing test**
```typescript
test("user can create account", async () => {
const result = await createUser({ name: "Alice" });
expect(result.id).toBeDefined();
});
```
**Step 2: Run test to verify it fails**
Run: `npm test -- tests/path/test.ts`
Expected: FAIL
**Step 3: Write minimal implementation**
```typescript
export async function createUser(data: { name: string }) {
// ...complete code...
}
```
**Step 4: Run test to verify it passes**
Run: `npm test -- tests/path/test.ts`
Expected: PASS
**Step 5: Commit**
```bash
git add tests/path/test.ts src/path/file.ts
git commit -m "feat: add user creation"
```
### Task 2: [Name]
**Depends on:** Task 1
...
### Task 3: [Name]
**Depends on:** none (can run parallel with Task 2)
...
## Review
- [ ] Code review requested
- [ ] All feedback addressed
- [ ] Final verification passed
When feedback requires reworking a plan:
Invoke the build skill to execute the plan.