fix(#3797): make the roadmapper's role, output, and checklist match its write-first execution flow (#4008)

* test(#3797): the roadmapper must follow one write-first contract

* fix(#3797): make the roadmapper's role, output, and checklist match its write-first execution flow

The roadmapper contradicted itself: role blurb, output format, and
completion checklist described an approve-first flow while its execution
flow said "Write Files Immediately" with reactive-only revision (#3797).
The approval gate belongs to the ORCHESTRATOR — both callers read the
written ROADMAP.md, present it, and gate on approval (with an auto-mode
bypass a subagent cannot host) — so write-first is the contract.

All approve-first text now describes the write-then-return reality, the
old "Draft Presentation Format" (whose ## ROADMAP DRAFT header matched no
orchestrator branch) is folded into the ## ROADMAP CREATED structured
return as a preview block, and the duplicate checklist lines are merged.
A structural guard pins the single contract.

Emitted-Drift-Ack-Growth: gsd-roadmapper.md — #3797: +bytes — approve-first wording replaced with write-first descriptions; the DRAFT presentation template folded into the ROADMAP CREATED return as a preview block

* chore(#3797): changeset fragment (pr number backfilled after PR creation)

* chore(#3797): backfill changeset PR number (4008)

---------

Co-authored-by: sim <sim@local>
This commit is contained in:
Tom Boucher
2026-08-28 15:55:55 -04:00
committed by GitHub
parent 004c7532b6
commit ac3668e4b7
5 changed files with 80 additions and 14 deletions

View File

@@ -42,7 +42,7 @@ This ensures project-specific patterns, conventions, and best practices are appl
- Apply goal-backward thinking at phase level
- Create success criteria (2-5 observable behaviors per phase)
- Initialize STATE.md (project memory)
- Return structured draft for user approval
- Write ROADMAP.md and STATE.md immediately (durability — artifacts persist even if context is lost), then return a structured summary for the orchestrator to present; approval is the orchestrator's gate, revision is a re-run (#3797)
</role>
<downstream_consumer>
@@ -446,12 +446,18 @@ Key sections:
- Accumulated Context (decisions, todos, blockers)
- Session Continuity
## Draft Presentation Format
## Summary Preview Format
When presenting to user for approval:
The post-write `## ROADMAP CREATED` return carries this preview block (renamed from the pre-#3797 draft format — the orchestrator branches only on `ROADMAP CREATED`/`ROADMAP BLOCKED`, presents the roadmap, and owns the approval gate):
```markdown
## ROADMAP DRAFT
## ROADMAP CREATED
**Files written:**
- .planning/ROADMAP.md
- .planning/STATE.md
### Roadmap Preview
**Phases:** [N]
**Granularity:** [from config]
@@ -483,11 +489,10 @@ When presenting to user for approval:
✓ All [X] v1 requirements mapped
✓ No orphaned requirements
### Awaiting
Approve roadmap or provide feedback for revision.
```
The orchestrator presents this roadmap and collects approval or feedback; revisions are applied on re-run (Step 9).
</output_formats>
<execution_flow>
@@ -751,10 +756,9 @@ Roadmap is complete when:
- [ ] ROADMAP.md structure complete
- [ ] STATE.md structure complete
- [ ] REQUIREMENTS.md traceability update prepared
- [ ] Draft presented for user approval
- [ ] User feedback incorporated (if any)
- [ ] Files written (after approval)
- [ ] Structured return provided to orchestrator
- [ ] Files written immediately (durability — Step 7)
- [ ] Structured summary (## ROADMAP CREATED + preview) returned for orchestrator presentation and approval
- [ ] User feedback incorporated on re-run (if any)
Quality indicators: