From superpowers
Use when you have a spec or requirements for a multi-step task, before touching code
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers:writing-plansThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Frequent commits.
Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
Announce at start: "I'm using the writing-plans skill to create the implementation plan."
Context: This should be run in a dedicated worktree (created by brainstorming skill).
Save plans to: docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md
If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during brainstorming. If it wasn't, suggest breaking this into separate plans — one per subsystem. Each plan should produce working, testable software on its own.
If you arrived here from an existing spec or requirements document rather than a freshly approved brainstorming session, do a lightweight behavior boundary check before planning:
If the spec already answers these questions, carry those answers into Behavior Coverage. If it does not, add the missing behavior questions to the plan notes or return to the spec before writing implementation tasks. Do not invent a Behavior Coverage section for purely technical work.
Before defining tasks, map out which files will be created or modified and what each one is responsible for. This is where decomposition decisions get locked in.
This structure informs the task decomposition. Each task should produce self-contained changes that make sense independently.
Each step is one action (2-5 minutes):
Every plan MUST start with this header:
# [Feature Name] Implementation Plan
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
---
If the spec includes Behavior Evaluation, add this section after the header and before the task list. Behavior Coverage turns behavior scenarios from the spec into reviewable checks for the plan. It helps catch cases where local implementation is correct but the overall behavior or flow drifts.
## Behavior Coverage
### Scenarios
| Scenario | Example | Observable evidence | Expected result | Failure signal | If it fails |
| --- | --- | --- | --- | --- | --- |
| Scenario 1 | Concrete example from the spec | What a test or human can observe | How to judge alignment | What proves drift | Return to spec, plan, implementation, or human decision |
### Automation / Observation / Correction
| Scenario | Automated check | Human observation | Failure response |
| --- | --- | --- | --- |
| Scenario 1 | Test, command, integration check, or none | What the human reviews if not fully automated | What to revisit if this fails |
### Cross-Task Invariants
- Invariant 1: Invariant from the spec that must remain true across tasks.
A behavior scenario is a concrete example or user-observable flow turned into a reviewable control point. It is not a task, module boundary, milestone, approval gate, or replacement for TDD.
When a behavior scenario has an automated check, make it concrete: one behavior, clear expected result, real code or real artifact where possible, exact command, and expected output. If the check would pass immediately without proving the scenario's failure signal, choose a better check.
Do not require every task to have a behavior scenario. A task only gets a behavior coverage line if it connects to a scenario or invariant:
**Behavior coverage:** implements Scenario 1 | observes Scenario 1 | corrects Scenario 1 | preserves Invariant 1 | technical-only
Use technical-only when the task has no direct connection to a behavior scenario or invariant. Technical-only tasks still follow TDD, regression testing, or static verification as appropriate.
### Task N: [Component Name]
**Files:**
- Create: `exact/path/to/file.py`
- Modify: `exact/path/to/existing.py:123-145`
- Test: `tests/exact/path/to/test.py`
**Behavior coverage:** implements Scenario 1 | observes Scenario 1 | corrects Scenario 1 | preserves Invariant 1 | technical-only
(Only include this line when the plan has Behavior Coverage.)
- [ ] **Step 1: Write the failing test**
```python
def test_specific_behavior():
result = function(input)
assert result == expected
```
- [ ] **Step 2: Run test to verify it fails**
Run: `pytest tests/path/test.py::test_name -v`
Expected: FAIL with "function not defined"
- [ ] **Step 3: Write minimal implementation**
```python
def function(input):
return expected
```
- [ ] **Step 4: Run test to verify it passes**
Run: `pytest tests/path/test.py::test_name -v`
Expected: PASS
- [ ] **Step 5: Commit**
```bash
git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"
```
Every step must contain the actual content an engineer needs. These are plan failures — never write them:
After writing the complete plan, look at the spec with fresh eyes and check the plan against it. This is a checklist you run yourself — not a subagent dispatch.
1. Spec coverage: Skim each section/requirement in the spec. Can you point to a task that implements it? List any gaps.
2. Behavior coverage: If the spec includes Behavior Evaluation, does the plan turn those behavior scenarios into observable evidence/oracles, failure signals, correction paths, and any cross-task invariants? Do tasks only reference behavior coverage when they connect to a scenario or invariant?
3. Placeholder scan: Search your plan for red flags — any of the patterns from the "No Placeholders" section above. Fix them.
4. Type consistency: Do the types, method signatures, and property names you used in later tasks match what you defined in earlier tasks? A function called clearLayers() in Task 3 but clearFullLayers() in Task 7 is a bug.
5. Architecture ownership: Do plan tasks preserve the spec's intended owners instead of turning adapters, caches, fallback paths, eval artifacts, debug scaffolding, fixed file names, or exact choreography into product contract? If a task introduces support machinery, verify it remains an internal implementation aid and does not become a product contract, authority surface, or owner of user-visible behavior.
If you find issues, fix them inline. If you find a spec requirement with no task, add the task.
Then run the plan document reviewer using skills/writing-plans/plan-document-reviewer-prompt.md. If your platform supports subagents or reviewer dispatch, dispatch it as a separate reviewer. Otherwise, run the same reviewer prompt inline and state that no separate reviewer was available.
Treat the reviewer as initial filtering only. If the reviewer finds issues, fix them and run the reviewer again. Repeat until the reviewer approves or a human decision is needed. Fix real issues before offering execution options.
After saving the plan, offer execution choice:
"Plan complete and saved to docs/superpowers/plans/<filename>.md. Two execution options:
1. Subagent-Driven (recommended) - I dispatch a fresh subagent per task, review between tasks, fast iteration
2. Inline Execution - Execute tasks in this session using executing-plans, batch execution with checkpoints
Which approach?"
If Subagent-Driven chosen:
If Inline Execution chosen:
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub zhexulong/bdd-superpowers --plugin superpowers