From the first live end-to-end run, where the operator found the milestone gating heavier than it needs to be.
Today (spec B1, lines ~905-920): after the milestone plan is approved, the operator must also say start milestone <n>. Every project has an architecture gate plus a gate per milestone, even when there is only one milestone.
Proposal
Start on approval. Approving a milestone plan starts execution at once, and start milestone <n> goes away. The approval already is the explicit sign-off the guiding principle asks for ("never cross key boundaries (start implementation) without explicit sign-off"). Revision binding still applies, and stop still halts.
No milestone gate for single-milestone projects. When the architecture plan covers exactly one milestone, approving it starts execution. Trade-off: the milestone plan is the detailed brief the local executor follows, so the architecture plan has to carry that detail. The planner should declare the milestone count explicitly (e.g. in submit_plan), not have it inferred from prose.
Work: a spec edit first (B1 workflow, B2 operator commands, A4 if it names the command), then the orchestrator, planner prompt and tests.
From the first live end-to-end run, where the operator found the milestone gating heavier than it needs to be.
**Today** (spec B1, lines ~905-920): after the milestone plan is approved, the operator must also say `start milestone <n>`. Every project has an architecture gate plus a gate per milestone, even when there is only one milestone.
**Proposal**
1. **Start on approval.** Approving a milestone plan starts execution at once, and `start milestone <n>` goes away. The approval already is the explicit sign-off the guiding principle asks for ("never cross key boundaries (start implementation) without explicit sign-off"). Revision binding still applies, and `stop` still halts.
2. **No milestone gate for single-milestone projects.** When the architecture plan covers exactly one milestone, approving it starts execution. Trade-off: the milestone plan is the detailed brief the local executor follows, so the architecture plan has to carry that detail. The planner should declare the milestone count explicitly (e.g. in `submit_plan`), not have it inferred from prose.
**Work:** a spec edit first (B1 workflow, B2 operator commands, A4 if it names the command), then the orchestrator, planner prompt and tests.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Superseded by the Development Plan (#84, merged): milestone gating becomes approvals as scoped permissions, with milestones marked pre-approved or needs-discussion in a build plan (L3, D2). It is covered by M2.5 in docs/Development-Plan.md, which designs the new conversational loop that replaces control.py. Fixing it in control.py would be thrown away when that loop retires.
Superseded by the Development Plan (#84, merged): milestone gating becomes approvals as scoped permissions, with milestones marked pre-approved or needs-discussion in a build plan (L3, D2). It is covered by **M2.5** in `docs/Development-Plan.md`, which designs the new conversational loop that replaces `control.py`. Fixing it in `control.py` would be thrown away when that loop retires.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
From the first live end-to-end run, where the operator found the milestone gating heavier than it needs to be.
Today (spec B1, lines ~905-920): after the milestone plan is approved, the operator must also say
start milestone <n>. Every project has an architecture gate plus a gate per milestone, even when there is only one milestone.Proposal
start milestone <n>goes away. The approval already is the explicit sign-off the guiding principle asks for ("never cross key boundaries (start implementation) without explicit sign-off"). Revision binding still applies, andstopstill halts.submit_plan), not have it inferred from prose.Work: a spec edit first (B1 workflow, B2 operator commands, A4 if it names the command), then the orchestrator, planner prompt and tests.
🤖 Generated with Claude Code
Superseded by the Development Plan (#84, merged): milestone gating becomes approvals as scoped permissions, with milestones marked pre-approved or needs-discussion in a build plan (L3, D2). It is covered by M2.5 in
docs/Development-Plan.md, which designs the new conversational loop that replacescontrol.py. Fixing it incontrol.pywould be thrown away when that loop retires.