{
  "generatedAt": "2026-08-17T01:50:47.888Z",
  "baseURL": "http://127.0.0.1:5174/",
  "total": 39,
  "passed": 39,
  "failed": 0,
  "results": [
    {
      "suite": "guest-auth-preview.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"游客首屏明确展示演示数据\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"游客可浏览全部一级入口且不会被登录拦截\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"游客可进入设备页但连接动作触发统一登录说明\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"登录后保留当前页面并自动继续原受限动作\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"登录态不再显示受限能力角标\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "smoke.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"D2 首页是连续对话而非仪表盘\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D1 建档三步与设备入口可操作\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D3 AI 调整只在确认后写入统一计划\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D4 设备授权、同步和跨页状态可见\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D5 训练、单次补给提醒、反馈和完成状态闭环\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D6 饮水记录同步营养首页\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D7 AI 总结进入相通对话并可返回\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D8 异常与安全状态有专用入口\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D9 周期比较具备证据与 AI 深入入口\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D10 未上传不分析，确认授权后发送洞察卡\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "route-closure.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"transitions\": [\n    {\n      \"action\": \"初始进入首页\",\n      \"route\": \"HOME-01\"\n    },\n    {\n      \"action\": \"一级导航：训练\",\n      \"route\": \"TRAIN-HUB\"\n    },\n    {\n      \"action\": \"一级导航：营养\",\n      \"route\": \"NUT-01\"\n    },\n    {\n      \"action\": \"一级导航：我的\",\n      \"route\": \"PROFILE-01\"\n    },\n    {\n      \"action\": \"一级导航：首页\",\n      \"route\": \"HOME-01\"\n    },\n    {\n      \"action\": \"首页进入助手说明\",\n      \"route\": \"AI-04\"\n    },\n    {\n      \"action\": \"助手说明返回首页\",\n      \"route\": \"HOME-01\"\n    },\n    {\n      \"action\": \"首页进入历史对话\",\n      \"route\": \"AI-03\"\n    },\n    {\n      \"action\": \"历史对话返回首页\",\n      \"route\": \"HOME-01\"\n    },\n    {\n      \"action\": \"首页后进入训练中心\",\n      \"route\": \"TRAIN-HUB\"\n    },\n    {\n      \"action\": \"训练详细总结进入首页完整对话\",\n      \"route\": \"HOME-01\"\n    },\n    {\n      \"action\": \"进入训练中心\",\n      \"route\": \"TRAIN-HUB\"\n    },\n    {\n      \"action\": \"计划卡进入训练详情\",\n      \"route\": \"PLAN-04\"\n    },\n    {\n      \"action\": \"训练详情进入调整计划\",\n      \"route\": \"PLAN-05\"\n    },\n    {\n      \"action\": \"调整计划返回训练详情\",\n      \"route\": \"PLAN-04\"\n    },\n    {\n      \"action\": \"训练详情返回训练中心\",\n      \"route\": \"TRAIN-HUB\"\n    },\n    {\n      \"action\": \"进入营养首页\",\n      \"route\": \"NUT-01\"\n    },\n    {\n      \"action\": \"键盘进入完整补给方案\",\n      \"route\": \"NUT-02\"\n    },\n    {\n      \"action\": \"补给方案进入补给节点提醒设置\",\n      \"route\": \"NUT-09\"\n    },\n    {\n      \"action\": \"确认提醒返回补给方案\",\n      \"route\": \"NUT-02\"\n    },\n    {\n      \"action\": \"完整补给方案返回营养首页\",\n      \"route\": \"NUT-01\"\n    },\n    {\n      \"action\": \"进入我的\",\n      \"route\": \"PROFILE-01\"\n    },\n    {\n      \"action\": \"我的进入设备连接\",\n      \"route\": \"DEV-01\"\n    },\n    {\n      \"action\": \"完成设备设置返回我的\",\n      \"route\": \"PROFILE-01\"\n    },\n    {\n      \"action\": \"进入异常与安全状态\",\n      \"route\": \"STATE-LAB\"\n    },\n    {\n      \"action\": \"异常状态进入同步冲突\",\n      \"route\": \"PLAN-06\"\n    },\n    {\n      \"action\": \"冲突处理返回训练中心\",\n      \"route\": \"TRAIN-HUB\"\n    },\n    {\n      \"action\": \"一键重置回到首页\",\n      \"route\": \"HOME-01\"\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\audit-2026-08-11\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "user-walkthrough.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"name\": \"D1 协议阻断、账号登录弹窗、差异化汗量图标与目标标题\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D2 恢复主观值、设备同步和首页卡片同步，分析回到完整对话\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D3 计划调整确认、保持原计划和总结回到首页\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D4 多厂商设备并存、同步时间和同步设备跨页显示\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D5 训练反馈使用 20 分 RPE、10 分口渴感且调整训练与补给\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D6 营养状态联动、补给跳转、食物回首页和 AI 食谱补全\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D8 离线文案明确且高风险状态持续阻断普通建议\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"D10 生理生化报告完整分析直接进入首页对话\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "onboarding-plan-home.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"HOME-01 首次进入只显示同步消息和今日建议卡\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"快捷问题只展示短标题且消息不会逐字换行\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"ONB-03 五档人物出汗评估可选择并保存\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"档案变化后旧计划失效，Agent 生成后 PLAN-03 与 TRAIN-HUB 同步\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"档案变化后直接进入 TRAIN-HUB 不自动生成，需用户明确触发\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\onboarding-plan-home-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "home-rest-day.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"训练日显示当天训练与补给内容\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"休息日不显示训练详情与训练补给\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"休息日仍保留恢复指标与设备数据\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "typography-layout.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"训练反馈卡字号、行高与横向布局\",\n      \"pass\": true,\n      \"geometry\": {\n        \"width\": 310,\n        \"scrollWidth\": 308,\n        \"paragraphFont\": 10.5,\n        \"paragraphLineHeight\": 16.8,\n        \"headerFont\": 12,\n        \"buttonFont\": 11\n      }\n    },\n    {\n      \"name\": \"D1-D10 起始页正文与横向溢出检查（10 页）\",\n      \"pass\": true\n    }\n  ],\n  \"problems\": [],\n  \"screenshot\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\artifacts\\\\typography-layout\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "deferred-plan-generation.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"首次使用基础档案必须完成\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"DEV-01 跳过后首页不显示训练和营养方案\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"无计划时训练与营养一级页均不展示旧方案\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"首页对话可调用 Agent 生成计划并解锁训练营养\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "plan-frequency-consistency.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"frequency\": 1,\n      \"generated\": 8,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 1,\n      \"markedDays\": 1,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 2,\n      \"generated\": 16,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 2,\n      \"markedDays\": 2,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 3,\n      \"generated\": 24,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 3,\n      \"markedDays\": 3,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 4,\n      \"generated\": 32,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 4,\n      \"markedDays\": 4,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 5,\n      \"generated\": 40,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 5,\n      \"markedDays\": 5,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 6,\n      \"generated\": 48,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 6,\n      \"markedDays\": 6,\n      \"pass\": true\n    },\n    {\n      \"frequency\": 7,\n      \"generated\": 56,\n      \"totalWeeks\": 8,\n      \"weeklyCount\": 7,\n      \"markedDays\": 7,\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "plan-adjustment-record-ready.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"passed\": true,\n  \"checks\": [\n    \"PLAN-05 草案与应用同源\",\n    \"TRAIN-HUB 计划页同步\",\n    \"记录页计划层同步且实绩不被覆盖\",\n    \"调整后营养方案重新绑定\",\n    \"TRAIN-READY 只读取并提示查看已有方案\"\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "cycle-schedule.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"完整周期数量等于计划周期乘每周频次\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"切换周期日期后当日计划与对应周同步\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"本周安排只显示所选周训练\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"记录视图按月展示历史实绩并沿用统一日期状态\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\cycle-schedule-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-hub-plan-entry.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"planSettingCount\": 0,\n  \"onlineVisible\": true,\n  \"cycleVisible\": true,\n  \"adjustVisible\": true,\n  \"errors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-return-today.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"style\": {\n    \"height\": 42,\n    \"color\": \"rgb(255, 255, 255)\",\n    \"background\": \"linear-gradient(118deg, rgb(140, 207, 24) 0%, rgb(56, 185, 45) 44%, rgb(7, 155, 87) 100%)\"\n  },\n  \"hiddenAfterReturn\": true,\n  \"errors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "hold-to-finish.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"短按不会结束训练\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"按住过程中显示进度与取消提示，松开即取消\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"持续按满两秒才进入训练总结\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"TRAIN-SUMMARY 返回键直达训练记录视图\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-live-engine.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"currentStepIndex\": 2,\n  \"distance\": 0.009,\n  \"heartRate\": 132,\n  \"energy\": 0.8,\n  \"errors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-history.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"记录页展示月历、月统计和历史训练列表\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"历史训练可从月份列表进入当日详情和训练分析\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"跨月浏览保留记录且不会伪造原计划\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\training-history-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "device-record-sync.mjs",
      "pass": true,
      "code": 0,
      "stdout": "PASS 设备连接后同步当天记录并显示\nPASS 设备实绩关联原计划且不覆盖计划\nPASS 重复同步保持幂等\nDONE 3/3\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-plan-closure.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"Agent 返回结构化四节点并按时间轴渲染\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"首页今日训练建议使用设备静息心率\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"点击产品卡进入当前节点替代页并回写\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"NUT-02 只查看方案且不直接改写完成度\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\nutrition-plan-closure-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-agent-feedback-closure.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"manualButtons\": 0,\n  \"managedHints\": 4,\n  \"completion\": 75,\n  \"completedNodes\": 3,\n  \"pending\": false,\n  \"hasUpdatedAnalysis\": true,\n  \"greetingCount\": 2\n}\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-daily-closure.mjs",
      "pass": true,
      "code": 0,
      "stdout": "PASS NUT-01 显示 Agent 四项目标并包含脂肪\nPASS 饮水形象按钮更新进度且训练补给只保留完整方案\nPASS NUT-05 可向既有餐次增加食物并回算 NUT-01\nPASS NUT-05 删除食物后同步移除记录\nPASS 删除餐次后可以重新新增同名餐次\nPASS AI 补全其余餐次后从 NUT-05 返回 NUT-01\nDONE 6/6\n",
      "stderr": ""
    },
    {
      "suite": "ai-daily-recipe.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"passed\": true,\n  \"checks\": [\n    \"NUT-07 只为未记录的晚餐和加餐生成方案\",\n    \"生成页展示今日训练与 Agent 热量目标上下文\",\n    \"换一个只替换所选餐次方案\",\n    \"保存后保留既有餐次并写入全部剩余餐次\",\n    \"AI 食谱通过正式餐次数据结构加入今日饮食\",\n    \"NUT-01 早餐、午餐、晚餐、加餐使用四个不同图标\",\n    \"透明留白差异已通过逐餐光学缩放校正\"\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-live-analysis.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"NUT-02 不再手动标记且 NUT-01 提供 AI 反馈入口\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"NUT-01 关闭训练中提醒后 TRAIN-LIVE 不弹窗\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"NUT-01 开启对应节点后 TRAIN-LIVE 按节点弹窗\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"TRAIN-ANALYSIS 同屏展示计划、实际与差异\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\nutrition-live-analysis-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-calendar.mjs",
      "pass": true,
      "code": 0,
      "stdout": "PASS Agent 营养完整周期可查看\nPASS 切换日期同步当天营养计划\nPASS 零餐次只显示添加第一餐\nPASS 新日期先选餐次再添加食物\nDONE 4/4\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-user-flow.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"NUT-02 不再手动记录，NUT-01 提供统一 AI 反馈入口\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"空白日新增早餐后不会自动出现晚餐\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"恢复日不生成和不展示训练补给\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "nutrition-reminder-timing.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"NUT-02 设置提醒进入补给节点时间页而非训练提醒页\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"编辑补给分钟数并同步写回营养方案统一状态\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"训练启动使用演示触发秒数但保留正式分钟参数\",\n      \"pass\": true\n    }\n  ],\n  \"screenshots\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\nutrition-reminder-timing-2026-08-12\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "history-agent.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"首页已取消补给提醒话术和两个关联跳转\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"快捷问题由 Agent 结合最新状态生成并回答\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"重置前警告不可恢复，取消保留历史\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"确认后历史和首页旧对话永久清空且刷新后保持\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "home-history-reset.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"labels\": [\n    \"为什么这样安排？\",\n    \"今天怎么补给？\",\n    \"恢复状态怎么看？\"\n  ],\n  \"ids\": [\n    \"basis\",\n    \"fuel\",\n    \"recovery-status\"\n  ],\n  \"resetState\": {\n    \"conversationCount\": 0,\n    \"archiveCount\": 0,\n    \"suggestionStatus\": \"ready\",\n    \"updatedAt\": \"09:49\"\n  },\n  \"errors\": [],\n  \"screenshot\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\artifacts\\\\home-history-reset.png\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "ai02-home-handoff.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"passed\": true,\n  \"checks\": [\n    \"AI-02 详细总结结构化写入首页会话\",\n    \"交接后跳转 HOME-01\",\n    \"首页保留输入框供用户继续追问\"\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-reminder-analysis-consistency.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"passed\": true,\n  \"checks\": [\n    \"TRAIN-READY 延后训练提醒独立于补给提醒\",\n    \"TRAIN-SUMMARY 首页建议含反馈入口\",\n    \"提交反馈后 TRAIN-ANALYSIS 与首页使用同一 Agent 分析及上下文版本\"\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "training-performance-home-card.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"geometry\": {\n    \"width\": 310,\n    \"scrollWidth\": 308,\n    \"overflowing\": []\n  },\n  \"bubbleText\": \"补充本次训练的主观感受后，我会把恢复、补给与后续训练建议一起重新校准。\",\n  \"errors\": [],\n  \"screenshot\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\artifacts\\\\training-performance-home-card.png\"\n}\n",
      "stderr": ""
    },
    {
      "suite": "exception-regression.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"name\": \"ONB-02 身高体重校验、保存并进入 Agent 档案\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-02 选择本周第二项后训练准备保持同一对象\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-03 记录点击后按该记录日期和实绩展示\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-04 计划应用成功提示跨页保留\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-05 延后提醒重新排程而不是停留 delayed\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-10 我的页编辑档案保存后返回我的\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-11 仅当前设备显示授权中\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-13 Agent 重新加载重新提交保留的问题\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-14 采用云端版本真实写入 V4 和计划日期\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"QA-15 趋势周期切换更新选中态与内容\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "functional-closure.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"个人卡进入账号安全，手机号服务完成绑定并持久化\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"版本检查与协议文档形成真实页面闭环\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"开发者反馈通过服务层提交并返回\",\n      \"pass\": true\n    }\n  ],\n  \"errors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "ia-dedup.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"首页只分发训练，不重复执行开始与调整\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"训练页执行入口唯一且完整\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"营养首页只做当天执行，资料编辑归入我的\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"我的页档案和权限入口各自唯一\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "profile-entry.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"目标与训练设置只同步展示且不可跳转\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"训练画像承担训练画像编辑跳转\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "profile-gender.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"checks\": [\n    {\n      \"name\": \"ONB-02 性别为原生单选组并可保存\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"性别进入 Agent 计划生成依据\",\n      \"pass\": true\n    },\n    {\n      \"name\": \"我的页面训练画像同步显示性别\",\n      \"pass\": true\n    }\n  ]\n}\n",
      "stderr": ""
    },
    {
      "suite": "profile-account-flow.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"accountVisible\": true,\n  \"phoneVisible\": true,\n  \"duplicateEntriesRemoved\": true,\n  \"consoleErrors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "profile-information-balance.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"heroText\": \"晨跑者\\n\\nCPT 跑者账号\\n\\n男 · 175 cm · 68 kg\",\n  \"goalText\": \"目标与训练设置\\n完成半程马拉松 1:50\\n每周 3 次\\n·\\n基础期 第3/8周\",\n  \"trainingText\": \"训练画像\\n男 · 跑龄 3–5 年 · 近阶段周均 32 km\",\n  \"errors\": []\n}\n",
      "stderr": ""
    },
    {
      "suite": "profile-latest.mjs",
      "pass": true,
      "code": 0,
      "stdout": "",
      "stderr": ""
    },
    {
      "suite": "demo-dock.mjs",
      "pass": true,
      "code": 0,
      "stdout": "{\n  \"ok\": true,\n  \"results\": [\n    {\n      \"code\": \"D1\",\n      \"title\": \"首次建档与计划生成\",\n      \"route\": \"AUTH-01\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D2\",\n      \"title\": \"首页 Agent 与恢复建议\",\n      \"route\": \"HOME-01\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D3\",\n      \"title\": \"训练周期、调整与记录\",\n      \"route\": \"TRAIN-HUB\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D4\",\n      \"title\": \"设备授权与数据同步\",\n      \"route\": \"PROFILE-01\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D5\",\n      \"title\": \"实时训练与补给提醒\",\n      \"route\": \"TRAIN-READY\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D6\",\n      \"title\": \"营养日程与摄入闭环\",\n      \"route\": \"NUT-01\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D7\",\n      \"title\": \"数据 AI 总结与追问\",\n      \"route\": \"HOME-01\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D8\",\n      \"title\": \"异常、冲突与安全状态\",\n      \"route\": \"STATE-LAB\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D9\",\n      \"title\": \"周期训练与补给能力对比\",\n      \"route\": \"RECORD-06\",\n      \"pass\": true\n    },\n    {\n      \"code\": \"D10\",\n      \"title\": \"生理生化指标运动分析\",\n      \"route\": \"REPORT-01\",\n      \"pass\": true\n    }\n  ],\n  \"layout\": {\n    \"count\": 10,\n    \"dockHeight\": 844,\n    \"listHeight\": 537.609375,\n    \"hasHorizontalOverflow\": false\n  },\n  \"screenshot\": \"D:\\\\muscle and saitlite 文献\\\\康比特\\\\AI营养师协作项目\\\\projects\\\\running-ai-assistant\\\\prototypes\\\\prd-v1-high-fidelity\\\\qa\\\\demo-dock-2026-08-12\"\n}\n",
      "stderr": ""
    }
  ]
}