/nova-plan
Converts proposal.md into a concrete, checkbox-driven tasks.md your agent can execute.
text
/nova-planquick-fix tickets skip this step.
What it does
- Runs
bash novaspec/guardrails/proposal-closed.sh <ticket-id>— exits non-zero ifproposal.mdcontainsTBD,TODO,FIXME,???,<placeholder>, or[ ] decision. Blocks if the spec isn't closed. - Reads
proposal.mdto identify affected services, closed decisions, and success criteria. - Writes
context/changes/active/<TICKET>/tasks.mdusingnovaspec/templates/tasks.mdas the structure. - Stops at a human checkpoint before you run
/nova-build.
Guardrails
| # | Check |
|---|---|
| 1 | Branch matches branch.pattern |
| 2 | proposal.md exists |
| 7 | proposal-closed.sh passes |
How tasks are structured
Rules the planner follows:
- Each task executable in 15–60 minutes.
- Tasks in executable order — no forward references.
- Characterization tests before modifying existing code.
- Use
- [ ]checkboxes (so/nova-statuscan count progress). - No memory updates as tasks (
context/services/,context/decisions/,context/gotchas/are owned by/nova-wrap). Top-level docs likeREADME.mdorCONTRIBUTING.mdare fair game. - The plan derives from the spec — no inventing scope.
A typical tasks.md has a ## Files to touch section listing every file the change will modify. The review-checks guardrail verifies later that every declared file actually shows up in the diff.
What it produces
| Artifact | Where |
|---|---|
tasks.md | context/changes/active/<TICKET>/tasks.md |
Next step
text
/nova-buildErrors you may see
| Error | Why | Fix |
|---|---|---|
✗ Proposal has open markers | proposal-closed.sh found TBD / TODO / etc. | Re-run /nova-spec and close them |
proposal.md does not exist | You skipped /nova-spec | Run it first |
| Plan invents scope not in the spec | The agent over-reached | Re-prompt with "the spec doesn't say X — drop it or update the spec first" |
Customizing it
- The shape of
tasks.md→ editnovaspec/templates/tasks.md. - Custom task categories (e.g.
[infra],[migration]) → add them to the template and tonovaspec/commands/nova-plan.mdstep 2 rules. - Stricter proposal closure → add greps to
novaspec/guardrails/proposal-closed.sh.