Преглед на файлове

docs(specs): 家庭归因分析问卷小程序落地 - 目标态PRD + 现状核查与整改方案

- PRD: 第八章问诊清单16条结构化 / 全家干预方案7章骨架 / 6阶段状态机 / 10条红线 / 开放问题E1-E12
- 整改方案: 6阶段x4维度现状矩阵(可复用底座10项) + 10个硬缺口(G1-G10) + 4阶段10人日计划
- 含主理人拍板记录v1.1: E12合规后置/E4弱提示/E7品牌级/E6跟随源文档3人
- 勘误: 源文件实为'马昕源'(主理人口述'马旻源')
Agnes Agent преди 2 седмици
родител
ревизия
f6f3a7a5f4

+ 185 - 0
docs/superpowers/specs/2026-10-27-family-attribution-questionnaire-prd.md

@@ -0,0 +1,185 @@
+# 家庭归因分析问卷小程序落地 · 目标态需求解读 PRD
+
+> **状态**:已定稿(调研产出,供整改方案引用)
+> **作者**:Alice(产品经理)|**日期**:2026-10-27
+> **类型**:目标态需求解读(只读调研,不含代码实现)
+
+---
+
+## 文档说明
+
+- **本 PRD 的定位**:是「家庭归因分析问卷在小程序内落地」整改方案的**目标态输入**,供后续整改方案(含系统设计与任务分解)引用,及远端派发读取。
+- **源文档(两份,均为本地参考文件)**:
+  1. 《家庭归因分析 v1.1》—— 重点解析 **第八章「问诊清单」**(即问题清单,16 条)
+  2. 《全家干预方案 v1.1(妈妈·女儿·儿子)》—— 解析其**章节与结构骨架**(即调整方案模板)
+- **文件名勘误声明**:源文档文件名中用户所写的「**马旻源**」实为「**马昕源**」(文件实际存在名为 `家庭归因分析-孟凡锐-马智强-马昕源-马安扬-v1.1.html`),引用时**以实际文件名/实际文件为准**,避免找不到文件。
+- **本 PRD 为只读调研产物**:不改任何代码;所有「推断」字段(题型/变量名/必答标记)为产品层语义推断,需主理人拍板确认(见 E1)。
+
+### 全局结论(先读)
+
+1. **第八章「问诊清单」不是结构化表单**,是一份按对象分组的**自由文本问题库(16 条)**。文档只给了「问什么 + 为什么问」,**没有**题型/选项/单位/变量名/必答标记——这部分必须在产品层补全(A 中已给出推断,需拍板)。
+2. **《全家干预方案 v1.1》只覆盖妈妈/女儿/儿子三人**:爸爸因已有糖尿病诊断、有自己的《胰腺炎糖尿病进阶方案》而**在链外**,直接影响目标态流程⑤的人范围。
+3. **高风险项集中**:Q11(自伤/拒学/失眠)、Q12(欺凌)、Q13(进食风险)为未成年人高敏感+高风险项;Q16(21 张三餐照片)为最重负担项——这两类必须单独设计交互与合规。
+
+---
+
+## A. 第八章问题清单结构化表(16 条,按对象分组)
+
+来源:《家庭归因分析 v1.1》第八节「问诊清单(待回收,回收后升级 v1.2)」。
+文中**未给出**题型/选项/单位/变量名,下表「推断题型/推断采集变量/必答(推断)」为产品层推断,需拍板(见 E1)。
+
+| # | 对象 | 必问项(原文) | 为什么问(原文) | 推断题型 | 推断采集变量 | 必答(推断) |
+|---|------|----------------|------------------|----------|--------------|-----------|
+| Q1 | 四人 | 采样日期、采样前1个月是否用过抗生素/抑酸药/泻药 | 决定「菌群失衡」是结构问题还是药物印记 | 日期×1 + 单选(是/否)×3 | sampleDate; antibioticUsed30d; acidSuppressantUsed30d; laxativeUsed30d | 必答 |
+| Q2 | 孟凡锐 | 是否在服含罗伊氏乳杆菌的益生菌?服了多久? | 乳杆菌 7.268% 异常高,可能是补充剂印记,属可撤回项 | 单选(是/否)+填空(时长) | l.reuteriSupp; l.reuteriDuration | 必答(条件:乳杆菌异常) |
+| Q3 | 孟凡锐 | 疲劳/腹胀/排便频率与形态/头痛皮疹/过敏史 | 铁 8 与产气 94 是否已有体征 | 单选(程度)+数值+量表(Bristol)+多选(症状) | fatigue; bloating; bowelFreq; bowelForm; headacheRash; allergyHx | 必答 |
+| Q4 | 孟凡锐 | 早餐结构(是否奶/茶/咖啡与含铁餐同餐) | 决定铁吸收是否被自己堵死 | 单选(是/否)×2 | ironMealWithMilkTea; breakfastComposition | 必答(条件:铁偏低) |
+| Q5 | 马智强 | 糖尿病病程几年?目前用药与最近一次糖化血红蛋白? | 决定 P0 随访的紧迫度(本文不调药) | 数值(年)+填空(药名)+数值(HbA1c%) | diabetesDuration; diabetesMeds; hba1cLatest | 必答(条件:有诊断) ⚠️临床项 |
+| Q6 | 马智强 | 身高、体重、腰围(算 BMI 与中心性肥胖) | 体重目标由医生定,但基线必须有 | 数值×3 | heightCm; weightKg; waistCm | 必答 |
+| Q7 | 马智强 | 饮酒频率、夜宵/外卖频率、应酬结构 | 高脂高蛋白的主要来源,决定减法从哪下手 | 单选(频率)+数值(次/周)+填空 | alcoholFreq; lateNightTakeoutFreq; banquetPattern | 必答 |
+| Q8 | 马智强 | 睡眠时长、是否打鼾/憋气(OSA 线索) | 与血糖控制、日间疲劳强相关 | 数值(h)+单选(是/否/频率) | sleepHours; snoringApnea | 必答 |
+| Q9 | 马智强 | 是否愿意做 DAN(情绪+认知) | 补家庭系统最后一角 | 单选(愿意/暂缓/不愿意) | danConsent | 必答(条件:无DAN) ⚠️意愿项 |
+| Q10 | 马昕源 | 初潮时间与周期规律 | 14岁女性,铁42但需排除月经相关波动 | 数值(岁)+单选(规律/不规律) | menarcheAge; menstrualRegularity | 必答(条件:女性青少年) |
+| Q11 | 马昕源 | 近3个月情绪、睡眠、拒学、自伤念头 | P0 转介的判断依据 | 量表/单选+单选(是/否) | mood3m; sleep3m; schoolRefusal; selfHarmIdea | 必答 ⚠️高风险红线项 |
+| Q12 | 马昕源 | 学校压力源、同伴关系、是否被排挤/欺凌(同伴依恋项判定无效,需人工确认) | 解释同伴亲近 3.3%ile | 多选/填空+是/否+频率 | schoolStressors; peerRelation; bullied | 必答 ⚠️敏感项 |
+| Q13 | 马昕源 | 是否节食/在意体重(躯体外貌 5.4%ile) | 排除进食行为风险 | 单选(是/否+程度) | dietingConcern; bodyWeightConcern | 必答 ⚠️进食风险筛查 |
+| Q14 | 马安扬 | 出生方式、喂养史、抗生素史、湿疹/鼻炎/哮喘 | 解释铁锌缺乏与 GABA 1 | 单选×2+是/否×4 | birthMode; feedingHx; antibioticHx; eczemaRhinAsthma | 必答 |
+| Q15 | 马安扬 | 老师反馈(注意力)、排便、挑食清单 | 区分「注意力问题」与「营养缺口」 | 填空+数值/形态+多选 | teacherFeedback; bowelHabit; pickyFoodList | 必答 |
+| Q16 | 全家 | 一周典型三餐照片(连拍7天) | 验证「一个厨房的口味基线」,也是餐桌改造的起点与复盘依据 | 图片上传×21张 | weeklyMealPhotos | 必答(但负担最重,建议放宽为「尽量」) |
+
+**关键观察**:Q11/Q12/Q13 是高敏感+高风险项(未成年人心理/自伤/进食/欺凌),Q16 是最重负担项(21 张照片)。这两类必须单独设计交互与合规(见 D/E4/E12)。
+
+---
+
+## B. 全家干预方案 v1.1 章节骨架模板(= 目标态流程⑤「调整方案」模板)
+
+来源:《全家干预方案:妈妈·女儿·儿子 v1.1》。骨架共 7 章 + 头部摘要条:
+
+| 章节 | 内容 | 关键字段/结构 |
+|------|------|--------------|
+| 头部摘要条 | 一句话摘要+适用对象+数据来源+与归因报告关系+v1红线先读 | 适用对象(角色/年龄/性别)、数据来源清单、红线条 |
+| 一、数据速览 | 只列与产品决策相关的字段 | 指标×三人×干预含义(只保留决策相关,非全量报告) |
+| 二、主线产品 | 作用原理·合规口径·用法 | 每产品:是什么/为什么进方案/怎么用/合规与注意(含红线:不治疗不替代、与药间隔) |
+| 三、分人方案 | 每人一个方向+分级动作表 | 每表列:层级(P0/P1/日常/P2)/动作/产品·营养/具体做法/复盘钩子 |
+| 四、家庭级共享改造 | 通道化改造 | 通道/最小一步(本周)/谁负责/复盘钩子 |
+| 五、执行节奏与可检验目标 | 12周节奏表 + 客观目标表 | 周次×家庭级/各人;指标/现在/12周目标 |
+| 六、红线与转介 | 再强调红线 | 7 条编号红线 |
+| 七、附录 | 产品选购与用法提示 | 产品/选型要点/用法要点/避坑 |
+
+**模板要点(目标态必须继承的 4 个结构属性)**:
+
+1. **分级动作**:P0(必须先做/多为就医转介)/P1(本周)/日常/P2——天然对应流程⑥的「筛选确认成任务」;
+2. **复盘钩子**:每个动作都有可验证目标(如「一周 ≥5 天按纸上时间做」)——天然对应任务的验收指标;
+3. **先共享基座后精准**:先家庭级通道、再分人精准——顺序不可打乱;
+4. **红线前置**:方案开头就列红线(先医后补、儿童剂量医生定、不调药)——生成时必须注入文案。
+
+---
+
+## C. 目标态 6 阶段流程规格(每阶段 输入/输出/状态机含义)
+
+用户口述流程 → 与两文档的对应关系 + 每阶段契约:
+
+### ① 基本问卷
+
+- **输入**:用户发起「生成方案」;家庭成员与基础信息(角色确认见 E10);检测数据源(谷禾菌群 JSON×N、DAN×N)——见 E2(问卷 vs 报告导入通道)
+- **输出**:成员基础档案 + 检测数据就绪
+- **状态机含义**:Draft(草稿) → Submitted(已提交)。此阶段**不产出任何结论**;是唯一允许「不完整可保存续填」的阶段
+- **文档对应**:《归因分析》头部数据源(菌群/DAN/常模)+ Q1/Q6/Q14 等基础字段
+
+### ② 动态确认问卷
+
+- **输入**:基本问卷 + 系统在归因过程中的「待确认问题」(即第八章问诊清单按对象/条件筛选后的问题集,见 E3)
+- **输出**:确认问卷(条件化下发) → 用户逐条作答
+- **状态机含义**:Pending → InProgress → Confirmed。**此阶段是文档「问诊清单(待回收→升级 v1.2)」的数字化**——回收即升级,确认完成才允许进入归因
+- **关键约束**:高风险项(Q11/Q12/Q13)在此阶段拦截,命中即触发红线逻辑(见 E4)
+
+### ③ 归因分析
+
+- **输入**:基本档案 + 确认问卷 + 检测数据 + 常模表(710条/DAN常模)
+- **输出**:归因分析报告(结构同《家庭归因分析 v1.1》十节:结论先行→数据速览→逐人归因→家庭系统归因→应对方案→12周目标→教练提问序列→问诊清单→红线转介→一句话收尾)
+- **状态机含义**:Analyzing(计算中) → Ready(可调整)。**此阶段产出物是「结论」,不是「终稿」——必须经过④用户调整确认后才生效**(对应文档口径声明:角色推断/盲区需人工确认)
+- **红线**:所有数值为教练定位用相对刻度(0-100),不是医学评分;逐人归因必须带「关联非因果」声明
+
+### ④ 自然语言调整确认
+
+- **输入**:归因报告草稿 + 用户自然语言反馈
+- **输出**:确认后的归因结论(差异点回填结构化字段)
+- **状态机含义**:Draft → Adjusting(对话中) → Adjusted → Confirmed。**允许反复调整,直到用户确认**;任一红线命中(自伤/拒学/持续失眠)→ 立即终止并转介
+- **文档对应**:《归因分析》第七节「教练提问序列」(七层 Socratic:澄清→探因→假设→证据→替代→行动→复盘)+ 三大禁忌(不替用户决定/不评判/不硬套模型/不对用户说「你缺某一维」)。形态拍板见 E5
+
+### ⑤ 调整方案
+
+- **输入**:已确认的归因结论
+- **输出**:干预方案(结构同《全家干预方案 v1.1》7 章骨架,见 B)
+- **状态机含义**:Generated →(若④结论再变则 Invalidated 重新生成)。**人范围跟随文档:妈妈/女儿/儿子三人,爸爸链外**(见 E6)
+- **红线**:产品内容只展示成分/类别 or 品牌需拍板(见 E7);所有剂量以「先医后补、医生定」口径呈现,方案不出现剂量数字
+
+### ⑥ 筛选确认成任务
+
+- **输入**:调整方案的 P0/P1/日常/P2 动作表
+- **输出**:任务清单(每任务:动作/优先级/时间窗/复盘钩子)
+- **状态机含义**:TaskFilter → Confirmed(生成任务) → 任务进入执行态(未确认前方案可整体撤回)
+- **文档对应**:分人方案动作表 + 12 周执行节奏(P0=2周内/P1=本周/P2=12周)。P0 是否强制见 E8;复盘钩子是否入任务见 E9
+
+**状态机总图**:`① Submitted → ② Confirmed → ③ Ready → ④ Confirmed → ⑤ Generated → ⑥ TaskConfirmed`。任何一步用户中止可保存;③④之间可回退(调整归因结论会作废⑤重新生成)。
+
+---
+
+## D. 合规/医学表述红线(含原文引述,必须硬编码进目标态)
+
+从两份文档明确识别,共 10 条(按风险等级排序):
+
+### 【P0 级——命中即阻断/转介】
+
+1. **测评 ≠ 诊断**:「菌群『相似度』是模式比对,不是疾病;DAN 不是智力测验也不是临床诊断。所有关联均为关联,非因果」(两文档同文)。→ 所有归因结论必须带此声明,禁止"因果式"表述
+2. **情绪红线**:「0.9 百分位的情绪总分不是谈心能处理的量级」「出现自伤、拒学、持续失眠 → 立即就医」(归因 3.2 + 红线 4)。→ Q11 命中=强阻断+就医引导(E4)
+3. **儿童补剂红线**:「儿童补铁补锌必须由儿科/儿保科按体重与检验结果定剂量,铁过量有毒,严禁自行加量」(两文档同文)。→ 方案不得出现儿童剂量数字,只能写"医生定"
+4. **糖尿病红线**:「不调药、不荐药、不设血糖目标值」(两文档同文,针对爸爸)。→ 涉及糖尿病者只做生活方式支持+随访引导
+
+### 【P1 级——文案硬约束】
+
+5. **产品非治疗**:「不宣称治疗任何疾病、不替代药物」(干预方案 v1 红线⑤ + 各产品合规段)。→ 产品段落必须带此句
+6. **标签红线**:「不在孩子面前使用『多动症』『抑郁』『天才』『学霸』等定性词」(两文档同文)。→ 方案/任务文案禁用此列表词
+7. **先医后补**:「所有涉及查血、补剂的动作都『先医后补』,不自行下诊断、不给剂量」(干预方案摘要条)。→ P0 动作全部是"查血/评估/随访"而非"补"
+8. **教练禁忌**:「永远不对家长说『你缺某一维』」「替家长做决定/评判式语言/硬套模型」三项禁止(归因 7.5)。→ 流程④ AI 对话的提示词红线
+
+### 【P2 级——交互细节】
+
+9. **服药间隔纪律**:还原水「不与药物同服(间隔≥1小时)」;益生菌「与抗生素间隔≥2小时」;PHGG「不与抗生素同服,用后停纤维3-5天再做菌群重建」(干预方案二章+附录)。→ 产品用法字段必须内嵌这些间隔提示
+10. **铁餐纪律**:「铁餐与奶/茶/咖啡错开≥2小时、配维C」(两文档同文)。→ Q4 关联的指导文案
+
+**另注意(非红线但必须处理)**:角色身份「按姓名年龄推断,未见关系证明」是文档自承认的盲区——小程序不能默认"系统说了算",需用户主动确认(E10)。
+
+---
+
+## E. 开放问题清单(需主理人拍板)
+
+按"阻塞目标态定义"程度排序:
+
+### 【阻塞级——不拍板无法出目标态规格】
+
+- **E1. 问诊清单字段 schema 由谁定?** 文档无题型/选项/变量名,我在 A 中已按语义推断(如 Q5 HbA1c 为数值%、Q14 出生方式为单选)。选项:a) 采纳我的推断(**推荐**,先评审后定稿);b) 业务/教练侧另出结构化定义
+- **E2. ①基本问卷的采集范围?** 检测数据(菌群 JSON/DAN/常模)是外部报告,不是手工问卷。选项:a) 基本问卷只采手工基础信息,检测走独立上传/导入通道(**推荐**——问卷采集不可信数据会污染归因);b) 问卷同时收手工+报告
+- **E3. ②动态确认问卷是条件触发还是全量展示?** 文档 16 条明显按对象/结论条件化(Q9 仅父亲无 DAN 时、Q10-13 仅女儿、Q14-15 仅儿子、Q4 仅铁偏低)。选项:a) 按对象/结论条件下发(**推荐**,符合"系统梳理出需要确认的问题");b) 静态全量
+- **E4. 高风险项(Q11 自伤/拒学/失眠、Q12 欺凌、Q13 进食风险)命中时,是强阻断+转介(停止问卷、引导就医)还是弱提示(标记"建议专业评估"仍可继续)?** 选项:a) 强阻断(**推荐**,文档红线明写"立即就医",且涉及未成年人);b) 弱提示
+- **E5. ④自然语言调整确认的形态?** 文档是教练 Socratic 对话。选项:a) AI 对话式(符合"自然语言方式");b) 固定问题序列表单;c) AI 对话+关键结论结构化回填(**推荐**——对话体验 + 后续方案生成需要结构化字段)
+- **E6. ⑤调整方案的人范围?** 文档方案只出妈妈/女儿/儿子(爸爸链外)。选项:a) 跟随文档 3 人(**推荐**,口径一致,爸爸另有他的进阶方案);b) 全员 4 人(需另出爸爸方案模板,当前无)
+- **E7. 方案中产品内容的展示粒度?** 文档直接写了 Enagic 还原水/姜黄、PHGG、益生菌株名等**品牌级**推荐。小程序里:a) 展示成分/类别(如"可溶性纤维 PHGG(5g起)"),不推品牌(**推荐**——规避"不宣称治疗"与广告合规风险);b) 展示品牌(与文档一致,需广告法/医疗合规审查)
+- **E10. 家庭角色(妈妈/爸爸/女儿/儿子)如何确定?** 文档承认"按姓名年龄推断、未见关系证明"。选项:a) 用户主动确认/选择角色(**推荐**);b) 系统推断
+- **E12. ⚠️最前置:** 内容涉及**未成年人心理/自伤/进食/欺凌敏感数据 + 糖尿病医疗信息**,是否已有**隐私政策/未成年人保护/医疗健康信息合规**方案?无合规前提,整改方案不应开工。选项:a) 已有(请提供);b) 无,需法务先行(标记为总阻塞)
+
+### 【非阻塞级——可后置,建议一并拍板】
+
+- **E8. ⑥筛选确认:** P0 类动作(查血/儿科评估/情绪评估/内分泌随访)是否**强制入任务不可跳过**?选项:a) P0 强制+P1/P2 可勾选(**推荐**);b) 全部自选
+- **E9. 任务模型是否携带「复盘钩子+时间窗+优先级」?** 选项:a) 带(**推荐**,复盘钩子是文档给的可验证目标,是任务闭环关键);b) 仅标题
+- **E11. 常模参照数据(710 条/DAN 常模)维护方式?** 选项:a) 后端常模表(**推荐**);b) 随报告附带
+
+---
+
+## 附:PM 拍板顺序建议
+
+先拍 **E12 → E2/E3/E4 → E5/E6/E7/E10**,这批定了目标态即可成型;**E8/E9/E11** 可在整改设计阶段并行。
+
+---
+
+*文档说明:本文档为整改方案的目标态输入;源文档《家庭归因分析 v1.1》(第八章=问诊清单)与《全家干预方案 v1.1》;文件名勘误「马旻源→马昕源」。本 PRD 未含任何代码改动,全部为只读调研产物。*

+ 158 - 0
docs/superpowers/specs/2026-10-27-family-attribution-questionnaire-remediation.md

@@ -0,0 +1,158 @@
+# 家庭归因分析问卷小程序落地 · 现状核查与整改方案
+
+> 文档版本:v1.1(2026-10-27 22:35,含主理人拍板记录)
+> 定位:本文档是「归因分析 → 调整方案 → 任务生成」链路在小程序落地的**整改方案与实施计划**,供主理人拍板范围与优先级后派发实现。
+> 输入依据:
+> 1. 目标态需求解读(PM 产出):`docs/superpowers/specs/2026-10-27-family-attribution-questionnaire-prd.md`(185 行,含 16 条问题表 / 7 章骨架模板 / 6 阶段状态机 / 10 条红线 / 开放问题 E1–E12)
+> 2. 源方案文档:`docs/参考资料/家庭归因分析-孟凡锐-马智强-马昕源-马安扬-v1.1.html`(第八章=问诊清单)、`docs/参考资料/全家干预方案-妈妈-女儿-儿子-v1.1.html`(调整方案模板)
+> 3. 现状盘点:team-lead 一手证据(架构师子代理因 429 限流中断,现状矩阵由 team-lead 以文件/代码证据补全;证据路径均为绝对路径 + 行号)
+> 4. 勘误声明:主理人口述文件名「马旻源」实为「马昕源」,实际文件为 `家庭归因分析-孟凡锐-马智强-马昕源-马安扬-v1.1.*`。
+
+---
+
+## 一、目标流程(主理人口述,6 阶段)
+
+```
+① 基本问卷 → ② 生成方案中梳理"待确认问题"再成问卷 → ③ 归因分析
+   → ④ 用户自然语言调整确认 → ⑤ 给出调整方案(类似全家干预方案 v1.1)
+   → ⑥ 用户筛选确认 → 形成任务
+```
+
+状态机总览(PRD §C):① Submitted → ② Confirmed → ③ Ready → ④ Confirmed → ⑤ Generated → ⑥ TaskConfirmed。任何一步可保存续做;③↔④ 可回退(调整归因结论会作废⑤重新生成)。
+
+---
+
+## 二、现状核查结论(6 阶段 × 4 维度矩阵)
+
+> 结论档位:✅ 可复用 / 🟡 部分实现(需扩展)/ ❌ 缺失。证据均为本机代码实证。
+
+### 2.1 矩阵
+
+| 阶段 | 前端页面 | 后端接口 | 数据表 | LLM 能力 |
+|------|----------|----------|--------|----------|
+| ① 基本问卷 | 🟡 问卷类页面可承载(`SurveyTemplate` 动态渲染,见 evidence) | ✅ `/api/survey`:`template/active` `submit` `history`(`SurveyController.java:26-57`) | ✅ `survey_templates` / `survey_records`(`SurveyTemplate.java` 字段 `questionsJson/dimension/cycleType`) | — |
+| ② 动态确认问卷 | 🟡 同上,**缺条件触发/对象分组/风险级** | 🟡 `SurveyController` 仅静态模板提交,**缺"按对象/结论条件下发"** | 🟡 复用 survey_records,**缺问诊清单 schema 扩展** | — |
+| ③ 归因分析 | 🟡 `health/plan-list.vue`、`health/report-confirm.vue` 为健康方案风格 | 🟡 `/api/health/plan/generate`(`HealthPlanController.java:33-56`,含付费墙拦截)走 `generatePlanResult`——**AI 生成健康方案,非归因推理** | 🟡 `health_plans`(`HealthPlan.java`,含 `planJson/memberIds/dimensions/status/totalDays`) | ✅ `AIChatController` `/api/ai/chat/send` + `report/analyze`(`AIChatController.java:82-225`) |
+| ④ 自然语言调整 | ✅ `ai/chat.vue` 对话页 + 会话持久化 | ✅ `/api/ai/chat/conversations` / `chat/messages` / `chat/send`(`AIChatController.java:283-306`) | ✅ `ai_conversations`/`ai_messages` | ✅ `AiGateway`(含超时/熔断) |
+| ⑤ 调整方案 | 🟡 `health/health-plan-summary.vue`、`teacher/plan-detail.vue`(教师审核链) | ✅ `/api/health/plan/save` `confirm` `list` `detail`(`HealthPlanController.java:75-146`);`pending-review/*`(审批流) | 🟡 `health_plans.planJson` **无全家 7 章 schema 约定** | 🟡 AI 生成已有,缺"归因结论→干预方案"专用 prompt |
+| ⑥ 筛选确认成任务 | 🟡 `child/tasks.vue` 任务页;缺"从方案动作表勾选" | ✅ `/api/health/plan/confirm` + `/tasks`(`HealthPlanController.java:146-160`,`planTasks` 返回 `List<Task>`) | ✅ `tasks` / `task_plans` / `task_templates` / `task_template_packages` | — |
+
+### 2.2 可复用资产清单(✅/🟡 均可复用,需扩展点已标注)
+
+| 资产 | 路径 | 复用方式 | 需扩展 |
+|------|------|----------|--------|
+| 问卷模板+提交 | `SurveyController.java`、`SurveyTemplate.java`(`questionsJson`)、`SurveyRecord` | 第八章 16 条问题写入 `questionsJson` 即可渲染 | questionsJson 需支持:对象分组 / 条件触发 / 风险级 / 必答 |
+| 方案聚合根 | `HealthPlan`(`health_plans` 表,`planJson` 自由文本) | 全家干预方案 7 章 → `planJson` 结构化 | 新增 `plan_type` 区分 `health_plan` vs `family_attribution_plan`;约定 7 章 schema |
+| 方案→任务 | `HealthPlanController.confirm` + `/tasks`(`planTasks`→`List<Task>`) | ⑥ 阶段直接复用 | P0 强制不可跳过、任务带复盘钩子/时间窗/优先级 |
+| 教师审核链 | `pending-review/list|update|approve|reject` | 方案确认前教师复核(可选) | — |
+| LLM 对话 | `AIChatController`、`AiGateway`、`ai/chat.vue` | ④ 自然语言调整直接复用 | 对话结论需"结构化回填归因字段 + 使⑤失效重生成"编排 |
+| 家庭模型 | `Family`/`FamilyMember`/`FamilyRelationship`/`FamilyRelationshipScore` | 全家方案按成员分层 | — |
+| 前端健康方案页 | `health/plan-list.vue`、`health-plan-summary.vue`、`teacher/plan-detail.vue` | ⑤ 展示骨架可参考 | 归因流程需专用 6 步向导,非健康方案单页 |
+| 报告数据源 | 菌群 JSON(`report-detail`/`gut-flora-detail`)、DAN(`DanAssessmentController`) | ③ 归因输入 | 需桥接"报告/检测数据 → 归因方案"的成员关联 |
+
+### 2.3 硬缺口清单(❌ / 必须新增)
+
+| 缺口 | 说明 | 影响阶段 |
+|------|------|----------|
+| G1 归因分析引擎 | 把 菌群JSON + DAN + 常模 + 确认问卷 → 十节归因报告。`generatePlanResult` 是通用健康方案生成,**无归因推理(常模比对→指标解读→五维归因→主因链→被证伪项)** | ③ |
+| G2 动态确认问卷条件触发 | 第八章 16 条明显条件化(Q2 乳杆菌异常/Q4 铁偏低/Q9 无 DAN/Q10-13 女儿/Q14-15 儿子),现 `SurveyController` 无此路由 | ② |
+| G3 自然语言调整→结构化回填 | 对话有,缺"对话结论回填归因结构化字段 + ⑤失效重生成"的编排服务 | ④ |
+| G4 全家干预方案 7 章 schema | `planJson` 无「分人×层级(P0/P1/日常/P2)×动作×产品×具体做法×复盘钩子」约定与渲染 | ⑤ |
+| G5 方案类型区分 | `health_plans` 无 `plan_type`,无法区分健康方案/归因方案 | ③⑤⑥ |
+| G6 前端归因 6 步向导 | 现无"基本问卷→确认问卷→归因结果→自然语言调整→调整方案→任务筛选"编排页 | ①-⑥ |
+| G7 数据源→方案桥接 | 菌群/DAN/常模按家庭成员关联到归因方案的中间层缺失 | ③ |
+| G8 高风险红线拦截 | Q11 自伤/拒学/失眠、Q12 欺凌、Q13 进食风险——命中需**强阻断+就医引导**,现问卷无风险分级 | ②③④ |
+| G9 合规文案注入 | 10 条红线(测评≠诊断/不调药/儿童剂量医生定/不贴标签/不宣称治疗/先医后补/服药间隔/铁餐纪律)需在生成时硬编码注入 | ③⑤ |
+| G10 常模参照表 | 710 条菌群常模 + DAN 常模的后端表缺失(现随报告/前端知识库) | ③ |
+
+---
+
+## 三、整改方案(分 4 阶段)
+
+### 阶段一:数据地基(后端 + 配置,纯增量,低风险)
+- **A1** `health_plans` 加 `plan_type`(`family_attribution_plan`),迁移 423+
+- **A2** `SurveyTemplate.questionsJson` schema 扩展:支持 `{group, condition, riskLevel, required, type, options}` 字段(第八章 16 条按此建模,PRD §A)
+- **A3** 新建后端常模表:`attribution_norm_values`(菌群 710 条)+ DAN 常模(G10)
+- **A4** 合规文案模板:`attribution_redlines`(10 条红线文案 + 分级,PRD §D)——生成时注入(G9)
+
+### 阶段二:核心闭环 ③→⑤(后端为主)
+- **B1** 归因分析引擎 `AttributionAnalysisService`:常模比对 → 指标解读(异常/偏离)→ 五维归因 → 主因链 → 被证伪项 → 十节报告结构;AI 混合(`AiGateway`)生成叙述 + 规则兜底(G1)
+- **B2** 动态确认问卷:`SurveyController` 增加条件路由(按对象/结论条件化下发 16 条子集)(G2)
+- **B3** 自然语言调整编排 `AttributionAdjustService`:对话结论回填归因字段 + ⑤失效重生成(G3)
+- **B4** 全家干预方案 7 章生成:归因结论 → `planJson`(分人×层级×动作×产品×具体做法×复盘钩子),继承「先共享基座后精准」顺序 + 红线前置(G4)。**产品口径按主理人拍板 = 品牌级**(Enagic 还原水/姜黄、PHGG、益生菌株名),合规文案模板(A4)同步品牌级口径,品牌露出不得附带功效承诺
+
+### 阶段三:任务化 + 前端(⑥ + ①-⑥ 编排)
+- **C1** 方案→任务扩展:`confirm` 增加 P0 强制不可跳过 + 任务携带复盘钩子/时间窗/优先级(G6 半)
+- **C2** 前端 6 步向导页:`family-attribution/` 目录(basic-survey / confirm-survey / result / adjust / plan / tasks)复用 `SurveyTemplate` 渲染 + `ai/chat.vue` 对话 + `planJson` 展示(G6)
+- **C3** 数据源桥接:报告/检测数据按家庭成员绑定到归因方案(G7)
+
+### 阶段四:合规 + 验证(收口)
+- **D1** 合规收口(真实用户放行唯一闸门):① 高风险项处理**复审**(主理人拍板 E4=弱提示可继续,涉未成年人自伤/进食风险,须补「建议专业评估 + 转介信息露出 + 家长确认」);② **品牌级展示的广告法/医疗合规审查**(主理人拍板 E7=品牌级);③ 未成年人敏感数据保护 + 隐私声明(G8;总依赖 E12=合规后置,故本项是**技术层完成后、真实用户上线前的必过闸**)
+- **D2** 端到端验证:mock 4 人家庭(含 1 名父亲无 DAN、1 名青春期女儿)跑通 ①→⑥;验证红线注入、P0 强制、复盘钩子入任务
+- **D3** 教师复核链可选接入(复用 `pending-review/*`)
+
+### 阶段边界(依赖)与回滚
+- 阶段一可独立上线(无 UI 依赖);阶段二依赖 A1-A4;阶段三依赖 B1-B4;阶段四依赖 D 合规裁定 + 前阶段。
+- 每阶段独立 commit + 独立派发实例;阶段一/二为后端可先推 `cfclub` 后置前端。
+- 回滚锚点:每阶段合并前打 `refs/backup/cfclub-pre-attribution-<stage>`(参考 UI 令牌收敛回滚锚点先例)。
+
+---
+
+## 四、时间线(估算,开发人日)
+
+| 阶段 | 内容 | 后端 | 前端 | 合计 | 依赖 |
+|------|------|------|------|------|------|
+| 阶段一 数据地基 | A1-A4 | 1 人日 | — | 1 人日 | 无 |
+| 阶段二 核心闭环 | B1-B4 | 3 人日 | — | 3 人日 | 阶段一 |
+| 阶段三 任务+前端 | C1-C3 | 1 人日 | 3 人日 | 4 人日 | 阶段二 |
+| 阶段四 合规+验证 | D1-D3 | 1 人日 | 1 人日 | 2 人日 | E12 + 阶段三 |
+| **合计** | | **6 人日** | **4 人日** | **10 人日** | |
+
+> 注:不含主理人拍板等待、不含 LLM 限流黑窗、不含合规/法务周期。若采用远端实例并行派发(后端/前端各一实例),墙钟可压缩至约 5-7 个工作日。
+
+---
+
+## 五、开放问题(需主理人拍板,按阻塞程度排序)
+
+> 完整清单见 PRD §E(E1–E12)。以下为**阻塞目标态定义**的核心 6 项,先拍这批即可开工。
+
+| 编号 | 问题 | 选项 | 推荐 |
+|------|------|------|------|
+| E12 | ⚠️内容涉及未成年人心理/自伤/进食/欺凌敏感数据 + 糖尿病医疗信息,是否有隐私/未成年人保护/医疗健康合规方案? | a) 已有(请提供)b) 无法务,需法务先行 | **b 需法务先行(总阻塞)** |
+| E4 | 高风险项(Q11 自伤/拒学/失眠、Q12 欺凌、Q13 进食)命中时? | a) 强阻断+转介引导 b) 弱提示可继续 | **a 强阻断**(涉未成年人) |
+| E7 | 方案中产品展示粒度? | a) 成分/类别(不推品牌)b) 品牌级(同文档) | **a 成分/类别**(规避广告+医疗合规) |
+| E2 | 基本问卷采集范围? | a) 只采手工基础信息,检测走独立上传/导入通道 b) 问卷+报告都收 | **a**(问卷采报告数据会污染归因) |
+| E3 | 动态确认问卷触发方式? | a) 按对象/结论条件下发 b) 静态全量 | **a 条件下发**(符合"梳理出需确认问题") |
+| E6 | 调整方案的人范围? | a) 跟随文档 3 人(妈妈/女儿/儿子,爸爸链外)b) 全员 4 人 | **a 3 人**(口径一致,爸爸另有进阶方案) |
+
+非阻塞项(可设计阶段并行):E1 问诊字段 schema 定稿、E5 对话形态(推荐 a 对话+结构化回填)、E8 P0 强制、E9 任务带复盘钩子、E10 角色确认、E11 常模维护方式。
+
+### 主理人拍板记录(2026-10-27 22:35,v1.0 → v1.1)
+
+| 编号 | 拍板结论 | 对方案的影响 | 风险与收口要求 |
+|------|----------|--------------|----------------|
+| E12 | **先做技术层,合规后置** | 阶段一/二技术开发先行(不接触真实数据);阶段四合规收口前**不对真实用户开放** | 合规后置期间仅允许 mock/测试数据;真实用户放行 = 阶段四 D1 完成日 |
+| E4 | **弱提示可继续**(未采纳推荐 a 强阻断) | Q11/12/13 命中仅标记「建议专业评估」,问卷不阻断 | ⚠️ 涉未成年人自伤/进食风险:阶段四 D1 必须重审此项(弱提示 + 转介信息露出 + 家长确认),合规收口前真实用户环境不得上线 |
+| E7 | **品牌级,同源文档**(未采纳推荐 a 成分/类别) | 方案直接展示 Enagic 还原水/姜黄、PHGG、益生菌株名;合规文案模板(A4)同步品牌级口径 | ⚠️ 广告法/医疗合规审查必须进阶段四 D1;「不宣称治疗/不替代药物/儿童剂量医生定」红线(PRD §D P1 级 5、P0 级 3)仍强制,品牌露出不得附带功效承诺 |
+| E6 | **跟随源文档 3 人**(采纳推荐 a) | 调整方案仅覆盖妈妈/女儿/儿子;爸爸链外(另有糖尿病进阶方案) | 家庭成员角色确认(E10)仍须用户主动确认,不默认系统推断 |
+
+> 附注:E4/E7 与既有「合规从严」口径存在张力,均已在此记录风险;阶段四合规收口是唯一仲裁点,届时可凭新证据改判。
+
+---
+
+## 六、派发前置条件(纪律)
+
+1. **文档必须已 push 到远端可读分支**:本 PRD + 本整改方案需先合入 `cfclub`(或独立 `docs/*` 分支)再 `hub.py dispatch`——远端实例按 `origin/cfclub` 检出,未 push 的 spec 会导致派不动(历史根因)。
+2. **任务登记纪律**:拆分后的任务若存在依赖(如阶段二依赖阶段一),必须登记 `blocked` + 写明阻塞原因,**不得登记 `pending`**——否则巡检 `fill_slots` 会立刻误派(历史事故教训)。
+3. **主工作树排除**:`E:/cfc` 本机主工作树不作为派发目标(他人未提交改动 + 分支漂移);用独立 worktree 或远端实例。
+4. **commit 纪律**:会话产出即 push;commit 前 `git diff-tree --name-only` 自查;不用 `add -A` 卷入他会话内容。
+5. **合规红线不可谈判**:阶段四 D1 未完成前,①→⑥ 全流程不得对真实用户开放(未成年人敏感数据 + 医疗信息)。
+
+---
+
+## 七、结论
+
+- **现状远非空白**:问卷模板/提交(SurveyController)、方案聚合根(HealthPlan)、方案→任务(confirm/tasks)、LLM 对话(AiGateway + AIChatController)、家庭模型(Family/FamilyMember)、前端健康方案页(plan-list/health-plan-summary/teacher-plan-detail)、教师审核链(pending-review)**全部已存在**。
+- **核心缺口集中在**:归因推理引擎(G1)、动态确认问卷条件触发(G2)、自然语言调整结构化回填(G3)、全家干预方案 7 章 schema(G4)、方案类型区分(G5)、前端归因 6 步向导(G6)、数据源桥接(G7)、高风险红线拦截(G8)、合规文案注入(G9)、常模表(G10)。
+- **整改路径**:4 阶段、约 10 人日(墙钟 5-7 工作日,并行派发)。阶段一(数据地基)纯后端增量、可独立上线;阶段四(合规+验证)是**真实用户放行的硬前提**。
+- **先决条件**:主理人已拍板(E12 合规后置 / E4 弱提示 / E7 品牌级 / E6 三人)→ 阶段一/二技术开发可先行;**阶段四合规收口(D1)是真实用户放行的唯一硬闸门**(因 E12=合规后置、E4/E7 与从严口径有张力,改判凭据在阶段四 D1 复审)。