Summary
Step 4's TEST_CMD substitution-table row, at create-dev-loop.md:621, instructs:
Substitute the same text everywhere {{TEST_CMD}} appears (Phase 3 verify block, Phase 8 rebase fence).
The parenthetical enumerates two occurrences, but there are three in the template body:
- line 290 — the Phase 3 verify fence (enumerated)
- line 297 — the Phase 3 "Confirm the anchor actually executed tests" prose (not enumerated)
- line 577 — the Phase 8 rebase fence (enumerated)
The third occurrence was introduced by PR #121, which added the zero-executed-tests rule to Phase 3, without the row being updated to match.
Why it matters
The row is the only instruction telling the generator where a given token has to be substituted. An incomplete enumeration invites a generated skill in which line 297's occurrence is left unsubstituted or given different text from the other two — and an inconsistent TEST_CMD is exactly what the row's own emphasis ("Substitute the same text everywhere") exists to prevent. The failure would not be caught mechanically: scripts/check_docs.py verifies that a row exists for each placeholder, not that the row's prose describes every site.
The same row also carries a no-test-suite clause, and the note at create-dev-loop.md:638 requires COMPILE_CMD, TEST_CMD, REVALIDATE_INSTRUCTION, VALIDATION_NOTE, and EXTERNAL_SIGNAL_CMD to all name the same check in that case. The missing site should be checked against that clause too when this is fixed.
Suggested change
Add the Phase 3 prose occurrence to the parenthetical, e.g. "(Phase 3 verify block, Phase 3 executed-test-count rule, Phase 8 rebase fence)". Worth confirming at the same time whether any other multi-site placeholder's row has drifted the same way, since the drift mechanism — a later PR adding an occurrence without revisiting the row — is not specific to TEST_CMD.
Provenance
Observed as an out-of-diff finding during the Phase 4 self-review of PR #138, which edits line 297 and so preserves the unenumerated occurrence rather than creating it. Correcting the row was out of scope for that PR; filing it here was promised in that review.
Research grounding
No RESEARCH.md finding applies. This is a documentation-accuracy defect in the substitution table with no empirical claim behind it.
This issue was filed during a Gardener session (https://github.com/Stephenson-Software/gardener).
drafted by Claude on behalf of Daniel Stephenson
Summary
Step 4's
TEST_CMDsubstitution-table row, atcreate-dev-loop.md:621, instructs:The parenthetical enumerates two occurrences, but there are three in the template body:
The third occurrence was introduced by PR #121, which added the zero-executed-tests rule to Phase 3, without the row being updated to match.
Why it matters
The row is the only instruction telling the generator where a given token has to be substituted. An incomplete enumeration invites a generated skill in which line 297's occurrence is left unsubstituted or given different text from the other two — and an inconsistent
TEST_CMDis exactly what the row's own emphasis ("Substitute the same text everywhere") exists to prevent. The failure would not be caught mechanically:scripts/check_docs.pyverifies that a row exists for each placeholder, not that the row's prose describes every site.The same row also carries a no-test-suite clause, and the note at
create-dev-loop.md:638requiresCOMPILE_CMD,TEST_CMD,REVALIDATE_INSTRUCTION,VALIDATION_NOTE, andEXTERNAL_SIGNAL_CMDto all name the same check in that case. The missing site should be checked against that clause too when this is fixed.Suggested change
Add the Phase 3 prose occurrence to the parenthetical, e.g. "(Phase 3 verify block, Phase 3 executed-test-count rule, Phase 8 rebase fence)". Worth confirming at the same time whether any other multi-site placeholder's row has drifted the same way, since the drift mechanism — a later PR adding an occurrence without revisiting the row — is not specific to
TEST_CMD.Provenance
Observed as an out-of-diff finding during the Phase 4 self-review of PR #138, which edits line 297 and so preserves the unenumerated occurrence rather than creating it. Correcting the row was out of scope for that PR; filing it here was promised in that review.
Research grounding
No RESEARCH.md finding applies. This is a documentation-accuracy defect in the substitution table with no empirical claim behind it.
This issue was filed during a Gardener session (https://github.com/Stephenson-Software/gardener).
drafted by Claude on behalf of Daniel Stephenson