# Assertion removal ledger `scripts/verify.mjs` may only lose an assertion by adding an entry here. The gate counts the `## ` headings in this file and allows exactly that many removals below the recorded floor — so a reduction is impossible without a written reason landing in the same commit, as a visible diff. Adding an entry is not a formality. An assertion pins a real contract; removing one means that contract is now unverified. Say where it moved, or say plainly that nothing checks it any more. ## vote-service one-vote-per-IP contract **Removed:** 2026-09-06, when `vote-service/` was taken out of this repository. **What it asserted:** that `vote-service/main.go` contained both `X-Forwarded-For` and `one active vote per skill` — the review desk's only anti-abuse control, one vote per visitor enforced server-side by source IP. **Why it went:** there is no file left to read. The check was a substring match against source that now lives elsewhere. **Where it must be re-asserted:** in whichever repository holds the service. The deployed service still enforces the contract; nothing in this repository proves it. If `vote-service/` ever comes back here, restore the assertion and delete this entry.