--- name: sn-research-synthesis description: "[sn-deep-research 子阶段] 基于多个 sub_reports 产出 synthesis.md:主线判断、证据强弱、跨维度共识、关键冲突。用于先想清楚结论再写报告。通常由 sn-deep-research 自动调用。" --- # Research Synthesis 产出 `{report_dir}/synthesis.md`。它负责把分散的子报告变成**可写终稿的判断层**,不是子报告摘要合集,也不是最终面向读者的报告。 ## 任务边界 做: - 回到原始问题,判断哪些发现真正回答用户要判断的事。 - 提炼 2-5 条主线判断。 - 判断每条主线的证据强弱和适用条件。 - 汇总跨维度共识。 - 标出关键冲突,并解释冲突来源。 - 明确保留不确定性、信息缺口和可能推翻结论的条件。 - 说明这些判断对用户原始问题意味着什么。 - 给终稿提供写作主线和章节分配建议。 不做: - 不重写子报告。 - 不按维度逐段摘要。 - 不直接生成 `report.md`。 - 不把缺口包装成结论。 - 不新增未被子报告支撑的关键判断。 ## 输入 - `{report_dir}/request.md` - `{report_dir}/plan.json` - 全部 `{report_dir}/sub_reports/*.md` ## 综合判断要回答的内容 至少明确这 7 件事: 1. **主结论**:最终最重要的判断是什么。 2. **证据强弱**:每条判断的把握度如何。 3. **跨维度共识**:哪些结论被多个维度共同支持。 4. **关键冲突**:哪些事实、口径、时间点或立场彼此矛盾。 5. **冲突解释**:冲突来自时间差、统计口径、样本差异、利益相关方立场还是事实未定。 6. **不确定性与缺口**:哪些问题还不能稳健回答。 7. **对原始问题的回答**:这些发现对用户最初的问题意味着什么。 ## 执行流程 1. **回到原始问题**:从 `request.md` 和 `plan.json.research_goal` 提取最终要回答的判断。 2. **读取全部子报告**:只抓每个维度中真正影响结论的发现、限制和风险。 3. **提炼主线判断**:压缩成 2-5 条能支撑终稿摘要的主线。 4. **判断证据强弱**:给每条主线标注 `高 / 中 / 低` 把握度,并说明原因。 5. **汇总共识与冲突**:区分“稳定结论”和“存在争议的结论”。 6. **解释冲突来源**:不要只写矛盾本身,要解释为什么矛盾。 7. **保留不确定性**:写清哪些结论成立要附带条件,哪些还需要补查。 8. **落到用户问题**:明确这些判断对用户决策、选择、理解或后续动作的含义。 9. **给终稿布线**:说明哪些判断进入摘要、核心发现、风险与不确定性等章节。 如果发现关键缺口导致主线无法成立,先回到对应维度补研究,再重新综合。 ## 输出 写入 `{report_dir}/synthesis.md`: ```markdown # Synthesis ## 原始问题 ## 主线判断 ## 证据强弱 ## 跨维度共识 ## 关键冲突与解释 ## 不确定性与信息缺口 ## 对原始问题的回答 ## 对终稿的结构建议 ``` ## 质量门槛 - `主线判断` 必须能支撑终稿摘要,而不是泛泛总结。 - `证据强弱` 不能只给标签,必须说明为什么强或弱。 - `跨维度共识` 只写真正被多个维度支持的结论。 - `关键冲突与解释` 必须解释冲突来源,不能只并列两种说法。 - `不确定性与信息缺口` 不能省略,也不能被美化成“待进一步观察”。 - `对原始问题的回答` 必须直接回应用户最初要判断的事。 - `对终稿的结构建议` 只做章节分配建议,不代写终稿正文。 ## 常见失败 - 把每个子报告复制成一段摘要。 - 只有结论,没有证据强弱判断。 - 看见冲突就回避,不解释原因。 - 提前写成面向读者的成稿。 - 忘了回到用户的原始问题。