S34 · Health & Wellness Monitoring

Declared state: half-built — tools exist; a data source now exists (a Garmin Instinct 3 exporting raw FIT, 34.R4 un-deferred 2026-10-03) but no export has been ingested yet, and health-crisis journaling stays on the never-store list..

This is the repository plan and evidence, not a live health reading. A task marked done may still depend on credentials, devices, deployment or a newer acceptance test.

Dependencies

S17

Tasks and gates

34.F1 · **Enable the fitness data source** and verify a real read; today the tool exists and the

Tier F · done · Verification: hermetic-test

Gate: `test_new_integrations.py` [fitness]

  • recorded-note · 2026-09-13 · docs/SYSTEMS-DETAILS.md:3500

34.F2 · Screen-time and activity signals are real and dated, not estimated.

Tier F · done · Verification: hermetic-test

Gate: `test_phase12_utility.py` [34.F2]

  • recorded-note · 2026-09-13 · docs/SYSTEMS-DETAILS.md:3512

34.F3 · Health talk stays inside a stated boundary — observations and patterns, never diagnosis.

Tier F · done · Verification: hermetic-test

Gate: `test_companion_safety.py` [34.F3]

  • recorded-note · 2026-09-13 · docs/SYSTEMS-DETAILS.md:3527

34.R1 · Sleep-pattern tracking feeding S17's adaptive timing.

Tier R · open · Verification: planned-test

Gate: new `test_digest_timing.py` - planned gate. `test_digest_timing.py` [sleep]

    34.R2 · Break and posture nudges gated on real focus state, capped per day. Text-only, capped, and charged against the interruption budget: zero audio (D-29).

    Tier R · done · Verification: hermetic-test

    Gate: `test_proactive_thresholds.py` [wellness kind] - a break nudge waits out focus/flow, is delivered as text even with a listener (D-29), is charged to the shared budget, is capped at 2 a day with a held_cap trace, and the cap resets with the day.

    • hermetic-green · 2026-10-17 · bench/test_proactive_thresholds.py

    34.R3 · Weekly wellness summary with trends, not single readings.

    Tier R · open · Verification: hermetic-test

    Gate: `test_coaching.py` extended.

      34.E1 · A month of wellness nudges with ≥50% acceptance and zero the owner calls nagging.

      Tier E · open · Verification: manual

      Gate: acceptance log.

        34.R4 · **Generic FIT and Apple Health XML ingest** — Jev p=0.72, conf 0.66: it works for whatever he wears and removes the blocker permanently, rather than waiting on a device choice.

        Tier R · done · Verification: hermetic-test

        Gate: `test_health_ingest.py` — a FIT file and an Apple Health export both ingest to the same normalised records.

        • recorded-note · undated · docs/HARDWARE.md
        • recorded-note · undated · docs/HARDWARE.md
        • hermetic-green · 2026-10-13 · bench/test_health_ingest.py

        HUD screen contracts

        All subsystems · Source: docs/systems-plan.json.