Commit 3933819
The #8435 detector walked one directory — a non-recursive readdir of `scripts/`
— so the fourteen `.mjs` files under `scripts/pm/` had never been read, and the
cross-file-move exception the 2026-09-03 ruling wrote into this gate's header
was documentary for exactly that reason: the ratchet it amends lives one level
down. A self-test assertion pinned that absence so a wider walk would red here
rather than let the class land in silence.
The walk now reads two directories, one level each. The roster was MEASURED
first, in a throwaway worktree at the same tree: thirteen of the fourteen files
classify `excluded`, and one — `dispatch-gates.mjs` — classified `unmarked`.
That one relays `check:type-check-debt`'s shrink-only ratchet remedy to the
landing author; its lead already named the maintainer as the owner of the raise
in prose, so what it lacked was the token, and it now carries it in that same
message. `check-skill-line-ratchet.mjs` — the gate the ruling amends — reads
`excluded`: its ceiling-raise remedy names the authority it requires and spells
the act outside this file's offer grammar, so the ruled exception governs an act
this detector never reaches and no verdict moved when the walk arrived.
Both readings are pinned rather than asserted. The declaration is now derived
from the walk itself — one flat-directory glob per (walked directory, admitted
extension) pair the sweep really opens a file for, held set-equal in both
directions — and the self-test assertion that used to demand the narrow walk
now pins the two-level one and the reached gate's `excluded` verdict, from the
walk, never from a typed count. No new verdict class; not recursive.
Claude-Session: https://claude.ai/code/session_019RfFHiRCSs3JXLK4cwcfox
Co-authored-by: Claude <noreply@anthropic.com>
1 parent 1bc3c09 commit 3933819
2 files changed
Lines changed: 244 additions & 62 deletions
0 commit comments