Files
msd-core/gsd-core/references/execute-phase-requirement-revert.md
Tom Boucher 8d2f8bcb23 fix(#2388): gate shared requirement completion on sibling plans, revert on gaps (#2424)
* fix(#2388): gate shared-ID requirement marking and revert on gaps_found

Adds requirements.ready-ids (execute-plan.md's update_requirements step)
so a requirement ID declared by multiple plans in a phase only marks
Complete once every declaring plan has produced a SUMMARY.md, and
requirements.revert-phase (execute-phase.md's gaps_found branch) so a
gaps_found verdict reverts the phase's own prematurely-Complete IDs
before the gap report renders. Single-plan IDs still mark immediately.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* chore(#2388): regenerate fixtures + lint gate-prep

* fix(#2388): repair failing tests after gate verification

* chore(#2388): add changeset (#2424)

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 07:52:17 -04:00

763 B

Revert this phase's own requirement IDs out of Complete before rendering the gap report (#2388). A shared requirement ID can already read Complete at this point (its first-declaring plan finished before this verification ran) — a gaps_found verdict must not leave that premature Complete sitting in REQUIREMENTS.md. Scoped strictly to PHASE_REQ_IDS (this phase's own citations from init.execute-phase), so another phase's Complete row is never touched:

if [ -n "${PHASE_REQ_IDS}" ]; then
  gsd_run query requirements.revert-phase ${PHASE_REQ_IDS} >/dev/null 2>&1 || true
  gsd_run query commit "docs(phase-{X}): revert premature Complete requirements after gaps found" --files .planning/REQUIREMENTS.md >/dev/null 2>&1 || true
fi