# Research Synthesis

> 拿到经核验的文献清单后，按主题聚类、建 MECE taxonomy、逐节综合、交叉对比、检测矛盾、自对抗审查，产出一份结构化的综合分析。是doubao-academic-researcher管线的第二阶段，负责从一组论文到一份有判断的综述的转化。

- Skill: `ahang1598/research-synthesis` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ahang1598/research-synthesis`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/research-synthesis/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/research-synthesis

---


# 证据综合与审查

你拿到了一份经核验的文献清单，每篇附关键发现摘要。你的任务是把这些碎片综合成一份有判断力的分析：不是逐篇罗列，而是按主题组织、交叉对比、呈现矛盾、给出结论。

这一步是整个调研中最决定产出质量的环节。检索找到了论文，核验确认了真实性，但"把 30 篇论文变成一份专业综述"——这个转化才是真正的工作。

## RUNTIME CONTRACT（最高优先级）

### SCRIPT-GATE

开始前先运行：

```bash
python scripts/workflow.py enter research-synthesis
```

若命令返回非 0 或 JSON 中出现 `status: blocked`，只按返回的 `blocked` / `next_stage` 处理，不得开始综合。

### INPUT-GATE

- 若输入缺少 `[SCOUT_HANDOFF]`，只输出：`BLOCKED: NEED_SCOUT_HANDOFF`
- 若 `[SCOUT_HANDOFF]` 中缺少 `ready_for_synthesis: yes`，只输出：`BLOCKED: NEED_SCOUT_REDO`
- 若文献清单缺少核验状态或角色标签，只输出：`BLOCKED: NEED_SCOUT_REDO`
- 若只拿到研究话题、没有经核验文献清单，只输出：`BLOCKED: NEED_SCOUT_REDO`

### EVIDENCE QUALITY GATE（综合前必过）

拿到 scout 的文献清单后，先做一轮质量筛选再开始综合。以下规则来自 `../literature-scout/references/citation-protocol.md` 的"来源质量分级"，在综合阶段必须强制执行：

**来源质量**：
- 支撑核心判断、概念定义、机制解释或反证的文献，`source_quality` 必须是 A 或 B。C 和 grey 级文献只能作背景线索或次要补充。
- 每条核心文献必须有 `url`（供文末参考文献附链接）、`authority_signal`（top_journal/high_citation/classic/official/core_journal 之一）和 `quality_basis`（如 CSSCI/北大核心/SCI 分区/影响因子/被引数/顶刊顶会/经典奠基/官方来源），说明为什么可信。核心证据靠正向质量凭据放行，不靠刊名黑名单放行。
- `read_status` 为 `metadata_only` 的文献不能进入核心论证。

**引用簇**：
- 正文每个判断同一处引用最多 3-4 篇，优先 1-3 篇。需要 5 篇以上才能支撑的判断，拆成多个子判断，或解释这些文献之间的关系（收敛/冲突/互补/阶段推进）。
- 禁止把一长串作者-年份引用堆在句尾替代分析。删掉引用后该段只剩"某某认为、某某指出"的，属于文献解释失败，重写。

如果 scout 提供的文献清单中，某个必答 RQ 找不到足够 A/B 级核心文献（至少 3 篇），不得硬凑——在综合中如实标注该 RQ 的证据等级偏低，并在局限性中说明。

### READ-GATE（开始前必须完成）

先打开：
- `references/synthesis-framework.md`
- `references/quality-gates.md`
- `references/gaps-and-directions.md`

开始前必须能回答：
1. 开写前的内部底账叫什么？
2. Coverage / Citation 不通过时该怎么处理？
3. 核心证据的来源质量和引用簇限制是什么？
4. “可研究的方向”每条必须包含哪三项？

答不出，先读文件，不得开始综合。

### OUTPUT CONTRACT

- Coverage / Citation 不通过时，不得输出 handoff；只输出：`BLOCKED: NEED_SCOUT_SUPPLEMENT`
- Angle / Taxonomy / Calibration / Weaving 未清，或自对抗审查仍有重大未解时，不得输出 handoff；只输出：`BLOCKED: NEED_SYNTHESIS_REWORK`。这个 code 表示“保留当前文献清单，重做本阶段综合”，不是回退到 scout。
- 只有 6 维门禁全部 CLEAR 且自对抗审查通过时，才能在输出最前面给出：

```
[SYNTHESIS_HANDOFF]
read_gate: pass
gate_status: clear
ready_for_review: yes
```

紧随其后必须给出四类短交接包：`[CLAIM_POOL]`、`[CITATION_POOL]`、`[TENSION_POOL]`、`[GAP_POOL]`。没有这些 pool，不得交给 `review-writing`。

同时把同等字段写入 `.workflow/synthesis_handoff.json`，并运行：

```bash
python scripts/workflow.py accept research-synthesis .workflow/synthesis_handoff.json
```

默认必须创建 `.workflow/research_visuals.json` 并运行：

```bash
python scripts/research_visuals.py --input .workflow/research_visuals.json --output .workflow/figures
```

该命令会生成 `.workflow/figures/logic_graph.whiteboard.xml`（Mermaid 白板，低饱和期刊配色，节点间有向边带语义标签，节点可追溯到文献 evidence 编号）。图必须体现研究之间的脉络（各主题/流派如何推进、分化、争议），不是节点孤立指向中心的放射图，因此 `research_visuals.json` 必须包含 `edges`（详见下文"核心逻辑图"节）。不生成 PNG，不生成旧的研究发展脉络图。不得以"文献不足以支撑逻辑图"为由自行跳过；即使文献集中在少数主题，仍用核心问题与现有主题之间的真实关系组织脉络。只有用户明确允许"本次不生成图"时，才可创建 `.workflow/logic_graph_skip.json`。

## 反朴素管线：先分配证据，再写

朴素做法是"读完所有论文，然后自由写一段综述，最后在合适的地方插入引用"。**不要这样做。** 这种做法的引用往往是事后贴上去的装饰，极易张冠李戴或编造。

正确做法：

1. **先确定主题分组**
2. **把每篇论文的关键发现分配到对应主题**
3. **每个主题拿到一组固定文献**，综合时只从这组里写，不越界引用
4. **写完后检查**：正文每条 claim 是否都能追溯到分配给该主题的文献

这一步的载体是一张 **Source × Theme 文献矩阵**（内部脚手架，不打印）：把"哪篇支撑哪个主题、哪里收敛、哪里空格"摊成一张底账，再动笔。矩阵怎么建、收敛汇总怎么读见 `references/synthesis-framework.md` 的"证据映射：文献矩阵"。

## 三步法

### 第一步：引文抽取

对每篇论文抽取直接回答研究简报的关键信息：

- **核心发现**：一两句话概括
- **方法特征**：用了什么方法？和其他论文的区别？
- **适用条件**：发现在什么条件下成立？已知局限？
- **角色标签**：沿用 literature-scout 标好的角色（奠基 / 代表路线 / 最新进展 / benchmark / 局限证据 等）——写不同章节时按角色调用，如"不足讨论"优先取局限证据类。
- **与其他论文的关系**：支持、挑战、还是扩展了谁？

不相关的论文在这一步整篇丢弃。

#### 抽取原料：摘要层 vs 全文精读

引文抽取的质量，取决于你手上有这篇论文的多少内容。分两个层次：

- **摘要层（默认，可批量）**：只有标题、摘要、关键词等元数据。适合给整份清单铺覆盖面。此时抽取的"核心发现"是**基于摘要的概括**，**不得**补写摘要里没有的具体实验设置、精确数字或消融结果——那属于编造（见 `../literature-scout/references/citation-protocol.md` 的 PAYWALL 原则）。
- **全文精读层（对核心文献，做得深）**：拿到论文的**完整正文**后，抽取可以落到真实细节——具体方法、实验设置、精确指标、消融、作者自陈的局限。写这几篇时才能给出准确到原文的方法与数字，而不是泛化的摘要转述。

**什么时候升到全文精读**：不是每篇都精读（代价高）。挑**奠基作、被反复引用的核心工作、以及综述里要重点展开或用于矛盾对比的关键论文**做全文精读；其余留在摘要层即可。典型是"摘要层铺广 + 少数几篇精读做深"。

**全文从哪来（关键边界）**：全文精读依赖一份**解析好的论文全文**——通常是用**外部 PDF 解析工具**（如 MinerU 等）把 PDF 转成干净的 markdown 正文（含公式、表格、图注）。

- 本 skill **不自带 PDF 解析能力**。全文来源有二：① 用户/协作者提供已解析好的全文（如 MinerU 导出的 `.md`）；② 运行环境挂载了可用的解析或全文抓取工具。
- **两者都没有时，如实退回摘要层**，不要假装读过全文、更不能凭记忆补细节。
- 用浏览器能打开的网页正文（如 HTML 版论文、预印本页面）也可作全文来源，但对 PDF（尤其付费或扫描版）的公式、表格解析质量有限，能解析到什么程度就用到什么程度。

**精读后仍要核验**：全文里读到的具体数字、结论同样要与论文本身一致；解析工具可能出错（表格错位、公式乱码），关键数字存疑时回到原文或降级引述。

### 第二步：主题聚类 + MECE taxonomy

按**研究问题或方法流派**聚类，不按论文。大纲每个节点标记：

- **呈现方式**：paragraph（多篇论文的细致综合）还是 table（并排对比）
- **分配的文献**：这个节点引用哪几篇

**MECE 原则**：分类轴互斥且完备。空格 = gap = finding。一个好的 taxonomy 不只是分了类，还能通过空格揭示这个领域的盲区。

跨分类的论文（属于多个类别的）要识别出来——它们往往是最有洞见的，正是因为它们挑战了分类轴本身。

### 第三步：逐节串行合成

按大纲顺序一节一节写。每节输入 = 研究简报 + 分配的文献 + 已写好的前面几节。

**串行而非并行**。并行写各节会导致内容重复、风格不一、节间无过渡。

## 每个主题章节的思维骨架

写每个主题章节前，先过这条论证链——**编号骨架不打印，但每一环都必须在主题章节正文里展开落地，而不是过一遍就写成一段浓缩概览**：

1. **这个主题的 claim 是什么？** 不是"覆盖了哪些工作"，而是"这些工作放在一起告诉我们什么"。
2. **最强的正面证据？** 哪几篇最直接支持？独立来源的收敛比单一来源更有力。
3. **反面证据或限定条件？** 哪些工作与 claim 矛盾或限制其适用范围？
4. **方法/条件差异怎么解释分歧？** 数据集？样本量？指标？时间窗口？
5. **和其他主题什么关系？** 支持、挑战、还是补充？

**自检**：写完后删掉所有引用，剩下的还是一篇有判断的分析（不是事实罗列），说明论证链是通的。

**主题章节是结果层的论述主体**：外围节（核心结论、研究范围、文献多维地图、研究视角、争议、方向、局限）负责导航与索引，主题章节负责实质论证，其深度应明显重于任一外围节。**主题章节与核心结论、研究视角、核心逻辑图同源一致、逻辑扣合**（各主题分点即研究视角的分类轴与核心逻辑图的证据节点，其 claim 即对应的核心结论），这条逻辑链不变；要防的只是**把这套骨架换个说法复述一遍而不加实质论证**的空心化。逐环展开时，第②环（机制 / 路线）对"机制解释型"主题尤其关键——要讲清"通过什么中介、在什么边界条件下起作用"的作用路径，不能只给"存在正向影响"这类结论标签就收尾。深度随主题实际证据量自适应，**不设字数或占比红线**；证据稀疏时如实短写并标注 gap，不硬凑。

## 交叉对比写法

**这是综述和网页摘要的核心区别。** 人写的综述 citation 互联密度 0.14，GPT 直出只有 0.02。差距在于：人会在同一句子里比较两三篇论文，AI 倾向于逐篇孤立总结。

**操作规则**：文献充足、该段承担实质分析时，优先让每个主题段落至少有一个句子同时引用并对比两篇以上论文——一个本可比较的段落却只引一篇，它更像论文摘要而非综述。**但不强行凑比较**：若该段只承担问题界定、章节过渡，或该主题本身只有 1-2 篇关键文献，可以不做对比，别为了达标写出生硬的拼凑句。

详细的正反面写法示例见 `references/synthesis-framework.md`。

## 矛盾呈现

文献间的矛盾是综述最有价值的内容之一。**不要平均掉。**

如果 A 说 X 有效、B 说 X 无效：
1. 明确摆出双方发现
2. 分析条件差异（数据集？指标？设置？样本量？）
3. 如果能判断，给倾向（"在 Z 条件下，B 的证据更有说服力"）
4. 如果不能判断，如实说"目前证据不足以判断"

## 自对抗审查

综合完成后，做一轮自我质疑（详见 `references/self-adversarial.md`）：

1. **如果重新开始，研究简报会变吗？**（检查 frame-lock）
2. **有没有未审视的前提假设？**（如默认"准确率=更好"）
3. **结论是被证据支撑的，还是被选择性引用构造的？**（检查 confirmation bias）
4. **哪个视角被系统性遗漏了？**（学科、地域、方法、批判视角）

发现问题 → 修正 claim 或补充限定，不要为走流程硬造自我批评。若这轮自对抗之后仍有重大未解，不得输出 `[SYNTHESIS_HANDOFF]`，只返回 `BLOCKED: NEED_SYNTHESIS_REWORK`。

## 6 维内部门禁

综合过程中用 6 个维度做检查（详见 `references/quality-gates.md`）。这些不对外呈现，是内部质量保证：

- **Angle**：有判断角度还是只在罗列？（CRITICAL → 回 Step 0 重炼 angle）
- **Coverage**：关键工作都覆盖了吗？（MAJOR → 通过 OrganizeAgent 回调 literature-scout 补搜）
- **Citation**：引用真实、引述准确？（CRITICAL → 通过 OrganizeAgent 回调 literature-scout 核验）
- **Taxonomy**：按主题不按论文？MECE？（MAJOR → 本阶段重设分类轴）
- **Calibration**：判断强度 ≤ 证据强度？（MAJOR → 本阶段按 hedge-calibration 调措辞）
- **Weaving**：句内交叉对比？（MAJOR → 本阶段按 synthesis-framework 重写）

## 产出

综合完成后，产出**结构化的综合分析**，包含：

- 核心结论（3-7 条 claim，内部 evidence-first 推导，呈现时翻转成 conclusion-first）
- 总体判断一句话
- `六、主题章节` 及其下按主题组织的分主题分析（每个 `### （一）[主题名]` 有 claim + 本节文献索引 + 正反证据 + 对比表 + 小结；若为满足 `output_scope` 新增分主题，后续 `（二）（三）...` 序号自动顺延）
- 争议与开放问题
- 可研究的方向
- 局限性

争议、开放问题、可研究的方向这三节同源，都是对暴露的缺口做提炼——方法见 `references/gaps-and-directions.md`（如何从矛盾、taxonomy 空格、视角遗漏中提炼，并把缺口翻译成可下手的选题）。

**这是"文献调研结果层"**：结论先行、分主题、带脚手架（导航段、`六、主题章节`、本节文献索引、小结），帮读者看清地图。这一层就是本阶段的完整产出——**不在这里再写一版连续成文的"完整文献综述参考稿"**，那是下游 `review-writing` 的职责（成稿参考层）。本阶段只需保证判断、争议、引用都齐备且可追溯，供成稿阶段忠实转写。

交给 `review-writing` 的内部输出，最前面必须是一个短交接包：

```
[SYNTHESIS_HANDOFF]
read_gate: pass
gate_status: clear
ready_for_review: yes

[CLAIM_POOL]
- 核心判断 1 ...

[CITATION_POOL]
- 张三等（2021）；Smith et al.（2020）

[TENSION_POOL]
- 争议 / 反证 / 条件差异 ...

[GAP_POOL]
- 开放问题 / 局限 / 可研究方向来源 ...
```

并创建 `.workflow/synthesis_handoff.json`：

```json
{
  "stage": "research-synthesis",
  "read_gate": "pass",
  "gate_status": "clear",
  "ready_for_review": "yes",
  "claim_pool": ["核心判断 1"],
  "citation_pool": ["张三等（2021）", "Smith et al.（2020）"],
  "tension_pool": ["争议 / 反证 / 条件差异"],
  "gap_pool": ["开放问题 / 局限 / 可研究方向来源"]
}
```

创建后运行：

```bash
python scripts/workflow.py accept research-synthesis .workflow/synthesis_handoff.json
```

然后再接结构化综合正文。若 6 维门禁未清、自对抗未过，或四类 pool 不齐，不得输出这个交接包。

这份产出随后交给 `review-writing` 成稿为连续综述正文，两者共同构成主 SKILL.md 呈现阶段的双层交付。

## 文献多维地图（主题级摘要表）

文献多维地图不再输出“文献 × 主题”的稀疏矩阵，也不再生成 SVG / whiteboard。内部仍可使用 Source × Theme 文献矩阵做底账，但**最终交付给用户的表格**必须压缩成一张**主题级摘要表**，让读者一眼看到“哪些主题文献多、哪些主题有争议、哪些主题明显稀疏”。

表格必须满足：

- **表头固定为 5 列**：`主题`、`支持文献数`、`代表文献`、`争议 / 反对`、`研究空白 / 后续价值`。
- **主题列**：建议写成 `A. 主题名`、`B. 主题名` 这种形式，按支持文献数或主题重要性排序。
- **支持文献数**：写成 `N 篇`；必要时可补一句短注，如 `5 篇（含 1 篇综述）`，但核心必须是数量而不是主观评级。
- **代表文献**：列 2-5 个关键编号，如 `[1][3][5]`；不要把所有编号全部堆进去。
- **争议 / 反对**：一句短话，说明是否存在直接冲突、反对证据或边界条件。
- **研究空白 / 后续价值**：一句短话，说明当前明显缺口或为什么值得继续做。
- **表后说明**：再用一行纯文字总结整体分布，例如“证据主要集中在整体效应和调节因素，公平效应明显稀疏。”
- **红线**：不要保留“证据强度”“置信度”这类主观打分列；不要再输出几十行的文献稀疏矩阵；不要把表格退化成只有“主题 + 文献数”的极简统计表。

模板：

```md
| 主题 | 支持文献数 | 代表文献 | 争议 / 反对 | 研究空白 / 后续价值 |
|---|---:|---|---|---|
| A. 整体效应 | 13 篇 | [1][2][3][4] | 基本无重大争议，但异质性来源仍未完全解释 | 缺少长期追踪和跨场景比较 |
| B. 调节因素 | 10 篇 | [3][5][6] | 不同样本和实施条件下结论波动较大 | 需要更细的情境分层 |
| C. 公平效应 | 1 篇 | [15] | 目前尚无稳定反对证据，但样本过少 | 是明显研究空白 |
```

不要再创建 `.workflow/literature_map.json`，不要运行 `research_literature_map.py`，不要在飞书文档里为文献地图插入 `<whiteboard>`。

## 核心逻辑图（Python 生成）

这张图必须画出**研究之间的脉络**——各主题/流派如何一步步推进、扩展、分化、争议，而不是把一堆证据节点各自孤立地指向中心问题（那种放射图信息量极低，等于没画）。因此 `research_visuals.json` 除了节点，**必须给出 `edges`**：用节点到节点的有向边表达它们之间的关系。

默认必须创建 `.workflow/research_visuals.json`，字段如下：

```json
{
  "logic_title": "核心逻辑图标题",
  "core_question": "核心研究问题或机制",
  "nodes": [
    {"id": "M1", "label": "主题/流派标签", "evidence": ["R1", "R3"]},
    {"id": "M2", "label": "另一主题/流派", "evidence": ["R5"]}
  ],
  "edges": [
    {"source": "core", "target": "M1", "relation": "引出"},
    {"source": "M1", "target": "M2", "relation": "扩展"},
    {"source": "M2", "target": "M1", "relation": "反驳"}
  ]
}
```

- **`nodes`**：每个节点是一个**主题/研究流派/机制路径**（不是单篇论文），`label` 给流派名，`evidence` 列该流派对应的已核验文献编号（如 `["R1","R3"]`），编号会嵌进节点标签保证可追溯。
- **`edges`**：脉络的核心。`source`/`target` 用节点 `id`（或 `core` 指中心问题），`relation` 说明二者关系。**至少要有节点到节点的边**（不能只有 `core→各节点` 的边，那又退化成放射图）。
- **`relation` 枚举**：`引出`、`支持`、`反驳`、`限定`、`扩展`、`沿用`、`分化`、`融合`、`补充`。
- 节点和边都必须来自已核验文献和综合分析里真实存在的关系，**不得凭记忆编造脉络**；两个流派之间若文献里没有明确的启发/争议/扩展关系，就不要硬连边。
- 若某方向文献稀疏、确实连不成脉络，可如实减少节点，但仍需用中心问题与现有主题之间的关系组织，不允许以"文献不足"为由跳过整张图（除非用户明确允许本次不生成图）。

`nodes`/`edges` 是强制字段名；脚本不再接受无 `edges` 的旧式放射图输入。缺少 `edges`、没有有效边，或只有 `core→各节点` 而没有节点到节点的脉络边，都会直接失败。

生成命令：

```bash
python scripts/research_visuals.py --input .workflow/research_visuals.json --output .workflow/figures
```

该命令生成：

- `.workflow/figures/logic_graph.whiteboard.xml`

生成的 Mermaid 白板放在最终报告的"四、研究视角与本文结构"之后、"六、主题章节"之前；若生成飞书云文档，使用 `<whiteboard type="mermaid">...</whiteboard>` 插入。不生成 PNG，不生成旧的研究发展脉络图。不要用 `docs +media-insert` 把图当普通 image 上传。

## 模型自供知识的边界

- 基础背景（公认事实）→ 直接使用
- 具体方法细节、数据、发现 → 必须来自文献清单或已解析的论文全文，不从记忆补充
- 不确定的背景 → 用 `scholar_search` 确认后再用，或标 `[待确认]`
- 时间先后 / 新旧 / 因果次序（"A 使能 B""最新""目前最好"）→ 从文献年份核对，不凭语感。核不了就 hedge 或不写，方法见 `../../references/hedge-calibration.md` 的"时间完整性"。

