# Factcheck

> 对给定内容进行事实核查，拆解主张、多源验证、真伪裁定。适用于验证文章/报告/演讲中的事实性陈述、数据准确性、因果关系的可靠性。触发词包括'事实核查'、'验证真伪'、'核实数据'、'这个说法对吗'、'查证'。不适用于纯主观观点讨论、文学创作评价、或仅需1-2次搜索即可确认的简单事实。

- Skill: `openjiuwen-ai/factcheck` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add openjiuwen-ai/factcheck`
- Raw SKILL.md: https://api.skillmd.com/api/skills/openjiuwen-ai/factcheck/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: openJiuwen-ai (https://skillmd.com/u/openjiuwen-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/openjiuwen-ai/factcheck

---


# FactCheck 事实核查技能说明

## 核心设计原则与整体流程

**目的：** 通过四阶段流程（主张拆解 → 定向验证 → 交叉裁定 → 核查报告），对待核查文本中的事实性主张进行系统性验证，输出逐条裁定与整体可信度评估。

---

## 工作流

**自主原则：** 此技能应尽量独立完成全流程核查。根据内容自动推断合理假设，仅在出现严重歧义时才中断请求澄清。

### 1. 澄清（很少需要 - 优先考虑自主性）

**仅在以下情况提问：**
- 待核查内容完全为空或无法理解
- 用户要求相互矛盾（如"快速全面核查"）

**可直接假设的情形：**
- 未指定核查深度 → 默认 L2
- 未指定重点关注 → 核查所有可验证主张
- 内容含混合语言 → 自动识别并处理

---

### 2. 核查深度分级

| 模式 | 场景 | 主张处理范围 | 来源要求 | 核查耗时（参考） |
|------|------|-------------|---------|-----------------|
| L1 快速核查 | 快速核实几条关键主张 | 仅处理高风险主张（定量数据、因果关系） | 每条 ≥2 来源 | 3–5 分钟 |
| L2 标准核查 | 常规事实核查 | 处理所有可验证主张 | 每条 ≥3 来源，核心主张交叉验证 | 8–15 分钟 |
| L3 全面核查 | 重要文件/发表前核查 | 处理所有主张，含低可验证性 | 每条 ≥3 来源，全部交叉验证 + 逻辑审查 | 15–30 分钟 |

**模式判定规则：**
- 包含「快速核实」「大概看看」「关键数据」等表述 → **L1**
- 包含「事实核查」「验证」「核实」或未明确指定 → **L2**
- 包含「全面核查」「逐条验证」「发表前」「正式」等表述 → **L3**
- 用户显式指定 L1/L2/L3 → **严格按指定执行**

---

### 3. 阶段执行（Step A → Step D）

#### Step A：主张拆解（Claim Decomposition）

**目标：** 将待核查文本拆解为可独立验证的原子主张，识别核查优先级。

**做法：**
1. **识别事实性陈述**：从文本中提取所有可验证的事实性陈述，包括：
   - 定量数据（数字、百分比、金额、排名）
   - 事件事实（时间、地点、人物、事件经过）
   - 因果关系（A 导致 B）
   - 引用归属（某人说了某话、某机构发布了某报告）
   - 统计推断（基于数据的趋势判断）
   - 概念-单位矛盾（核心概念与使用的单位/量纲不匹配，如"体积"配面积单位）
   - 图表数据引用（"如下图所示，增长率为5%"等引用图表数据的主张——将图表中的数据点提取为文字主张后核查）
2. **排除不可验证内容**：
   - 纯主观观点（"我认为""令人振奋"）
   - 价值判断（"这是最好的方案"）
   - 修辞表达（比喻、夸张、反讽）
   - 未来预测（不含历史数据的纯预测）
3. **拆解复合主张**：将复合主张拆解为原子主张，一条主张只含一个可验证事实。
   - 例："2023年中国GDP增长5.2%，超过美国2.5%的增速" → 拆为两条：①中国2023年GDP增速5.2% ②美国2023年GDP增速2.5%
   - **多解表述检查**：对量化/排名/分类类表述，检查是否存在多种合理解读（如"銷售量最高"可指总销量或最畅销单品），有则穷举各解读作为备选验证路径
   - **拆解粒度规范**（确保拆解稳定性和可复现性）：
     - **合并规则**：若两个分句共享同一主语且描述同一事件的同一方面，合并为一条原子主张
     - **拆分规则**：若两个分句虽共享主语但描述不同属性（如身份+行为+时间），拆为独立原子主张
     - **"是…的"结构**：中心语及其限定修饰语不拆分（如"是德国籍犹太人"不拆为"是德国籍"+"是犹太人"）
     - **并列结构**：并列的同类信息可合并为一条（如"北京和上海两地均出现降雨"可合并），也可拆分（按可验证性决定）
     - **上限约束**：单条陈述的原子主张数量建议不超过 6 条。超过时合并语义相近或信息量不足的子主张
4. **标注每条主张**：
   - 类型：定量数据 / 事件事实 / 因果关系 / 引用归属 / 统计推断
   - 可验证性：高（有明确数据点）/ 中（需间接推断）/ 低（模糊表述）
   - 风险等级：高（具体数字、因果关系）/ 中（事件描述）/ 低（定性描述）
5. **按核查深度筛选**：
   - L1：仅保留高风险主张
   - L2：保留所有可验证主张
   - L3：保留所有主张（含低可验证性）

**输出：** 主张清单（供后续步骤使用，无需单独输出文件）

---

#### Step B：定向验证（Targeted Verification）

**目标：** 对每条主张生成精确搜索查询，并行搜索并收集证据。

**做法：**

**B-1 查询生成：**
- 对每条主张，生成 2–4 条精确的搜索查询，覆盖以下方向：
  - **原始来源追溯**：查找数据/引用的原始出处（论文 DOI、官方统计公报、原始报道）
  - **权威机构背书**：政府数据、国际组织报告、同行评议论文
  - **反面证据搜索**：反对意见、证伪信息、替代解释
  - **实体消歧搜索**：对专有名词额外搜索异译名/别名变体（中英对照、音译体系差异），同名多实体时加地理/时间限定词区分
  - **上下文核实**：数据的时间范围、统计口径、定义边界
- 查询应尽量具体：包含时间、地点、具体数字等限定词
- 语言策略：技术/国际主题中英双语搜索

**B-1b 证伪优先搜索策略：**

对于以下类型的主张，在常规搜索之外，额外增加证伪式搜索查询：
- **涉及官员发言/引用归属的主张**：搜索 `{发言人} + 否认/澄清/断章取义/full quote/context`
- **涉及因果归因的主张**：搜索 `{原因} + 并非/未导致/alternative explanation`
- **涉及排名/最值的主张**：搜索 `{排名对象} + 反例/例外/other candidates`

证伪查询模板（每条主张至少选 1 条）：
- `"{主张关键词} fact check"` — 直接查找已有的核查报道
- `"{主张关键词} debunked false misleading"` — 查找证伪信息
- `"{主张关键词} full quote context"` — 查找完整上下文

**B-2 并行搜索：**
- **所有搜索查询必须在单条消息中并行发出**
- 禁止串行"搜完一个再搜下一个"
- **软上限**：单批并行搜索不超过 20 次。若主张数 × 查询数超出上限，按主张优先级分组串行执行（高风险优先）

**B-3 深度抓取：**
- 对搜索返回的高价值结果，使用 `WebFetch` 深度抓取全文
- 优先抓取：权威机构发布 > 学术论文 > 企业官方 > 深度报道
- 每条主张建议抓取 2–4 篇高价值页面
- 所有深度抓取也应在单条消息中并行发出

**输出：** 每条主张的初步证据集

---

#### Step C：交叉裁定（Cross-Adjudication）

**目标：** 综合所有证据，对每条主张进行真伪裁定。进入此阶段时，读取 [方法论](./methodology.md) 的裁定标准章节。

**裁定等级：**

| 等级 | 含义 | 判定标准 |
|------|------|----------|
| ✅ 属实 | 事实正确 | 权威来源一致支持，无反面证据；允许不影响核心结论的轻微偏差（在偏差说明中标注） |
| ❌ 不实 | 事实有误 | 权威来源明确反驳，偏差足以改变核心结论，或核心事实错误 |
| ❓ 存疑 | 证据不足、来源矛盾或无法验证 | 来源不足 2 个，权威来源间存在不可调和的矛盾，或经 2 轮搜索无可靠结果 |

**裁定流程：**
1. **来源可信度评估**：按来源质量金字塔对每条证据评分（读取 methodology.md 的来源质量策略章节）
2. **证据方向归类**：将证据分为支持/部分支持/中立/反驳四类
3. **证据充分性检查**（反馈门）：对核心主张检查证据是否充分——若来源不足该深度要求的最低数量，或无法形成有效交叉验证，则回到 Step B 进行 1 轮增量补充搜索（调整查询词、换用反面搜索），随后重新评估。若补充后仍不足，降级为 ❓ 存疑继续。
4. **矛盾分析**：若证据间存在矛盾，分析原因（统计口径差异、时间范围不同、定义差异等）
5. **逻辑审查**（L3 必做，L2 建议）：
   - 因果推断是否过度（相关性≠因果性）
   - 是否存在选择性引用（cherry-picking）
   - 数据口径是否一致（统计范围、基期、调整方法）
   - **上下文完整性审查**（读取 methodology.md 的"逻辑谬误识别指南"中"上下文剥离"章节）：引用是否保留了原始语境，数据是否标注了统计口径，事件描述是否省略了关键背景
6. **数字类主张额外审查**（涉及定量数据时必做）：
   - 读取 methodology.md 的"数字核查专项策略"章节
   - 执行口径一致性检查清单，确认主张与来源的时间、地理、定义、基准口径一致
   - 进行偏差的语境化评估：该偏差是否改变了主张的核心结论？
7. **复合主张综合裁定**（当 Step A 拆解出多个子主张时必做）：
   - 读取 methodology.md 的"复合主张综合裁定规则"章节
   - 评估各子主张的重要性（核心 vs 辅助），按规则综合裁定整体结果
   - **证据覆盖度评估**：检查每条原子主张是否有足够来源支撑。若存在核心主张虽有搜索但来源不足（尤其是因语言障碍、罕见人物等原因），即使其他主张证据充分，也应在整体裁定中考虑降级（详见 methodology.md "部分可验证场景的保守裁定"规则）
8. **裁定结论**：综合所有证据和审查结果，给出最终裁定
9. **填写偏差说明**：为每条裁定撰写偏差说明，该说明将同时出现在报告的主张清单表格和逐条核查详情中（撰写规范见 methodology.md 裁定标准细则章节）

**偏差判定与说明**：裁定标准细则（含偏差判定原则、边界案例、撰写规范）详见 [方法论 - 裁定标准细则](./methodology.md)。核心原则：偏差是否改变了主张的核心结论。所有裁定的偏差说明均为必填字段。

---

#### Step D：核查报告生成

**目标：** 生成结构化的核查报告。

**报告格式：** 严格按照 [输出模板](./templates/factcheck_output_template.md) 生成。

**核心要求：**
- 每条主张的裁定必须有明确的证据链支撑
- 偏差必须量化（如"原文称30%，实际为25.3%，偏差4.7个百分点"）
- 修正建议应具体可操作（给出准确数据和来源）
- 整体可信度给出定性评价（高度可信/基本可信/部分可信/可信度较低/可信度低），无需计算具体分值
- 证据表格中每条证据必须包含来源名称、可信度评分、摘要和 URL

**证据表格 URL 规范（极其重要）：**
- **URL 必须来自 Step B 的实际搜索/抓取结果**，禁止凭记忆编造或"重构"URL
- **机构名称必须与搜索结果中的来源一致**，不得张冠李戴（如搜索结果显示的是 Reuters，不得写成 AP News）
- **摘要必须与来源页面实际内容一致**，不得概括或改写
- 如果 Step B 中未保留某条来源的 URL，该来源不得列入证据表格，改为使用信息完整的来源

**Step D-1：质量检查（完成报告前必须逐项执行）**

逐项核验以下清单，每项必须输出检查结果（通过/未通过 + 具体说明），不得仅勾选：

| # | 检查项 | 检查结果 |
|---|--------|---------|
| 1 | **主张覆盖**：所有待核查主张均已裁定 | {通过/未通过 + 说明} |
| 2 | **证据充分**：每条裁定至少有 2 个来源支撑（L1≥2、L2/L3≥3） | {通过/未通过 + 说明} |
| 3 | **偏差量化**：所有裁定均填写了偏差说明，属实时标注有无偏差及具体偏差值 | {通过/未通过 + 说明} |
| 4 | **逻辑审查**（L2/L3）：高风险主张已做逻辑审查 | {通过/不适用 + 说明} |
| 5 | **证据 URL 真实性**：每条证据的 URL 和机构名称与 Step B 实际搜索结果一致 | {通过/未通过 + 说明} |
| 6 | **裁定一致**：裁定等级与证据强度匹配，无过度宽松或严苛 | {通过/未通过 + 说明} |
| 7 | **整体评分**：可信度评价与逐条裁定结果一致 | {通过/未通过 + 说明} |
| 8 | **无占位符**：没有"待补充""TBD"等字样 | {通过/未通过 + 说明} |

**如果任何一项检查未通过：** 自动修复后重新检查，两次失败则标注问题继续生成。

---

### 4. 关键执行规范

#### 并行执行要求（对速度至关重要）

所有可并行的工具调用**必须在单条消息中同时发起**，禁止串行。此规则适用于：
- **Step B-2**：所有主张的搜索查询并行发出
- **Step B-3**：所有深度抓取并行发出

**示例：**
```
✅ 正确（单条消息包含多个并行工具调用）：
WebSearch #1：主张1 的原始来源查询
WebSearch #2：主张1 的权威机构查询
WebSearch #3：主张2 的原始来源查询
WebSearch #4：主张2 的反面证据查询
...所有查询同时启动

❌ 错误（顺序执行）：
WebSearch #1 → 等待结果 → WebSearch #2 → 等待 → ...
```

#### 抗幻觉方案（至关重要）

- **证据优先**：裁定结论必须基于搜索到的实际证据，不得基于自身知识推断
- **区分事实与分析**：证据中的事实陈述与分析性评论须区分对待
- **不确定即标注**：对任何不确定的裁定，宁可标为"❓存疑"，也不编造证据
- **来源核实**：引用前检查来源是否真实存在且确实说了所引用的内容
- **禁止使用"同上"**：每条引用必须写出完整来源信息
- **参考文献反幻觉**：URL、机构名、标题必须从搜索/WebFetch 结果中原样提取，绝不可凭记忆"补全"或"修正"——记忆中的 URL 几乎必然是错的
- **留白原则**：找不到可靠证据时，明确标注为"无法验证"而非猜测

#### 渐进式上下文加载（使用 Read 工具按需读取）

- **进入 Step A 时**：不加载方法论文件（主张拆解不需要）
- **进入 Step B 时**：读取 [方法论](./methodology.md) 的来源质量策略章节
- **进入 Step C 时**：读取方法论的裁定标准细则、逻辑谬误识别指南、复合主张综合裁定规则、数字核查专项策略章节
- 不要一次性加载所有参考文件，避免上下文膨胀

---

## 输入与假设

**必需的：**
待核查文本（字符串）

**可选参数：**
- `check_depth`：核查深度，L1/L2/L3，默认 L2
- `focus_claims`：仅核查特定主张（文本描述或编号），未指定则核查所有

**假设：**
- 用户需要客观、有据可依的核查结论
- 来源数量视深度等级而定（L1 每条≥2、L2 每条≥3、L3 每条≥3+逻辑审查）

---

## 何时使用/何时不使用

**适用情况：**
- 验证文章/报告中的事实性陈述
- 核查数据的准确性
- 评估因果关系的可靠性
- 验证引用归属是否正确
- 重要内容发布前的系统性核查

**请勿使用：**
- 纯主观观点讨论（如"这部电影好不好看"）
- 文学创作评价
- 仅需1-2次搜索即可确认的简单事实（直接用网络搜索）
- 实时性极强的信息（如当前股价、实时比分）

---

## 错误处理

| 场景 | 处理方式 |
|------|---------|
| 搜索无结果 | 调整搜索词，尝试同义词/英文/换表述，2轮后标注"❓存疑" |
| 连续2轮无新证据 | 标注为"❓存疑"，继续核查其他主张 |
| WebFetch 失败（403/404/超时） | 跳过该 URL，从搜索结果摘要中提取信息；尝试备用 URL |
| 证据间矛盾 | 分析矛盾原因（口径/时间/定义），取权威来源，标注不确定性 |
| 文本无事实性主张 | 告知用户文本中无可验证的事实性内容 |
| 搜索工具不可用 | 基于自身知识标注"⚠️未经外部验证"，明确说明局限性 |
| 作为 subagent 调用时接近超时 | 优先输出已完成步骤的中间结果（已拆解的原子主张和部分裁定），标注"部分完成"，而非整体失败 |

---

## 输入输出路径约定

### 概述

本技能通过 prompt 中的路径参数确定输出位置。所有产物直接输出到 `output_dir` 下，通过文件名中的时间戳后缀区分不同次调用。

| 调用方 | `output_dir` |
|--------|-------------|
| **终端用户直接发起** | **可选**；未指定时使用 `$WORKSPACE_DIR/output` |

### 参数

| 参数 | 类型 | 必填性 | 说明 |
|------|------|--------|------|
| `output_dir` | string | 可选 | 输出目录；未提供时使用 `$WORKSPACE_DIR/output` |
| `check_depth` | string | 可选 | L1/L2/L3，默认 L2 |
| `focus_claims` | string | 可选 | 仅核查特定主张（文本描述或编号） |

### 文件名时间戳后缀规则

输出文件名使用 `_{YYYYMMDD_HHMMSS}_{序号}` 后缀区分调用，其中：
- 前 14 位：年月日时分秒
- 后 3 位：序号 000–999，解决同一秒内并发调用冲突

生成规则：
1. 取当前时间生成 `YYYYMMDD_HHMMSS` 部分（14 位）
2. 检查 `output_dir` 下是否已存在同前缀的文件
3. 若存在，序号递增（从 000 开始），直到找到不冲突的序号
4. 拼接为 `{YYYYMMDD_HHMMSS}_{序号}`，如 `20260422_174100_000`

### 输出产物

- `{output_dir}/{主题概括}_{YYYYMMDD_HHMMSS}_{序号}.md` — 核查报告

**主题概括命名规则：**
- 从待核查内容中提炼 2–6 个汉字的关键词，概括核查主题
- 仅使用中文、英文字母、数字和连字符，不含空格和特殊字符
- 例：核查"2023年中国GDP增长5.2%..." → `中国GDP增速`
- 例：核查"全球AI市场规模达到1500亿美元..." → `全球AI市场规模`

### 目录处理

若目标输出目录不存在，写入前应**自动创建**（含父级目录）。

### 调用示例

```
请帮我做事实核查，以下是待核查内容：
「2023年中国GDP增长5.2%，超过美国2.5%的增速。全球AI市场规模达到1500亿美元，预计2025年将翻倍。根据麦肯锡报告，AI将取代8亿个工作岗位。」

核查深度：L2
```

```
请核查以下内容的真实性，重点关注数据准确性：
「待核查文本...」

输出目录：/home/user/projects/output
核查深度：L3
```

---

<!-- 静态上下文块结束 -->
<!-- 以上内容可缓存 -->

