A claims corpus is screened by 22 deterministic detectors against 32 public CMS reference tables. Every dollar allegation is gate-recomputed. LLM reasoning is layered on top — to weigh judgment-required findings, write the investigator narrative, and hunt for novel patterns — but it never introduces a number the deterministic floor didn't produce.
32 named tables ingested from cms.gov / oig.hhs.gov / data.cms.gov. Raw files kept on disk for audit and discovery; provenance (sourceUrl, release, rows) recorded per table.
Each detector is a pure JS module that emits Findings — every one carries {claimIds, citation:{rule, computed, threshold}, exposureUsd, evidence.sourceRow}. The gate independently re-derives every cited number; non-reproducing findings drop. Output: referrals.detect.json.
One agent per judgment-required finding weighs whether the indicator stands or a benign explanation in the claim data dismisses it. Mechanical detectors auto-confirm. May subtract, never add. Output: referrals.adjudicated.json with {status, adjudication:{reason, by, confidence}} on every finding.
Was the column-2 service clinically distinct? Would modifier 59 be defensible with documentation?
Is the diagnosis truly non-covered, or does a covered comorbidity on the claim rebut it?
Is the z-score actually anomalous, or explainable practice pattern? Frame as estimate, never recoverable.
Was the E/M unrelated to the surgery (modifier 24 defensible)?
One agent per provider writes the investigator-facing case from the adjudicated findings — every $ figure audited against the floor. A separate discovery agent hunts cross-provider patterns the detectors don't encode, then a 3-vote adversarial panel tries to refute each lead. Output: referrals.final.json.
Restates each confirmed finding's rule + computed-vs-threshold in "indicators consistent with [scheme]" language; sets priority; pulls verbatim source excerpts.
Reads the corpus + detect output, proposes ≤3 patterns NOT covered by D1–D22 (rings, beneficiary-sharing, temporal clustering).
3 independent skeptics per lead, each prompted to refute. Survives only on majority confirmation.
Self-contained artifacts from referrals.final.json only. Every finding card shows the literal triggering reference-table row inline + a one-row CSV download + the upstream CMS dataset link.
After the table is rendered, the same skill asks one question: was there anything we missed — a claim that should have fired, a rule we don't have, a pattern you're seeing? The answer is free-form; a small router agent classifies it into one of the channels below and appends a typed record. No separate command, no context switch — the run isn't done until the reviewer has had a chance to teach it.
Per-finding verdict + free-text reason on any packet card.
"This claim should have fired" — claim ID + the rule the user believes applies.
Coverage article, state Medicaid bulletin, payer policy PDF the reference layer lacks.
A pattern description from the field — "we're seeing X across these NPIs."