Filed by the domain:skills seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) to carry item 3 of decision card #14978, ruled A, measurement first by the maintainer on 2026-09-04 (decision batch #27, verbatim 「同意」; director record #14978 (comment)). Pure code, this lane's; not a governed surface.
What the ruling says
check-ratchet-remedy-authority (the #8435 detector) walks scripts/ NON-RECURSIVELY (corpusFiles(), a readdirSync admitted by extension — check-ratchet-remedy-authority.mjs:43 and :242), so the 14 gates under scripts/pm/*.mjs — including the per-file line ratchet the 2026-09-03 cross-file-move exception amends — have never been in its sweep; a self-test assertion (PR #14860) pins the non-recursive walk so that a wider walk reds there and makes the widening a decision someone takes.
- Step 1 — measure: in a throwaway worktree, widen the walk to
scripts/pm/** and produce the roster of hits (every scripts/pm/*.mjs whose author-facing text offers a registry-growing remedy without the ⛔ MAINTAINER-ONLY token or an outright refusal), with the verdict class each lands in.
- Step 2 — one PR: add
scripts/pm/ to the scan and bring every hit under the convention (mark the expanding remedy ⛔ MAINTAINER-ONLY, or refuse it outright — never push a refusing gate onto the marking shape); update the self-test that reds on a widened scan in the same PR so the widening is the explicit decision it was built to force; the roster and each hit's disposition in the PR body. If the roster is empty, the PR is the one-line scan widening plus the self-test flip.
- ⛔ Not C (recursive
scripts/**, an unmeasured area). Surface: scripts/check-ratchet-remedy-authority.mjs plus the hit scripts/pm/*.mjs files only.
Refs
#14978 (item 3, ruled A) · #8435 (the convention) · PR #14860 (the self-test pin) · #14685 item 5 / PR #14860 (the cross-file-move exception the gate documents).
Generated by Claude Code
Filed by the
domain:skillsseat (sessionsession_019RfFHiRCSs3JXLK4cwcfox, os-steve) to carry item 3 of decision card #14978, ruled A, measurement first by the maintainer on 2026-09-04 (decision batch #27, verbatim 「同意」; director record #14978 (comment)). Pure code, this lane's; not a governed surface.What the ruling says
check-ratchet-remedy-authority(the #8435 detector) walksscripts/NON-RECURSIVELY (corpusFiles(), areaddirSyncadmitted by extension —check-ratchet-remedy-authority.mjs:43and:242), so the 14 gates underscripts/pm/*.mjs— including the per-file line ratchet the 2026-09-03 cross-file-move exception amends — have never been in its sweep; a self-test assertion (PR #14860) pins the non-recursive walk so that a wider walk reds there and makes the widening a decision someone takes.scripts/pm/**and produce the roster of hits (everyscripts/pm/*.mjswhose author-facing text offers a registry-growing remedy without the⛔ MAINTAINER-ONLYtoken or an outright refusal), with the verdict class each lands in.scripts/pm/to the scan and bring every hit under the convention (mark the expanding remedy⛔ MAINTAINER-ONLY, or refuse it outright — never push a refusing gate onto the marking shape); update the self-test that reds on a widened scan in the same PR so the widening is the explicit decision it was built to force; the roster and each hit's disposition in the PR body. If the roster is empty, the PR is the one-line scan widening plus the self-test flip.scripts/**, an unmeasured area). Surface:scripts/check-ratchet-remedy-authority.mjsplus the hitscripts/pm/*.mjsfiles only.Refs
#14978 (item 3, ruled A) · #8435 (the convention) · PR #14860 (the self-test pin) · #14685 item 5 / PR #14860 (the cross-file-move exception the gate documents).
Generated by Claude Code