Community研究与数据分析github.com

证据核查

审计任何研究产出(计划、报告、文献综述、草稿)中是否存在虚构引用、来源不支持的主张、仅基于摘要的主张以及无限制的“无人研究过X”的主张。在交付研究成果之前运行。

证据核查 是什么?

该技能旨在对研究产出(如计划、报告、文献综述或草稿)进行独立、彻底的证据审计。它假设草稿中的任何内容在查验前均不成立,通过一系列确定性检查(如运行 `research_checks.py` 脚本)和人工判断步骤,从提取可验证主张、解析引用真实性、评估来源支持度,到最终输出通过/部分通过/失败的结果。其核心价值在于防止草稿中包含虚构引用、来源不支持的主张、仅基于摘要的主张以及无限制的“无人研究过X”等常见学术不端行为。该技能适用于Claude Code、Codex等AI代理平台,且可在独立子代理模式或同会话模式下运行,后者会明确标记为“非独立”,并提醒用户在高风险场景下使用新会话运行。整个审计过程注重隐私,仅使用标题、DOI和主题词进行搜索,绝不将用户未发表文本直接粘贴到搜索中。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Pushkar1-GitHub/D2D_Meta_Skills/tree/HEAD/skills/evidence-check

Installed? Explore more 研究与数据分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

证据核查 是做什么的?

一份独立审计。它假设草稿中的任何内容在查验前均不成立。在 research-plan 的最后一步、用户自己的草稿或参考文献列表上,或是在交付任何报告之前使用它。

独立性

  • 最佳做法: 一个全新的子代理,仅需提供文件(草稿、分类账/参考文献列表、笔记、原始文本)。绝不能是写作会话的分支。
  • 无子代理: 同会话检查。
    • 在评判任何内容之前,重新从磁盘读取每个文件,不要依赖你记得写的内容。
    • 将结果标记为 same-session (not independent)。
    • 告诉用户,对于任何高风险的任务,他们应该在一个新的聊天会话中,针对同一个文件夹运行此技能。

先进行确定性检查

首先运行捆绑的检查器:python3 <此技能文件夹>/scripts/research_checks.py all <目录>(或 quotes <claims.json> / links <plan.md>)。它使用标准库 Python,在你的代码沙箱中运行;用户无需安装任何东西。PDF 文本需要 pypdf:如果导入失败,请在沙箱中运行 pip install pypdf 并重试。其错误即为发现:无法解析的锚点、缺失的 ⚠ 标志、计数不匹配、不在源文本中的引用、虚假 PDF。其警告是判断性调用。 如果文件夹中没有 claims.json(例如,审计用户自己的草稿),请为你标记为 supported 的每个声明在旁边写一个 claims.json,以便 quotes 检查可以确认每个引用是逐字匹配的。

输入

草稿;参考文献列表(ledger.md、.bib 或编号列表);以及持有的笔记和原始源文本。如果仅提供草稿,请询问一次参考文献列表。

步骤 1 — 提取声明

找出每一个可验证的断言:

  • 引用声明;
  • 数字;
  • 命名的论文、数据集和工具;
  • 存在性声明;
  • 否定声明(“no prior work…”);
  • 未引用的确定性词语(proves, establishes, cures, prevents, conclusively, always, never)。

略过意见、建议以及草稿自身的定义。

步骤 2 — 解析

每个引用必须精确对应一个参考文献。列出两个方向上的孤儿引用以及作者-年份冲突。

步骤 3 — 真实吗?(针对每个参考文献)

立即查找每个参考文献:OpenAlex / Crossref / Semantic Scholar / PubMed,以及 Reference Checker 的 check_references 和 check_retractions。

裁决含义
verified标题、第一作者和年份与本次会话中找到的记录匹配
partial作品存在但某条信息有误,或仅能确认部分内容(例如,确认了书籍但未确认章节)
mismatchDOI/ID 解析到不同的作品,或引用指向错误的书籍或期刊
not_found已正确搜索,但无匹配结果
unchecked无法查找(被屏蔽、预算不足、工具停机);不视为伪造证据
suspicious条目本身存在红旗警示

规则:

  • 书籍章节: 将引用的书名、编辑、页码和出版社与 Crossref 的记录(container-title, page)进行比较。正确的 DOI 但指向错误的书籍属于 mismatch;这个确切的错误曾通过了一轮试运行。
  • 工具分歧: Crossref 或 OpenAlex 中的确切 DOI 匹配优先于标题搜索得到的 not_found。记录两种结果。
  • 什么算作记录: DOI 登录页、出版商、PubMed、PMC/Europe PMC、arXiv、OpenAlex、Crossref、Semantic Scholar、DBLP。片段或其他论文的参考文献列表不算。记忆属于 unchecked。
  • 同时检查撤稿状态,以及预印本是否已正式发表。

步骤 4 — 有支持吗?(针对每个声明)

说明来源必须包含什么内容才能使引用是公平的,然后:

支持规则
supported原始源文本(API XML、PDF 文本、用户文件)中有 40 个字符以上的逐字段落 提到它,并附有定位符。在报告中引用它。
partial来源所说的内容更窄或更弱
contradicted来源说的相反
not-found-in-read-part仅持有一部分文本,且声明不在其中
unverified-extracted仅通过 WebFetch 读取,返回的是模型的提取结果;永远不能是 supported
unverified未持有文本(仅摘要/元数据、付费墙、被屏蔽)

依赖步骤 4 的检查:

  • 数字: 必须完全复制,不能四舍五入。不在来源中的数字属于 contradicted。
  • 标志: 每个声明需要匹配其证据的标志:⚠ abstract-only · ⚠ metadata-only · ⚠ extracted · ⚠ preprint。添加所有缺失的标志。
  • 独立计数: “consistent across N studies” 必须说明有多少项是独立的。
  • 否定声明: 必须说明背后的搜索。否则重写为 “not found in ”。
  • 背景 vs 证据: 为某一发现而引用的来源必须实际报告该发现。

步骤 5 — 结果

判断修复后的最终状态,并记录每次修复(“fixed in round n: …”)。

  • PASS: 没有 not_found / mismatch / contradicted / 孤儿引用。每个 unverified* 项都已在行内标记。
  • PARTIAL: 没有错误,但某些项目无法解析(例如,内容无法检查的章节)或保持 unchecked 状态。列出它们。
  • FAIL: 经过最多 2 轮修复后,仍存在任何 not_found、mismatch、contradicted、已撤稿但被引用的来源或孤儿引用。在顶部附带以下横幅交付,后面跟着未解决的项目:

无效证据 — 引用或支持失败未解决;请勿视为已验证。

反驳不是证据。仅在新来源或更好论证面前让步,并记录原因。

输出

将一个折叠的 Evidence check 块追加到草稿末尾:

证据核查 — <日期> — PASS | PARTIAL | FAIL — <fresh context | same-session (not independent)> — 路由: <工具>
确定性: research-checks <pass/fail, n 个错误> | 不可用
参考文献: n 个已验证 · n 个部分匹配 · n 个不匹配 · n 个未找到 · n 个未检查 · n 个可疑 · n 个已撤稿
声明: n 个已支持 · n 个部分支持 · n 个被反驳 · n 个未验证-提取 · n 个未验证 · 新增标志数: n
修复: <轮次: 变更内容>
| # | 声明 (简述) | 引用 | 真实 | 支持 | 引用/定位符或原因 | 修复 |
首先修复: <虚构/不匹配的引用和被反驳的声明 → 孤儿引用 → 标志 → 样式>

隐私

仅使用标题、DOI 和主题词进行搜索。切勿将用户未发表文本粘贴到搜索中。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能