Skip to content

Commit 8b8258d

Browse files
docs(scripts): ratchet-remedy corpus — the i18n-walk-parity ledger no longer ships empty (#19154)
Fixes #15189 Clause-②: no ## What this changes One file, one entry, two prose sentences: `scripts/check-ratchet-remedy-authority.mjs`'s hand-classified corpus entry for `check-i18n-walk-parity.mjs` described that gate's exemption ledger as shipping **EMPTY**. It has not been empty since the maintainer ruled, on the parity gate's own first red, that the unwalked groups enter it with their reasons — and the described file records that move itself. Both sentences now say what is true. Nothing else moved: the classification, the `marked`-rather-than-`refused` reason, the ledger, its ceiling and its `MAINTAINER-ONLY` marking are all untouched, and `check-i18n-walk-parity.mjs` is not edited at all. ## The number question, and the choice taken The new prose carries **no count**. The card notes this family's failure mode is precisely a number copied out of another file going stale, and triage reported this as the seventh instance. Two further facts made the number-free wording the cheaper one here: - the ledger is **shrink-only**, so any count written here is only ever waiting to be wrong; - one of its three entries (`settings`) is declared in that file as a **DEFERRAL** held on #15178, so the ledger is expected to shrink — a quoted "three" would be stale by design. What the corpus entry needs to carry is that the ledger is shrink-only and that growing it is the maintainer's act — that, and not its size, is what makes `marked` the honest verdict rather than `refused`. Triage's literal wording ("filled to three … shrink-only from three") would have been equally true today; the dispatch left the choice open and this is the half that does not need re-syncing. ⛔ No house rule is proposed here — whether prose may ever quote another file's number is explicitly another card's question. ## Live reading of the ledger being described Read in-worktree at **2026-09-19T00:16:13Z** on `origin/main` @ `87f776bd7`, not copied from the card: ``` scripts/check-i18n-walk-parity.mjs:209 KNOWN_NO_EXTRACTOR_FACE keys: messages, settingsCommon, settings (3) scripts/check-i18n-walk-parity.mjs:232 LEDGER_CEILING = 3 ``` Same values the dispatch read two minutes earlier; no divergence to report. ## Evidence **Both batteries, before and after** — they are two different batteries and are reported as two: | invocation | before | after | |---|---|---| | `node scripts/check-ratchet-remedy-authority.mjs --self-test` | exit **0** | exit **0** | | `node scripts/check-ratchet-remedy-authority.mjs` (bare) | exit **0** | exit **0** | Bare run printed the identical verdict line on both sides — `257 scripts swept; 15 mark the expanding remedy, 5 turn it down outright, 237 hand out no ratchet-expanding remedy. Control corpus: 30 hand-classified scripts, set-equality audited both ways.` — so no verdict moved. `SELF_TEST_BATTERY_FLOOR` reads **21** before and after. The corpus entry's battery is **(16) The corpus-scale positive control**, pinned count **1** before and after; the self-test's green is itself the assertion that every declared battery met its floor. Nothing in the roster moved. **Residual reading, with a firing control taken from the probed file after the diff existed** (the control was derived by listing terms present in the file and absent from `git diff BASE HEAD -- PATH`, not pre-picked): ``` ships EMPTY -> 0 (also 0 case-insensitively) ships empty -> 0 battery -> 48 lines in the file, 0 in the diff (this control fires) ``` **The classification survived verbatim:** - `expect: 'marked'` — 15 occurrences in the file before and after; **0** of them appear as a `+`/`-` line in the diff. - the `refused`-would-be-untrue comment block (the reason the entry is `marked` rather than `refused`) — present once before and after, and it does not appear as a `+`/`-` line. - inside the one `why` line that did change, the trailing **174 bytes** are byte-identical: `; emitting the group is the author's remedy and is offered first, while exempting one is a decision with an owner, so that path is named with its owner rather than denied.',` Only the leading false clause was replaced. **Gates** derived in-worktree with `node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack` over the real changed-file set (1 path) — 28 commands; every one that has reported so far is exit **0**. By the tool's own warning that list is not a complete account of CI. ## Changeset `skip-changeset`. Verified rather than assumed: every published package declares `files: ["dist","README.md","CHANGELOG.md"]`, all package-relative, and the repo-root package is `private: true` with no `files`. The repo-root `scripts/` directory is inside no package and reachable from no published `files[]` entry, so this diff moves no published byte. --- _Generated by [Claude Code](https://claude.ai/code/session_017ef78bLdybu3AffehKkhfk)_ Co-authored-by: Claude <noreply@anthropic.com>
1 parent 74832b6 commit 8b8258d

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

‎scripts/check-ratchet-remedy-authority.mjs‎

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -883,14 +883,15 @@ const CONTROL = {
883883
// (#14653). Same reading as the seventh, eighth and ninth: the gate hands out
884884
// two remedies with two different owners. Emitting the group in the CLI
885885
// extractor is the landing author's and touches no ratchet, so it is offered
886-
// freely and first. The other path adds a group to a shrink-only exemption
887-
// ledger that ships EMPTY by triage ruling — the author excusing themselves
888-
// from the parity check they just failed — so it is named with its owner.
886+
// freely and first. The other path adds a group to an exemption ledger the
887+
// maintainer has since FILLED by ruling on that gate's own first red, and
888+
// which only shrinks from there — the author excusing themselves from the
889+
// parity check they just failed — so it is named with its owner.
889890
// `refused` would be untrue: a group keyed by strings no stack config declares
890891
// genuinely has no extractor face, so there IS a legitimate act here.
891892
'check-i18n-walk-parity.mjs': {
892893
expect: 'marked',
893-
why: 'PR for #14653. Its exemption ledger ships empty and only shrinks; emitting the group is the author\'s remedy and is offered first, while exempting one is a decision with an owner, so that path is named with its owner rather than denied.',
894+
why: 'PR for #14653. Its exemption ledger was filled by maintainer ruling on its own first red and only shrinks from there; emitting the group is the author\'s remedy and is offered first, while exempting one is a decision with an owner, so that path is named with its owner rather than denied.',
894895
},
895896

896897
'check-adr-links.mjs': {

0 commit comments

Comments
 (0)