Domain

Health

My health records, watch and scale data, compared with my own normal, with every statement traceable to its evidence.

Health data is easy to collect and hard to read. Devices overlap, data goes missing, and a change can look important only because the comparison is poor. I wanted something quieter than another dashboard.

Health answers three questions: what changed compared with my own history, how complete the evidence is, and what can honestly be said about it. Code does the measuring and the comparing. A model never decides what the numbers mean.

What it holds

Watch, phone and scale data
Sleep, heart rate, heart-rate variability, steps, workouts and body composition, sent by the collectors. Health reads a copy it can rebuild at any time; the originals stay with the collectors, unchanged.
My medical record
Pathology results and how they trend, medications from the dispensing record, conditions and episodes. A record counts only after I have checked and attested it, and any later edit removes that attestation.
My own normal
Personal ranges worked out from my recent history, and the goals I have set. A change is judged against my normal, not against a population average.

From evidence to a weekly briefing

The evidence

Watch and phone

sleep, heart, steps, workouts

Scale

weight and body composition

Medical record

results and medications, attested by me

Calculated in code

units, overlaps between devices, gaps in the data, comparison with my own normal, confidence

Evidence pack

every fact with its period, its source, how complete it was and what it cannot show

Factresting heart rate above my normal
Periodthe last full week
Completenessmost nights recorded
Cannot showwhy it changed

Weekly briefing

written from the pack by code and kept with everything it was built from, so the same week always gives the same briefing

A model proposes claims

each one citing facts from the pack

Validator in code

checks every claim against the evidence it cites

Supported

said, with its citation

Unsupported

withheld, with the reason

How evidence becomes a statement in Health. Code does the measuring and the comparing. A model can only propose, and a validator in code decides what is said.
  1. 01

    Pick two complete weeks

    The week that just ended and the one before it, each Monday to Monday in my time zone.

  2. 02

    Read only what is needed

    Health reads the measurements for those two weeks and nothing else, without changing any of them.

  3. 03

    Calculate in code

    Units, overlaps between devices, gaps in the data, comparisons and confidence are all worked out by code. No model is involved.

  4. 04

    Build an evidence pack

    Every fact is written down with its period, where it came from, how complete the data was and what it cannot show.

  5. 05

    Write the briefing and keep it

    The pack becomes a briefing I can read, saved privately with everything it was built from, so the same week always gives the same briefing.

The safety rules

Unknown stays unknown
Missing or unclear data is shown as missing. It is never turned into a zero, a reassurance or a worry.
Together does not mean caused
When two signals moved at the same time, Health says exactly that and stops there.
Every statement is traceable
Each statement names the fact behind it, the period, how complete the data was and how confident the calculation is.
Health does not diagnose
It helps me understand my own data. Diagnosis, prescriptions and emergencies belong to a doctor.

These rules live in code: schemas, validators and checks that stop a briefing before it says something the evidence cannot support. A prompt can only suggest. Code can refuse.

The Health app inside the console: what to look at against personal normal ranges, goals, and today's sleep, resting heart rate, heart-rate variability and steps.
The Health app in the console: what to look at against my personal ranges, my goals, and today's sleep, heart and steps.

How it fits in AlanOS

Health is confidential by default. Its interface, a set of MCP tools, runs only on my home server and never hands a model the text of a medical document. The runtime and the console read it there, and a scheduled run writes the weekly briefing once the week's data has been collected. What that run reports about itself is success or failure, never a health value.

Its data comes from the iPhone app and the scale reader. Career proved the domain pattern first and has an interface on the internet. Health shares the pattern and keeps its interface at home.

It is built with TypeScript, Node.js, Zod and PostgreSQL, and tested with Vitest on invented data.

Health is built to be useful without sounding certain. Every statement it makes can show the evidence behind it and how much of that evidence there was.