Skip to content

Commit 9ece34f

Browse files
committed
fix(pm): drop the stale root-walk residue row for check:pm-half-states
CI red at `Lint & Repo Gates` step 32 (run 34759389219): `dispatch-gates self-test: 1 of 1682 case(s) failed` — 「every gate CI runs whose own source sweeps the repo root is DECLARED whole-tree, declared path-less, derivable by path, or a justified row in ROOT_WALK_RESIDUE_LEDGER — listed but no longer a member: check:pm-half-states」. Root cause, measured: this PR's self-test reads two sibling sources as program text — `sweep-stale-finding.mjs`, to pin that it still ALIASES the one stale-`finding` screen rather than re-growing a copy, and `check-prior-rulings. mjs`, to pin that the prior-ruling line's writer still prints the key the patrol greps. The derivation reads those literals and now places the family BY PATH (`dispatch-gates scripts/pm/sweep-stale-finding.mjs` ⇢ 「program text read by scripts/pm/check-half-states.mjs」), so it left the residue population — and the ledger reds on a listed family that is no longer a member, by its own contract: a stale exclusion is an exclusion nobody measures. The repair is the ledger's, ⛔ not the self-test's: the row goes, with a note saying why the family left and why this placement is the OPPOSITE of the #15753 one the row was written about — that one came from a noise-floor constant and said the opposite of what the constant declares, while these two literals are exactly what the self-test reads. A card touching either sibling now really does owe this gate. `dispatch-gates --self-test`: 1682 of 1682 pass, exit 0. Claude-Session: https://claude.ai/code/session_01DAcomhvR9kKizeYgg89Vo8 Co-authored-by: Claude <noreply@anthropic.com>
1 parent 5630520 commit 9ece34f

1 file changed

Lines changed: 12 additions & 9 deletions

File tree

scripts/pm/dispatch-gates.mjs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3227,15 +3227,18 @@ export const ROOT_WALK_RESIDUE_LEDGER = [
32273227
+ '(the pnpm script would drag the scan in with it). The repo-root default parameter belongs to the scan half '
32283228
+ 'CI does not schedule, so a whole-tree row for this family would advertise work no workflow performs.',
32293229
],
3230-
[
3231-
'check:pm-half-states',
3232-
'lint.yml runs the SELF-TEST HALF and never the sweep — the npm script is `check-half-states.mjs '
3233-
+ '--self-test`. The `git ls-files` oracle that vouches for the root walk is read ONCE PER LIVE SWEEP, after '
3234-
+ 'the board gathering, so it belongs to the networked half-state patrol that no lint job schedules; a '
3235-
+ 'whole-tree row here would advertise work this family never performs. It became a member under #15753: it '
3236-
+ 'used to be placed BY PATH on every changeset card, through the gate\'s own noise-floor constant read as a '
3237-
+ 'watch surface — a placement that said the opposite of what the constant declares.',
3238-
],
3230+
// ⚖️ `check:pm-half-states` LEFT this population under #16904's D2 and its row
3231+
// is gone with it — a listed family that stops being a member reds here, and
3232+
// a stale exclusion is an exclusion nobody measures. It is now placeable BY
3233+
// PATH, and truthfully: `check-half-states.mjs`'s self-test reads two sibling
3234+
// sources as program text — `scripts/pm/sweep-stale-finding.mjs` and
3235+
// `scripts/pm/check-prior-rulings.mjs` — to pin that the sweep still ALIASES
3236+
// the one stale-`finding` screen rather than re-growing a copy, and that the
3237+
// prior-ruling line's writer still prints the key the patrol greps. So a card
3238+
// touching either sibling really does owe this gate, which is the opposite of
3239+
// the #15753 placement this row was written about: that one came from a
3240+
// noise-floor constant and said the opposite of what the constant declares,
3241+
// while these two literals are exactly what the self-test reads.
32393242
[
32403243
'scripts/symbol-anchors.mjs --self-test',
32413244
'a shared grammar-and-extractor LIBRARY, invoked by CI only as its own self-test; its `git ls-files` runs over a '

0 commit comments

Comments
 (0)