Community写作与编辑github.com

BorisW269/skills

学术研究中的全面引文管理。搜索 OpenAlex、PubMed 和 Google Scholar 以查找论文,提取准确的元数据,验证引文,并生成格式正确的 BibTeX 条目。当需要查找论文、验证引文信息、将 DOI 转换为 BibTeX 或确保科学写作中的参考文献准确性时,应使用此技能。

skills 是什么?

该技能是一个全面的引文管理系统,专为学术研究和写作而设计。它支持从 OpenAlex、PubMed 和 Google Scholar 等多个学术数据库搜索论文,并能够从 DOI、PMID、arXiv ID 等标识符中自动提取完整的元数据(包括作者、标题、期刊、年份等)。其核心流程包括论文发现、元数据提取、BibTeX 格式化、引文验证以及与写作工作流的集成。该技能通过一系列 Python 脚本实现自动化,并强调元数据的可靠性,建议对提取的信息进行二次验证,并避免单一数据库偏倚。此功能与文献综述、科学写作和会议模板等技能无缝集成,适用于从论文检索到最终投稿的整个研究过程,有效提高引文准确性并减少引用错误。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/BorisW269/skills/tree/HEAD/skills/citation-management

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

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

文档

引文管理

概述

在研究写作过程中系统化地管理引文。该技能提供了搜索学术数据库(Google Scholar、PubMed)、从多个来源(CrossRef、PubMed、arXiv)提取准确元数据、验证引文信息以及生成格式正确的 BibTeX 条目的工具和策略。

对于保持引文准确性、避免参考文献错误以及确保可重复研究至关重要。与文献综述技能无缝集成,以构建全面的研究工作流程。

何时使用此技能

在以下情况下使用此技能:

  • 在 Google Scholar 或 PubMed 上搜索特定论文
  • 将 DOI、PMID 或 arXiv ID 转换为格式正确的 BibTeX
  • 提取引文的完整元数据(作者、标题、期刊、年份等)
  • 验证现有引文的准确性
  • 清理和格式化 BibTeX 文件
  • 查找特定领域的高被引论文
  • 验证引文信息是否与实际出版物匹配
  • 为手稿或论文构建参考文献列表
  • 检查重复引文
  • 确保一致的引文格式

如果基于这些引文构建的文档需要图表,请使用 科学示意图技能。


核心工作流程

引文管理遵循系统化的流程。以下每个阶段都显示了规范命令;每个变体、选项和元数据来源的详细信息请参见 references/core_workflow.md。

阶段 1:论文发现与搜索

找到相关论文。搜索多个数据库——它们的覆盖范围差异很大, 单一来源是最常见的参考文献列表偏见的原因。

# OpenAlex:多学科 REST API;可选的 OPENALEX_API_KEY 用于账户配额
python scripts/search_openalex.py "CRISPR gene editing" --limit 50 --output results.json

# PubMed:生物医学和生命科学的权威数据库(超过 3500 万条引文)
python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json

# Google Scholar:覆盖面最广,但需要抓取——存在速率限制且容易被屏蔽
python scripts/search_google_scholar.py "CRISPR gene editing" --limit 50 --output scholar.json

优先使用 OpenAlex 或 PubMed 作为主要来源。Google Scholar 没有 API: scholarly 库对其进行抓取,在结果之间休眠 2-5 秒,并且经常被屏蔽, 因此它应该作为补充而非依赖项。

查询运算符、字段标签和 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         # 快速,单个 DOI
python scripts/extract_metadata.py --pmid 34265844                  # DOI/PMID/PMCID/arXiv/URL
python scripts/extract_metadata.py --input identifiers.txt --output citations.bib

路径中没有 DOI 的 URL 将通过解析出版商在文章页面上嵌入的 citation_doi 元标签来解析,然后传递给 CrossRef。生成器使用共享的引文键方案;元数据差异仍然可能导致不同的键。通过 DOI 和书目身份确认重复项。

阶段 2.5:通过网络搜索进行元数据丰富(强制性)

API 通常会返回不完整的记录。在提取之后和格式化之前运行此步骤。对照发布商记录调查缺失的书目字段,并记录每个来源。在线优先的文章可能还没有卷期/页码;有些使用文章编号或没有 DOI。保留实际出版状态,使用样式适当的文章编号字段,切勿捏造页码、卷期或 DOI。在审核日志中记录不可用/不适用字段;仅在对读者有用或引文样式要求时添加渲染的 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:引文验证

检查完整性、会议合规性以及与手稿的一致性。

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     # 慢;访问 CrossRef

脚本在出现高严重性错误时以非零状态退出——缺少必填字段、格式错误的年份、未解析的引文或计数低于显式的 --min-count。会议参考文献计数数字是编辑部的经验法则,而非投稿要求,因此未达到一个数字仅产生警告。

验证规则和会议标准请参见 references/citation_validation.md。

阶段 5:与写作工作流集成

搜索、提取、格式化、验证,然后引用。端到端的序列——包括文献综述和 Zotero/pyzotero 导出路径——请参见 references/core_workflow.md 和 references/example_workflows.md。

API 合同已于 2026-09-30 对照官方文档进行了审查。 有关端点、认证、分页和验证限制,请参见 references/api_contracts.md。参考资料中的网络示例仅供说明,除非在那里记录为实时冒烟测试。

参考文献

常见陷阱及避免方法

  1. 单一来源偏倚:仅使用一个数据库

    • 解决方案:至少搜索 OpenAlex 和 PubMed,然后使用 format_bibtex.py --rekey --deduplicate 合并
  2. 盲目接受元数据:不验证提取的信息

    • 解决方案:对照原始来源抽查提取的元数据
  3. 忽略 DOI 错误:参考文献中的错误或无效 DOI

    • 解决方案:在最终提交前运行验证
  4. 格式不一致:混合的引文键样式、格式

    • 解决方案:使用 format_bibtex.py 标准化
  5. 重复条目:同一篇论文使用不同键被多次引用

    • 解决方案:在验证中使用重复检测
  6. 缺少必填字段:BibTeX 条目不完整(缺少卷号、期号、DOI)

    • 解决方案:检查发布商记录,区分缺失与不适用或尚未分配的情况,并在不捏造元数据的情况下记录未解析的字段。
  7. 过时的预印本:在已发表版本存在时引用预印本

    • 解决方案:检查预印本是否已发表,更新为期刊版本
  8. 特殊字符问题:由于字符导致 LaTeX 编译失败

    • 解决方案:在 BibTeX 中使用正确的转义或 Unicode
  9. 提交前未验证:在存在引文错误的情况下提交

    • 解决方案:始终在最终检查时运行验证
  10. 手动输入 BibTeX:手动键入条目

    • 解决方案:始终使用脚本从元数据源提取

与其他技能的集成

文献综述技能

引文管理为文献综述提供技术基础设施:

  • 文献综述:多数据库系统性搜索与综合
  • 引文管理:元数据提取与验证

组合工作流:

  1. 使用文献综述进行系统性搜索方法
  2. 使用引文管理提取和验证引文
  3. 使用文献综述综合发现
  4. 使用引文管理确保参考文献列表的准确性

科学写作技能

引文管理确保科学写作的准确参考文献:

  • 导出经过验证的 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:质量保证检查清单

外部资源

搜索引擎:

元数据 API:

工具和验证器:

引文样式:

依赖项

必需的 Python 包

uv pip install requests  # HTTP 访问 CrossRef、PubMed、OpenAlex、arXiv

BibTeX 解析、渲染、去重和验证使用标准库 (scripts/_common.py)。format_bibtex.py 不需要第三方包; validate_citations.py 导入 requests,包括仅用于本地验证。

可选

uv pip install scholarly  # 仅用于 search_google_scholar.py

凭据发送位置

基本使用不需要密钥。每个凭据仅发送到其自己的服务; 没有脚本将环境变量捆绑在一起。OpenAlex 使用文档化的 账户预算,而不是承诺的基于电子邮件的配额提升。失败的页面会退出并返回错误,而不是将部分搜索导出为完整结果。

变量仅发送至用途
NCBI_API_KEYeutils.ncbi.nlm.nih.gov提高 Entrez 速率限制
NCBI_EMAILeutils.ncbi.nlm.nih.gov, pmc.ncbi.nlm.nih.govNCBI 要求的调用者身份标识
OPENALEX_EMAILapi.openalex.org可选的联系人标识符
OPENALEX_API_KEYapi.openalex.org可选的账户配额,在 Authorization 标头中发送

当这些变量未设置时,api.openalex.org、api.crossref.org、api.datacite.org、export.arxiv.org、 pmc.ncbi.nlm.nih.gov、doi.org 和 eutils.ncbi.nlm.nih.gov 将在无凭据的情况下被查询。

总结

引文管理技能提供:

  1. 全面的搜索能力,支持 OpenAlex、PubMed 和 Google Scholar
  2. 自动元数据提取,从 DOI、PMID、PMCID、arXiv ID、URL 中提取
  3. 引文验证,包含 DOI 验证和合规性检查
  4. BibTeX 格式化,具有去重和重新建键功能
  5. 可审计的工作流,具有详细日志和报告功能
  6. 工作流集成,与文献综述、科学写作和会议模板技能配合使用
  7. 安全处理,通过仔细的输入验证和元数据的不可信处理来防止 shell 注入
  8. 可扩展性,通过脚本化和环境变量配置
  9. 教育价值,通过全面的参考文献和常见陷阱部分
  10. 自动化和手动验证,平衡效率与准确性

Individual skills in this repo

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

相关技能