Claim verification
Skill HERRY423/AI-BioResearch-Workflow/.claude/skills/claim-verification
把一份分析报告、手稿草稿或结论段落拆成原子陈述,逐条打到权威数据库与文献核验,并标注每条的支持/反驳/无证据状态。当用户要求核查结论、验证结果、检查引用是否属实、审阅手稿的事实性、或问"这些数字可靠吗"时使用。也在提交前的最后一道自查时使用。From its SKILL.md
npx -y skills add HERRY423/AI-BioResearch-Workflow --skill claim-verificationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.1 KB, as published. Nobody here has run it
claim → 库核验
为什么这个 skill 值得花 xhigh effort
带核验与不带核验的差距是可量化的:GeneAgent 的 SelfVeri-Agent 把每条陈述 提取出来打到 18 个策展数据库(4 个 web API),富集术语的精确匹配率 从 56% 提升到 80.7%;在 15,848 条被核验的陈述中,84% 得到支持、8% 被反驳; 人工复查 132 个核验决定,92% 正确。
最重要的一条警示,放在最前面
对陈述的验证 ≠ 对执行的验证。
Kosmos 为每一条陈述都给出了指向代码或文献的引用,独立科学家评判的 陈述准确率仍只有 79.4%。也就是说:一条陈述"有引用、读着对、格式规范" 可以同时是错的。
所以本 skill 的第 3 档必须包含独立重算,不能只做"读着像对"。 只做前两档就宣称已验证,是这个流程里最容易犯的错。
三档并行
第 1 档 —— 确定性检查(先做,最便宜)
- 每个数值断言能否在
RUN_LEDGER.jsonl找到对应执行记录? (.claude/hooks/no_fabrication_exit.py已强制,这里做二次确认并出报告) - 引用的 accession 是否真实存在?
GSE\d+/SRR\d+/PRJ[EDN][A-Z]\d+/phs\d{6}逐个解析。幻觉出来的 accession 是高频失败模式。 - DOI 是否解析?作者-年份-期刊三者是否与 DOI 元数据一致? (引用错配比引用不存在更难发现)
- 统计量内部是否自洽?n、df、p、CI 能否互相推出?
交给
Agent(stats-auditor)。
第 2 档 —— 陈述 → 权威库
拆成原子陈述(一条陈述 = 一个可独立判真假的命题),逐条路由:
| 陈述类型 | 路由到 |
|---|---|
| 基因-疾病关联 | mcp__ot__*(Open Targets,CC0,26.06 版本活跃) |
| 化合物-靶点活性 | mcp__chembl__* |
| 临床试验存在性/结果 | mcp__c-trials__* |
| 文献主张 | mcp__pubmed__* + mcp__consensus__* + mcp__biorxiv__* |
| 机制/通路 | mcp__kg__*(只查 asserted 命名空间) |
每条陈述输出四态之一:supported / refuted / no-evidence / out-of-scope。 "no-evidence" 不等于 "refuted",也不等于 "可以保留" —— 它意味着 这条陈述在正文中必须降级为推测性表述,或删除。
门槛:整份文档的 supported 比例 ≥ 90% 才放行(G_V)。 参考 Kosmos 的 79.4% —— 那是有引用的情况下的上限,所以阈值必须高于它。
第 3 档 —— 异构独立重算 + 对抗反驳
用不同的模型家族,理由是错误模式不相关。调 mcp__codex__codex:
任务:不要评价下面的分析,而是独立重新计算它的关键统计量。
输入:{run_dir}/results/ 下的原始输出文件 + {pipeline}
要求:
1. 用你自己的实现重算:{列出 3–5 个关键量}
2. 报告你的值与原值的相对偏差
3. 若偏差 > 1%,指出最可能的原因
4. 另外:试图反驳主结论。默认立场是"结论不成立",需要证据说服你。
输出 JSON:{recomputed, values, max_relative_delta, refutations[]}
偏差判读:
- > 1% 必须解释来源。 注意有些非确定性来自工具本身而非代码 —— 已发表结果显示结构变异 caller 在打乱但等价的输入上产生 3.5–25.0% 不同的 call set。这类偏差要在 Methods 里显式披露量级, 不要抹平。
- 反驳必须逐条书面回应。未回应的反驳直接卡门。
输出
results/verification_report.md:
# 核验报告
陈述总数 N / supported X (x%) / refuted Y / no-evidence Z
## 必须修改(refuted)
- [陈述原文] → [反驳证据 + 来源 URL] → [建议改法]
## 必须降级(no-evidence)
- [陈述原文] → [已查库与查询词] → [建议改成推测性表述或删除]
## 独立重算对照
| 量 | 原值 | 重算值 | 相对偏差 | 判读 |
## 未回应的反驳
(此节非空则 G_V 门不通过)
同时把逐条结果写成 results/claims.jsonl,供 provenance/agent_run_crate.py
装入 crate —— 核验记录本身也是 provenance 的一部分。
一个容易漏的合规检查
若数据涉及 All of Us:扫描所有表格,1–20 的参与者计数必须抑制
(0 允许),且不得发布能反推出被抑制计数的边际和或差值。
.claude/hooks/suppress_small_counts.py 会自动拦,但这里应主动检查一遍
——包括图形中的点数和图注里的 n。