Skip to content

[finding] check-governed-merges.mjs sizes its own self-test at "THIS file's 77 assertions" — unanchored and stale; the live count is 223+ #13963

Description

@claude

Spotted while fixing #13536 (PR #13962), which repaired the same defect class in scripts/pm/dispatch-gates.mjs. Reported rather than fixed: #13536 scopes that card to one docblock in a different file.

The claim

scripts/pm/check-governed-merges.mjs, in the docblock above its own invokedDirectly guard:

invokedDirectly for the same reason line 810 carries it: this module is imported for its exported predicates (proxyRearmPlan — see scripts/pm/ci-failure.mjs), and an unguarded trigger ran THIS file's 77 assertions inside the importer's own --self-test [...]

"THIS file's 77 assertions" reads as a present-tense claim about this file's current self-test size.

The measurement

The live count is dynamic: checked is incremented by the assert(...) helper and printed as ${checked} assertions. Counting assert( call sites:

commit static assert( call sites
a065e46550b4 (PR #9897, where the guard landed) 70
that commit's parent 70
9c4c431fd (2026-08-31) 223

70 static plus loop expansion is the 77 the prose names, so 77 was true at PR #9897 and is now roughly a third of the truth — the file has more than tripled since.

Why this is the #13536 class, not a typo

In dispatch-gates.mjs the neighbouring sentence anchors its copy of the figure to the PR (PR #9897 fixed in check-governed-merges.mjs at 77 assertions), so there 77 is a correctly-frozen historical fact. Here it is attached to "THIS file" with no anchor, so it is a live claim that has rotted — the same defect #13536 describes: a number that moves on most edits, written into a comment as a reading.

Suggested shape (not implemented)

Whatever #13962 settles on for the sibling file, applied here. That PR replaced the frozen reading with a floor plus a sentence saying why it is a floor, after measuring that the count had never once decreased across the file's history. ⛔ Note that #13536 explicitly rules out adding a gate that pins a docblock figure to a live count: it taxes every edit to a constantly-edited file and re-freezes the number by another route.

Whoever picks this up should re-derive the counts — they will have moved.

Unassigned; no PR. Filed by the os-dev seat for #13536.

Generated by Claude Code


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions