Veritas Charting
Catches AI-written clinical notes that drift from what the patient actually said. Built at the Abridge AI Healthcare Hackathon.
- When
- Jul 2026
- Role
- Co-built with Rajeev Sethuraman
- Built with
- Python, FastAPI, Claude, FHIR, JavaScript
- Code
- Live demo and public code
- Links
- Live demoGitHub
- By the numbers
- 16 commits of mine over 3 working days, Jul 18, 2026 to Jul 20, 2026
What I built
Ambient scribes turn a doctor visit into a SOAP note. The dangerous failure isn't a garbled note, it's a fluent one that lists a medication the patient stopped, or turns a hedged "I don't think so" into a clean "denies." Veritas treats the note writer as a system under test: it audits every claim in the note against the patient's FHIR chart, the visit transcript, and the after-visit summary, then three independent Claude judges vote on each flag.
Rajeev and I split the work. I set up the dataset and the first prompts, tuned the auditor's severity weighting and reasoning, built the three-panel interface (transcript, note, flagged discrepancies with each judge's vote), and after the hackathon cleaned up the repo and shipped a static demo that replays a real run with no API key. Rajeev fed the chart and after-visit summary into the auditor and judges and built the self-scoring that measures how many planted traps we catch.
What was hard
Deciding which source wins. The chart is authoritative for measured facts, the clinician for judgment, and the patient for their own body and whether they took their meds. We wrote that authority model down once and gave the same text to the auditor and all three judges, then enforced it in code: a contradiction against an authoritative source gets bumped one severity level, and the finding keeps a record of why.
Judges disagree. Averaging their votes hid the interesting cases, so a split vote is shown as a split.
What I learned
When it caught a note listing a medication the patient never took, I realized AI fails quietly. A working prototype isn't the same as a tool people trust.
The hardest questions at the hackathon weren't technical. They were about who would use the tool and why they would trust it.
Results
On the demo case, a COVID-19 admission, it audited 72 claims, flagged 12, and the judges confirmed 5 drifts, one of them high severity.
Public demo anyone can click through. Every reasoning step returns strict JSON through tool use, so nothing in the pipeline parses free text.