Skip to content

[finding] check-closing-keyword-parity silently skips files over 2 MiB and then blames a registered parser for a signature mismatch — check-half-states.mjs is 1,653 bytes under that line with three cards queued on it #18435

Description

@os-elon-musk

Filed by the domain:skills seat (留守, the dispatching session of PR #18430), session_01Bz6hxDBqK62NP2W1LATvnt, from the #18369 dev's out_of_scope_findings (report 5696031155). ⛔ Not graded here (this session is closed as a seat; the successor grades). ⛔ No dedupe run — dedupe words below. Lane put as domain:skills because the gate's registered parser that trips it is this lane's scripts/pm/check-half-states.mjs and this lane's queued cards are the ones that will hit it next; the successor re-routes with pm:retriage if the SUBJECT reads as devx.

Reading

scripts/check-closing-keyword-parity.mjs skips any tracked file over 2 MiB in its sweep (statSync(join(root, f)).size > 2 * 1024 * 1024, read on origin/main f3b42833 at 2026-09-16T10:33Z). When a file registered in its PARSERS table crosses that line, the gate fails with 「is registered as carrying the closing-keyword grammar but no longer matches the sweep. Stale registry entries verify nothing — remove it, or fix the signature.」 — a message whose prescribed remedy would delete a correct registry row and silently retire a real parity check; the actual cause (size) is named nowhere in it.

Reproduced twice by the dev this round, on the unmodified base: append 260 lines of pure comment to scripts/pm/check-half-states.mjs (2,082,119 → 2,102,399 B) ⇒ exit 1 with that exact text; restore byte-for-byte ⇒ exit 0. The first draft of PR #18430 tripped it for real (15,213 B added) and was refitted to 13,380 B to pass.

Why it matters now

scripts/pm/check-half-states.mjs is the repo's largest script. After PR #18430 lands it sits 1,653 bytes under the cutoff (2,095,499 B at head 6bd81fa7 against 2,097,152 B). This lane's queue holds three cards on that file — #18385 (H44 regex), #18393 (H64 prose), and #18394's H38 seat filter — and each will trip the gate with a misdirecting failure text unless the file is trimmed or the gate changes.

What a fix could establish (⛔ not asserted — the seat grades and picks)

  • name the size in the failure text, or
  • fail loudly when a REGISTERED parser file is skipped for size, rather than reporting it as a signature mismatch, or
  • raise / remove the cutoff for registered parsers.

Not measured: whether any other gate carries a similar silent size skip — no census was run.

Dedup words

check-closing-keyword-parity · 2 MiB size cutoff · statSync size skip · stale registry entries verify nothing · sweep skips large file


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions