fact-check-x-unified · git:20260831.64bc2b5 · 2026-08-31 · sha256 3abf1de8257044a2

fact-check-x-unified git:20260831.64bc2b5A

Immutable. This exact content never changes and is served at /api/v1/blob/3abf1de8257044a2.

---
name: fact-check-x-unified
description: Fact-Check-X 流程编排能力,依次组织各方答案汇总、各方答案聚合(未核验)、权威核验后的最终答案和各方答案测评,生成可打开、可审计、可迁移的阶段产物与完整报告包。
license: Apache-2.0
---

# Fact-Check-X 统一入口

本技能只做编排,不内嵌三个业务层。它按以下顺序调用兄弟技能:

1. `llm-answer-reference-compare`:多平台回答、引用与现场存证采集。
2. `fact-check-x-knowledge-compare`:本地知识点结构化对比,可选。
3. `fact-check-x-authoritative-verify`:逐知识点并发权威核验与平台表现报告。

所有语义拆解和证据裁决由当前承载技能的智能体完成。脚本不调用任何模型 API。

## 依赖定位

四个技能放在同一目录时可直接运行。也可设置:

```bash
export FACTCHECK_SKILLS_DIR="<四个技能的父目录>"
```

检查依赖:

```bash
python3 scripts/fact_check_x.py locate
```

## 完整流程

先采集 `results.json`,然后准备知识点对比:

```bash
python3 scripts/fact_check_x.py prepare-comparison \
  --results <results.json> \
  --run-dir <run>
```

命令会同步生成“各方答案汇总”,在运行目录顶层生成 `01-capture-report.html`,并通过 `deliverables` 返回用户可见路径。调用方必须先用该路径发送真正的 Markdown 文件链接,再继续知识点对比;禁止只显示反引号路径。

默认交互模式下,程序会把阶段状态写入 `stage-checkpoints.json`。调用方发送本阶段产物并收到用户“继续下一步”后,必须使用 `checkpoint.acknowledgement.token` 执行:

```bash
python3 scripts/fact_check_x.py acknowledge-stage \
  --run-dir <run> --stage <checkpoint.stage> \
  --token <checkpoint.acknowledgement.token> --decision continue
```

未确认时,下一阶段命令会直接失败。即使用户最初要求完整连续执行,也必须依次展示每个阶段产物并取得确认;不存在可绕过确认的自动推进模式。

当前智能体读取 `<run>/comparison-task.json`,写入 `<run>/comparison-analysis.json`,再执行:

拆解时,原子性同时约束知识点和各平台 `claim`。一个原句包含多个独立义务、条件、对象、数值或后果时必须拆点,每个 `claim` 只保留当前事实;平台独有的实质新增事实也要另起无锚点知识点,不能并入宽泛知识点后复用深知晓锚点免查。

```bash
python3 scripts/fact_check_x.py complete-comparison \
  --results <results.json> \
  --run-dir <run>
```

命令会在运行目录顶层生成 `02-comparison-report.html`,并通过 `deliverables` 返回路径;调用方必须把它作为独立可点击文件展示给用户。报告必须包含明确标为“未核验”的综合草案。默认交互模式下,用户确认继续后才能进入权威核验。

生成每个知识点的独立云端请求并并发取证:

```bash
python3 scripts/fact_check_x.py prepare-authority --run-dir <run>
python3 scripts/fact_check_x.py search-authority --run-dir <run> --max-workers 12
```

知识点已有深知晓/深知晓(深度溯源)本次回答所附的官方材料,或其他平台本次回答所附的 `gov.cn` 材料,且原文确实支持当前主张时,直接复用为官方证据,不调用可信搜索。只有不属于上述情形或已有材料不足以裁决时,才是非免查知识点。

若存在非免查知识点但本机尚无可信搜索配置,`prepare-authority` 和 `search-authority` 会返回 `status=configuration_required`、`userPrompt` 与 `configuration.command` 并以非零状态退出。调用方先展示登录提示,再前台执行该命令。用户只需在自动打开的深知 MaaS 页面完成登录;组件会自动复用已有完整 Key,没有时创建 `Fact-Check-X` 专用 Key,验证后保存到 `~/.fact-check-x/credentials/trusted-search-key`。Codex、Claude Code、WorkBuddy 等载体共享该配置,检测到已有 Key 时直接跳过登录。配置成功后调用方自动重跑 `prepare-authority`,不得要求用户复制 Key、编辑 shell 配置、回复“已配置”,也不得改用深知晓来源或普通搜索绕过。

只有可信搜索返回 401/403 时才把现有 Key 视为失效并进入自动配置。超时、断网或服务异常保留现有配置并自动重试;重试后仍失败则停留在搜索阶段返回技术错误,不要求用户重新登录,也不转成人工事实复核。

`prepare-authority` 会写入 `authority-gate.json`。只有可信搜索批次正常完成、门禁状态变为 `searched` 后,`finalize-authority` 才允许运行;手工写 evidence 或 result 不能绕过。

当前智能体逐个读取 `authority/requests` 与 `authority/evidence`,把裁决写入 `authority/assessments/<知识点ID>.json`,然后:

免查模式下,`trustedAnchor.officialAnswer` 是当前知识点的权威结论;锚点证据列表用于来源追溯。无论来自深知晓还是 `gov.cn`,都必须确认已捕获正文实际支持该结论,不得仅凭官方属性自动判定。平台主张与 `officialAnswer` 语义一致或可由其直接推出时,裁决为 `supported` 并引用有效锚点证据 ID。仅当平台主张增加了权威结论不能支持的实质事实,或确实无法判定时,才使用 `insufficient`。知识点对比阶段的引用忠实性与本阶段的事实正确性分别保留,不能因平台自身引用不足而拒绝判断已经被权威结论证实的主张。

```json
{
  "authoritativeFinding": "由权威证据支持的知识点结论",
  "verdicts": {
    "<平台ID>": {
      "verdict": "supported",
      "reason": "主张与 E1 一致",
      "evidenceIds": ["E1"]
    }
  }
}
```

`verdict` 只能使用 `supported`、`contradicted` 或 `insufficient`,证据 ID 必须存在于当前 evidence 文件中。旧式顶层 `verdict`、`officialAnswer`、`platformAssessment` 会被拒绝。

```bash
python3 scripts/fact_check_x.py finalize-authority --run-dir <run>
```

`finalize-authority` 生成“权威核验后的最终答案”,只将证据充分的直接知识点纳入 `finalAnswer`,将补充参考单独写入 `supplementalFindings`,将证据不足项写入 `evidenceGaps`。第三步只展示直接答案、证据边界和简洁来源索引;逐知识点裁决与评分只在第四步展示。

`finalize-authority` 完成裁决后会独立生成 `03-authority-report.html`,并通过
`deliverables` 返回路径。调用方必须先展示这份权威报告;默认交互模式下,
只有状态为 `completed` 且用户确认继续后才执行:

```bash
python3 scripts/fact_check_x.py deliver --results <results.json> --run-dir <run>
```

可信搜索返回 `no_evidence` 时记录为 `insufficient_evidence`:空结果只表示本次没有取得可裁决材料,不能直接判成“编造”;证据边界记录完成后继续生成后续报告。

`deliver` 必须在运行目录顶层生成并返回四份独立可读报告:

- `01-capture-report.html`:各方答案汇总;
- `02-comparison-report.html`:各方答案聚合(未核验);
- `03-authority-report.html`:权威核验后的最终答案、权威证据和证据边界;
- `04-final-report.html`:各方答案测评报告。

`deliver` 只能读取第三步已锁定的 `verification.json` 和 `03-authority-report.html`;任一文件摘要变化都必须拒绝,不得重算或重写第三步。

缺少任一报告都不得生成或交付 `05-complete-report-package.zip`。

最终保留:

- `capture/results.json`、`capture/report.html`、`capture/report.md`;
- `comparison-task.json`、`comparison-analysis.json`、`comparison.json`、`comparison.html`;
- 每个知识点独立的 request、evidence、assessment、result;
- `authority/batch.json`、`verification.json`、`report.html`、`pipeline.json`;
- 四份阶段报告和 `05-complete-report-package.zip`。

## 跳过知识点对比

知识点对比是可选能力。已有结构化知识点时,可按权威证据核验模块的数据契约直接建立单知识点请求,独立调用 `fact-check-x-authoritative-verify`。统一入口不会强迫用户先采集多个 AI 回答。

## 执行边界

- 原始答案阶段只采集,不核验;可用可信搜索全文参数补全平台已给出的同一来源正文,但不得新增或替换引用。
- 知识点对比只比较原答案与所附来源,不联网找真相。
- 云端层只接收当前知识点;各家主张相同则不上传主张,不同才上传差异。
- 深知晓已有合格官方锚点时不重复搜索。
- 最终报告必须使用权威证据核验模块内的稳定报告渲染器。

## 交付门禁

```bash
python3 tests/smoke_test.py
python3 "${CODEX_HOME:-$HOME/.codex}/skills/.system/skill-creator/scripts/quick_validate.py" .
```

完整标准见 [验收标准](references/acceptance-criteria.md)。