Spec
- Interview the user one question at a time about behavior, UX, edge cases, constraints, and trade-offs, starting from the feature description when one was given. Do not ask what the repository already answers.
- Inspect relevant code before locking decisions.
- Write the specification to the repository's documented specification location as
<YYYY-MM-DD-feature>-spec.md; if none is documented, proposedocs/specs/and confirm. Never write it into the planning location: a spec there is read as the active plan. Start it with frontmatterstatus: draft,ownerandlast-verified: <today>, then cover goals, non-goals, flows, technical design, decisions with rejected alternatives (one line each), contracts, failure handling, acceptance criteria, tests, and unresolved decisions. - Write the implementation plan to the repository's documented plan location as
<YYYY-MM-DD-feature>.md. Start it with the goal, the decisions, and aStatus: in progress | doneline; write every step as a- [ ]checkbox with What, Where, How, Test,Done when(its acceptance criterion), complexity (S/M/L), and a deployable invariant; end with## Open questionsand aNext action:line. plan-status and session-retro read these. - Check the spec and plan against each other: show a coverage table (each acceptance criterion → its step IDs, each step → its criterion; a gap either way is a hit), scan for vague words ("fast", "robust", "intuitive"), placeholders (TODO, ???) and scope reduction ("v1", "for now", "stub", "placeholder", "future enhancement": a step delivering less than a decision says), and read the project's decision records and
AGENTS.mdinvariants for conflicts. Put every hit under## Open questionsbefore the hand-off. - Offer to add the plan's steps to the project backlog: find or create its files as audit-to-backlog's Establish scope does (the
Backlog:line, the path question before creating them, the git-ignored warning) and write each step as an item in thedeveloper-os:audit-to-backlogformat, with theFEAT-prefix, the next freeFEATnumber, and severity P2 unless the user names another of P0–P3, filed under that severity's section; complexity becomesSize, the step'sDone whenstaysDone when, its Test becomes a runnableCheck(Manual: …when no command can check it),Whereis the step's Where,ProblemandFixare one line each (what is missing, what the step builds), andEvidenceis the spec path and section (docs/specs/<file>#<section>), since new work has nofile:lineyet. AddSession N: <ID>, …lines of 5–7 items each for them under## Implementation sessions, soimplement-backlogcan execute them. Then replace each step in the plan with a plain line linking its ID (- FEAT-03: <title>, no checkbox), so the work is counted once, in the backlog. - Stop and hand implementation to a fresh session: when the steps moved to the backlog, a prompt that invokes
developer-os:implement-backlog, which runs a convergence check against the acceptance criteria when the spec's lastFEAT-item closes; otherwise "continue from ".
Stop point
Stop after the specification and plan are written and the backlog offer is answered. Return both paths and the step 7 handoff prompt for a fresh session.
Never
- Implement any part of the feature.
- Overwrite an existing plan or specification.
- Add items to the backlog without the user's yes.