behavior-first-planning
Behavior-First Planning
Quick Ref: Turn an intent into beads that each carry a runnable acceptance test defining "done". The generative discipline behind the
bdd-foundryworkflow — extracted here so behavior-first planning survives independent of any orchestrator. Output: frozen Gherkin → executed-red tests → derived spec → an acceptance-gated bead DAG.
YOU MUST EXECUTE THIS DISCIPLINE. Do not just describe it.
Contract ownership (single owner, age-skills-audit-fable-l6ic.8). This skill owns the intent → Gherkin → EXECUTED-red → acceptance-gated bead-DAG contract.
/discovery,/plan(its Gherkin Scenarios Contract), and thebdd-foundryworkflow cite this skill rather than restating the discipline.
Constraints
- Do not create tracker beads before the manifest passes coverage, cycle, runnable-test, and independent-review gates because an unvalidated DAG pollutes the shared work surface.
- Do not accept prose-only or harness-error "tests" as red; each acceptance command must resolve to one real unignored test and fail for the intended missing behavior.
- Keep one frozen scenario per slice because combining behaviors hides partial completion and defeats the vertical acceptance boundary.
Why this exists — the 3/10 problem
Spec-first planning ships beads with no done-criteria: a title, a paragraph of "why", and nothing a machine can run to decide it is finished. The implementer then invents the bar, and "done" becomes a self-grade. Behavior-first planning inverts the order: define the behavior as an executable test before the design, so every bead is born with a runnable contract. The rule is absolute — no runnable acceptance test, no bead.
This is the successor to plain decomposition (plan): same DAG output, but each unit carries a failing test that has actually been run red, not prose. It is the planning-side mirror of the membrane (docs/architecture/control-loop-model.md): the bead's gate is deterministic ground truth, not an opinion.