{
  "status": "FROZEN_FOR_FUNCTION_DEMONSTRATION_PRODUCTION",
  "version": "function-linkage-revision-2026-09-24",
  "fixture": {
    "demo_only": true,
    "name": "体验用户",
    "sex": "男",
    "age": 35,
    "height": "175",
    "weight": "78.0",
    "bmi": "25.5",
    "fat": "24.0",
    "target": "72.0",
    "goal": "减重",
    "activity": "静态生活、坐位工作",
    "energy": null,
    "macro_percent": {
      "碳水化合物": 50,
      "蛋白质": 25,
      "脂肪": 25
    },
    "allergy": "无（示例本人选择）",
    "food_preference": "不喝牛奶，不吃香菜",
    "dates": [
      "09月24日",
      "10月08日"
    ],
    "repeat_weight": "78.0",
    "nutrition_note": "Do not show exact calorie prescription: old HEAD formula and current customer configuration not frozen."
  },
  "voice_hanzi_counts": {
    "user": 502,
    "channel": 622
  },
  "picture_budget_seconds": {
    "user": {
      "product": 140,
      "life": 6,
      "brand": 4,
      "total": 150
    },
    "channel": {
      "product": 168,
      "life": 4,
      "brand": 4,
      "diagram": 4,
      "total": 180
    }
  },
  "user": [
    {
      "id": "U01",
      "start": 0,
      "end": 8,
      "title": "一次体测接上今日安排",
      "view": "设备屏幕和手机“健康档案”同屏；圈出同一测量日期与身体记录标题，不出现真实身份；一次测量的结果 → 手机里可查的本人记录；开场直接建立设备与小程序关系，尾帧接设备操作；素材与能力：图/史＋联动演；P6/B2",
      "voice_sentences": [
        "把一次体测，接成今天的一餐、一练。",
        "同一个人，同一份记录。"
      ],
      "ui_views": [
        "device",
        "profile"
      ]
    },
    {
      "id": "U02",
      "start": 8,
      "end": 27,
      "title": "设备测量与扫码领取",
      "view": "已核设备模块选择→按真实操作测量→结束页；手机登录小程序，扫码领取本人记录、确认归属；必要时显示“等待数据”；未测→进行中→已得结果→待认领；真实录屏不能省掉身份核验剪成“谁扫谁拥有”；素材与能力：图/史；同会话链路待实；P19",
      "voice_sentences": [
        "先在一体机上完成测量。",
        "登录小程序，扫码领取本人记录。",
        "核对测量日期，再打开自己的健康档案。",
        "这次身体记录，就有了手机里可回看的位置。"
      ],
      "ui_views": [
        "device_video",
        "claim",
        "claimed"
      ]
    },
    {
      "id": "U03",
      "start": 27,
      "end": 44,
      "title": "本人档案与72公斤目标",
      "view": "“健康档案”→体重/身体记录→本次日期；字段为已到测量值、单位、来源、时间；一项未获取项目保持空态；返回目标/建议页，定位初始体重与目标体重、日期；待领取→档案新增一条；记录日期前后一致；身体记录与当前目标并列，缺项不填零；素材与能力：图/史/码；P17",
      "voice_sentences": [
        "打开健康档案，身高、体重和体脂率集中查看。",
        "核对测量日期，没有获取的项目保留空白。",
        "本次体重接上目标页，确认七十二公斤的目标。",
        "再看相应的饮食和训练建议。"
      ],
      "ui_views": [
        "profile",
        "goal"
      ]
    },
    {
      "id": "U04",
      "start": 44,
      "end": 66,
      "title": "习惯忌口与营养依据",
      "view": "目标“减重至72.0kg”贯穿；展示推荐能量与碳水/蛋白/脂肪比例；进入习惯/忌口资料或AI提问示意，体验用户从可选项确认运动习惯、用餐场景、食物过敏和忌口；无疾病设定；点确认资料/发送；只有测量与目标→补齐影响建议的条件→饮食工作流使用确认字段；画面指出哪些是输入，不能把普通聊天当全档案读取；素材与能力：目标/饮食结构化输入有码；AI主动追问与跨页引用为演；P22",
      "voice_sentences": [
        "身体数据之外，还要了解你的日常。",
        "平时怎么运动，午餐在哪里吃？",
        "有哪些偏好、过敏或忌口？",
        "把这些条件补充清楚。",
        "再看推荐能量，以及碳水、蛋白质和脂肪的搭配。",
        "资料不够，先继续问。"
      ],
      "ui_views": [
        "chat",
        "energy"
      ]
    },
    {
      "id": "U05",
      "start": 66,
      "end": 87,
      "title": "午餐搭配卡",
      "view": "“饮食建议”→“午餐”；明确菜名、克重、热量及当日三大营养素信息；以审定示例“米饭＋鸡肉＋青菜”说明组合；点击菜品/卡片仅在实际支持时录制，不做虚假“换一换”；泛泛问午餐→一组可阅读的具体搭配；偏好体现在食物结果；“一键录入”仅露出，不在未吃时点击；素材与能力：三餐卡有码；菜谱示例待审；P18/L3，L只拍对应一餐且最多3秒",
      "voice_sentences": [
        "点开午餐建议。",
        "菜名、份量和营养信息，一张卡里看清楚。",
        "米饭、鸡肉和青菜，怎样组合，要结合目标和条件。",
        "没有食堂，在家或外食也能参考选择。",
        "还没吃，就不要记成已经摄入。"
      ],
      "ui_views": [
        "meal"
      ]
    },
    {
      "id": "U06",
      "start": 87,
      "end": 106,
      "title": "25分钟课程选择",
      "view": "“运动建议”课程卡：课程名、duration_text（演示25分钟）、参考calories（标估算）；点进课程内容/视频；回到当前目标仍为减重至72.0kg；对固定消耗值不放大宣传；未选课程→查看动作与时长→选择本次课程；不把“看完”标记当成运动完成，也不把参考热量当实测；素材与能力：课程链有码；实际活动完成记录待核；P16/L3，L只对应课程环境",
      "voice_sentences": [
        "再点开运动建议。",
        "先看课程内容和时长，选择今天的二十五分钟安排。",
        "卡片上的活动热量是估算。",
        "看过课程，不等于完成训练。",
        "实际练了多少，再单独记录。"
      ],
      "ui_views": [
        "training",
        "course"
      ]
    },
    {
      "id": "U07",
      "start": 106,
      "end": 123,
      "title": "拍照核对并保存到日历",
      "view": "拍照/识别页→“本餐食物”→修改某菜克重、删除误识别项→“保存”→饮食日历新增一餐；摄入/消耗入口区分已记录与未知；反馈“今天只完成部分”作短交互示意；建议卡→真实记录候选→本人核对→已保存一餐；未记录运动不能变0消耗；同餐不重复用“一键录入”加一次；素材与能力：拍照修改保存/日历有码；实际活动反馈联动为演；P17",
      "voice_sentences": [
        "吃完后，拍照记录这一餐。",
        "检查食物，修改份量，删除认错的项目，再保存。",
        "回到饮食日历，就能查看本餐记录。",
        "没有记录的活动，也不当成零消耗。"
      ],
      "ui_views": [
        "food_log",
        "calendar"
      ]
    },
    {
      "id": "U08",
      "start": 123,
      "end": 138,
      "title": "同人复测与日期回看",
      "view": "再见同一设备与体验用户；领取第二次记录；同一档案切首次/复测日期，显示两次来源和测量条件；若做并列差值，明确示例；一条身体记录→新增复测记录；原记录保留；可比则看趋势，不可比显示原因，绝不预设指标下降；素材与能力：日期查询有码；完整复测归档及对比解释待核/演；P15",
      "voice_sentences": [
        "按需要再测一次。",
        "切换日期，回看同一份档案里的两次记录。",
        "体重暂时没有变化，也先如实记录。",
        "结合实际饮食和活动，继续讨论下一步。"
      ],
      "ui_views": [
        "device_video",
        "history"
      ]
    },
    {
      "id": "U09",
      "start": 138,
      "end": 150,
      "title": "有上下文的后续安排",
      "view": "AI总结引用本次/上次日期、确认目标、实际记录；展示下一版餐食/课程安排的一个具体差异与理由；用户确认后再生效；收尾保持产品页；旧安排＋新事实→待确认的新安排→本人确认；片尾“打开AI运动营养师”，不造二维码；素材与能力：自动综合复评/调整为演；P10/B2",
      "voice_sentences": [
        "记录留下来，建议才接得下去。",
        "看看下一餐、下一次训练，哪里需要调整。",
        "由你确认，再继续执行。",
        "康比特AI运动营养师，把方案用进生活。"
      ],
      "ui_views": [
        "review",
        "device"
      ]
    }
  ],
  "channel": [
    {
      "id": "C01",
      "start": 0,
      "end": 12,
      "title": "设备与小程序联动开场",
      "view": "同一设备测量结束画面→体验用户手机身体记录→午餐建议卡，三帧同一日期/目标；每帧停留可定位；一次现场体验→后续手机服务；侧栏仅写“体验后的服务内容”，不开ROI图；素材与能力：图/史/演；P10/B2",
      "voice_sentences": [
        "把一次体测，接成看得见的日常服务。",
        "跟着同一位用户，看设备和小程序怎样配合。"
      ],
      "ui_views": [
        "device",
        "profile",
        "meal"
      ]
    },
    {
      "id": "C02",
      "start": 12,
      "end": 32,
      "title": "门店体验与扫码领取",
      "view": "实机可用模块、操作提示、完成状态；体验用户本人登录认领，店员在旁指导，不操作其私人账号；初次了解→完成一次自愿体验；门店有具体演示内容，渠道交付培训步骤，不能承诺因此必然获客；素材与能力：图/史；当次链路待实；P20",
      "voice_sentences": [
        "店员先介绍本次测量，指导用户完成操作。",
        "用户登录小程序，扫码领取本人记录。",
        "再一起核对日期和记录入口。",
        "这时，门店有了具体的体验内容。",
        "渠道交付设备，也要交付操作培训。"
      ],
      "ui_views": [
        "device_video",
        "claim",
        "claimed"
      ]
    },
    {
      "id": "C03",
      "start": 32,
      "end": 50,
      "title": "个人档案承接后续沟通",
      "view": "健康档案→身体记录→日期；显示已到项目、来源/时间、缺项；再进入目标页初始/目标体重与日期；已体验→本人留有可查记录；门店帮助用户找到档案，不能拿走全部个人数据；侧栏“用户本人可查”；素材与能力：图/史/码；当前归档范围待证据矩阵；P18",
      "voice_sentences": [
        "打开健康档案，查看身高、体重和身体记录。",
        "再看用户自己确认的七十二公斤目标。",
        "记录归用户本人，门店协助找到入口。",
        "后续沟通，就从这些具体信息开始。"
      ],
      "ui_views": [
        "profile",
        "goal"
      ]
    },
    {
      "id": "C04",
      "start": 50,
      "end": 73,
      "title": "目标与习惯驱动建议",
      "view": "当前目标=减重至72.0kg→推荐能量/三大营养素→结构化习惯、foodAllergy、foodTaboos等字段；AI追问卡/输入补充；演示参数送饮食工作流，界面不露技术变量名；通用测量数据→目标和日常条件明确→形成有依据的建议；店员协助补齐信息，超出服务范围交专业人员，不说取代营养师；素材与能力：结构化输入有码；跨页对话演；P23",
      "voice_sentences": [
        "接着补齐日常条件。",
        "平时怎样运动，午餐在哪里吃，有没有过敏和忌口？",
        "把用户确认的条件，带入饮食建议。",
        "页面里能看到推荐能量和三大营养素搭配。",
        "需要补充的继续问。",
        "店员协助使用，专业问题由专业人员承接。"
      ],
      "ui_views": [
        "chat",
        "energy"
      ]
    },
    {
      "id": "C05",
      "start": 73,
      "end": 93,
      "title": "午餐卡形成具体服务",
      "view": "“饮食建议”三餐区→午餐菜名/克重/热量；示例目标与饮食条件保持一致；未吃不点“一键录入”；抽象咨询→一张用户能读、能执行的餐食卡；门店即使不供餐也能演示家庭/外食使用，不假造库存/下单；素材与能力：卡片有码、内容专业审；P18/L2",
      "voice_sentences": [
        "点开午餐卡，菜名、份量和营养信息都有具体位置。",
        "用户可以围绕自己的口味和用餐条件继续交流。",
        "门店即使不供餐，也能演示在家和外食的使用方式。",
        "由用户自主选择。"
      ],
      "ui_views": [
        "meal"
      ]
    },
    {
      "id": "C06",
      "start": 93,
      "end": 113,
      "title": "训练课程与实际记录区分",
      "view": "“运动建议”课程名、时长25分钟、参考消耗（标估算）；点课程播放/详情；课程观看标记与实际运动记录分屏区分，不造手环已接入状态；看饮食建议→找到运动内容→明确完成记录方式；教练/店员承接实际活动指导，渠道不以AI替代资质；素材与能力：课程有码；实际记录/分屏状态演；P18/L2",
      "voice_sentences": [
        "再看运动建议。",
        "点开课程，查看内容和时长，安排今天的二十五分钟。",
        "参考热量明确标成估算。",
        "课程看完和实际训练，分开记录。",
        "门店承接使用指导和后续沟通。"
      ],
      "ui_views": [
        "training",
        "course"
      ]
    },
    {
      "id": "C07",
      "start": 113,
      "end": 133,
      "title": "日历记录支撑回访",
      "view": "拍照页“本餐食物”→修改克重/删除→保存→饮食日历；展开摄入/消耗，仅展示对应已确认记录；反馈未完成原因；只有建议→有实吃记录与执行障碍；门店回访有明确问题，渠道培训包含识别纠错和保存，不以消息条数算留存；素材与能力：饮食链有码；跨活动反馈与回访任务演/人工流程；P20",
      "voice_sentences": [
        "服务还要接到实际记录。",
        "拍下这一餐，核对识别结果，修改份量，再保存。",
        "打开饮食日历，查看已经确认的内容。",
        "哪一餐做到了，哪一步不方便？",
        "先把这些反馈接住，才有持续服务的依据。"
      ],
      "ui_views": [
        "food_log",
        "calendar"
      ]
    },
    {
      "id": "C08",
      "start": 133,
      "end": 154,
      "title": "复测成为服务触点",
      "view": "再次到同一设备；第二次认领→同一档案日期列表→对比两次可比记录→AI结合日历解释；用户确认下一版建议；单次体验→可选择的复测服务触点→下一周期；复测时间按需求/专业意见，不能用强制频率拉到店；素材与能力：日期链有码/史；对比解释与计划重算演；P21",
      "voice_sentences": [
        "需要复测时，再回到一体机。",
        "切换日期，在同一档案回看两次身体记录。",
        "体重暂时没有变化，也如实呈现。",
        "再结合这段时间的饮食和活动，讨论后续安排。",
        "复测是服务触点，不是效果保证。"
      ],
      "ui_views": [
        "device_video",
        "history",
        "review"
      ]
    },
    {
      "id": "C09",
      "start": 154,
      "end": 170,
      "title": "四方交付职责与合作范围",
      "view": "主画面保留设备与上述四个页面的真实操作缩略图；侧栏依次指明个人授权、门店引导、渠道培训、康比特产品支持；最后4秒简图带出合同范围；演示看懂→可核交付清单；人员责任具体；合作收益只对应真实设备交付、约定服务/商品交易，费用按协议；素材与能力：分工/合同为拟议人工流程，不造后台；P12/G4",
      "voice_sentences": [
        "个人确认资料和反馈。",
        "门店引导使用，渠道组织培训。",
        "康比特提供约定的产品支持。",
        "设备、服务和真实交易，分别核算收支。",
        "分工与范围，写进协议。"
      ],
      "ui_views": [
        "delivery",
        "device",
        "profile"
      ]
    },
    {
      "id": "C10",
      "start": 170,
      "end": 180,
      "title": "预约产品演示",
      "view": "同一示例档案回到下一次饮食/课程建议；真实设备同框，字幕“预约产品演示”；无假联系方式或二维码；看完示例→带一个实际客户场景逐项核对；下步是功能与交付演示，不是保证成交；素材与能力：CTA不造未核入口；P8/B2",
      "voice_sentences": [
        "带一个真实客户场景，预约产品演示。",
        "从测量、档案到建议和反馈，逐项看清楚，再决定怎样合作。"
      ],
      "ui_views": [
        "device",
        "review"
      ]
    }
  ],
  "scope_note": "User authorized correction: device and AI functional linkage. Real operation footage plus code/screenshot-grounded simulated UI; not live-system E2E proof."
}
