---
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

## 原始问题

## 主线判断

## 证据强弱

## 跨维度共识

## 关键冲突与解释

## 不确定性与信息缺口

## 对原始问题的回答

## 对终稿的结构建议
```

## 质量门槛

- `主线判断` 必须能支撑终稿摘要，而不是泛泛总结。
- `证据强弱` 不能只给标签，必须说明为什么强或弱。
- `跨维度共识` 只写真正被多个维度支持的结论。
- `关键冲突与解释` 必须解释冲突来源，不能只并列两种说法。
- `不确定性与信息缺口` 不能省略，也不能被美化成“待进一步观察”。
- `对原始问题的回答` 必须直接回应用户最初要判断的事。
- `对终稿的结构建议` 只做章节分配建议，不代写终稿正文。

## 常见失败

- 把每个子报告复制成一段摘要。
- 只有结论，没有证据强弱判断。
- 看见冲突就回避，不解释原因。
- 提前写成面向读者的成稿。
- 忘了回到用户的原始问题。
