# Anamnesis

- **Event:** [Meta Global AI Developer Hackathon](https://cerebralvalley.ai/e/meta-ai-developer-hackathon)
- **When:** Oct 26, 12:00 PM – Nov 4, 9:00 PM (EST)
- **Where:** Online
- **Team:** [Ahmed Zayed](https://cerebralvalley.ai/u/DrZayed)
- **GitHub:** https://github.com/DrAhmed7887/anamnesis
- **Demo video:** https://www.youtube.com/watch?v=r4TFxWLJ7Ls
- **Gallery:** https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery
- **Page:** https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1230

What the patient says vs. what's on the pack.

What it is. Anamnesis shows the clinician where a patient's account of their medicines and the pack photos disagree. It gives no medical advice, and every run so far is a staged test, not clinical use. Everything in the repository was written during the hackathon: its history starts with the first commit on 27 Oct 2026.

The problem. The record is often wrong about what patients take. In one outpatient practice, when patients' medicine bottles were compared with the doctor's record, 76% of patients had at least one discrepancy (Bedell et al., Arch Intern Med 2000). These are the study's numbers, not Anamnesis's. And a text-only chat before the visit can't see the pack.

What it does. Muse Voice Transcribe turns the patient's voice note into timed turns. SAM 3.1 marks each pack it finds in the photos. Muse Spark 1.3 picks the medicines out of the transcript and reads each label, and the label reader only ever sees the crop of its own box. A number a model writes is kept only if it appears in the patient's turns or in the label text the reader returned. Then plain code compares the two sides. No model decides a finding, and every finding links back to the audio turn and the image region it came from.

The clinician decides. If a label can't be read, the clinician can ask the patient for one new photo. Only that photo is processed, and the brief updates. The brief stays a draft until the clinician approves it. The code fixes the order. The clinician decides the pause. No model chooses an action. The pause ran live once, on a phone photo from a public dataset, with a synthetic voice note.

The follow-up runs by itself. Anamnesis can also run the follow-up by itself. After the intake, it asks the patient for a photo of each medicine they mentioned but didn't photograph, with a fixed message that names the medicine. It takes the replies, reads only the new photos, and stops when nothing is left to ask or after two rounds. A pack that couldn't be read stays with the clinician, and the brief stays a draft until the clinician approves it. Code fixes what to ask, in what order and when to stop: no model chooses an action. The follow-up ran live four times, on one public pack photographed twice and one synthetic voice note, and matched in 2 of 4. In the other 2 the reader marked the new photo partial, so Anamnesis asked once more, and the brief waits on the patient.

Results, as measured. These are staged tests, not a validation. On two Spanish boxes from Spain's medicines registry, with a synthetic Spanish voice note, the hero ran in five pre-registered sets of ten. In the third, with the boxes cropped to their front and the patient saying the generic names, 9 of 10 runs gave all three findings: 10 mg of bisoprolol said against the 5 mg Emconcor box, metoprolol matched to the Lopresor box, and the beta-blocker note. The first two sets got 3 and 4 of 10: the note's first words were lost, the uncropped images were read as partial, and the brand Emconcor was misheard. A fourth set, read by a second synthetic voice, got 2 of 10: "bisoprolol" came back as "visoprolol" or joined to the word before it, and names were matched as written. Muse Code then added two spelling rules (batch 32), and on that code the fourth set's note gave 10 of 10 from the product's findings, 0 of 10 by the registered scorer, which missed the renamed claim. The sets are never added together, and no run showed a harmful finding.

Open weights. On 303 generated test notes, in English and Egyptian Arabic, Muse Glimmer 30B tuned with a LoRA got every claim right on 290 notes, with 0 harmful claims after the product's checks. Spark 1.3 with the 29 Oct prompt, the product's default extractor, got 203. This is generated text, from one training run. The tuned model can run the product's claim extraction on Modal, and Muse Spark Open on Fireworks can read a pack once more when Spark 1.3 still can't. Both are optional and off by default.

How it was built. Claude Code wrote the spec and the acceptance tests. Muse Code wasn't allowed to edit them, and the gate fails any batch that does. Muse Code wrote the product code for batches 16 to 34: 25 batches, the last four of them after the freeze: the follow-up, the Spanish name fix, the label-salt fix and the Spanish salt names. A separate Claude Opus reviewer checked every Muse batch, and sent batch 23 back seven times in nine rounds. Every Muse Code build session is in the repository.

Limits. No patient data: the pack photos are rendered test images or public photos of real packs, the patients' histories are invented, and every voice so far is synthetic.

Track: Indie. Also entered for two bonus prizes: Best Agentic Use-Case, and Best Build on Meta Open Weight Models.

## More from Meta Global AI Developer Hackathon

- [Voxarah Capture](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1227)
- [PerritoTalk](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1228)
- [Biscuit - Kindred AI](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1229)
- [Walk Me There](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1231)
- [InvoicePilot](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1232)
- [hackdavid](https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1233)

---

Markdown version of https://cerebralvalley.ai/e/meta-ai-developer-hackathon/hackathon/gallery/1230. Site index for agents: https://cerebralvalley.ai/llms.txt · full text: https://cerebralvalley.ai/llms-full.txt
