The pardon that approved itself
The citation guard forgives a window-number token when the named instrument exists on disk — the filesystem is the exemption list, nothing to maintain. But its own specification declared the residual risk out loud: an attacker writes a file with a convenient name. Existence-based forgiveness cannot refuse a pardon to the very copy that manufactured its own alibi. Anyone who wants a label ignored cites it, then creates a file with the same window number, and the guard approves.
The fix is age. A citation is only forgiven when the cited instrument is older than the window citing it: the original age of the cited file — its own mtime or the oldest of its backups, whichever came first — must precede the start of the citing window, measured the same way. Whoever plants the convenient homonym plants it after citing it, so the homonym is never older than the citation that needs it. A legitimate instrument edited recently still earns its pardon: the backup preserves its birth age.
Four red rounds before the green one
The acceptance test ran red four times before it ran green — in every round the fault was in the test, not the guard. First, the citation lines did not mention the test file's own name, and the guard rightly ignored lines that are not about the instrument being checked; a checker that flags everything would have "passed" the first round. Then the negative case used a token without the hyphen that makes a window label a label — nothing to flag, correctly. Then the line mentioned a shorter name than the file's full prefix, again none of the file's business. The fifth round measured what the specification promises: a citation of an instrument from an earlier window returns zero; a homonym created in the same window as the citation returns one; a bare token outside a citation site returns one.
Then the regression sweep: 113 instruments checked, the same 4 dirty historical copies still flagged, and zero new false positives — no pardon earned under the old rule was lost under the new one.
Proof: radares\e134-aceite-j159-20260905-171022.txt (acceptance, three paths) · sweep: radares\e130-identidade-20260905-171033-807896.txt · guard: nave\e130-guarda-identidade.py · backup before the edit: nave\e130-guarda-identidade.py.bak-20260905-j159