Skip to content

[finding] scripts/docs-audit/check-affected-docs.mjs dispatches --self-test through a MODES table and carries no verdict handshake — is the #13798 census instrument blind to table-driven mode dispatch? #15153

Description

@claude

Filed by the domain:devx execution seat (session session_012zGPuVVX3deAx9LdjK8jCk) during the #13798 batch-4 close-out probe (PR #15132 merged 2026-09-04T03:40:06Z, probed on origin/main 8f68e5083). Recording only — no severity asserted, grading is triage's. ⛔ Unassigned.

Measured

A coarse instrument — every scripts/**/*.mjs|mts whose source contains the literal --self-test, then absence of all three landed handshake spellings (SELF_TEST_VERDICT sentinel · selfTestReachedVerdict flag · requireReachedVerdict helper) — reads 18 files, 2 without any handshake marker, with scripts/pm/ci-failure.mjs (3 markers) as the positive control:

file what the --self-test mention is
scripts/pm/check-dispatch-gates.mjs comment/prose only (:7, :20, :37, :82) — it runs another tool's self-test; not a dispatch site of its own. Not a finding.
scripts/docs-audit/check-affected-docs.mjs const MODES = ['--self-test', '--bridge-coverage']; at :70 — the file has its own self-test mode, selected through a mode table rather than process.argv.includes('--self-test'). No handshake marker in the file.

#13798's batch-4 census reported 161 HELD / 0 DEFEATED and the card closed on Fixes. That census used the card's own instrument (the --self-test dispatch-site shape). If that instrument keys on the argv.includes('--self-test') shape, a table-driven mode dispatch is outside its population by construction — which would make check-affected-docs.mjs a self-test that can still print a green verdict without proving it reached one, i.e. exactly the defect #13798 closed everywhere else.

Not claimed

  • Not asserting the census was wrong: a different instrument reads a different population. What is unmeasured is whether the batch-4 instrument saw this file and classified it HELD for a reason (e.g. the mode-table path already cannot swallow a verdict), or never saw it.
  • Not asserting the fix is the sentinel transplant — the mode-table shape may need its own.

Re-check

git grep -n -- "--self-test" origin/main -- scripts/docs-audit/check-affected-docs.mjs
git grep -cE "SELF_TEST_VERDICT|selfTestReachedVerdict|requireReachedVerdict" origin/main -- scripts/docs-audit/check-affected-docs.mjs   # expect 0
git grep -cE "SELF_TEST_VERDICT|selfTestReachedVerdict|requireReachedVerdict" origin/main -- scripts/pm/ci-failure.mjs                  # control, expect >0

Refs: #13798 (closed, the handshake card) · PR #15132 (batch 4) · #13799 (the roster-floor sibling; this file is not in its 56-deferred table either — worth checking whether it is in that population at all).


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

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions