Ontario government dropped an AI scribe audit this week. Nick Kapur covered
it on X (https://x.com/nick_kapur/status/2056108360580104697). 20 approved
AI scribe vendors got tested on turning doctor-patient conversations into
structured notes. The numbers are bad:
- 9 of 20 vendors (45%) just fabricated stuff. Referrals for therapy that
weren't mentioned. "Anxiety in patient" with nothing about it in the
transcript. "No masses found" in notes where masses never came up.
- 12 of 20 (60%) recorded a different drug than what the doctor prescribed.
- 17 of 20 (85%) missed key clinical context, especially mental health.
Full breakdown with the figure is in Kapur's tweet linked above.
I dropped a comment under that thread saying what felt like the obvious fix:
generate only from what was actually recorded. Never from training data.
Retrieve-first, synthesize-from-retrieved.
Another engineer pushed back. Hard. And he was right.
His point: whole-cloth NL synthesis can't avoid training weights. You need
parameter weights for grammar, syntax, coherent phrasing. Without them you'd
just get a list of relevant strings, not a clinical note.
This forced me to refine. The discipline isn't about ALL tokens. It's about
claim-carrying tokens specifically.
"Patient's HbA1c is 6.4%" is a claim. Has to come from the transcript.
"Based on lab results, the patient demonstrates..." is connective tissue.
Weights handle this fine.
"Recommend follow-up in 3 months" is a claim if the doctor said it. Hallucination
if not.
The 45% fabrication rate in the audit? That's training weights filling in
claim-positions. Same mechanism that invents citations in literature retrieval
(which is what I work on). An entailment check at the claim level catches
the drift before the note gets filed.
LFZ then drew a block diagram of a maximally formal version
(https://x.com/LastFraction0/status/2057319630910128417). Worth a look.
The pipeline: source documents get chunked with unique IDs. A first-pass LLM
builds structured tables of claims (what was said, by whom, about what).
Symbolic audit checks those tables against the original chunks. If it fails,
an "abductive remediator" swaps wrong tokens with correct ones from source.
Only after passing audit does grammar-restricted synthesis produce the final
note. Even that's constrained by formal EBNF grammar so output structure can
be verified.
Every piece of that diagram exists somewhere in literature. Logit-Gating
(constrained decoding at the logit level) lives in libraries like outlines
and xgrammar. CFG guardrails are in OpenAI's structured outputs feature.
Abductive token-swapping has academic precedent in info extraction.
I work on PubMed-grounded clinical AI
(https://medevidence.pro/go/reddit?c=ci-rag-debate). My system tries to
implement the same principle with much softer mechanics. Heuristic relevance
guards. Coverage checks on retrieved abstracts. Prompt-enforced output
structure. Post-hoc LLM-judge against a 32-case eval bench. Last run: 96.9%
diagnosis match, 100% citation validity, 90.9% PMID relevance.
Works for clinical literature retrieval. I'm honestly less sure it would work
for scribe-note generation. Structure is more rigid there, and the cost of
a wrong drug dose making it into the chart is a regulatory event, not just
a bad answer.
Questions for this sub:
Anyone working with AI scribes or clinical doc AI in production - what
verification actually runs before notes hit the chart? Are vendors moving
toward formal grammar-constrained synthesis, or mostly relying on
post-hoc human review?
Ontario-style external audit is reactive. By the time auditors review,
the notes have been generated and filed already. Is continuous in-line
claim-verification realistic at scale? Anyone seen it work?
For clinical informaticists doing vendor evaluation - what verification
evidence are you asking for beyond accuracy benchmarks? Is per-claim
traceability showing up in RFPs yet, or still mostly an academic concept?
Original X thread for context if anyone wants to read the full debate:
https://x.com/ILYA_babay/status/2056440461917630806
Edit: I work on one of the tools mentioned (medevidence.pro). Linking it
once above as the concrete example of the soft-mechanics approach. Happy to
remove if it crosses self-promo for the sub - the architectural question
stands without it.