vscode-templete/.claude/skills/auto-wiki-cn/references/fact-check.md

138 lines
5.1 KiB
Markdown
Raw Normal View History

# 数据校验协议
> 防止错误数据污染 wiki。可验证的数据必须验证不可验证的必须标注。
## 核心原则
**Wiki 是知识资产,不是垃圾桶。** 错误数据进入 wiki 后会被后续 query 引用、被其他 ingest 当作"已有结论"比较,错误会 compound。必须在入口把关。
## 校验时机
在 ingest 流程中,**读取源文件之后、写入 wiki 之前**插入校验步骤:
```
读源文件 → 提取关键声明
分类:可验证 vs 不可验证
可验证 → 用工具交叉验证 → 通过/不通过/无法验证
写入 wiki带校验标注
```
## 可验证数据的识别
以下类型的声明应该尝试验证。**具体用什么工具取决于用户环境中可用的 MCP/工具**——下表是常见映射,不是硬性要求:
| 数据类型 | 示例 | 常见验证工具(视环境而定) |
|---------|------|--------------------------|
| 上市公司财务数据 | 营收、净利、ROE | 金融数据 MCP如 tushare、ifind、wind |
| 基金/年金规模 | 管理规模、份额 | 金融数据 MCP |
| 宏观经济指标 | GDP、CPI、PMI | 金融数据 MCP |
| 监管文件编号 | 人社部发2026XX 号 | WebSearch |
| 公司基本信息 | 成立时间、注册资本、法人 | 金融数据 MCP / WebSearch |
| 行业统计数据 | 市场规模、增速、份额 | WebSearch / 行业数据 MCP |
| 日期和事件 | "2026年3月发布" | WebSearch |
**工具发现**Agent 在首次 ingest 时通过环境检查(见 `source-validation.md`)确认可用工具。没有对应工具时,该类数据标注 `verified: false`,不阻塞 ingest。
**不可验证的声明**:观点、分析、预测、推断、主观评价。这些跳过校验,按 source-validation.md 的来源分级标注。
## 校验流程
### Step 1: 提取可验证声明
从源文件中识别包含具体数字、日期、文号的事实性声明:
```
源文件原文:
"截至2024年底中国企业年金基金累计规模达到3.2万亿元覆盖企业12.8万家"
提取出 2 个可验证声明:
- 声明 A企业年金累计规模 3.2 万亿(截至 2024 年底)
- 声明 B覆盖企业 12.8 万家(截至 2024 年底)
```
### Step 2: 尝试验证
按优先级使用可用工具:
```
1. 专业数据 MCP如金融、医疗、法律等领域数据接口有接口 → 直接查
2. WebSearch搜索官方发布的同期数据
3. Wiki 内交叉:看 wiki 中其他页面是否有相关数据
4. 无可用工具:跳过,标注 unverified
```
### Step 3: 判定结果
| 结果 | 处理 | frontmatter 标注 |
|------|------|-----------------|
| **verified** — 工具返回数据一致(误差 < 5% | 正常 ingest | `verified: true` |
| **disputed** — 工具返回数据不一致 | **暂停**,展示差异,让用户决定 | 用户确认后标注 `verified: user-confirmed` |
| **unverifiable** — 没有工具或数据源不覆盖 | 正常 ingest | `verified: false` |
| **partial** — 部分声明验证通过,部分未验证 | 逐条标注 | 混合标注 |
### disputed 时的用户交互
以下示例以金融领域为例,实际执行时替换为用户的目标领域和工具:
```
⚠️ 数据校验发现差异:
声明:"XX 基金累计规模达到 3.2 万亿元2024 年底)"
数据工具查询结果3.58 万亿元2024 年底)
差异:-10.6%
可能原因:
- 源文件数据有误
- 统计口径不同
- 数据工具更新延迟
请选择:
1. 使用工具验证数据3.58 万亿)→ 替换源文件数据后 ingest
2. 使用源文件数据3.2 万亿)→ 标注 user-confirmed 后 ingest
3. 两者都记录 → 以 contested 方式 ingest
4. 放弃本条 → 跳过此声明
```
## 页面中的校验标注
在实体/概念页面中标注验证状态:
```markdown
## 基金规模
截至 2024 年底XX 基金累计规模达 3.58 万亿元。
✅ verified数据工具 2025-01-15 查询)
(来源:[[2026-04-06-source-doc]],原文数据 3.2 万亿经工具校正)
## 历史
- ~~累计规模 3.2 万亿元~~(来源:[[2026-04-06-source-doc]] 原文,经工具校正为 3.58 万亿)
```
## 工具可用性
| 场景 | 有工具时 | 无工具时 |
|------|---------|---------|
| 专业领域数据 | 对应 MCP 自动验证 | 标注 unverified建议用户手动确认 |
| 公开信息 | WebSearch 交叉验证 | 标注 unverified |
| 内部数据(口述/会议) | 无法验证 | 标注 source_type: 口述confidence: medium |
**Skill 在被动模式(无搜索工具)下**:所有数据标注为 `verified: false`,依赖 source-validation.md 的来源分级作为可信度参考。不会阻断 ingest但会在每个数字旁标注"未验证"。
## 与 ingest-protocol 的关系
校验插入在 ingest-protocol.md 的 Step 1 和 Step 2 之间:
```
Step 1: 读取源文件,提取关键信息
Step 1.5: 【数据校验】提取可验证声明 → 工具交叉验证 → 判定结果
Step 2: 搜索已有 wiki
Step 3: 逐页比较新旧
...
```
如果 Step 1.5 发现 disputed 数据并暂停,用户确认后才继续 Step 2。