Story-2504 · functions lane · RFD-DOC-006 D8 / D9 / D11 · ER-12 / ER-32
Judge every admitted pair, account for every dropped pair
Fixture-only path
context.assertions v2 occurrence pool
↓ stable scan order
same Original + confirmed twin + prior/duplicate pair filters
↓ caller-supplied matter judgment budget
typed comparator candidate fixture
↓ verdict fixture (judgment agent is Story-2503)
context.comparator_runs + context.comparator_verdicts
↓ deterministic projection
pending documents.reading_findings
The serving worker and route graph are unchanged. No fixture path is wired into live orchestration before the wave cutover ticket.
G5c budget receipt
Each run stores candidate, judgment, held, same-Original, confirmed-twin, already-judged, duplicate-candidate, and budget-drop counts. A database check requires the drop census plus judgments to equal the candidate count.
Same ink is not a contradiction
Exact duplicate lineage uses the document content hash, falling back to the original document identity. Confirmed twins enter through an explicit mapping seam; copied or merely similar documents are not silently treated as twins.
Judge, then hold
A missing or conflicting side check does not rewrite counsel's declaration and does not save budget. The pair may still be judged, but its verdict and Reading Finding remain held until the side is confirmed.
Counsel correction invalidates dependent work
The fixture correction seam creates a re-judge receipt, holds affected verdicts, supersedes their pending or decided findings, and persists review flags for any kept Finding, Brief dependency, or chronology dependency whose egress class flips in either direction. A replacement judge pass links old and new verdicts and findings into one durable supersession history.
Tenant and authority proof
Comparator tables force firm RLS, grant the runtime role no delete, use firm-leading indexes, and retain composite foreign keys to matter, document, run, verdict, and Reading Finding authority. The real-Postgres fixture test proves same-firm persistence and cross-firm zero rows.