From beads-superpowers
Creates detailed implementation plans for multi-step tasks, breaking specs into bite-sized steps with file structure, test cycles, and independent deliverables.
How this skill is triggered — by the user, by Claude, or both
Slash command
/beads-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: .internal/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.
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.
A task is the smallest unit that carries its own test cycle and is worth a fresh reviewer's gate. When drawing task boundaries: fold setup, configuration, scaffolding, and documentation steps into the task whose deliverable needs them; split only where a reviewer could meaningfully reject one task while approving its neighbor. Each task ends with an independently testable deliverable.
In beads terms, a right-sized task is one bead (bd create -t task --parent <epic-id>): claimable, verifiable, and closeable on its own.
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. Each Task becomes a bead (`bd create -t task --parent <epic-id>`). Steps within tasks use checkbox (`- [ ]`) syntax for human readability.
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
## Global Constraints
[The spec's project-wide requirements — version floors, dependency limits,
naming and copy rules, platform requirements — one line each, with exact
values copied verbatim from the spec. Every task's requirements implicitly
include this section.]
---
### 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`
**Interfaces:**
- Consumes: [what this task uses from earlier tasks — exact signatures]
- Produces: [what later tasks rely on — exact function names, parameter
and return types. A task's implementer sees only their own task; this
block is how they learn the names and types neighboring tasks use.]
- [ ] **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"
```
Beads integration: When executing this plan, the executing skill creates an epic bead for the plan and a child task bead for each Task N. The - [ ] checkboxes remain in the markdown for human readability, but task-level tracking uses beads (bd create, bd update --claim, bd close --reason). Dependencies between tasks should be declared with bd dep add.
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.
0. Deterministic checks: Run these commands and fix anything they flag before proceeding to the judgment checks below:
bd lint <epic-id> # required-section check on the epic
bd list --parent <epic-id> --json | jq -r '.[].id' | xargs -n1 bd lint # same check on each child task
bd ready --parent <epic-id> --explain # confirm dependency ordering
1. Spec coverage: Skim each section/requirement in the spec. Can you point to a task that implements it? List any gaps.
2. Placeholder scan: Search your plan for red flags — any of the patterns from the "No Placeholders" section above. Fix them.
3. 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.
If you find issues, fix them inline. No need to re-review — just fix and move on. If you find a spec requirement with no task, add the task.
After self-review passes, open the plan file in the user's editor so they can review it, then gate progression with AskUserQuestion:
User's preferred editor: !echo ${VISUAL:-${EDITOR:-not-configured}}
⚠️ Run the open command as a standalone Bash call — never chain it after bd commands in the same invocation (e.g., bd close <id> && open file.md). The combination hangs.
# Open in user's preferred editor, with platform fallbacks
if [ -n "$VISUAL" ]; then
"$VISUAL" "<plan-file-path>"
elif [ -n "$EDITOR" ]; then
"$EDITOR" "<plan-file-path>"
elif command -v open >/dev/null 2>&1; then
open "<plan-file-path>"
else
xdg-open "<plan-file-path>" 2>/dev/null
fi
# If none available: just report the path
Then immediately use the AskUserQuestion tool:
{
"questions": [{
"question": "Plan opened in your editor at `<path>`. Review it and let me know when ready.",
"header": "Plan review",
"options": [
{"label": "Approved", "description": "Plan looks good — proceed to choose execution method"},
{"label": "Needs changes", "description": "I want to revise the plan before proceeding"}
],
"multiSelect": false
}]
}
If the user selects "Needs changes", make the requested changes and re-run the self-review. Only proceed to execution handoff once approved.
If you discovered something reusable, capture it before closing:
# Only if worth preserving for future sessions:
bd remember "pattern: <planning insight for future tasks>"
After the plan is approved, use the AskUserQuestion tool to offer the execution choice:
{
"questions": [{
"question": "Plan complete and saved. How would you like to execute it?",
"header": "Execution",
"options": [
{
"label": "Subagent-Driven (Recommended)",
"description": "Fresh subagent per task with a single task review between tasks — fast iteration, high quality"
},
{
"label": "Inline Execution",
"description": "Execute tasks in this session using executing-plans — batch execution with checkpoints"
}
],
"multiSelect": false
}]
}
If Subagent-Driven chosen:
If Inline Execution chosen:
Called by: brainstorming — this is brainstorming's terminal state. After design approval, brainstorming invokes writing-plans.
Invokes:
Pairs with: stress-test — optional adversarial review of the plan before execution.
npx claudepluginhub dollardill/beads-superpowers --plugin beads-superpowersCreates bite-sized, testable implementation plans from specs or requirements, with file structure and task decomposition. Activates before coding multi-step tasks.
Creates step-by-step implementation plans from specs or requirements, decomposing work into small tasks with file structure and test-first guidance.
Creates structured implementation plans from specs, breaking work into bite-sized tasks with file maps and architecture notes. Run before coding on multi-step features.