Rules decide, the AI explains
A language model is great at conversation and bad at being consistent, so every coaching decision comes from explicit, tested logic. Claude words it, asks the one question that matters, and negotiates only within the options the rule already allows. That split is the whole architecture.
Sit above the devices, not beside them
Each source is trusted only for what it measures well. COROS is the single source of truth for runs; Health Connect supplies sleep, HRV and resting heart rate but is deliberately never used for runs, because it holds duplicate copies of the same run from several apps.
Never change the plan unilaterally
Garmin rewrites the week the moment a run deviates, without knowing why. A cut-short run could be fatigue, an injury or a bathroom stop, and only the athlete knows which. So Odu proposes and the athlete disposes — notice, ask, then decide together.
Recovery-aware, not recovery-driven
If HRV is low and resting heart rate high two days running before a hard session, the coach mentions it and offers an easier option. It never swaps the session on its own. Recovery data informs the conversation rather than overriding it.
Paces move slowly, and only on evidence
A fitness estimate is taken per run from pace against heart-rate reserve, then six weeks are combined with a weighted median so one hot day or a loose strap cannot swing it. Paces update at most one small step a week, only when the evidence holds, and the coach says why.
Context rebuilt on every message
The coach never relies on chat history for facts. Each message rebuilds the athlete's context from the database: the plan and its rationale, active memories, recent runs labelled today or yesterday, past decisions, recovery, food and fitness.