关于 citation-verifier
citation-verifier 是检查科学文档引用的技能,可提取引用标识符并对照权威来源核验,报告状态、不确定性及修正建议。
主要功能
- 01检测四种文档格式中的引用
- 02识别 DOI、URL、arXiv ID 等
- 03对照权威来源核验标识符
- 04报告有效性与不确定性
- 05为无效引用提供修正建议
适用场景
- 01审查 AI 生成论文中的引用
- 02投稿前检查 DOI 和链接
- 03查找文档中的失效引用
- 04检查支持格式中的参考文献
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jkitchin/ knowhow --skill citation-verifier安装后在 Claude Code 中输入/citation-verifier确认已加载。
详细介绍
引用核验器
检测并核验科学文档中的引用,识别虚构、失效或无效的参考文献。
用途
AI 生成的内容有时会包含看似合理但实际虚假的引用。此技能会系统地提取文档中的所有引用标识符,并对照权威来源逐一核验,生成详细报告,说明核验状态并提供修复无效引用的建议。
使用时机
遇到以下情况时,应调用此技能:
- 用户要求“核验引用”或“检查文档中的参考文献”
- 用户怀疑 AI 生成的内容中有虚构引用
- 用户希望验证论文中的 DOI、URL 或其他标识符
- 用户要求审查文档中的失效链接或虚假参考文献
- 用户提到“引用核验”“参考文献检查”或“DOI 验证”
支持的文档格式
- Markdown (.md):行内链接
[text](url)、引用式链接[text][ref]、裸 URL、DOI - LaTeX/BibTeX (.tex、.bib):
\cite{}、@article{}、DOI 字段、URL 字段 - Org-mode (.org):
[[url][text]]链接、#+BIBLIOGRAPHY、引用链接 - 纯文本 (.txt):裸 URL、DOI、arXiv ID、作者-年份格式
检测的引用标识符
DOI(数字对象标识符)
- 格式:
10.\d{4,}/[^\s]+或doi.org/10.\d{4,}/[^\s]+ - 示例:
10.1038/nature12373、https://doi.org/10.1126/science.abc1234 - 核验方式:通过
https://api.crossref.org/works/{doi}查询 CrossRef API
论文 URL
- 格式:指向已知出版商和存储库的链接
- 域名:nature.com、science.org、sciencedirect.com、springer.com、wiley.com、acs.org、rsc.org、pnas.org、cell.com、plos.org、mdpi.com、frontiersin.org、academic.oup.com、tandfonline.com
- 核验方式:发送 HTTP HEAD/GET 请求,检查状态码是否为 200,并核对论文元数据
arXiv ID
- 格式:
arXiv:\d{4}\.\d{4,5}(v\d+)?或arxiv.org/abs/\d{4}\.\d{4,5} - 示例:
arXiv:2301.07041、https://arxiv.org/abs/2301.07041v2 - 核验方式:通过 arXiv API 或直接检查 URL
PubMed ID(PMID)
- 格式:
PMID:\s*\d+或pubmed.ncbi.nlm.nih.gov/\d+ - 示例:
PMID: 12345678 - 核验方式:检查 PubMed URL
https://pubmed.ncbi.nlm.nih.gov/{pmid}/
ISBN
- 格式:
ISBN[:\s]*[\d-]{10,17}(ISBN-10 或 ISBN-13) - 示例:
ISBN: 978-0-13-468599-1 - 核验方式:通过 Open Library API
https://openlibrary.org/isbn/{isbn}.json查询
作者-年份引用
- 格式:
([A-Z][a-z]+(?:\s+(?:et\s+al\.?|and|&)\s+[A-Z][a-z]+)?,?\s*\d{4}) - 示例:
(Smith et al., 2023)、(Johnson and Lee, 2022) - 核验方式:通过 WebSearch 查找匹配的论文(置信度较低)
核验流程
步骤 1:读取并解析文档
使用 Read 工具加载文档。通过模式匹配提取所有引用标识符:
DOI patterns:
- https?://(?:dx\.)?doi\.org/(10\.\d{4,}/[^\s\])"'>]+)
- doi:\s*(10\.\d{4,}/[^\s\])"'>]+)
- (10\.\d{4,9}/[-._;()/:A-Z0-9]+) (bare DOI)
arXiv patterns:
- arXiv:(\d{4}\.\d{4,5}(?:v\d+)?)
- arxiv\.org/abs/(\d{4}\.\d{4,5}(?:v\d+)?)
PubMed patterns:
- PMID:\s*(\d+)
- pubmed\.ncbi\.nlm\.nih\.gov/(\d+)
URL patterns:
- https?://[^\s\])"'<>]+ (filter for academic domains)
ISBN patterns:
- ISBN[:\s-]*((?:\d[-\s]?){9}[\dXx]|(?:\d[-\s]?){13})
步骤 2:去重并分类
创建唯一标识符列表,并按类型分类:
- DOI
- arXiv ID
- PubMed ID
- ISBN
- URL(学术类)
- 作者-年份引用(文本类)
步骤 3:核验每个标识符
按可靠性从高到低依次核验每个标识符:
DOI 核验
- 构造 CrossRef API URL:
https://api.crossref.org/works/{doi} - 使用 WebFetch 检查 API
- 如果成功,提取:标题、作者、期刊、年份
- 如果返回 404 或出错:标记为无效
arXiv 核验
- 构造 URL:
https://arxiv.org/abs/{arxiv_id} - 使用 WebFetch 验证页面是否存在
- 提取:标题、作者、摘要片段
- 如果返回 404:标记为无效
PubMed 核验
- 构造 URL:
https://pubmed.ncbi.nlm.nih.gov/{pmid}/ - 使用 WebFetch 验证
- 提取:标题、作者、期刊
- 如果返回 404:标记为无效
ISBN 核验
- 构造 URL:
https://openlibrary.org/isbn/{isbn}.json - 使用 WebFetch 检查
- 提取:标题、作者、出版商
- 如果返回 404:标记为无效
URL 验证
- 使用 WebFetch 访问 URL
- 检查 HTTP 200 状态码和学术内容指标
- 查找页面上的论文标题、作者和 DOI
- 如果无法访问或内容非学术:标记为 SUSPICIOUS
作者-年份验证(置信度最低)
- 使用 WebSearch 查询:
"{author}" "{year}" paper - 在结果中查找匹配的论文
- 如果找到:标记为 LIKELY VALID,并注明来源
- 如果未找到:标记为 UNVERIFIED
第 4 步:生成报告
生成结构化的验证报告:
# Citation Verification Report
**Document:** [filename]
**Date:** [date]
**Total citations found:** [count]
## Summary
- Valid: [count]
- Invalid: [count]
- Suspicious: [count]
- Unverified: [count]
## Detailed Results
### Valid Citations
| ID | Type | Title | Source |
|----|------|-------|--------|
| 10.1038/xxx | DOI | Paper Title | CrossRef |
### Invalid Citations (HALLUCINATED)
| ID | Type | Error | Suggestion |
|----|------|-------|------------|
| 10.9999/fake | DOI | 404 Not Found | Remove or find correct DOI |
### Suspicious Citations
| ID | Type | Issue | Recommendation |
|----|------|-------|----------------|
| https://... | URL | Timeout | Verify manually |
### Unverified Citations
| Citation | Type | Notes |
|----------|------|-------|
| (Smith, 2023) | Author-year | No matching paper found via search |
验证状态定义
- VALID:标识符指向一篇真实论文,且元数据匹配
- INVALID:标识符不存在或返回 404(可能是幻觉)
- SUSPICIOUS:无法完全验证;可能受到速率限制、需要付费访问或暂时不可用
- UNVERIFIED:无法确认的文本引用(采取保守处理方式)
最佳实践
- 批量处理相似请求:将 DOI 检查分组,以尽量减少 API 调用
- 遵守速率限制:如果遇到速率限制,在请求之间添加延迟
- 交叉核对:如果 URL 中包含 DOI,直接验证该 DOI
- 结合上下文判断:注明引用出现的位置(方法部分还是论述部分)
- 报告不确定性:始终区分“已确认无效”和“无法验证”
对无效引用的输出建议
对于每条无效引用,提供可执行的建议:
- DOI 格式错误:“DOI 格式似乎有误。请检查拼写错误或多余字符。”
- DOI 不存在:“未找到论文。这可能是幻觉。请搜索论文的实际标题。”
- 链接失效:“URL 返回 404。请尝试在 Google Scholar 上搜索论文标题。”
- 期刊可疑:“无法识别该出版商。请确认其是否为可靠来源。”
- 未找到作者-年份引用:“无法验证。请添加 DOI 或 URL 以供确认。”
验证会话示例
用户请求:“验证 my-paper.md 中的引用”
预期行为:
- 读取 my-paper.md
- 提取所有 DOI、URL、arXiv ID 等
- 报告:“共找到 15 条引用:8 个 DOI、5 个 URL、2 个 arXiv ID”
- 使用适当的 API 或抓取方式验证每个标识符
- 生成报告,显示:
- 10 条有效引用及其元数据
- 3 条无效引用(404 错误),标记为可能是幻觉
- 2 条可疑引用(超时),需要手动检查
- 提供修正无效引用的建议
限制
- 速率限制:CrossRef 和其他 API 可能会限制请求频率
- 付费墙内容:无法验证付费墙后的完整内容
- 新论文:非常新的论文可能尚未被收录
- 作者-年份引用:缺少其他标识符时,置信度较低
- 非英文来源:对非英文引用格式的支持有限
- 私人/机构 URL:无法访问需要身份验证的内容
相关技能
- literature-review:用于开展系统性文献检索
- scientific-reviewer:用于审查科学文档的质量
- scientific-writing:用于撰写规范引用的文稿
评论
支持 Markdown