AboutWorkTimelineProjectsContact
← Back to all projects
In ProgressOpen SourceEval-GatedPrevention-First

Baseline - AI Health Coach

A prevention-first AI health coach that turns wearable data into one plain-language decision a day, right in your chat

Problem

We generate more health data than we can act on. Wearables surface dozens of metrics, but the value has shifted from the number to the interpretation — most products either dump raw data or hide it behind a black-box score no one trusts. So trackers get abandoned within months, and the signals on your wrist that predict long-term health go unused. What if the coach lived in the chat you already use, gave you one decision a day, and proved every claim against your own data?

1 / Day
Decision
100%
Grounded

What I Learned

The moat isn't the model — it's the eval harness. The moment coaching quality became a number I could gate on — safety, data-faithfulness, relevance — every prompt change stopped being a vibe check and became a test. Second: design the interfaces first. Every external dependency — the LLM, WhatsApp, Google Health, the database — sits behind a Protocol with a mock, so the whole product runs and is fully tested offline, and going live is a config swap, not a rewrite. Third: prevention is a different product than engagement. Optimising for daily actives would reward anxious checking; the real win is one calm, grounded decision a day that never pretends to be a diagnosis.

Stack

PythonFastAPISQLite → PostgresEval harnessGoogle Fitness API

Deep Dive

The architecture

How do you build a health product that can swap its data source, model, and channel without a rewrite?

Put every external dependency behind a narrow interface. Wearable data becomes one DailyMetrics shape; the LLM, channel, retriever, and database are each a Protocol with a mock. The whole system runs and is fully tested with zero API keys — and going live is a config swap, not a rewrite.

Why the evals are the product

How do you trust an AI coach not to make things up — or give unsafe advice?

A golden-set eval harness scores every message on safety, data-faithfulness, and relevance, and fails the build if safety drops below 95%. That gate is the line between "an LLM said something" and an evaluated product — and it let me change prompts with tests instead of guesswork.

Designing for prevention, not anxiety

How do you coach on health data without feeding health anxiety?

Optimise for one calm decision a day, never daily actives. The coach refuses to diagnose: it frames everything as a deviation from your own normal ("6 bpm above your usual 58") and gates escalation behind an age- and history-aware check so it won't alarm low-risk users. "Worth mentioning to a doctor," never "you have X."

Built test-first

How do you ship a multi-surface AI product solo and still trust it works?

Test-first, across twelve TDD loops. Because every dependency is mocked, the whole journey — onboard, log a meal from a photo, log a workout, get a grounded insight, ask why — runs in a single offline test. "Does it still work?" becomes a two-second answer.

Links