# 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.
