Filed from the #15410 sizing read (PR #15655, docs/audits/2026-09-self-test-shape-census.md). Recording only — unassigned, no claim, no repair proposed here.
The measurement
The whole --self-test census (179 members under scripts/**) was probed with scripts/measure-self-test-floor.mjs on origin/main at d30ccb9bd, re-verified at 1be26b0de: inject return; as the first statement of the function the dispatch calls, so the self-test runs zero cases, and read what the gate does.
| verdict |
count |
| HELD |
165 |
| DEFEATED |
4 |
| ACCIDENT |
1 |
| NOT MEASURED |
9 |
#13799's programme is 165 of 179 done. The residue is 4 rows, and this card is the 3 of them that are not already filed.
The rows
| script |
probe |
already filed |
scripts/check-closing-keyword-parity.mjs |
DEFEATED — exit 0, 0 bytes printed |
no |
scripts/check-settings-bind-window.mjs |
DEFEATED — exit 0, 0 bytes printed |
no |
scripts/pnpm-filter-targets.mjs |
DEFEATED — exit 0, 0 bytes printed |
no |
scripts/check-pnpm-filter-targets.mjs |
DEFEATED — exit 0, 0 bytes printed |
#15614 |
scripts/audits/14744-before-update-per-row-value-census.mjs |
ACCIDENT — exit 1, 0 bytes printed |
#15324 measured this row; the instrument was repaired to score it ACCIDENT rather than HELD, and the FILE is still unrepaired |
One shape, not four
All four discard the self-test's completion, so an early return yields undefined and process.exit(undefined) is exit 0:
else if (arg === '--self-test') process.exit(selfTest()); // check-closing-keyword-parity
if (flag === '--self-test') process.exit(selfTest()); // check-pnpm-filter-targets
if (flag === '--self-test') process.exit(await selfTest()); // pnpm-filter-targets
if (arg === '--self-test') selfTest(); // check-settings-bind-window
The repair the other 165 already carry answers the same mutation with one sentence — 159 of the HELD rows printed selfTest() returned without reaching its verdict.
Why this is worth a row rather than a line in the audit
The static floor class and the behavioural probe agree on this tree with a direction: every DEFEATED row is a static NONE, and no floored row is DEFEATED. So this list is not a grep's candidates — it is the measured, closed set, and it is small enough to finish.
Provenance: measured 2026-09-05, PR #15655, which publishes the per-script table and the method.
Filed from the #15410 sizing read (PR #15655,
docs/audits/2026-09-self-test-shape-census.md). Recording only — unassigned, no claim, no repair proposed here.The measurement
The whole
--self-testcensus (179 members underscripts/**) was probed withscripts/measure-self-test-floor.mjsonorigin/mainatd30ccb9bd, re-verified at1be26b0de: injectreturn;as the first statement of the function the dispatch calls, so the self-test runs zero cases, and read what the gate does.#13799's programme is 165 of 179 done. The residue is 4 rows, and this card is the 3 of them that are not already filed.
The rows
scripts/check-closing-keyword-parity.mjsscripts/check-settings-bind-window.mjsscripts/pnpm-filter-targets.mjsscripts/check-pnpm-filter-targets.mjsscripts/audits/14744-before-update-per-row-value-census.mjsOne shape, not four
All four discard the self-test's completion, so an early
returnyieldsundefinedandprocess.exit(undefined)is exit 0:The repair the other 165 already carry answers the same mutation with one sentence — 159 of the HELD rows printed
selfTest() returned without reaching its verdict.Why this is worth a row rather than a line in the audit
The static floor class and the behavioural probe agree on this tree with a direction: every DEFEATED row is a static
NONE, and no floored row is DEFEATED. So this list is not a grep's candidates — it is the measured, closed set, and it is small enough to finish.Provenance: measured 2026-09-05, PR #15655, which publishes the per-script table and the method.