From a0f83ec5ca906da8d25963df3784f0c7713168e8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 5 Sep 2026 10:21:09 +0000 Subject: [PATCH] chore(devx): state the react-page-adapter rot record as data and retire its held allowance row (#15765) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The `scripts/**` symbol-anchor corpus (#15806) landed with two dated `HELD_FILE_ALLOWANCES` rows for files live PRs held. PR #15770 landed, so the row for `scripts/check-react-page-adapter-contract.mjs` is free — and an allowance nobody retires is an exemption wearing a date. The four dated readings in that gate's rot-record paragraph are now stated as DATA — a small table with the file and the line number in separate cells — never in `path:NNN` anchor form. The NUMBERS ARE NOT REPAIRED OR REPOINTED: they are readings taken on a date, the paragraph's argument is unchanged, and its ⛔ line still declares every number a record rather than a pointer. The one substantive addition is that the paragraph no longer claims nothing resolves citations in `scripts/**` — since #15806 something does, which is why the anchor spelling had to go. The self-test battery floor moves 34 → 30 because four of its cases are registered PER allowance row; the reason is recorded next to the number so a later reader cannot mistake the drop for cases that stopped running. Co-Authored-By: Claude Fable 5.1 Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk --- scripts/check-react-page-adapter-contract.mjs | 31 +++++++++++++------ scripts/check-scripts-symbol-anchors.mjs | 18 +++++------ 2 files changed, 28 insertions(+), 21 deletions(-) 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