A contract that proposes a req: label breaks the citation gate the moment it is
written. requirement_labels.rs scans spec/ as files, not as git objects, so an
untracked draft is already in scope: the instant a draft cites a label the .tex
does not define, every_requirement_citation_is_defined goes red. Nothing is wrong
with the tree, and the known-green baseline the mutation discipline depends on is
gone. Four occurrences now, each rediscovered from scratch.
The procedure, as four points: a proposed label requires a temporary
DISCUSSED_NOT_CITED row as review scaffolding; that scaffolding authorizes no
dispatch work; the minting pin owns its removal, because the row's claim
(discussed, never cited) becomes false when the requirement lands; and a landing
gate must prove the citation test passes because the label exists, not because it
remains allowlisted — asserting the row absent and the \label present, since
those two states are indistinguishable from a green test alone and a stale row is
inert.
Placed after the touch-table rule, whose "recurring escapees" note is the same
shape of hazard: a mechanical consequence of how the suite reads spec/, invisible
until it bites, and cheap once written down.
Its own change, not folded into P13-S29: the rule outlives the rung that
prompted it, and CLAUDE.md is not in that contract's touch table.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ps1szk2mSfgp4Cz21eVH9x