Help us improve
Share bugs, ideas, or general feedback.
From light
Plan, review, and generate citations for academic papers. Checks authenticity, relevance, and retractions via Crossref/OpenAlex. Supports BibTeX, GB/T 7714, APA, IEEE formats.
npx claudepluginhub light0305/light-skillsHow this skill is triggered — by the user, by Claude, or both
Slash command
/light:light-citationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. 列出论文每个需要引用的 claim/方法/数据集/对比工作。
Verifies academic citations using canonical sources (DOI, arXiv, CrossRef, Semantic Scholar). Provides principles for detecting fake citations and matching metadata.
Compares reference managers Zotero, Mendeley, EndNote, Paperpile; covers APA/Vancouver/ACS/Nature styles, DOI management, citation tracking, and integrations with Word/Google Docs/LaTeX. Useful for scientific writing workflows.
Searches Google Scholar and PubMed for papers, extracts metadata, validates citations, and generates BibTeX entries. Use when finding papers, converting DOIs, or building bibliographies.
Share bugs, ideas, or general feedback.
https://api.crossref.org/works?query.bibliographic=<标题+作者+年>&mailto=<邮箱>(礼貌池更稳),比对返回的 title/author/issued/DOI。https://api.crossref.org/works/{doi};查不到再用 OpenAlex filter=title.search:... 或 Semantic Scholar /paper/search 兜底。references/locator_audit.md——逐条给引用配一个 locator(页码/章节/图表号/原文片段),核对"被引文献此处是否真的说了正文声称的内容",三态判定:supports(原文确实支撑)/ partial(沾边但夸大或断章取义→改写正文或换引用)/ unsupported(原文根本没这意思→删或换)。key/DOI 对得上 ≠ 论点被支撑。verify_refs.py 已从 OpenAlex 同源带出 is_oa/oa_status/venue/is_in_doaj/type/version,给的是"能否免费拿到、什么 OA 通道"。oa_status==closed 不等于低质——顶刊大量闭源,绝不据此扣分。summary.authority_note)。type=preprint 或非 publishedVersion 产 warning,引用须注明未经同行评审或换正式版 DOI。filter=from-pub-date: 或 OpenAlex filter=publication_year:> 扫近 1–2 年高被引。verify_refs.py 已在 Crossref 同源响应里查 update-to[] 撤稿信号 + 标题 RETRACTED 前缀(判定口径与 a10 light-research-ethics light-research-ethics/scripts/check_retractions.py 同源),命中报 high severity(is_retracted=true,须删除或换源)。批量预筛或需更新更正/关注声明全表时,直接跑 a10 的 light-research-ethics/scripts/check_retractions.py(三态 RETRACTED/FLAGGED/CLEAN)。诚实局限:经典撤稿论文本身常不暴露 update-to[](publisher 行为各异),故标题前缀作补充信号;CLEAN ≠ 保证未撤稿,高风险引用须交叉查 Retraction Watch。scripts/verify_citation_edge.py <A的DOI> <B的DOI> 实证,不靠印象。脚本三态输出:confirmed(开放索引查到 A→B)/ not_in_open_index(OpenCitations+S2 均 200 但未含 B——开放索引未覆盖 ≠ 未引用,须人工查全文或 WoS/Scopus)/ unknown(端点非 200/限速,无法判定)。绝不据开放索引缺失就断言"未引用"。is-referenced-by-count/cited_by_count 辅助判断代表性。https://doi.org/{doi} 带 Accept 头直接取格式,免转换:
Accept: application/x-bibtex → BibTeX;application/vnd.citationstyles.csl+json → CSL JSON;application/x-research-info-systems → RIS。Accept: text/x-bibliography; style=apa; locale=en-US → 直接返回已排版书目(style 取 CSL 名:apa/ieee/chicago-author-date…)。curl 记得 -L 跟随重定向。type 字段决定模板(article-journal/paper-conference/book…),选错套错模板。-numeric 顺序编码 / -author-date),核查文献类型标识码 [J]/[C]/[M]/[D]/[EB/OL] 与作者 >3 取前 3 加"等"。每条 .bib 条目须带 langid={chinese|english}(按作者/标题是否含 CJK 判定)——缺 langid 会让"等/et al."与 [C]/[J] 类型标识在国标排版下出错;doi_to_any.py 产 BibTeX 时已自动注入。authorYearWord——第一作者姓 + 年份 + 标题首个实词,全部小写(如 zhang2024deep),冲突自动加 a/b/c。生成 .bib 时按此公式 pin citekey,不要沿用 DOI 注册商内容协商返回的原始键(那些键与正文 \cite{} 对不上,排版会报 undefined citation)。正文 \cite{} 占位与 .bib 键必须同源同公式。bibtex+指定 .bst;现代 biblatex+biber 原生 UTF-8、排序更强但字段名不同(journaltitle/date)。不擅自换后端。mailto,深翻页用 cursor=*)、OpenAlex(filter/group_by 强,摘要是倒排索引需重建;2026 起需免费 key,接入口径见 m01 references「OpenAlex 接入真相源」)、Semantic Scholar(强在引用关系与影响力,申请免费 x-api-key 避 429)。/{doi}?email=,看 is_oa/oa_status/best_oa_location.url_for_pdf,注意 version 是否正式版。/citations/{id}、/references/{id}(只覆盖开放 DOI-DOI,不当完整计数)。format=bibtex/csljson,include=bib&style=)+ pyzotero(zot.items(content='bib', style='ieee')、everything() 翻页);纯 LaTeX 流可用 JabRef(DOI/arXiv fetcher + integrity check 体检 .bib)。全部脚本免外部依赖(标准库 urllib),自带
__main__自测,端点已 curl 实测(HTTP 码见 references.md)。
query.bibliographic 或 OpenAlex filter=title.search: 找候选,拿到 DOI 清单;正文 .bib/.tex 里的 DOI 也可直接抽出。# 在本技能目录(skills/light-citation/)下运行
python scripts/verify_refs.py --file dois.txt --self-author 张 --out report.json
读 report.json:summary.high_severity_errors 必须为 0;查不到的 DOI 标 severity:high(疑似臆造);summary.retracted_count 必须为 0——任一 is_retracted=true 的引用须删除或换源(撤稿信号来自 Crossref update-to[] + 标题前缀,口径同 a10 check_retractions.py);
另给中外占比 cn_ratio、自引率 self_citation_rate、缺近 2 年标志 missing_recent_2y、预印本数 preprint_count、各源 HTTP 码与 OA 字段(is_oa/oa_status/venue/is_in_doaj,反映开放性非权威性)。
对正文声称的第三方引用关系("A 引用了 B"),逐条跑 python scripts/verify_citation_edge.py <A> <B> 实证,取三态结论而非凭印象断言。python scripts/doi_to_any.py 10.1038/s41597-023-02555-8 --format all
--format gbt7714 直接给顺序编码制中文书目;CSL JSON 可再喂 Pandoc 配 .csl 渲染任意期刊样式。
生成 .bib 时按 authorYearWord 公式 pin citekey(见上"键名规范"),中文条目自动带 langid=chinese。.tex/.md 抽出所有 \cite{...} 的键,与 .bib 文件实际键名逐一比对:正文引用了但 .bib 缺的→补条目,.bib 有但正文未引的→评估是否删。两侧 citekey 公式一致(m07/m08 占位即用此公式)才能对上;precheck(verify_refs.py 报告 + 排版前 biber/bibtex 日志)能兜底检测缺失的 undefined citation。assets/citation_checklist.md(真实性/关联度/中外·SOTA·经典覆盖/数量健康度/格式),
并用其中"被引阈值分档表"按文献年龄判代表性。report.json + checklist 结论,给补引/删引/换源/改格式的修改清单。scripts/doi_to_any.py — DOI 内容协商 → BibTeX / CSL JSON / GB-T 7714,BibTeX 按 CJK 自动注入 langid,含真 DOI 自测。scripts/verify_refs.py — 批量 DOI 经 Crossref+OpenAlex 双源核验,产机读 JSON 报告(含 OA 开放性字段、预印本计数、撤稿检测 is_retracted/retracted_count,口径同 a10 check_retractions.py),含真/假 DOI 自测。scripts/verify_citation_edge.py — 实证引用边"A 引用了 B",OpenCitations 双向 + Semantic Scholar 兜底,三态输出(confirmed/not_in_open_index/unknown),含真 DOI 自测。assets/citation_checklist.md — 投稿前体检清单 + 被引阈值分档表 + 中外/SOTA/经典覆盖自检表。citation_audit.md(真实性 + locator,命名见 CONVENTIONS §6.1)。refs.bib(交 m12)。与 m07/m08/m12 协同;缺关键文献回 m01 补检;格式随 m13 选定 venue 调整(具体引用样式查 db01 的 reference_style 字段);引用库登记 db09。虚假/掠夺性来源风险上报 a10。
工具真实端点、参数、限速与已知坑详见同目录 references.md。