---
name: becki-plan
description: Use when a spec exists and you need a step-by-step plan before touching code. Writes bite-sized tasks a later session can execute.
---

# Becki Plan

Write an implementation plan a later session can run without this
conversation. Assume the executor is skilled and knows almost nothing
about this repo. The plan argues from a spec. If there is no spec yet,
use `becki-brainstorm` first.

## Before you write

1. `becki_check_dead_ends` with the request verbatim.
2. `becki_context` for the project. If a prior plan or decision already
   covers this, say so and ask whether to extend or replace it.
3. If the spec spans independent subsystems, split into one plan per
   subsystem. Each plan must produce something testable on its own.

## Where it lives

`docs/superpowers/plans/YYYY-MM-DD-<feature>.md` unless the user names
another path. The date is the day you write it.

## What every plan must carry

- **Goal:** one sentence.
- **Why this shape:** the choice and what lost. If this overturns a
  prior decision, say which row.
- **Files:** create vs modify, one responsibility each.
- **Tasks:** smallest unit that has its own test and that a reviewer
  could reject without rejecting the neighbor. Fold setup into the
  task that needs it.
- **Verification:** the exact command the executor must run, using this
  repo's real test entry (`scripts/run_tests.sh`, `npx vitest run`,
  `swift build`, not a guessed `pytest`).
- **Out of scope:** named, so it does not creep back in.

Each task ends with a checkable deliverable, not "implement the feature."

## After the plan is accepted

Use `becki-decide` so the plan's approach is findable. A later session
executes with `becki-verify` at every claim of done. Do not start
implementation in the same breath as the plan unless the user says to.

## Red flags

| Thought | Reality |
|---|---|
| I can keep the plan in chat | Chat dies. A file plus a vault row survive. |
| One giant task is fine | A reviewer cannot reject half a blob. Split. |
| I will invent the test command | Open the repo's test docs. Wrong runner is a false green. |
| The spec is in my head | Then there is no spec. Brainstorm first. |
