Case Study · Mihir Choudhary · 6 min read

Claude told me a family member had kidney disease. They don't.

I used a frontier model to reconcile years of a relative's medical reports. It was genuinely useful — and it made five mistakes that, clinically, would matter. Here's what caught them, and why it wasn't a smarter model.

ONE REAL CASE · PERSONAL DETAILS REMOVED · NOT MEDICAL ADVICE

The short version. I sat down with Claude (Opus 4.8) and years of a family member's medical reports. It pulled scattered labs into one timeline and caught a slowly developing anaemia no single report had connected — a real gift. Then it invented a kidney disease, waved away a possible sight-threatening eye emergency, and manufactured a medication "error" that never happened. None of those were caught by the model being right. They were caught by process — independent review, tracing every claim to its source, and a human who knew the real clinical story. Then I turned each caught error into a factlet. The honest result is below, including the number that surprised me.

Genuinely useful — then clinically dangerous

I help with a family member's care, and I wanted one honest picture from a stack of PDFs no one had ever fully reconciled: what's going on, what's urgent, what to ask the doctors. Claude (Opus 4.8) was good at it. It pulled years of scattered lab reports into a single timeline and surfaced a slowly developing anaemia that no individual report had connected. That alone justified the exercise.

Then it made mistakes that, in a clinical setting, would matter a lot. I build software for a living, so I'll share them plainly — the lessons are about checking AI in high-stakes work, not vibes.

1. It contradicted itself inside one answer

Reading a lab trend, Claude told me — in the same paragraph — that a value was falsely high, and that the improvement might be an artifact (i.e. falsely low). Both can't be true. Each sentence was individually plausible; the pair was incoherent. Models generate text left to right and don't run a consistency check over their own output. Fluency hides it. I only caught it because I read closely and pushed back.

2. It labeled a normal result as a disease

It called a kidney result "CKD Stage G1." The value was normal, and you cannot stage chronic kidney disease from a single number — you need evidence of damage over time. Confident, authoritative, and wrong in a way that would frighten a patient.

3. Even the verifier was wrong

So I added a second model — Fable 5 — as an adversarial reviewer. It was excellent; it caught most of the real errors. But it introduced one, "correcting" a vitamin-D reading that was already right by confusing two unit systems (nmol/L vs ng/mL) and flipping "deficient" to "normal." The tiebreaker wasn't the smarter model. It was going back to the primary source — the printed unit on the report.

4. It fabricated an error out of a judgment call

In its own written summary, Claude reported that it had caught a medication a specialist had asked to stop that was still being taken — and framed it as a safety win. It wasn't true. Two doctors had simply disagreed: one suggested stopping a drug, and the treating physician reviewed it and deliberately chose to continue. The model compressed a legitimate difference of medical opinion into a false story of a mistake — and I nearly published it. Inventing an error that isn't there can damage the trust between a patient and their doctor as badly as missing a real one.

5. It downplayed a real emergency

Reading the eye records, Claude described a dangerously high, unmeasurable pressure in one eye as "probably a harmless steroid effect — just keep monitoring." But in an eye with this patient's specific condition, that pressure signals a possible sight-threatening emergency — one that needs same-week specialist review, not routine follow-up. The adversarial second model caught the under-triage before it reached the family. This is the mirror image of #4: in the same session, on the same organ, the model both invented a problem that wasn't there and waved away one that was. Confidently reassuring is every bit as dangerous as confidently alarming.

There were more — a wrong biological mechanism stated with full confidence, and a suggestion that would have stacked two drugs of the same class.

Nothing here was caught by the model being right

Every real error was caught by process: an adversarial second-opinion pass, strict traceability to the source document, and a human refusing to accept confident output at face value. The fabricated "error" was caught only because I knew the real clinical history; the downplayed emergency, only because an independent model escalated what the first had waved away. That's the whole safety story — and it's about the checks around the model, not the model's intelligence.

So I turned every error into a factlet

The constructive part: I turned each caught error into a factlet — a small, reusable "don't-repeat-this" fact with its source, using the open factlet.ai idea — plus a validator to enforce the structure. And I measured it honestly.

The factbook added roughly zero accuracy in the session that built it. It mostly caught its own bugs. That's the honest result, and I almost didn't believe it. Its real value is preventing recurrence: in a controlled A/B test, a fresh model handed the same task re-made 5 of the known errors with no factlets in context — and 0 with them. Grounding didn't make the current answer smarter. It made the next one safer.

What checking AI in a regulated domain actually takes

From this one real experience:

Why I'm building this

I'm not anti-AI — the opposite. Claude was a real gift here. But it's safe only because of the scaffolding around it: provenance, verification, factlets, human sign-off. Capability is getting cheaper; reliability that grows every session isn't. That's the layer I'm building at Kernora, on the open factlet.ai protocol. If you're putting AI where "confidently wrong" is unacceptable — clinical, financial, safety-critical — I'd like to talk.

Written from real experience; personal details removed. Not medical advice. Disclosure: I build factlet.ai — reported honestly here, including the ~0 in-session result.