Skip to content

[finding] Recipe A floors the table rows only — 24 inline assertions in three now-ROSTER self-tests still register nothing on a green run #15296

Description

@claude

Measured while landing #13799 batch 7b (PR #15286) on 4dd5041bd. Filed unassigned, as a finding only.

The reading

Recipe A floors a table-driven self-test at its table rows. Three of the four files in that batch also carry assertions that are not rows — written inline, one at a time, below the driving loop:

file rows floored assertions carrying no floor
scripts/check-agent-model-declared.mjs 18 4 (the discovery block: *.md only, a missing .claude/agents/, a directory holding no .md, real-tree discovery)
scripts/check-startup-registry-verdict.mjs 18 8 (expectRoot(...), the dead-root reverse proof)
scripts/js-comment-mask.mjs 23 12 (the interpolation view, pushed onto extra by the x(...) helper)

That is 24 assertions whose disappearance is still indistinguishable from their passing: each writes into the shared failure sink only when it FAILS, so deleting one leaves the run green and the verdict line unchanged.

Why this needs a card rather than a note

The census (node scripts/measure-self-test-floor.mjs) reads per file. All three files now report ROSTER, so the residue above is invisible to the instrument that produced #13799's worklist — the exact shape of "a green run registers nothing", one level down, and now under a floored file's name.

⚠️ Note what the fix is NOT. For js-comment-mask's extra the rows exist only because an x(...) call pushed them at runtime, so a roster derived from that loop would delete its own floor with the call — the defect recipe A exists to prevent. Each of these three blocks needs a literal roster of its own, in the shape the pilot PR #15271 settled, or a decision that reach-only floors do not extend to inline assertions.

Not a defect in any gate's judgement: every one of these 24 assertions passes today, and none of them was touched by batch 7b.


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