Health Settings
Goals, biometrics, and training preferences (Tier 3 — operator-only).
Tier-3 autonomy lock
Diet target weight, kcal deficit, BMR formula, and macro split never autonomous. The platform's self-learning loop will write a sensitivity report (Tier 3) if a setting looks off — but the decision to change a value is yours.
Meal composition, workout description wording, and exemplar selection are Tier 1 (autonomous within tolerances). See CLAUDE.md gotcha #220 for the full three-tier model.
Configurable sections
Defaults live in services/health/models/settings.py::DEFAULTS. To override, INSERT a row into health_settings with your workspace_id and the JSONB columns you want to customize. The diet engine reads these at every plan generation.
- Biometricsheight_cm · age_years · sex · activity_factor
- Dietbmr_formula · kcal_deficit · protein_g_per_kg · fat_pct_of_kcal · dietary_restrictions
- Trainingweekly_session_target · z2_hr_floor · z2_hr_ceiling · rest/low recovery thresholds
- Weight goaltarget_weight_kg · weekly_kg_delta · anomaly thresholds
- Gamificationstreak_tolerance_pct · weekly_compliance_min_for_badge
- LLM routingper-task model class (fast / primary / cloud)
Phase-2 wiring: this page becomes a form (PATCH /health/settings with diff). For v1 — edit the JSONB row directly via psql or the Supabase Studio.