fix(#3959): give review-prompt plans citable path anchors (#4170)

* test(#3959): plan copies carry source names, prompt carries path anchors

Regression coverage: budget copies named gsd-review-plan-<plan-id>.md
(not a bare padded index), no bare-index copy survives, and the Plans
to Review template instructs a per-plan repo-relative #### path header.
Also corrects the stale -00 assertion to the source-named copy.

* fix(#3959): give review-prompt plans citable path anchors

The Plans to Review template now instructs a per-plan repo-relative ####
path header, and the budget copies are named gsd-review-plan-<plan-id>.md
instead of a bare padded index, restoring provenance for prompt-budget's
per-plan headers while keeping the trim glob intact.

Emitted-Drift-Ack-Growth: review.md — per-plan path-header instruction in Plans to Review + provenance-named copy loop (#3959)

* chore(#3959): backfill changeset pr number

---------

Co-authored-by: sim <sim@local>
This commit is contained in:
Tom Boucher
2026-09-01 22:40:23 -04:00
committed by GitHub
parent 91d5fdff6f
commit 10593e2cf2
3 changed files with 57 additions and 8 deletions

View File

@@ -208,7 +208,8 @@ Provide structured feedback on plan quality, completeness, and risks.
{research if present}
### Plans to Review
{all PLAN.md contents}
For each `*-PLAN.md` in the phase directory, in glob order, include its full content preceded by a `####` header carrying the plan's **repo-relative path** (e.g. `#### .planning/phases/<phase>/<NN>-PLAN.md`). The path header is the citable anchor for findings about the plan itself — cite it as `<repo-relative plan path>:<line>` (name the heading in prose beside the citation if it helps the reader); reserve `path:line` for repo files the plan references.
{per-plan: `#### <repo-relative plan path>` + full plan contents}
## Review Instructions
@@ -261,12 +262,15 @@ RUN_DIR="{run_dir}" # from gather_context
cp "$INSTRUCTIONS_BLOCK_FILE" "${RUN_DIR}/gsd-review-instructions.md"
cp "$ROADMAP_SECTION_FILE" "${RUN_DIR}/gsd-review-roadmap.md"
# Plan files: copy each PLAN.md to a predictable numbered path
PLAN_INDEX=0
# Plan files: copy each PLAN.md to a predictable path named after its source
# plan id (#3959: a bare padded index discards provenance — the budget tool's
# per-plan `### <file>` header then renders a run-dir artifact name no reviewer
# or consensus step can resolve. The plan id keeps the gsd-review-plan-*.md glob
# prepare_trimmed_prompt_for_reviewer consumes.)
for PLAN_FILE in "${PHASE_DIR}"/*-PLAN.md; do
PADDED_IDX=$(printf '%02d' "$PLAN_INDEX")
cp "$PLAN_FILE" "${RUN_DIR}/gsd-review-plan-${PADDED_IDX}.md"
PLAN_INDEX=$((PLAN_INDEX + 1))
PLAN_BASENAME=$(basename "$PLAN_FILE")
PLAN_ID="${PLAN_BASENAME%-PLAN.md}"
cp "$PLAN_FILE" "${RUN_DIR}/gsd-review-plan-${PLAN_ID}.md"
done
# #3301: plan coverage manifest — tell reviewers exactly which plan ids exist and