关于 light-citation
light-citation 是 Light 科研流程第 10 阶段的引用核验技能,供作者检查论文中的参考文献及其与具体论点的关系。它分别处理文献存在性、身份、出版状态和论点支持,并生成可追溯的引用登记表与交付文件。
主要功能
- 01盘点正文、图表和补充材料中的引用
- 02通过独立来源核验文献身份与元数据
- 03检查撤稿、更正等出版更新
- 04依据原文定位审查论点与引文支持
- 05生成引用登记表、BibTeX、CSL JSON 和审计结果
适用场景
- 01投稿前核验论文引用及其论点支持
- 02排查错误、缺失或疑似拼接的引文
- 03整理参考文献并检查 LaTeX citekey
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ light0305/ light-skills --skill light-citation安装后在 Claude Code 中输入/light-citation确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
citation-resource-map.mdreferences.mdassets/citation_checklist.mdreferences/locator_audit.mdregistry_contract.mdscripts/citation_four_gate.pycitation_registry.pycitation_verify_gate.pycitekey_audit.pydoi_to_any.pyverify_citation_edge.pyverify_refs.pytemplates/citation_input.jsoncitation-four-gate.example.jsonclaim_citation_review.json详细介绍
引用——第 10 阶段
确保作者使用的每条参考文献都可追溯、真实、标识正确,并且与其所要支持的论点确实相关。应将格式、元数据是否存在、出版诚信事实和语义支持视为四个不同的问题。
完整审核稿件前,请阅读 citation-resource-map.md。生成或使用规范注册表前,请阅读 references/registry_contract.md。判断论点是否得到支持前,请阅读 references/locator_audit.md。
阶段约定
- 接收论文撰写阶段的
light.paper_claims.v1、精确的论点/来源定位信息、当前论点文本哈希、与审稿人绑定的引用支持哈希、稿件、图表、补充材料和参考文献候选项。 - 将文献检索的溯源信息作为输入证据复用;独立核实作者实际保留的参考文献。
- 输出
light.citation_registry.v1、BibTeX、CSL JSON、来源级证据、失败记录、论点边审查、引用键审计,以及light.findings.v1(producer=citation)。 - 将第 10 阶段唯一的关键门槛设为
citation_verify:已确认缺失的文献和拼凑式引用。元数据冲突、来源不可用、论点相关性、格式和出版更新提醒均为警告/跳过项。 - 在第 10 阶段内部修复引用问题。
ROUTES没有键 10;切勿臆造回边。 - 将
references.bib、citekey-audit.json、注册表和delivery.json交给排版阶段。排版阶段负责编译和检查引用键,不负责重新判定真实性。delivery.json必须声明status,并为每项交付物提供sha256:哈希,以便排版阶段拒绝过时或被编辑过的交接文件。
不可妥协的规则
- 绝不臆造参考文献、DOI、作者、年份、出版物、引用键、定位信息或支持判定。
- 绝不可将网络故障、速率限制、5xx、身份验证失败或索引未命中称为“该文献不存在”。
- 仅当 DOI 注册机构明确报告文献不存在,且 Crossref 与 DataCite 均返回 404/410 时,才指定
CONFIRMED-MISSING。 - 仅当注册元数据和至少一个独立字段来源确认该文献时,才指定
CONFIRMED。否则保留UNAVAILABLE或UNRESOLVED。 - 保留每个来源中的标题/作者/年份/出版物/标识符值。从注册机构选择规范字段;绝不可使用模糊匹配覆盖原始引用。
- 将 DOI 真实存在但标题/作者/年份冲突的情况视为可能的拼凑式引用。多个核心字段冲突属于关键问题;一个字段不明确地不匹配,则作为警告供人工审查。
- 按正确方向读取出版更新:受影响的原文带有 Crossref
updated-by;更新通知带有反向的update-to。 - 记录撤稿/更正/关注声明事实和提醒,然后将诚信判断及措辞交给研究伦理环节。不要重建其伦理门槛。
- 绝不可将元数据确认或“A 引用了 B”等同于“B 支持论点 C”。
SUPPORTS必须基于定位信息进行语义审查。 - 确保核心流程本地免费,或公开且无需密钥。OpenAlex 和需要密钥的 Semantic Scholar 是可选的覆盖增强项;绝不要求使用商业文献管理器、机构数据库或浏览器插件。
执行作者工作流程
1. 列出每一处参考文献
结合论点映射、稿件、图表和补充材料:
python scripts/citation_registry.py \
--claim-map claim_plan.json \
--draft paper.tex \
--figure figure_notes.md \
--supplement supplement.md \
--refs-spec citation_input.json \
--out-dir citation-delivery
保留 claim_id、精确论点、论点定位信息、文档路径、引用出现位置、引用键和原始标识符。如果项目没有参考文献规范,请使用 templates/citation_input.json。
2. 规范化但不抹去版本差异
规范化 DOI、arXiv、PMID、ISBN 和 URL。对完全相同的作品去重。只有当输入能确立关联时,才将 arXiv、已接收稿、带版本号的数据集和已发表 DOI 作为同一作品下的明确版本保留。若无法确立关联,则分开保留并标记关系未解决。
3. 使用独立来源进行核验
python scripts/verify_refs.py \
--spec citation_input.json \
--self-author Smith \
--out verify.json
使用 Crossref 或 DataCite 作为注册来源。使用 PubMed、Semantic Scholar 或已配置的 OpenAlex 作为独立字段来源。在 source_evidence 中保留每个端点、HTTP 状态、结果、时间戳和返回字段,并保存实际参与判定的 normalized-field SHA-256。Crossref polite-pool 邮箱、OpenAlex/Semantic Scholar 密钥仅用于请求,绝不写入端点、注册信息或日志。
严格按以下方式解释状态:
| 状态 | 含义 | 操作 |
|---|---|---|
CONFIRMED | 注册来源 + 独立字段来源 | 可用于生成规范 BibTeX/CSL |
CONFIRMED-MISSING | DOI RA 明确表示不存在 + Crossref/DataCite 404 | 严重问题;替换或删除 |
UNAVAILABLE | 传输/速率限制/身份验证/5xx 导致无法查询 | 重试或使用其他免费来源 |
UNRESOLVED | 证据不完整或第二来源不完整 | 进一步调查;不得称为已核验 |
4. 解决字段冲突和拼接引用
将作者引用的标题、作者和年份与注册元数据进行比对。逐个来源检查 field_conflicts。在人工解决冲突之前,保持用户的原始引用不变。
以下情况视为严重的拼接引用:
- 标识符真实有效,但标题/作者/年份中至少两项存在冲突;
- 标题匹配,但引用的作者列表中多出注册作品里没有的作者。
单独的标题翻译、副标题、在线年份/印刷年份差异、作者遗漏或顺序问题,均视为元数据警告,除非有旁证证实其为拼接引用。
5. 记录出版状态更新
检查 publication_updates。如果警报涉及更新关系,应同时确认受影响作品和通知 DOI,以核实关系方向。记录类型、通知 DOI、来源和方向。将这些事实发送给 research-ethics;不得因为更正通知带有 update-to 就将其标记为已撤稿。
6. 审核主张↔引文支持情况
使用
templates/claim_citation_review.json
和原始全文:
supports:引用的定位信息支持按当前表述提出的主张;partial:只有更狭义的陈述得到支持;related_only:主题相同,但并非该命题的证据;unsupported:来源与之矛盾或不支持该主张;review_required:缺少全文/定位信息/审核者。
每项审核都必须记录 access、真实且非占位符的 source_locator、
source_evidence_sha256、reviewer、已发生的 ISO 格式 reviewed_at,以及针对已审核的确切主张文本生成的 reviewed_claim_sha256。注册表还会生成当前的 claim_text_sha256;两个哈希必须一致,否则审核已过时,会降级为 REVIEW_REQUIRED。若 SUPPORTS 缺少这些字段、reviewed_at 是未来时间、定位信息使用了模板/绝对路径/越界路径,或主张哈希不匹配,注册表/门禁会将其降级为 REVIEW_REQUIRED;仅元数据访问绝不能支持主张。若访问级别仅为 ABSTRACT_ONLY,则 SUPPORTS 还要求 support_scope=ABSTRACT_EXPLICIT 或 abstract_claim_explicit=true;否则注册表/门禁会将其降级为 REVIEW_REQUIRED。检查方向、人群、干预措施、对照、指标、时间、模态、因果强度和范围。若仅与主张相关或不支持主张,请修改主张或引文。不要将基于摘要的启发式判断提升为最终支持结论。
交付前显式规范化四项门禁:
python scripts/citation_four_gate.py \
--registry citation-delivery/citation-registry.json --as-of 2026-07-05
# 或仅调试模板合约:
python scripts/citation_four_gate.py \
--input templates/citation-four-gate.example.json --as-of 2026-07-05
公开模板有意设为 UNKNOWN,必须以退出码 1 结束。后续门禁永远无法修复较早阶段的失败:存在性 → 身份 → 有方向的出版状态 → 有定位依据的主张支持。优先使用 --registry,这样四项门禁记录会从规范注册表生成,而不是从手动复制的模板生成。只有在已声明的主张明确出现在摘要中时,ABSTRACT_ONLY 才可能直接支持该主张;元数据本身绝不支持主张。已撤稿的研究可用于记录历史信息,但不得被悄然用于支持当前结论。
7. 生成并审核交付内容
输入完成后,在线运行注册表:
python scripts/citation_registry.py \
--claim-map claim_plan.json --draft paper.tex \
--refs-spec citation_input.json --online \
--out-dir citation-delivery
python scripts/citekey_audit.py \
--tex paper.tex --bib citation-delivery/references.bib --json
只有已确认且非拼接的文献才会进入生成的 BibTeX/CSL。将所有失败和未解决的审核分别保存在独立产物中。只有当 citation-failures.json 和 claim-citation-review.json 均为空,且 citekey 审计结果为 OK 时,生成的 delivery.json 才会标记为 DELIVERED;否则会显示 ERROR 或 REVIEW_REQUIRED。doi_to_any.py 用于单次 DOI 内容协商和格式转换,不可用作语义支持的证据。
8. 运行门禁并暂存检查点
python scripts/citation_verify_gate.py \
--registry citation-delivery/citation-registry.json \
--tex paper.tex --bib citation-delivery/references.bib \
--report citation_findings.json
python ../light-orchestrator/scripts/run_checkpoint.py \
--file .light/passport.yaml --stage 10 \
--findings citation_findings.json --write --ts <ISO-8601>
若发现严重问题,citation_verify_gate.py 应返回退出码 1。修复注册表根本原因,重新构建所有派生产物,重新运行门禁,然后再次运行同一个 stage-10 检查点。只有检查点通过且护照记录为 delivered 后,才能交付。
脚本一览
| 脚本 | 职责 |
|---|---|
citation_registry.py | 清点、规范化、版本分组、验证编排、主张边、注册表/BibTeX/CSL/证据/失败/交付 |
verify_refs.py | 权威多来源字段、如实的状态机、来源证据、冲突、拼接文献、Crossref 更新方向 |
citation_verify_gate.py | stage-10 发现项生成器;确认存在缺失/拼接文献时退出码为 1 |
citekey_audit.py | 手稿 ↔ .bib 键审计;排版时会复用 |
doi_to_any.py | DOI 内容协商和引文格式输出 |
verify_citation_edge.py | 论文 A→B 的开放索引关系;绝不判定主张支持 |
citation_four_gate.py | 按顺序执行存在性/身份/更新/支持契约,并根据用途处理撤稿;可直接从 light.citation_registry.v1 派生记录 |
资源边界
citation-resource-map.md:可执行顺序和资源层级。references/registry_contract.md:机器产物语义。references/locator_audit.md:人工语义支持审核协议。references.md:API、样式和参考文献管理器详情;仅加载相关部分。templates/*:作者输入和审核约定。assets/citation_checklist.md:最终人工检查清单。docs/competitors/citation.md:R1 证据和比较性主张,不是执行指南。
完成检查
- 清单包含主张映射、稿件、图表、补充材料,以及存在时的参考文献规范来源信息。
- DOI/arXiv/PMID/ISBN/URL 均已规范化;版本信息仍清晰可见。
- 每篇已确认的文献都有登记记录和独立来源证据。
- 每个不可用或未解决的来源都已如实标注。
- 不存在已确认缺失或混合拼凑的文献。
-
updated-by方向正确;通知没有反转。 - 每条核心主张引用都经过基于定位信息的审核;仅相关不称作支持;每条
SUPPORTS边都具备来源证据 SHA-256、审核者、非未来的 reviewed_at、匹配的claim_text_sha256/reviewed_claim_sha256和非元数据访问方式,且不含模板、绝对路径或越界定位信息。 - 四道关卡按顺序通过;摘要/全文访问权限以及历史/直接用途均已明确。
- 四道关卡的输入来自
--registry,除非有使用手写测试样例的记录在案的理由。 - 注册表、BibTeX、CSL、证据、失败记录、主张审核和引用键审核均由同一规范状态生成。
-
delivery.json记录了状态,以及排版所用每项交付物的sha256:哈希值。 - citation gate 和 stage-10 检查点均已通过。
- 排版使用了已交付的 BibTeX/引用键。