Repository navigation
Fix documentation drift across the three sources of truth - #57
Conversation
Stage A documentation-accuracy sweep findings:
- create-dev-loop.md Phase 1 hardcoded "tests green" / "CI must be green
first" where the rest of the template uses {{EXTERNAL_SIGNAL_LABEL}};
drift introduced after PR #28 generalized the anchor
- RESEARCH.md was missing Implementations entries for PR #28 (cites §1)
and PR #52 (cites §2 and §3), which CLAUDE.md requires
- RESEARCH.md carried literal \" heredoc-escaping artifacts in the §3 and
§7 Implementations entries
- README Step 3 named only template-version, omitting generated-at;
Step 6 omitted the gap-issue label seeding; the generated-skill
structure list omitted the external signal anchor
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Self-review rubric caught the omission: a PR whose purpose is to backfill missing Implementations entries must not itself omit one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Self-review rubricScored adversarially against the diff and command output, not judgment.
Empirical before/after evidence
Neither Same patterns on One FAIL found and fixed during this passMissing Implementations entry for this PR. The first commit backfilled Implementations entries for two PRs that had omitted them — while itself omitting one, which Anchor: UNVERIFIED — not merged, handed to a humanThe manual-validation anchor is required here, not waivable, because the diff touches the embedded template. It could not run in this session: the anchor is
To clear the anchor: run Per the one-intrinsic-pass cap, this rubric will not be re-run internally — only a reviewer comment or a failing anchor should reopen iteration. drafted by Claude on behalf of Daniel Stephenson |
The Step 4 EXTERNAL_SIGNAL_LABEL row allows a third case (a project-specific phrase such as "snapshot regression suite"), which the README bullet's two-way phrasing excluded. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Fix documentation drift across the three sources of truth
Stage A documentation-accuracy sweep findings:
- create-dev-loop.md Phase 1 hardcoded "tests green" / "CI must be green
first" where the rest of the template uses {{EXTERNAL_SIGNAL_LABEL}};
drift introduced after PR #28 generalized the anchor
- RESEARCH.md was missing Implementations entries for PR #28 (cites §1)
and PR #52 (cites §2 and §3), which CLAUDE.md requires
- RESEARCH.md carried literal \" heredoc-escaping artifacts in the §3 and
§7 Implementations entries
- README Step 3 named only template-version, omitting generated-at;
Step 6 omitted the gap-issue label seeding; the generated-skill
structure list omitted the external signal anchor
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Record this PR's own Implementations entry under RESEARCH.md finding 1
Self-review rubric caught the omission: a PR whose purpose is to backfill
missing Implementations entries must not itself omit one.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
* Avoid implying the external signal anchor is a CI-or-manual binary
The Step 4 EXTERNAL_SIGNAL_LABEL row allows a third case (a
project-specific phrase such as "snapshot regression suite"), which the
README bullet's two-way phrasing excluded.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
What
A Stage A — documentation accuracy sweep cycle. The open-issue backlog was empty at triage, so this cycle swept all three documentation sources of truth against actual source. Four drifts found and fixed; a fifth deferred as #56.
1.
create-dev-loop.mdPhase 1 — hardcoded anchor namecreate-dev-loop.md:159(inside the embedded template) read:PR #28 replaced the hardcoded CI anchor with
{{EXTERNAL_SIGNAL_LABEL}}throughout the template, and its test plan verified that every remaining "CI" mention was a use of CI as a source of repo info rather than as the universal anchor name. This line was added afterwards by PR #54 (issue #40's Phase 1 self-review backfill), reintroducing the hardcoded form. Now uses{{EXTERNAL_SIGNAL_LABEL}}on both mentions, matching the idiom already used at Phase 4 step 1 ("Wait for{{EXTERNAL_SIGNAL_LABEL}}to be green") and in the same bullet list three lines below.Observable effect of the drift: the existing
create-dev-loop-dev-loopskill renders this line as "manual validation must be confirmed first" — the generator had to improvise a substitution the template never asked for.2.
RESEARCH.md— two shipped PRs missing Implementations entriesCLAUDE.mdrequires that a PR implementing aRESEARCH.mdfinding record an Implementations entry under it. Two merged PRs cite findings in their bodies and have no entry:Both entries follow the documented format (PR number, one-line summary, ship date from
gh pr list, observed-effect placeholder) and are inserted in PR-number order within their lists.3.
RESEARCH.md— literal\"escaping artifactsThe §3 (PR #31) and §7 (PR #29) Implementations entries contained
\"Localization verification\"and\"Record skip reasons\"— heredoc-escaping leftovers that render as visible backslashes. Unescaped.4.
README.md— three Step-description inaccuracies<!-- template-version: <sha> -->;create-dev-loop.mdStep 3 andCLAUDE.mdboth require<!-- generated-at: <iso8601> -->alongside it.gh label createloop).Step count is unchanged (still seven, 1:1 with Steps 1–7), so no README enumeration restructuring was needed.
Deferred
COMPILE_CMD/TEST_CMDassume a runnable test suite exists. Found in the same sweep. Deferred because fixing it properly is a template design change (a new conditional or placeholder), not doc drift — and Stage A explicitly says to fix the highest-value subset and file an issue for the rest.No other issues were open at triage, so there is no other backlog to record skip reasons for.
Research grounding
Test plan / validation
grep -oE '\{\{...\}\}' create-dev-loop.md | sort -u— token set unchanged frommain; no new placeholder introduced, so no new Step 4 table row needed.{{EXTERNAL_SIGNAL_LABEL}}already has a row.\``markdown/```pair; every internal fence still opens with the escaped\```. Thecreate-dev-loop.md` change is one prose line and touches no fence.create-dev-loop.md.template-version/generated-atcomments still sit directly below the# <slug>-dev-loopH1 in the template (lines 110–113), unchanged.gh pr view, not from memory — PR Generalize Phase 4 external-signal step to support no-CI repos #28 and Add documentation-accuracy and unit-test-expansion work-mode stages to Phase 2 #52 bodies were read to confirm they cite findings; ship dates taken fromgh pr list.Anchor status: UNVERIFIED — human validation required
This PR modifies the embedded template, so per the template's own Phase 4 rule the manual-validation anchor is required, not optional. It could not run in this session: the anchor is
/create-dev-loopagainst a real target repo, which writes to~/local-skills/, symlinks into~/.claude/commands/, and (in fresh mode) creates a GitHub repo — side effects outside this repo that a headless run should not perform unasked.create-dev-loop.mdis also on this repo's do-not-auto-merge list perCLAUDE.md("this file is the product"). So this PR is deliberately left open for human review on two independent grounds.What a human should do to clear the anchor: run
/create-dev-loopinMODE=updateagainst a repo whoseEXTERNAL_SIGNAL_LABELis notCI(e.g. this repo itself, or another docs-only repo) and confirm the Phase 1 bullet now renders the repo's own anchor label instead of a hand-improvised substitution.The
README.mdandRESEARCH.mdchanges are docs-only and anchor-not-applicable; only the one-linecreate-dev-loop.mdchange carries the gate.This PR description was drafted during a Gardener session (Stephenson-Software/gardener).