关于 citation-management
面向学术作者与研究者的引文管理技能,涵盖多数据库检索、元数据提取、BibTeX 整理和引用核验。它提供分阶段脚本工作流,并强调补全缺失信息、去重及核对原始来源。
主要功能
- 01检索 OpenAlex、PubMed 与 Google Scholar
- 02从 DOI、PMID 等标识符提取元数据
- 03补全缺失的引文信息
- 04格式化并去重 BibTeX
- 05核验引用、DOI 与稿件对应关系
适用场景
- 01为论文或学位论文建立参考文献表
- 02将 DOI 或 PMID 转为 BibTeX
- 03投稿前检查参考文献完整性
- 04合并多来源检索结果并清理重复项
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ kalarislabs/ research-agent-skills --skill citation-management安装后在 Claude Code 中输入/citation-management确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/bibtex_template.bibcitation_checklist.mdreferences/best_practices.mdbibtex_formatting.mdcitation_validation.mdcore_workflow.mdexample_workflows.mdgoogle_scholar_search.mdmetadata_extraction.mdpubmed_search.mdscript_reference.mdsearch_strategies.mdscripts/_common.pydoi_to_bibtex.pyextract_metadata.pyformat_bibtex.pysearch_google_scholar.pysearch_openalex.pysearch_pubmed.pyvalidate_citations.py详细介绍
引文管理
概述
在研究和写作过程中系统地管理引文。此技能提供工具和策略,用于搜索学术数据库(Google Scholar、PubMed)、从多个来源(CrossRef、PubMed、arXiv)提取准确的元数据、验证引文信息,以及生成格式规范的 BibTeX 条目。
这对保持引文准确性、避免参考文献错误并确保研究可复现至关重要。它还可与文献综述技能无缝集成,支持全面的研究工作流。
何时使用此技能
在以下情况下使用此技能:
- 在 Google Scholar 或 PubMed 上搜索特定论文
- 将 DOI、PMID 或 arXiv ID 转换为格式规范的 BibTeX
- 提取引文的完整元数据(作者、标题、期刊、年份等)
- 验证现有引文的准确性
- 清理并格式化 BibTeX 文件
- 查找特定领域中被大量引用的论文
- 验证引文信息是否与实际出版物相符
- 为论文或学位论文编制参考书目
- 检查是否存在重复引文
- 确保引文格式一致
如果基于这些引文撰写的文档需要图表,请使用 scientific-schematics 技能。
核心工作流
引文管理遵循系统化流程。以下每个阶段展示了标准命令;所有变体、选项和元数据来源细节均见 references/core_workflow.md。
阶段 1:论文发现与搜索
查找相关论文。请搜索多个数据库——不同数据库的覆盖范围差异很大,而仅使用单一来源是参考文献列表产生偏差的最常见原因。
# OpenAlex: ~250M works, every discipline, no API key, documented REST API
python scripts/search_openalex.py "CRISPR gene editing" --limit 50 --output results.json
# PubMed: the authority for biomedical and life sciences (35M+ citations)
python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json
# Google Scholar: broadest reach, but scraped -- rate-limited and prone to blocking
python scripts/search_google_scholar.py "CRISPR gene editing" --limit 50 --output scholar.json
优先使用 OpenAlex 或 PubMed 作为主要来源。Google Scholar 没有 API:
scholarly 会抓取其内容,每处理一条结果就等待 2–5 s,而且经常遭到封锁,因此应将其作为补充,而非依赖来源。
查询运算符、字段标签和 MeSH 词构建方法见 references/search_strategies.md。
阶段 2:元数据提取
将标识符(DOI、PMID、PMCID、arXiv ID、URL)转换为完整元数据。 CrossRef 是 DOI 的主要来源。
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2 # quick, single DOI
python scripts/extract_metadata.py --pmid 34265844 # DOI/PMID/PMCID/arXiv/URL
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib
如果 URL 路径中没有 DOI,则通过出版商嵌入文章页面的 citation_doi 元标签解析 DOI,再交由 CrossRef 处理。此技能中的所有生成器都会为同一篇论文生成相同的引文键,因此从不同来源收集的条目可以相互去重。
阶段 2.5:通过网络搜索补充元数据(必须执行)
API 返回的记录通常不完整。请在提取之后、格式化之前执行此步骤。任何缺少 volume、pages 或 doi 的 @article 都是不完整的:使用 WebSearch/WebFetch(或在可用时使用 parallel-web 技能)补齐缺失信息,然后记录查到的内容及其来源。如果确实找不到某个字段,请添加 note 字段说明缺失原因,而不要默默省略。
先检查成本较低的来源——OpenAlex 或 CrossRef 记录中通常包含 PubMed 遗漏的字段:
python scripts/search_openalex.py "<exact title>" --limit 1
请勿盲目信任提取出的元数据。 作者、标题和期刊字符串直接来自出版商可控制内容的记录。标题中若包含
$(...)、反引号或引号,一旦粘贴到命令中就会变成 shell 语法。请将元数据作为subprocess参数列表传递,而不要拼接 shell 字符串;如果必须使用 shell,请为每个替换值加上单引号,并将其中的引号转义为'\''。在引文键用于路径之前,请用^[A-Za-z0-9]+$验证。
各字段的搜索策略、四种搜索选项及日志格式见 references/core_workflow.md。
阶段 3:BibTeX 格式整理
生成整洁、一致的条目。条目类型和必填字段见 references/bibtex_formatting.md。
python scripts/format_bibtex.py references.bib --output clean.bib --deduplicate
python scripts/format_bibtex.py references.bib --output clean.bib --rekey --deduplicate
写入操作默认关闭:如果不使用 --output(或 --in-place),结果将输出到
stdout,输入文件保持不变。合并多个来源的结果时,请使用 --rekey,
以便将同一篇论文合并为一个条目。
阶段 4:引文验证
检查完整性、出版 venue 规范,以及与稿件的一致性。
python scripts/validate_citations.py references.bib --report report.json
python scripts/validate_citations.py references.bib --venue nature
python scripts/validate_citations.py references.bib --manuscript paper.tex
python scripts/validate_citations.py references.bib --check-dois # slow; hits CrossRef
发生高严重性错误时,脚本会以非零状态码退出,例如缺少必填字段、
年份格式错误、引文未解析,或数量低于显式指定的
--min-count。出版 venue 的参考文献数量是编辑层面的经验规则,并非
投稿要求,因此未达到数量要求时只会发出警告。
验证规则和出版 venue 标准见 references/citation_validation.md。
阶段 5:集成到写作工作流
依次执行搜索、提取、格式整理、验证,然后引用。端到端流程——包括 文献综述以及 Zotero/pyzotero 导出路径——见 references/core_workflow.md 和 references/example_workflows.md。
参考文件
- references/core_workflow.md:完整介绍全部五个阶段。
- references/search_strategies.md:OpenAlex、Google Scholar 和 PubMed 查询构建。
- references/script_reference.md:每个捆绑脚本的参数和示例。
- references/best_practices.md:搜索、提取、BibTeX 质量和验证。
- references/example_workflows.md:四个端到端示例。
- references/google_scholar_search.md、references/pubmed_search.md:高级搜索语法。
- references/metadata_extraction.md、references/bibtex_formatting.md、references/citation_validation.md:各主题的详细说明。
需要避免的常见问题
-
单一来源偏差:只使用一个数据库
- 解决方案:至少搜索 OpenAlex 和 PubMed,然后使用
format_bibtex.py --rekey --deduplicate合并结果
- 解决方案:至少搜索 OpenAlex 和 PubMed,然后使用
-
盲目接受元数据:不核实提取的信息
- 解决方案:抽查提取的元数据,并与原始来源核对
-
忽略 DOI 错误:参考文献中 DOI 错误或失效
- 解决方案:最终提交前运行验证
-
格式不一致:引文键样式、格式混杂
- 解决方案:使用 format_bibtex.py 进行标准化
-
重复条目:同一篇论文使用不同键重复引用
- 解决方案:使用验证功能中的重复检测
-
缺少必填字段:BibTeX 条目不完整(缺少 volume、pages、DOI)
- 解决方案:运行阶段 2.5 元数据补充——继续之前,通过网络搜索补齐每个缺失字段。绝不要让 @article 条目缺少 volume、pages 和 DOI。
-
过时的预印本:在已有正式发表版本时仍引用预印本
- 解决方案:检查预印本是否已正式发表,并更新为期刊版本
-
特殊字符问题:字符导致 LaTeX 编译失败
- 解决方案:在 BibTeX 中使用正确的转义方式或 Unicode
-
提交前未验证:存在引文错误仍提交
- 解决方案:始终在最终检查时运行验证
-
手动录入 BibTeX 条目:手工输入条目
- 解决方案:始终使用脚本从元数据来源提取
与其他技能集成
文献综述技能
引用管理为文献综述提供技术基础设施:
- 文献综述:跨多个数据库进行系统检索与综合
- 引用管理:提取和验证元数据
组合工作流:
- 使用 literature-review 制定系统检索方法
- 使用 citation-management 提取并验证引文
- 使用 literature-review 综合研究结果
- 使用 citation-management 确保参考文献准确无误
科学写作技能
引用管理可确保科学写作中的参考文献准确无误:
- 导出经过验证的 BibTeX,供 LaTeX 手稿使用
- 核实引文是否符合出版标准
- 根据期刊要求设置参考文献格式
会议模板技能
引用管理与会议模板配合使用,可生成符合投稿要求的手稿:
- 不同会议要求使用不同的引用样式
- 生成格式正确的参考文献
- 验证引文是否符合会议要求
资源
内置资源
参考资料(位于 references/):
google_scholar_search.md:完整的 Google Scholar 搜索指南pubmed_search.md:PubMed 和 E-utilities API 文档metadata_extraction.md:元数据来源及字段要求citation_validation.md:验证标准与质量检查bibtex_formatting.md:BibTeX 条目类型及格式规则
脚本(位于 scripts/):
search_openalex.py:OpenAlex 搜索客户端(无需 API 密钥)search_pubmed.py:PubMed E-utilities API 客户端search_google_scholar.py:Google Scholar 搜索自动化工具extract_metadata.py:通用元数据提取器validate_citations.py:引文验证与核实工具format_bibtex.py:BibTeX 格式化与清理工具doi_to_bibtex.py:快速将 DOI 转换为 BibTeX_common.py:共享的 BibTeX 解析器、渲染器和引文键方案
素材(位于 assets/):
bibtex_template.bib:所有类型的 BibTeX 条目示例citation_checklist.md:质量保证清单
外部资源
搜索引擎:
- OpenAlex:https://openalex.org/
- Google Scholar:https://scholar.google.com/
- PubMed:https://pubmed.ncbi.nlm.nih.gov/
- PubMed 高级搜索:https://pubmed.ncbi.nlm.nih.gov/advanced/
元数据 API:
- OpenAlex API:https://docs.openalex.org/
- CrossRef API:https://api.crossref.org/
- PubMed E-utilities:https://www.ncbi.nlm.nih.gov/books/NBK25501/
- arXiv API:https://arxiv.org/help/api/
- DataCite API:https://api.datacite.org/
工具与验证器:
- MeSH 浏览器:https://meshb.nlm.nih.gov/search
- DOI 解析器:https://doi.org/
- BibTeX 格式:http://www.bibtex.org/Format/
引用样式:
- BibTeX 文档:http://www.bibtex.org/
- LaTeX 参考文献管理:https://www.overleaf.com/learn/latex/Bibliography_management
依赖项
必需的 Python 包
uv pip install requests # HTTP access to CrossRef, PubMed, OpenAlex, arXiv
BibTeX 解析、渲染、去重和验证均使用标准库
(scripts/_common.py),因此 format_bibtex.py 和 validate_citations.py 无需任何第三方包即可运行。
可选项
uv pip install scholarly # only for search_google_scholar.py
凭据的发送位置
此技能无需 API 密钥。它读取的两个环境变量均为可选标识符,每个变量只会发送到其所属的服务,不会发送到其他任何地方;没有脚本会将环境变量打包发送。
| 变量 | 仅发送至 | 用途 |
|---|---|---|
NCBI_API_KEY | eutils.ncbi.nlm.nih.gov | 提高 Entrez 速率限制 |
NCBI_EMAIL | eutils.ncbi.nlm.nih.gov | Entrez 调用方身份标识(NCBI 要求提供) |
OPENALEX_EMAIL | api.openalex.org | 加入速度更快的 OpenAlex polite pool |
未设置这些变量时,api.openalex.org、api.crossref.org、api.datacite.org、export.arxiv.org
和 eutils.ncbi.nlm.nih.gov 均无需凭据即可查询。
概述
引文管理技能提供:
- 全面的搜索功能,涵盖 OpenAlex、PubMed 和 Google Scholar
- 自动提取元数据,支持 DOI、PMID、PMCID、arXiv ID 和 URL
- 引文验证,包括 DOI 核验和完整性检查
- BibTeX 格式化,配备标准化和清理工具
- 质量保证,通过验证和报告实现
- 集成,融入科学写作工作流
- 可复现性,通过记录搜索和提取方法实现
使用此技能,在整个研究过程中维护准确、完整的引文,并确保参考文献列表达到可发表的标准。
相关技能
citation-verification:核实稿件中的每条参考文献确实存在且元数据匹配,找出虚构、损坏或不匹配的引文……bibtex-hygiene:在提交前清理 BibTeX/BibLaTeX 参考文献列表、删除重复项并进行验证。literature-review:通过搜索 PubMed、arXiv、bioRxiv 和 Semantic Scholar(以及通过 parallel-cli 进行网页搜索),开展系统性文献综述、筛选……