--- name: lzheng-nutrition-system description: 建立、校验和复盘与当前训练计划联动的通用营养系统,包括建档、重训练/普通训练/休息日目标、餐食估算候选、用户确认入账和趋势调整;不用于疾病营养治疗、过敏原诊断或把照片估算包装成精确事实。 --- # Lzheng 通用营养系统 本 Skill 只负责营养建档、`nutrition_contract`、日型目标和复盘候选。训练计划决定日型,不按单次训练手表消耗临时补吃;工作台负责展示和记录,不能反向发明处方。 ## 开始前 1. 完整读取 [营养协议](references/nutrition-contract.md)。 2. 读取当前训练计划的真实日期排程、最近体重/腰围趋势、执行率、训练表现和已确认餐食;缺失或过期时标为待校准。 3. 营养变量按需读取 `../lzheng-training-expert-library` 的 Alan Aragon 模块。 4. 先确认目标、年龄、身高、当前体重、饮食环境、预算、医生已确认限制和主要执行障碍;未收敛前不输出精确热量。 ## 用户流程 `建档 → 得到当天目标 → 拍照或文字记录 → 查看区间估算 → 饭后反馈 → 用户确认入账 → 查看剩余 → 两周复盘` - 照片输出只能是候选区间、置信度和误差来源。 - `estimate` 是上桌总量,`consumed_estimate` 是实际摄入候选,`confirmed_nutrition` 才是正式入账。 - 只有用户主动创建任务并显式运行一次 Agent 才允许识别;空队列不调用模型,网页不自动轮询。 - 用户可以在候选区间内做确定性微调并保留 `agent_best` / `user_adjusted` / `user_manual` 来源。 - 已确认记录的更正必须留痕;不能静默覆盖原值。 ## 固定边界 - 热量公式只是起点,至少用两周同条件体重趋势、腰围、训练表现和执行率校准。 - 当前体重未知时保留 `awaiting_profile`,不生成伪精确目标。 - 蛋白质和脂肪保持相对稳定,训练日型主要调整碳水;七日加权平均必须符合周目标。 - 食堂、外卖和照片估算始终保留范围;压力进食后不使用禁食或惩罚性有氧补偿。 - 医疗、肾脏疾病、糖尿病、进食障碍、孕期、过敏或药物相关需求转交合格专业人员;急性严重症状立即就医。 - 个人照片、账号、密钥、环境 ID、Notion 地址和真实餐食数据不得进入公开模板或示例。 ## 生成与交接 验证结构化协议: ```powershell python scripts/validate_nutrition_contract.py ``` 协议通过且用户确认后,保存为当前系统的营养主源,并创建 `nutrition_contract_updated` 交接给 `lzheng-fitness-workbench-builder`。交接只传相对路径和确认状态;工作台刷新、发布副本、部署和线上验证必须分别报告。 ## 完成闸门 1. validator 与 `test_nutrition_system.py` 通过; 2. 当天日型来自真实日期排程,未知日期不猜测; 3. 周平均、宏量换算和调整上限通过测试; 4. 估算、实际摄入候选与确认入账三段没有混用; 5. 默认无自动触发器、无后台空查、无自动确认; 6. 示例保持匿名且体重为 `null`,不得出现虚构处方或私人配置。 ## 视频学习与三餐报餐 用户要把学到的饮食方法用于三餐、文字/照片报餐或标签复用时,读取 [学习与报餐](references/learning-and-meals.md)。保留用户接受的方法和目标版本,不用新的菜单替换计算依据。