Fact-Check(对抗性事实核查)是一个把 AI 当作“敌对批评者”来审查用户文章的技能,目标是在真正的敌对批评者之前,先找出文章里所有可被攻击的问题。它通常用于 akitaonrails-hugo 的博客文章,也适用于任意 Markdown 或文本文件。
用途
该技能针对事实、框架和逻辑进行核查,具体包括:错误数字、失效链接、错误归属的引用、时代错置、选择性统计、无依据断言、自相矛盾,以及假设过多的论证。用户的写作风格(讽刺、反讽、攻击性、观点驱动)被视为刻意为之,不在核查范围内。
主要能力
- 主张提取:通读全文,构建 claims.json,逐条记录可客观核查的主张,包括数字、日期、人名、引用、“某人说过/做过某事”、历史顺序、技术规格、基准结果,以及以事实口吻呈现的“所有人都知道/总是”式概括。每条主张带有 id、原文引用、类别和查找线索。
- 两轮核查:第一轮使用较便宜的 harness(默认 grok)批量核查;第二轮在修正后的文章上重新提取主张,再用更强的 harness(默认 claude)复核。两轮必须串行,不可并行。
- 敌对逻辑审计:不联网,仅从最恶意读者的角度攻击推理,检查内部矛盾、选择性举证、过度假设、因果跳跃、缺失的关键限定。
- 分级报告:按 S1 明显虚假、S2 实质性错误、S3 误导、S4 无依据、S5 逻辑/一致性、S6 吹毛求疵分级,每条给出原文引用、判定、证据(URL + 来源引文 + 层级)和最小修正建议。
- 自动修正与确认队列:第一轮默认自动应用不触及文章结论的修正;只有“破坏性”问题(核实事实动摇观点前提或文章结论)才进入“改写前确认”队列等待用户决定。
使用方式
技能通过 scripts/fanout.py 分发核查任务,示例命令:
python3 <skill-dir>/scripts/fanout.py
--claims /tmp/fact-check/<run>/claims.json
--out-dir /tmp/fact-check/<run>/pass1
--title "Article title" --lang pt-BR
--harness grok --batch-size 6 --parallel 3
建议先执行 --dry-run 检查分批。失败批次可用更强模型重跑,例如 --harness codex --variant high。合并输出为 verdicts.jsonl、summary.json 和 cost_report.md。若没有可用 harness,可回退为原生子代理,每个批次一个子代理,使用 references/checker-prompt.md 的提示词。
流程阶段包括:Phase 0 设置(定位文件、选择 harness)、Phase 1 提取主张与论证图、Phase 2 第一轮分发核查、Phase 3 敌对逻辑审计、Phase 4 第一轮报告与自动修正、Phase 5 应用修正、Phase 6 第二轮核查、Phase 7 最终报告。工作目录为 /tmp/fact-check/<slug>-<YYYYMMDD-HHMM>/,绝不放在仓库内。
适用场景
适合在发布前对文章进行事实与逻辑审查,尤其是观点强烈、引用密集的博客文章。对于 Hugo 文章,若存在 index.en.md 同级文件,以葡萄牙语 index.md 为准提取主张,仅抽查英文翻译是否有主张漂移。
限制
- 观点不可擅动:未经明确确认,绝不改写、弱化、转移或删除用户的观点或结论。
- 只采用一手或近一手证据(官方文档、论文、备案文件、原始帖子、发布说明),不采用内容农场、SEO 博客或 Reddit 帖子。
- 两轮核查必须串行,第二轮前必须重新提取主张,因为修正会改变被核查的引文。
- 需要配置可用的模型 harness 与认证,具体见 references/harness-setup.md。
- 运行输出不得移入 git 仓库,不得将原始 stream.ndjson 粘贴到聊天中;若答案中出现疑似凭据,需轮换密钥、删除运行目录并在报告中注明。
- 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。