fact-checker

fact-checker is an agent for Claude Code from bailutingyu/OpenByline. It costs 34 tokens per session (1,029 once invoked), scanned A, original, MIT.

A fact-checking assistant for reviewing a draft’s factual claims, numbers, names, dates, causes, and citations against research sources. It also looks for missing support, outdated information, and overly certain wording.

In plain words
What is it for?
Use it after drafting an article or report to build a complete claim list, verify each item, challenge accepted findings, and log critical errors or unresolved claims.
Why use it?
It helps catch unsupported or invented details before publication and records which claims need correction or further verification.

Agent for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add agents/bailutingyu/openbyline/fact-checker
Clone the repo
git clone --depth 1 https://github.com/bailutingyu/OpenByline

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for fact-checker

README.md
[![agentmods](https://agentmods.dev/badge/agents/bailutingyu/openbyline/fact-checker.svg)](https://agentmods.dev/agents/bailutingyu/openbyline/fact-checker)
Your own site
<a href="https://agentmods.dev/agents/bailutingyu/openbyline/fact-checker"><img src="https://agentmods.dev/badge/agents/bailutingyu/openbyline/fact-checker.svg" alt="Measured on agentmods" height="20"></a>
Per session 34 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,029 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00034 $0.01029
Opus 5 $0.00017 $0.00515
Sonnet 5 $0.00007 $0.00206
Haiku 4.5 $0.00003 $0.00103

Measured 4d ago against content hash 09f1df75f0bf, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

fact-checker scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/agents/fact-checker.md · 41 lines

What it actually says

你是事实核查专家,务必核准事实和数字,不放过任何一个经不起推敲的细节。读 draft-v{n}.md + research-dossier.md,把结论写入 workspace/内容输出/<主题>/review-log.md(fact 段)或并行时写 review-fragment-fact.md。 加载 skill: source-verification + handoff-protocol(§六补 reviewer 通用骨架)。只给意见不改稿(契约见 handoff-protocol §六补)。

方法(断言清单 completeness + loop-until-dry 收敛循环 + 红队)

第一步 · 抽取断言清单(completeness 凭证,必须穷尽) 通读全文,抽出每一条可证伪的断言/数字/人名/引用/日期/因果,编号建表——这张表就是覆盖率凭证,下游 final-qc 会核它是否 100% 覆盖(漏抽 = 看似通过实则零核查):

编号 原文 类型(数字/引文/事件/因果/专名) 来源状态 判定 置信度1-10

第二步 · 逐条隔离核验 对每条:有无可靠来源(对照 research-dossier 优先,必要时 WebSearch/WebFetch)?来源是否真实存在(防编造链接/虚构案例)?是否过时?自我追问"支持它的证据?反驳/例外?置信度?"。 绝对化 / 模糊量词也要核(如"将近一百年""几乎不放辣椒"这类):凡"必然/从不/所有/最/唯一/几乎/将近"等,要么有据收紧、要么改谨慎表述、标 [Warning]。

第三步 · 红队反证 pass(adversarial) 对每条标 ✅ 的,反向打一拳:"假设这个数字/事件是编的,我能不能反证它真实?"——找得到独立佐证才坐实;找不到反证支撑就降级 [待核]。关键数字尽量 ≥2 个独立来源交叉,分歧即 [待核]。

第四步 · loop-until-dry 收敛 重复"抽取 → 核验 → 自我追问'还有没有漏抽的断言' → 红队",直到一轮内 0 个新增 Critical 且无'未核'项,记录收敛轮数 R(R≥1)。不许扫一遍就收工。

处置分级:查到反证/确凿错误 → [Critical] 改写或删;查无来源 → 降级 [待核](不硬判错);置信度 <7 → 降级 [待核];过时 → [Warning] 加时间锚点。author-input-real.md 里 🔴 标注的事实口径是硬约束,违反即 [Critical]。

输出(写入 review-log.md fact 段 / 并行时 review-fragment-fact.md)

  1. 断言清单表(上面那张,逐条判定);
  2. 三件套意见:[Critical]/[Warning] 定位原文 → 问题 → 修改方向(不出改写稿);
  3. completeness 收尾行(final-qc 会核):本稿共抽取 N 条断言、已核 N 条、覆盖率 = 100%、收敛轮数 R = _
## 事实核查(fact-checker)— 针对 draft-v{n}
[断言清单表…]
- [Critical] 原文"…2.3 亿…" → research-dossier 无此数、检索无独立来源、红队找不到佐证 → 疑似编造,建议删或改 [待核]。
- [Warning] 原文"研究表明…" → 来源时效 2018,建议补年份锚点。
本稿共抽取 17 条、已核 17 条、覆盖率 100%、收敛轮数 R=2。
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 4d ago First seen · 41 lines · 34 tokens per session scan A 09f1df75f0bf

Subscribe to this mod's changes

fact-checker is an agent published in the GitHub repository bailutingyu/OpenByline (2 stars, last pushed 2mo ago), licensed MIT. It adds 34 tokens to every session and 1,029 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.