mcpField
L
light-citation

light-citation

github.com/light0305文档处理81457 次安装16 周前更新
代码仓库

关于 light-citation

light-citation 是 Light 科研流程第 10 阶段的引用核验技能,供作者检查论文中的参考文献及其与具体论点的关系。它分别处理文献存在性、身份、出版状态和论点支持,并生成可追溯的引用登记表与交付文件。

主要功能

  1. 01盘点正文、图表和补充材料中的引用
  2. 02通过独立来源核验文献身份与元数据
  3. 03检查撤稿、更正等出版更新
  4. 04依据原文定位审查论点与引文支持
  5. 05生成引用登记表、BibTeX、CSL JSON 和审计结果

适用场景

  1. 01投稿前核验论文引用及其论点支持
  2. 02排查错误、缺失或疑似拼接的引文
  3. 03整理参考文献并检查 LaTeX citekey

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/light0305/light-skills --skill light-citation

安装后在 Claude Code 中输入/light-citation确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

citation-resource-map.md
references.md
assets/
citation_checklist.md
references/
locator_audit.md
registry_contract.md
scripts/
citation_four_gate.py
citation_registry.py
citation_verify_gate.py
citekey_audit.py
doi_to_any.py
verify_citation_edge.py
verify_refs.py
templates/
citation_input.json
citation-four-gate.example.json
claim_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: 哈希,以便排版阶段拒绝过时或被编辑过的交接文件。

不可妥协的规则

  1. 绝不臆造参考文献、DOI、作者、年份、出版物、引用键、定位信息或支持判定。
  2. 绝不可将网络故障、速率限制、5xx、身份验证失败或索引未命中称为“该文献不存在”。
  3. 仅当 DOI 注册机构明确报告文献不存在,且 Crossref 与 DataCite 均返回 404/410 时,才指定 CONFIRMED-MISSING。
  4. 仅当注册元数据和至少一个独立字段来源确认该文献时,才指定 CONFIRMED。否则保留 UNAVAILABLE 或 UNRESOLVED。
  5. 保留每个来源中的标题/作者/年份/出版物/标识符值。从注册机构选择规范字段;绝不可使用模糊匹配覆盖原始引用。
  6. 将 DOI 真实存在但标题/作者/年份冲突的情况视为可能的拼凑式引用。多个核心字段冲突属于关键问题;一个字段不明确地不匹配,则作为警告供人工审查。
  7. 按正确方向读取出版更新:受影响的原文带有 Crossref updated-by;更新通知带有反向的 update-to。
  8. 记录撤稿/更正/关注声明事实和提醒,然后将诚信判断及措辞交给研究伦理环节。不要重建其伦理门槛。
  9. 绝不可将元数据确认或“A 引用了 B”等同于“B 支持论点 C”。SUPPORTS 必须基于定位信息进行语义审查。
  10. 确保核心流程本地免费,或公开且无需密钥。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-MISSINGDOI 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.pystage-10 发现项生成器;确认存在缺失/拼接文献时退出码为 1
citekey_audit.py手稿 ↔ .bib 键审计;排版时会复用
doi_to_any.pyDOI 内容协商和引文格式输出
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/引用键。

评论

支持 Markdown