The remaining seven MetricKinds #12

Closed
opened 2026-08-26 09:14:33 +00:00 by GKaszewski · 0 comments
Owner

What to build

Adds the rest of the curated set from ADR 0007, following the pattern proven in #8: sleep minutes, awake minutes, resting heart rate, HRV, exercise minutes, screen time minutes, and alcoholic drinks.

Each is one newtype with its own valid range plus one MetricValue variant. Units live in the type — Hrv is milliseconds; no field carries a unit suffix.

The set is deliberately small and membership is earned. A MetricKind must have real day-to-day variance, be measured well enough to trust, and not restate one already present. ADR 0007 records what was rejected and why — blood oxygen and respiratory rate are near-constant in healthy people, wrist-based sleep staging is weakly validated, active energy and average heart rate restate steps and exercise, mindful minutes is zero for most people on most days, water is unreliable self-report, and weight moves with hydration rather than signal.

Do not add anything not on this list. Every added kind costs an expected false positive across the correlation set, which is what makes the survivors credible.

Alcohol is a count of standard drinks, matching what health providers already report — no conversion needed. Caffeine is deliberately absent: providers report milligrams, humans report cups, and nothing converts between them honestly.

Acceptance criteria

  • All seven newtypes exist with ranges enforced at construction
  • Each has a MetricValue variant; MetricKind derivation covers all of them
  • No field name carries a unit suffix
  • The bounded-integer macro from #8 is reused, not reimplemented
  • Exhaustive matches elsewhere fail to compile until every new kind is handled
  • Each can be written manually and read back end to end
  • No kind outside ADR 0007's list is added

Blocked by

## What to build Adds the rest of the curated set from ADR 0007, following the pattern proven in #8: sleep minutes, awake minutes, resting heart rate, HRV, exercise minutes, screen time minutes, and alcoholic drinks. Each is one newtype with its own valid range plus one `MetricValue` variant. Units live in the type — `Hrv` **is** milliseconds; no field carries a unit suffix. The set is deliberately small and membership is earned. A `MetricKind` must have real day-to-day variance, be measured well enough to trust, and not restate one already present. ADR 0007 records what was rejected and why — blood oxygen and respiratory rate are near-constant in healthy people, wrist-based sleep *staging* is weakly validated, active energy and average heart rate restate steps and exercise, mindful minutes is zero for most people on most days, water is unreliable self-report, and weight moves with hydration rather than signal. Do not add anything not on this list. Every added kind costs an expected false positive across the correlation set, which is what makes the survivors credible. Alcohol is a count of standard drinks, matching what health providers already report — no conversion needed. Caffeine is deliberately absent: providers report milligrams, humans report cups, and nothing converts between them honestly. ## Acceptance criteria - [ ] All seven newtypes exist with ranges enforced at construction - [ ] Each has a `MetricValue` variant; `MetricKind` derivation covers all of them - [ ] No field name carries a unit suffix - [ ] The bounded-integer macro from #8 is reused, not reimplemented - [ ] Exhaustive matches elsewhere fail to compile until every new kind is handled - [ ] Each can be written manually and read back end to end - [ ] No kind outside ADR 0007's list is added ## Blocked by - #8
GKaszewski added the ready-for-agent label 2026-08-26 09:14:33 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GKaszewski/k-mood#12