From 9097996c942253492e3c069d8b995060b9a060f2 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 25 Aug 2026 18:03:41 +0000 Subject: [PATCH] fix(scripts): stop the optional-error-sink gate's own header lying about its narrowing count MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit :60 and :789 said "both"/"the two narrowings" while the file documents and pins three (Narrowing 1: as-cast, Narrowing 2: purity, Narrowing 3: unreadable member type, added by #11069) and its runtime string already prints "all three narrowings pinned as counts". Repointed both sentences to an integer-free spelling ("every narrowing below" / "the narrowings") so they cannot go stale again when a fourth narrowing arrives, matching the fix PR #12290 made for the sibling workflow-comment instance. :985 is left exactly as written — it is a correct past-tense statement about the state of the world before narrowing 3 existed (#11069's own history), not a present-tense claim. No behaviour, count, pin, or runtime string changed. --- scripts/check-optional-error-sink-contract.mjs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/check-optional-error-sink-contract.mjs b/scripts/check-optional-error-sink-contract.mjs index aee7785c8d..66624fba96 100644 --- a/scripts/check-optional-error-sink-contract.mjs +++ b/scripts/check-optional-error-sink-contract.mjs @@ -57,8 +57,8 @@ * misses a type someone names differently, and this repo has `LoggerLike`, * `MinimalLogger`, `OptionalLogger`, `FakeLogSink` and eight anonymous inline * literals — a name rule would have missed most of the population. Structural - * costs false positives instead, so both narrowings below are measured and - * their cost is printed on every run rather than argued in prose. + * costs false positives instead, so every narrowing below is measured and + * its cost is printed on every run rather than argued in prose. * * A SINK is: an interface, a type alias to a type literal, or an inline type * literal, all of whose members are function-typed and named from @@ -786,7 +786,7 @@ function run({ list = false } = {}) { // ── Self-test ─────────────────────────────────────────────────────────────── /** - * Every limb observed FAILING and observed SILENT, plus the two narrowings + * Every limb observed FAILING and observed SILENT, plus the narrowings * pinned as positive counts. * * The reject side is pinned deliberately: a matcher that stopped matching