Skip to content

Commit 6a3cc13

Browse files
claude[bot]claude
andauthored
docs(devx): name the swallow-census control families in the usage header (#15754) (#15764)
The header claimed "all 4 control families" for `--self-test` and "the 3 families CI runs" for `--self-test=gated`. Measured on the branch base, the file declares SEVEN families and `gated` asserts SIX of them. Written as a NAMED list rather than a bare integer, so the next family added contradicts a list and not a number, and pointing at `SELF_TEST_MODES` plus each mode's verdict line as the authority. Three further stale counts of the same list, elsewhere in the file's comments, are corrected the same way. Comments only; no behaviour change. Claude-Session: https://claude.ai/code/session_012zGPuVVX3deAx9LdjK8jCk Co-authored-by: Claude <noreply@anthropic.com>
1 parent aedbaef commit 6a3cc13

1 file changed

Lines changed: 31 additions & 9 deletions

File tree

scripts/measure-durability-swallow-family.mjs

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,28 @@
77
// node scripts/measure-durability-swallow-family.mjs --sites # every site
88
// node scripts/measure-durability-swallow-family.mjs --json # machine
99
// node scripts/measure-durability-swallow-family.mjs --file <p> # one file
10-
// node scripts/measure-durability-swallow-family.mjs --self-test # all 4 control families
10+
// node scripts/measure-durability-swallow-family.mjs --self-test # every control family
1111
// node scripts/measure-durability-swallow-family.mjs --self-test=gated
12-
// # the 3 families CI runs
12+
// # every family but POSITIVE_CONTROLS
13+
//
14+
// THE CONTROL FAMILIES, NAMED rather than counted, so that the next one added
15+
// contradicts a LIST and not an integer -- which is exactly how the two bare integers
16+
// that stood here before went stale, unread, as further families landed:
17+
// `POSITIVE_CONTROLS`, `NEGATIVE_CONTROLS`, `REGRESSION_CONTROLS`, `RESOLUTION_CONTROLS`,
18+
// the `DETERMINED` register cross-check (#13886), the copied gate-vocabulary cross-check
19+
// (#15459), and `WORKLIST_READING_CONTROLS` (#15503).
20+
//
21+
// `--self-test=gated` asserts every one of them EXCEPT `POSITIVE_CONTROLS`, and that
22+
// asymmetry is the point of the split rather than a convenience: the single expression
23+
// `gated ? [] : POSITIVE_CONTROLS` is the ONLY thing either mode drops, and it drops
24+
// those controls because they pin MEMBERS of the #12981 worklist that the repair
25+
// programme exists to REMOVE -- a control a successful repair destroys cannot hold a
26+
// CI gate.
27+
//
28+
// ⛔ THIS PARAGRAPH IS NOT THE AUTHORITY: `SELF_TEST_MODES` is (with the next block,
29+
// for what CI runs and why), together with the verdict line each mode prints, which
30+
// NAMES the families it just asserted. A reader who finds either of them disagreeing
31+
// with this list should trust them and repair this list.
1332
//
1433
// THE CENSUS is NOT a gate: it exits 0 on any membership count, it prints "a
1534
// MEASUREMENT, not a gate" on every run of it, and the file is deliberately not
@@ -484,8 +503,9 @@ const REGRESSION_CONTROLS = [
484503
/**
485504
* RESOLUTION controls: a (call site -> body) pair that must not move.
486505
*
487-
* The other three families all read MEMBERSHIP, and membership cannot see this
488-
* defect. Measured, on the tree the scope-aware index landed against: the flat
506+
* The other membership-reading families -- POSITIVE, NEGATIVE, REGRESSION -- all
507+
* read MEMBERSHIP, and membership cannot see this defect. Measured, on the tree
508+
* the scope-aware index landed against: the flat
489509
* last-wins index misresolved 27 reached call sites, and the census printed
490510
* byte-identical output before and after the repair — 56 members, 98 quiet, the
491511
* same stats. A control that reads the census output is therefore GREEN against
@@ -943,9 +963,9 @@ function staleLines(stale) {
943963
*
944964
* ## Why there is a subset at all
945965
*
946-
* All four families were green only while somebody remembered to run them by
947-
* hand: measured on `origin/main`, nothing in `package.json` or `.github/**`
948-
* named this script. The same resolver was then repaired three times (#13459,
966+
* The families that existed then (POSITIVE, NEGATIVE, REGRESSION, RESOLUTION)
967+
* were green only while somebody remembered to run them by hand: measured on
968+
* `origin/main`, nothing in `package.json` or `.github/**` named this script. The same resolver was then repaired three times (#13459,
949969
* #13474, PR #13915) with no gate holding any of the previous repairs, and the
950970
* census's numbers feed #12981's repair worklist, so a wrong denominator
951971
* propagates into that programme unwatched.
@@ -962,8 +982,10 @@ function staleLines(stale) {
962982
* repairs THAT file. ⛔ A gate that reddens on success is not a gate, and worse,
963983
* it teaches the fleet to route around gates.
964984
*
965-
* So `gated` is the families the repair programme CANNOT destroy — three at
966-
* #13919, joined by the `DETERMINED` register at #13886 (last section) — and the
985+
* So `gated` is the families the repair programme CANNOT destroy — NEGATIVE,
986+
* REGRESSION and RESOLUTION at #13919, joined by the `DETERMINED` register
987+
* (#13886, last sections), the copied gate vocabulary (#15459) and the worklist
988+
* readings (#15503, whose case is made at `WORKLIST_READING_CONTROLS`) — and the
967989
* exclusion is PERMANENT rather than pending (#13919 ruling of 2026-09-01,
968990
* boundary 1): repairs move a member from tier `dark` to tier `channelled` and
969991
* it stays a member, so neither the negative controls, the regression controls,

0 commit comments

Comments
 (0)