Skip to content

Step 4's TEST_CMD row enumerates two substitution sites, but the template has three #139

Description

@dmccoystephenson

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions