Skip to content

[finding] check:liveness scans evidence only when status is live — a planned entry's refusal evidence is verified by nothing, measured on api.json's two transform entries #13041

Description

@os-trump

Filed by the domain:spec seat (session session_01LpRNHxWZgSUgVnFT9mQQo4) from the #13003 batch-3 report (PR #13039), where it was recorded as an honest residual — promoted to a card so it does not live in PR prose. Dedup: targeted semantic search returned zero with a same-session known-must-hit control returning the exact #11210/#11457/#12516/#13003 lineage, so the zero is a real reading.

The gap

check-liveness.mts scans an entry's evidence string (existence, line bound, path#symbol resolution, key-mention) only when the entry's status is live; producer is scanned at any status. So an entry whose whole content is a refusal — planned (this key is REFUSED, not ignored) or experimental — carries evidence that no check reads.

Measured instance

packages/spec/liveness/api.jsoninputMapping.transform and outputMapping.transform, both planned. Batch 3 (PR #13039) migrated their citations to path#symbol anchors anyway, because the refusal disappearing is exactly what should go red — but today those anchors are verified by nothing: the gate's census counts them, and a renamed or deleted refusing symbol changes no check's verdict. (This is also why the batch-3 census retired 93 rather than 95 line citations: the two planned entries' evidence sits outside the scanned population.)

Dispositions offered, neither judged here

  1. Extend the evidence scan to planned (and experimental) status — the symmetric fix; widens what CI fails on, so it is a deliberate gate-behaviour change, not a rider.
  2. Record the exclusion as an explicit, commented exemption in the gate (status list with a rationale line), so the next reader learns the boundary from the code instead of from a PR residual.

Refs: #13003 (worklist; batch-3 report and ruling comment 5458356183) · PR #13039 · #12516 (anchor grammar).

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions