Label semantics
The part integrators get wrong. A label is not a severity — severity is measured, published, and yours to derive. Every list on this page is generated from the served guidance, so it cannot drift from what the engine does.
Success labels
The only labels that positively assert a verification outcome, and therefore the only ones that may reach a clean verdict.
Existence is not currency
verified_statute_exists says the section is real, not that it is in forcestatus.If you are gating on current law, derive your success set from
label_classes as usual, then additionally reject status in repealed, recodified, omitted, eliminated, former, historical_range, transferred, renumbered. null, range, reserved and vacant are not currency findings. Where a section was recodified, successor names the current section — which may sit in a different title.Applies to
verdict_check_citations, verdict_check_brief, verdict_check_ai_output, verdict_get_law. Since guidance 1.14.1 (disclosure; the gate has always been section-level).§ 401-02 where the source printed §§ 401–02 — verifies just the same, and the envelope keeps the dash glyph but not the section-mark count. A consumer that must catch that transcription defect needs its own source-versus-output check; this gate will not be its detector.Coverage gaps
A gap means “no corpus we hold claims this cite” — nothing more. It has already survived the rescue chain before you see it, so it is a meaningful review signal, but it is never proof of fabrication and must never block. Gate it as unknown.
typed_hallucination_categoryAccusations, and their published precision
We measure our own accusation labels and publish the numbers. Where a label's measured precision does not support blocking, the guidance says so — and your gate should read that rather than assume.
| Label | Tier | Precision | Measured |
|---|---|---|---|
| case_name_mismatch | review | 0.255 | 2026-08-21 |
| citation_year_mismatch | review | 0.667 | 2026-08-21 |
| case_name_variant | advise | n/a | release gate |
| not_found_in_covered_volume | block | n/a | release gate |
Fabrication-class labels run under a standing zero-false-positive release gate: every release re-proves zero false accusations over a fabricated/real probe corpus, and field false-positive classes are fixed same-day and disclosed.
Never gate on a shared type string
case_name_mismatch carries typed_hallucination_category: "citation" — the same string a genuine fabrication label carries — while measuring precision 0.255, which is why it is review, not block. A gate keyed on the type string promotes it and deletes a correct citation. Derive blocking from label_metrics.recommended_tier and nothing else.Everything else must be loud
These 17 labels are in neither class. Resolve them through label_metrics, advisory markers and the accusation category — and route anything left over to a bucket that refuses a clean verdict.
output_schema_sha256 of the tools you call, and let a label newer than your pin break your checker visibly.Our reference gate does exactly this, in about 200 lines with no dependencies — it derives its policy from the served guidance and is meant to be copied: see the tools for what it calls, and read label_metrics in the consumer guidance for the live numbers. Generated from guidance 1.14.1; where this page and the served guidance disagree, the guidance wins.