Uh oh!
There was an error while loading. Please reload this page.
docs(pm): dispatch-gates residue names the unreachable-root-file class, not a specimen that became reachable - #10022
Merged
Conversation
…S, not a specimen that became reachable Fixes#10012
os-warren
marked this pull request as ready for review
August 19, 2026 15:28
os-warren
enabled auto-merge
August 19, 2026 15:29
Uh oh!
There was an error while loading. Please reload this page.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#10012
renderResidue's top-level-FILE clause illustrated the unreachable class withREADME.md. That was honest until the doc-anchors gate declared the subtree spelling — after which the sentence offered, as its example of a population nothing can reach, the one root file in this repo that a card does derive. The rule it states is unchanged and still exactly correct; only the specimen went stale.Took the card's recommended remedy (2), de-specimen, not (1) rename-the-specimen: a specimen is a claim about the tree this function has no way to keep true, so renaming it only resets the clock until the next declaration lands. The clause now names the class and, in the same breath, the escape hatch — which restates the rule rather than the tree and so cannot rot the same way — and points at
hintCovers' docblock for the measurement.The same specimen, repeated twice more
The card asked whoever took it to check for repeats. Two, both the same stale attribution — a root file described as out of reach by the very gate that now declares it:
hintCovers' docblock: "a population that is a top-level FILE (README.md,ARCHITECTURE.md— the rest ofcheck-doc-anchors' corpus)". Now says what is refused is the literal, never the file, and points at the escape hatch already sitting 15 lines below it.!hintCovers('README.md', 'README.md')case, which carried the identical parenthetical. Now cross-links therootFileDeclarationscases that pin the declarations.Both are the same defect class, mechanical, evidence-pinned by cases already in this file, and inside the same gate family — no new verification surface.
Measurements the corrected prose rests on
README.mdcheck:doc-anchors⇢ gate sourceREADME.md/**ARCHITECTURE.mdcheck:doc-anchors⇢ARCHITECTURE.md/**AGENTS.mdAGENTS.md/**LICENSEexamples/AGENTS.mdAGENTS.md/**is measured live before being cited as the escape-hatch spelling, so the replacement does not plant a fresh stale claim.LICENSEandexamples/AGENTS.mdare the controls: still zero, i.e. the refusal itself is intact.Self-test: 332 → 334
Two pins added so the specimen cannot grow back. Their comment is explicit that the first holds only the literal that actually rotted and that the second — the durable half is present at all — is the load-bearing one.
Reverse verification, direction predicted in writing before running: reverting the prose turns both new pins red. Observed exactly that,
EXIT=1:Restore leg re-run:
334 cases pass, tree clean. No rebuild applies to either leg —dispatch-gates.mjsis executed directly by node from source, with nodist/in the resolution path.Gates, on the final commit
cd43ab4e0Union re-derived from the real diff (
node scripts/pm/dispatch-gates.mjs, no args) on the committed tree, each verdict line quoted from the gate itself, exit codes captured before any pipe:pnpm check:pm-dispatch-gates—dispatch-gates self-test: 334 cases pass.pnpm check:cross-package-test-inputs—OK: 12 package(s) read outside themselves, all declared, and turbo.json hashes every declared glob.pnpm check:nul-bytes—check-nul-bytes: OK (scanned 6347 text file(s) -- 6347 tracked, 0 untracked-not-ignored; skipped 5 binary; no raw ASCII control bytes).Prose and self-test only, nothing published:
skip-changeset.Generated by Claude Code