Personal project · Active
Private health domainHealth Intelligence
Turning private health evidence into reproducible understanding, without asking a model to decide what the numbers mean.
Health Intelligence is the Health domain of AlanOS. It compares current evidence with my personal history, makes missing or ambiguous data visible, and produces briefings whose statements can be traced back through the calculations that support them.
The working system is deliberately model-disabled. Deterministic code owns measurements, periods, baselines, comparisons, citations, and safety. Optional narration remains blocked; the useful product already exists without it.
Why I built it
Health data is plentiful but fragmented. Individual metrics can be easy to collect and surprisingly hard to interpret: devices overlap, evidence goes missing, timezones shift, and a change can look important only because the comparison is poor.
I wanted something quieter than another dashboard. The useful question was not “what did the device record?” but “what changed relative to my own history, how complete is the evidence, and what can I responsibly say about it?”
The evidence path
Rendering diagram…
What exists today
The deterministic V1 is released and operates locally. Broader longitudinal intelligence is still developing around that working path.
- A read-only evidence boundary
- HealthKit and Eufy evidence stays in dedicated upstream collectors. Health Intelligence reads a rebuildable PostgreSQL projection; it does not mutate the vault or become a second evidence store.
- Deterministic weekly briefings
- The released V1 calculates features, coverage, comparisons, and notable changes for sleep, resting heart rate, heart-rate variability, steps, and exercise. The same evidence pack renders stable JSON and human-readable Markdown.
- Daily state and planning
- Current command-line capabilities calculate a daily state against 28-day personal baselines, maintain explicit personal goals, and compile a bounded daily plan without turning the result into a universal health score.
- Reproducible private sessions
- Successful runs produce content-addressed manifests, briefing artefacts, evidence packs, lineage, and a compact health-state view. Atomic persistence keeps incomplete runs from replacing the latest complete result.
- Scheduled local operation
- A private macOS schedule runs the weekly briefing after evidence collection. Its operational status contains timestamps and success or failure only—never health values, credentials, or internal errors.
One capability, end to end
From a completed health week to a supported briefing
Each stage narrows uncertainty before the system produces owner-facing language.
- 01
Select two bounded periods
The service uses complete Monday-to-Monday health weeks in the declared local timezone.
- 02
Read current evidence
A read-only adapter fetches only the observations required for the current and reference periods.
- 03
Calculate features and coverage
Code owns units, joins, source reconciliation, missingness, comparisons, baselines, and confidence.
- 04
Build the evidence pack
Every supported fact carries its period, policy version, evidence references, limitations, and lineage.
- 05
Render and preserve
The validated pack becomes canonical JSON, deterministic Markdown, and an immutable private session.
Safety is an engineering boundary
Health language can become unsafe long before a system makes an explicit diagnosis. A rounded number, reversed comparison, or confident sentence over sparse evidence can still mislead.
Prompts are guidance, not enforcement. Health Intelligence keeps safety in schemas, evidence packs, deterministic validators, and conservative failure behaviour.
- 01
Unknown stays unknown
Missing or ambiguous evidence is never converted into zero, reassurance, concern, or a health judgement.
- 02
Association is not causation
The system may describe signals that coincided, but it does not turn an observed relationship into a causal claim.
- 03
Every material statement is traceable
A claim must identify its supporting fact, period, coverage, confidence, algorithm, and limitations.
- 04
The boundary remains non-clinical
The product supports personal wellness understanding. It does not diagnose, prescribe, monitor emergencies, or replace professional care.
The domain relationship
AlanOS defines the shared exterior; Health Intelligence owns the health interior. Its domain manifest declares external raw evidence, a confidential default visibility, current command-line capabilities, and a planned local Model Context Protocol surface.
Career Intelligence proved the domain pattern first, but Health does not reuse its schemas or knowledge. The two projects share contract language and privacy principles while keeping their data, policies, and capabilities independent.
Where it goes next
Read-only Model Context Protocol access is planned after the command-line boundary. Experiments and broader longitudinal capabilities are also planned; open-ended analysis and generated analysis code remain deferred.
Provider-neutral narration schemas and validators exist, but no model provider is configured or enabled. Narration should remain optional: if it fails validation, the deterministic evidence pack and briefing must remain complete and useful.
Technologies
- Core
- TypeScript, Node.js, Zod, Temporal, decimal.js
- Evidence
- PostgreSQL read models, HealthKit, Eufy, versioned schemas
- Quality
- Vitest, synthetic fixtures, question benchmarks, safety audits
- Operation
- Command-line interface, content-addressed sessions, macOS LaunchAgent
The goal is not to make health data sound certain. It is to preserve enough evidence, context, and restraint that a useful statement can also explain why it deserves to be trusted.