plan+ — Disciplined Planning
Wraps superpowers:writing-plans. Requires superpowers to be installed.
Before You Begin
This skill runs after brain+ has produced a validated design. It creates the implementation plan with testing discipline baked into every task.
Procedure
Phase A: Load Context
Read the design output from brain+ (from the current session or saved spec).
When you need to explore the codebase (verify file paths, check dependencies, find related modules), use the scout agent:
Agent(subagent_type="scout", prompt="Map the codebase structure for [area]. Focus on: dependencies, test files, and related modules.")
Load active enforcement rules from session context (see session-start output). If active enforcement rules are configured, add a Constitutional Compliance section to the plan:
## Constitutional Rules for This Plan
[List active enforcement rules from session-start output — these are configurable via .harness.yaml]
- Use real [database/payment/logger] connections in stack/E2E tests — mocks are appropriate in unit tests
- Show command output before claiming done
- Every source file change requires corresponding test changes
- Full-loop assertions: verify primary + second-order + third-order effects
Identify the mock policy for this plan based on active enforcement rules:
## Mock Policy
Stack/E2E (real deps): [list from active enforcement rules]
Unit tests (mocks ok): [all components] / External without sandbox: [third-party services]
Phase B: Create Plan (delegate to superpowers:writing-plans)
Invoke superpowers:writing-plans with the enriched context.
For each task in the plan, ensure it includes:
- Test strategy: which tests cover this task's requirements
- Mock check: does this task need to interact with protected components (per active enforcement rules)?
- Evidence criteria: what output proves this task is done
Every task must follow the pattern:
### Task N: [Name]
**Files:** [exact paths]
**Test strategy:** [which tests, scoped to this task]
**Mock check:** [are protected components involved?]
- [ ] Step 1: Write failing test
- [ ] Step 2: Verify it fails
- [ ] Step 3: Write minimal implementation
- [ ] Step 4: Verify it passes
- [ ] Step 5: Commit
Spec: pointer. The plan's header carries a Spec: line naming the
design brain+ produced — the document path plus a one-line scope summary:
**Spec:** docs/designs/<slug>.md — <one line: what was approved and when>
superpowers 6.3.0's subagent-driven-development reads this pointer at setup
to resolve plan conflicts and ambiguities against the approved design
instead of guessing (#2086),
and sdd+ hands it to the spec-reviewer as the compliance reference. If
there is no design document (a spike, or plan+ invoked directly on a small
change), write **Spec:** none — no design document; ask on conflict rather
than omitting the line, so the controller stops to ask instead of inferring.
If the design includes a loop/signal-stack section (see
references/agent-loops.md): order the plan signal-stack-first — harness
tasks (golden tests, contract probes, calibration harness, dry-run rig,
telemetry store) come before or alongside the features they gate, because
the assembly process uses the stack to verify itself as it builds. Then:
- Each task names its gating signal (which layer's signal proves it done)
- The maintainer deployment is a late task, after the primary system's
acceptance criteria pass
- Rollout gates (credentials, schedule enablement, live writes) are
explicitly reserved to the user — never automated in any task
Independence contract (consumed by sdd+ team mode): every task's
**Files:** list must be exhaustive — include shared test files a task
extends (a tests file touched by several tasks makes them dependent).
Where ordering matters even without file overlap, add an explicit
Depends on: Task N line under the task header. A pair of tasks is
parallelizable only when their Files lists are disjoint AND neither
depends on the other.
Phase C: Validate Plan
- Confirm the plan:
Output
Save the plan to docs/plans/ and feed into tdd+ for implementation.
Skill Chain
After completing plan+, the next step is:
- Invoke
/tdd+ to implement the plan task-by-task with RED-GREEN-REFACTOR
- Or invoke
/sdd+ to execute the plan via typed subagents (implementer → spec-reviewer → code-reviewer) — best for plans with independent tasks
Completion
Report one of these states when the skill finishes:
- DONE — Plan saved to
docs/plans/, all validation checklist items in Phase C confirmed.
- DONE_WITH_CONCERNS — Plan complete but has open questions or tasks needing refinement.
- BLOCKED — Cannot proceed (missing design from brain+, unclear requirements).
- NEEDS_CONTEXT — Need user input to resolve a task scope or dependency question.
1---2name: plan3description: Invoke AFTER brain+ design is approved. Wraps superpowers:writing-plans with constitutional rules, testing strategy per task, and mock policy. Creates bite-sized implementation plans.4---56<!-- rig-generated -->78# plan+ — Disciplined Planning910Wraps `superpowers:writing-plans`. Requires superpowers to be installed.1112## Before You Begin1314This skill runs after `brain+` has produced a validated design. It creates the implementation plan with testing discipline baked into every task.1516## Procedure1718### Phase A: Load Context19201. Read the design output from `brain+` (from the current session or saved spec).21222. When you need to explore the codebase (verify file paths, check dependencies, find related modules), use the scout agent:2324 ```25 Agent(subagent_type="scout", prompt="Map the codebase structure for [area]. Focus on: dependencies, test files, and related modules.")26 ```27283. Load active enforcement rules from session context (see session-start output). If active enforcement rules are configured, add a **Constitutional Compliance** section to the plan:2930 ```31 ## Constitutional Rules for This Plan32 [List active enforcement rules from session-start output — these are configurable via .harness.yaml]33 - Use real [database/payment/logger] connections in stack/E2E tests — mocks are appropriate in unit tests34 - Show command output before claiming done35 - Every source file change requires corresponding test changes36 - Full-loop assertions: verify primary + second-order + third-order effects37 ```38394. Identify the mock policy for this plan based on active enforcement rules:4041 ```42 ## Mock Policy43 Stack/E2E (real deps): [list from active enforcement rules]44 Unit tests (mocks ok): [all components] / External without sandbox: [third-party services]45 ```4647### Phase B: Create Plan (delegate to superpowers:writing-plans)48491. Invoke `superpowers:writing-plans` with the enriched context.50512. For each task in the plan, ensure it includes:52 - **Test strategy**: which tests cover this task's requirements53 - **Mock check**: does this task need to interact with protected components (per active enforcement rules)?54 - **Evidence criteria**: what output proves this task is done55563. Every task must follow the pattern:5758 ```59 ### Task N: [Name]60 **Files:** [exact paths]61 **Test strategy:** [which tests, scoped to this task]62 **Mock check:** [are protected components involved?]63 - [ ] Step 1: Write failing test64 - [ ] Step 2: Verify it fails65 - [ ] Step 3: Write minimal implementation66 - [ ] Step 4: Verify it passes67 - [ ] Step 5: Commit68 ```69704. **`Spec:` pointer.** The plan's header carries a `Spec:` line naming the71 design `brain+` produced — the document path plus a one-line scope summary:7273 ```74 **Spec:** docs/designs/<slug>.md — <one line: what was approved and when>75 ```7677 superpowers 6.3.0's subagent-driven-development reads this pointer at setup78 to resolve plan conflicts and ambiguities against the approved design79 instead of guessing ([#2086](https://github.com/obra/superpowers/issues/2086)),80 and `sdd+` hands it to the spec-reviewer as the compliance reference. If81 there is no design document (a spike, or `plan+` invoked directly on a small82 change), write `**Spec:** none — no design document; ask on conflict` rather83 than omitting the line, so the controller stops to ask instead of inferring.84855. **If the design includes a loop/signal-stack section** (see86 `references/agent-loops.md`): order the plan signal-stack-first — harness87 tasks (golden tests, contract probes, calibration harness, dry-run rig,88 telemetry store) come before or alongside the features they gate, because89 the assembly process uses the stack to verify itself as it builds. Then:90 - Each task names its **gating signal** (which layer's signal proves it done)91 - The maintainer deployment is a late task, after the primary system's92 acceptance criteria pass93 - Rollout gates (credentials, schedule enablement, live writes) are94 explicitly reserved to the user — never automated in any task95966. **Independence contract** (consumed by sdd+ team mode): every task's97 `**Files:**` list must be exhaustive — include shared test files a task98 extends (a tests file touched by several tasks makes them dependent).99 Where ordering matters even without file overlap, add an explicit100 `Depends on: Task N` line under the task header. A pair of tasks is101 parallelizable only when their Files lists are disjoint AND neither102 depends on the other.103104### Phase C: Validate Plan1051061. Confirm the plan:107 - [ ] Every task has a test strategy108 - [ ] No task mocks a protected component109 - [ ] Plan references exact file paths (no TBDs)110 - [ ] Evidence criteria defined for each task111 - [ ] `Spec:` pointer present (or explicitly `none`)112 - [ ] Active enforcement rules section present (if rules are configured)113114## Output115116Save the plan to `docs/plans/` and feed into `tdd+` for implementation.117118## Skill Chain119120After completing plan+, the next step is:121122- Invoke `/tdd+` to implement the plan task-by-task with RED-GREEN-REFACTOR123- Or invoke `/sdd+` to execute the plan via typed subagents (implementer → spec-reviewer → code-reviewer) — best for plans with independent tasks124125## Completion126127Report one of these states when the skill finishes:128129- **DONE** — Plan saved to `docs/plans/`, all validation checklist items in Phase C confirmed.130- **DONE_WITH_CONCERNS** — Plan complete but has open questions or tasks needing refinement.131- **BLOCKED** — Cannot proceed (missing design from brain+, unclear requirements).132- **NEEDS_CONTEXT** — Need user input to resolve a task scope or dependency question.