RFCs / RFC-0004 Health rule packs draft Edit on GitHubMarkdown

RFC-0004: Health and food-safety rule packs

Status: proposed, 2026-10-04. Kind: additive changes to the Humanitarian Profile rule model; new rule packs; a review record. Safety relevant: yes. Reviewers wanted: a registered dietitian and a food-safety officer. Not medical advice.

Problem #

The founder's second goal is a healthier world (M24, M48). Today one draft rule pack (basic-nutrition-food-safety) covers sodium, sugars, fats, rations and basic cold-chain rules. Missing: fruit and vegetables per meal, care for children, older people and pregnancy (foods to avoid, stricter reheating), school-meal patterns, a way to express "no raw egg" or "no unpasteurized dairy" (the rule kinds cannot say it), and a record of who reviewed what. Health content must be reviewable by professionals and must say what it does not do.

Proposal #

  1. Rule model (additive):
    • Item.foodClasses: a list from a closed enum (raw_egg, undercooked_egg, raw_meat, raw_fish, unpasteurized_dairy, soft_cheese, raw_sprouts, high_mercury_fish, honey, whole_nuts, hard_candy, alcohol, caffeine_high, deli_meat_cold, leafy_greens_raw, cut_melon, cooked_rice, none);
    • Rule.kind gains food_class with check.foodClass and check.audience;
    • Rule.audience stays free text; a new optional audienceGroup enum (all, children_under_5, children, pregnant, older_adults, immunocompromised) lets a program select rules for the people it serves.
  2. **reviews** on RulePack (additive): [{ role, organization, date, scope, outcome (approved, approved_with_changes, rejected), notes }] where role is a profession (for example "registered dietitian"), never a person's name. status moves to reviewed only when at least one review with approved* exists.
  3. New packs (all status: draft, derived from public guidance, each rule with a source):
    • care-vulnerable-groups: food classes to avoid for children under five, pregnancy, older adults and immunocompromised people; reheating and hot-holding stricter; cooked rice time limits;
    • school-meals-basic: per-meal fruit and vegetables minimum, sodium and free sugars maxima per meal, energy range per meal by age band;
    • sodium-reduction: per-meal sodium maxima consistent with the WHO daily guideline spread over three meals, with a warning tier and a block tier for programs that adopt it.
  4. Review template (docs/health/REVIEW-TEMPLATE.md): how a dietitian or food-safety officer reviews a pack, rule by rule, with a checklist (source current? population right? unit right? block vs warn justified? jurisdiction?) and how to file the review.
  5. Claims policy (docs/health/CLAIMS-POLICY.md): general nutrition and food safety only; no diagnosis; condition-specific diets only with a clinician's targets entered locally (PersonNutrition.clinician); packs say which populations they exclude; infant and therapeutic feeding excluded.
  6. Mapping to Core safety limits: hot-holding, two-stage cooling and reheating rules in the packs correspond to SafetyLimits kinds time_temp and min_core_temp for robot kitchens; the mapping is documented, not automated.

Alternatives considered #

  • Encode personal nutrition targets in packs. Rejected: personal targets are PersonNutrition, local and sensitive; packs are population rules.
  • A medical profile. Rejected: outside what can be claimed without clinicians and regulators.

Migration #

Additive. Existing packs validate unchanged.

Open questions #

  1. Energy per meal by age band varies by country table; the pack ships one global default and tells programs to replace it. Is a per-country pack structure needed now? Proposal: later, as extends.
  2. Fruit and vegetable grams per meal: use 80 g portions and a per-meal minimum of one portion as the default. To be confirmed by a dietitian.