diff --git a/scripts/check-react-page-adapter-contract.mjs b/scripts/check-react-page-adapter-contract.mjs index 469cf6f2df..e3a634b8ef 100644 --- a/scripts/check-react-page-adapter-contract.mjs +++ b/scripts/check-react-page-adapter-contract.mjs @@ -130,16 +130,27 @@ // fourth instance of a defect that is not there. // // ⚠️ Both citations above name a SYMBOL or a FILE, never a line, and that is -// deliberate (#15599). The first one read `packages/client/src/index.ts:310` -// when it was written; the #15094 census found that declaration at `:392` and -// triage read `:390` the same day -- a cross-file line citation that rotted -// twice inside one day, which is an argument against citing a line at all -// rather than for repointing it. The second read `client-sdk.mdx:659`; that -// sample had drifted off the cited line too. ⛔ Every number in this paragraph -// is a DATED rot record, not a pointer -- do not repair one. `scripts/**` is -// outside `check-adr-symbol-anchors`'s corpus (`docs/adr/**`, `.md` only), so -// nothing resolves these two for you -- but the form is this repo's own -// declared grammar, whose last line reads +// deliberate (#15599). The rot record that MADE it deliberate is kept below as +// DATA -- file and line stated as separate cells, never as a `path:NNN` +// anchor, because each number is a reading taken on a date rather than a +// pointer anything can resolve: +// +// the reading file line +// ------------------------------- --------------------------------- ---- +// the citation as first written `packages/client/src/index.ts` 310 +// the #15094 census found it at `packages/client/src/index.ts` 392 +// triage read, the same day `packages/client/src/index.ts` 390 +// the second citation, as written `content/docs/api/client-sdk.mdx` 659 +// +// One cross-file line citation rotted TWICE inside a single day -- an argument +// against citing a line at all rather than for repointing it -- and the second +// one had drifted off its cited line too. ⛔ Every number in this paragraph is +// a DATED rot record, not a pointer: do not repair one, and do not write one +// back into `path:NNN` form. Since #15806 this repo DOES resolve citations in +// `scripts/**` comment prose (`scripts/check-scripts-symbol-anchors.mjs`, a +// second corpus registration), so an anchor-shaped number here is judged and +// reds -- which is the same conclusion the grammar already states, whose last +// line reads // `⛔ /.ts:4901 A LINE NUMBER IS NOT AN ANCHOR FORM.` // (`scripts/symbol-anchors.mjs#ANCHOR_GRAMMAR`), and a symbol name stays // checkable by grep where a number does not. diff --git a/scripts/check-scripts-symbol-anchors.mjs b/scripts/check-scripts-symbol-anchors.mjs index dd894c7121..33fe82dab3 100644 --- a/scripts/check-scripts-symbol-anchors.mjs +++ b/scripts/check-scripts-symbol-anchors.mjs @@ -145,16 +145,6 @@ export const CENSUS_15765 = { * The only admissible reason is the hot-file serial queue. */ export const HELD_FILE_ALLOWANCES = Object.freeze([ - Object.freeze({ - file: 'scripts/check-react-page-adapter-contract.mjs', - dated: '2026-09-05', - heldBy: 'PR #15770 (#15599)', - why: 'The citation is the WORKED EXAMPLE of the rot this whole gate exists for, and its own ' - + 'paragraph declares every number in it a DATED ROT RECORD that must not be repaired. ' - + 'The file is also held by a live PR of this lane, so it is not this card\'s to edit. ' - + 'Both halves are resolved by the same follow-up: that paragraph names the file and the ' - + 'numbers as data rather than in anchor form, on the PR that lands after #15770.', - }), Object.freeze({ file: 'scripts/check-adr-0087-registration.mjs', dated: '2026-09-05', @@ -250,8 +240,14 @@ function assert(cond, msg) { if (!cond) { console.error(`❌ check-scripts-symbo // The count is a FLOOR, not an equality — adding cases is ordinary work and must // not red. A battery BELOW its floor means cases stopped running; the remedy is // to find what stopped registering. +// ⛔ Four of these cases are registered PER `HELD_FILE_ALLOWANCES` row (the +// exactness loop below runs four `check()`s over each row), so retiring a row +// legitimately lowers this floor by 4 — and that is the ONLY reason it may be +// lowered. 34 → 30 when the `scripts/check-react-page-adapter-contract.mjs` +// row was retired (#15765). Any other drop is cases that STOPPED RUNNING; find what +// stopped registering instead of moving the number. const SELF_TEST_BATTERIES = Object.freeze({ - 'check-scripts-symbol-anchors self-test': 34, + 'check-scripts-symbol-anchors self-test': 30, }); // DELETING an entry silences that battery's floor exactly as effectively as