Commit 8b8258d
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
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
883 | 883 | | |
884 | 884 | | |
885 | 885 | | |
886 | | - | |
887 | | - | |
888 | | - | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
889 | 890 | | |
890 | 891 | | |
891 | 892 | | |
892 | 893 | | |
893 | | - | |
| 894 | + | |
894 | 895 | | |
895 | 896 | | |
896 | 897 | | |
| |||
0 commit comments