You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Survey: which scripts/** self-tests cannot prove they ran — and the two that now can (#13797)
* fix(gates): battery roster floor + verdict handshake for check-self-test-wired
Its --self-test decided success by `failures.length === 0` alone and its
dispatch discarded the call's completion, so an early return printed nothing
and exited 0 -- in the gate whose subject is that a shipped self-test runs.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
* fix(gates): battery roster floor + verdict handshake for check-self-test-workflow-commands
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
* feat(scripts): measure-self-test-floor — census of self-tests that cannot prove they ran
Two orthogonal holes, counted separately and never summed: no assertion floor
(static, published criterion) and no verdict handshake (measured by injecting
an early return and reading the exit code). Both instruments are driven against
known-holed and known-sound fixtures on every invocation, and a control failure
refuses instead of printing a smaller number.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
* fix(gates): refuse the ledger-growth remedy in check-self-test-wired, and record the shape
check-ratchet-remedy-authority went red on this branch and is green on main:
the remedy sentence is older than this PR, but a comment added here named
SELF_TEST_RUN_OTHERWISE and its shrink-only nature one line apart, which pulled
the target inside anchorFor's 400-character window for the first time.
The message now says what the ledger's own docblock already said -- wiring the
self-test is the whole remedy -- and the legitimate row is named as a
maintainer's judgement of evidence. Shape recorded in the control corpus.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Pk26oZ12t5N1hwGW1m1MgC
---------
Co-authored-by: Claude <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: scripts/check-ratchet-remedy-authority.mjs
+34Lines changed: 34 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -701,6 +701,40 @@ const CONTROL = {
701
701
why: 'PR for #11341. Refuses by binding a negation to the verb, over a shrink-only baseline holding only the child-environment leaks that predate the gate; their repair is a card per neighbourhood, so no authority is missing.',
702
702
},
703
703
704
+
// The sixth refusal instance, and the first to arrive because a gate's own
705
+
// SHRINK TESTIMONY MOVED rather than because its remedy did (#13489). Its
706
+
// remedy sentence is unchanged from before that card and was reachable the
707
+
// whole time; what changed is proximity. `anchorFor` reads the ±400 characters
708
+
// around every mention of a DECLARED target, and this gate's `⛔ SHRINK-ONLY`
709
+
// banner sits at the top of a docblock long enough to push the const's own
710
+
// name out of that window. A comment added elsewhere in the file named
711
+
// SELF_TEST_RUN_OTHERWISE and its shrink-only nature one line apart, stage 2
712
+
// reached the target for the first time, and a remedy that had been offering
713
+
// registry growth for as long as it existed became visible.
714
+
//
715
+
// ⛔ The lesson is about this detector, not about that comment: a gate whose
716
+
// testimony sits just outside the window is INDISTINGUISHABLE here from one
717
+
// with no ratchet at all, and the difference is a docblock's length. Recorded
718
+
// rather than engineered around — the window is a deliberate precision choice
719
+
// (widening it was measured and rejected), so the honest response is to know
720
+
// that `excluded` can mean "not reached yet".
721
+
//
722
+
// Refusal — not marking — because the ledger's own docblock already says it:
723
+
// "Nothing joins this list to silence a finding: a gate that really does ship
724
+
// an unrun self-test gets wired instead." The author-facing message had been
725
+
// contradicting that sentence; it now agrees with it. The legitimate row still
726
+
// exists and is named, as a maintainer's judgement of evidence rather than as
727
+
// an escape from wiring. Both refusal limbs fire on the rewritten sentence:
728
+
// the negation bound to the verb, and the act denied as its own subject.
729
+
//
730
+
// ⚠️ The two shapes are quoted HERE and not in the `why` below. Putting them
731
+
// in the string made this file read as an instance of its own convention and
732
+
// reddened self-test case (1) — measured, on the first attempt at this entry.
733
+
'check-self-test-wired.mjs': {
734
+
expect: 'refused',
735
+
why: 'PR for #13489. Refuses by both limbs at once over a shrink-only ledger — see the sentence quoted in the comment above — because wiring the self-test is the whole remedy and it is the landing author\'s. Reached for the first time when a comment elsewhere in that file put the ledger\'s name and its shrink-only nature one line apart, inside anchorFor\'s window; the remedy sentence itself is older than this card.',
736
+
},
737
+
704
738
// The tenth, and the fourth to join as a NEW gate rather than by retrofit
705
739
// (#13582). Marking rather than refusal, on the same reading as the seventh
706
740
// through ninth: there IS a legitimate act here and it has an owner. The gate
0 commit comments