Found while implementing #6307 (widening the version-claim scan's SEP and re-measuring the CI reality behind the two guides). Deliberately not fixed there: #6307's PR adds new ledger entries and repairs two guide pages, and rewriting a neighbouring entry's prose is a different claim on the same file. Filing so the number is recorded rather than carried.
The entry
scripts/__tests__/doc-version-claims.test.ts, KNOWN_CLAIMS:
{file: 'content/docs/guide/ci-cd-pipeline.md',claim: 'Node 22.x',kind: 'anchored',why: 'Matches the 14 node-version: 22.x declarations across .github/workflows. Verified true; this page already has its own pin test (ci-cd-pipeline-doc.test.ts).',},Measured on b362c1b47 (origin/main at 2026-08-25T19:49Z)
$ grep -rhoP 'node-version:\s*\K\S+' .github/workflows/ | sort | uniq -c
1 '22'
26 '22.x'
$ grep -rhoP 'node-version:\s*\K\S+' .github/workflows/ | wc -l
27
$ grep -rn "node-version: '22'" .github/workflows/
.github/workflows/half-state-patrol.yml:196: node-version: '22'
So the anchor the entry names has nearly doubled (14 → 26 declarations reading '22.x', out of 27 total), and one lane now reads '22' rather than '22.x' — a spelling the sentence does not admit at all. The claim is still true; what drifted is the sentence a reader would re-measure it by, which is what an anchored entry without a skeletonDep rests on entirely.
Second, smaller observation in the same entry, recorded because it is the reason nothing caught the first: ci-cd-pipeline-doc.test.ts does not pin this literal. Measured — grep -nP '\b22\b' scripts/__tests__/ci-cd-pipeline-doc.test.ts returns nothing (control, same file, same sweep: grep -c 'ci.yml' … returns matches), so "this page already has its own pin test" is true of the page and false of the Node 22.x line. Nothing re-measures either half.
Why this class matters here rather than generally
anchored is the strongest class this ledger has, and for entries with no skeletonDep the whole strength is the why string: a reviewer re-runs the command it describes. A why whose numbers no longer match the tree quietly converts that into "someone once checked". Same failure family as the sample misfiling the file's own header records for content/docs/guide/plugins.md — the entry keeps its shape while the fact underneath it moves.
Two dispositions, both cheap:
- A — re-measure and rewrite the sentence (26 of 27, and name the
'22' outlier), leaving it a reviewer-checked anchored entry that is accurate today and will drift again on the next workflow added. - B — give this entry a machine-checked anchor the way
skeletonDep did for the plugin skeleton: derive the node-version set from .github/workflows and assert the doc literal against it. That also covers the ci-cd-pipeline-doc.test.ts gap above, and is the direction the file's header argues for whenever an anchor is unanimous enough to compute.
Related but distinct: #6308 (the same page's workflow snippet teaches node-version: 20 and pnpm/action-setup, neither of which this repo uses) is about the page's fenced sample; this one is about the ledger entry describing the page's prose literal.
Found while implementing #6307 (widening the version-claim scan's
SEPand re-measuring the CI reality behind the two guides). Deliberately not fixed there: #6307's PR adds new ledger entries and repairs two guide pages, and rewriting a neighbouring entry's prose is a different claim on the same file. Filing so the number is recorded rather than carried.The entry
scripts/__tests__/doc-version-claims.test.ts,KNOWN_CLAIMS:Measured on
b362c1b47(origin/main at 2026-08-25T19:49Z)So the anchor the entry names has nearly doubled (14 → 26 declarations reading
'22.x', out of 27 total), and one lane now reads'22'rather than'22.x'— a spelling the sentence does not admit at all. The claim is still true; what drifted is the sentence a reader would re-measure it by, which is what ananchoredentry without askeletonDeprests on entirely.Second, smaller observation in the same entry, recorded because it is the reason nothing caught the first:
ci-cd-pipeline-doc.test.tsdoes not pin this literal. Measured —grep -nP '\b22\b' scripts/__tests__/ci-cd-pipeline-doc.test.tsreturns nothing (control, same file, same sweep:grep -c 'ci.yml' …returns matches), so "this page already has its own pin test" is true of the page and false of theNode 22.xline. Nothing re-measures either half.Why this class matters here rather than generally
anchoredis the strongest class this ledger has, and for entries with noskeletonDepthe whole strength is thewhystring: a reviewer re-runs the command it describes. Awhywhose numbers no longer match the tree quietly converts that into "someone once checked". Same failure family as thesamplemisfiling the file's own header records forcontent/docs/guide/plugins.md— the entry keeps its shape while the fact underneath it moves.Two dispositions, both cheap:
'22'outlier), leaving it a reviewer-checkedanchoredentry that is accurate today and will drift again on the next workflow added.skeletonDepdid for the plugin skeleton: derive thenode-versionset from.github/workflowsand assert the doc literal against it. That also covers theci-cd-pipeline-doc.test.tsgap above, and is the direction the file's header argues for whenever an anchor is unanimous enough to compute.Related but distinct: #6308 (the same page's workflow snippet teaches
node-version: 20andpnpm/action-setup, neither of which this repo uses) is about the page's fenced sample; this one is about the ledger entry describing the page's prose literal.