Agent skill
citation-verifier
Generate and verify BibTeX entries from paper notes, writing `citations/ref.bib` and `citations/verified.jsonl`. **Trigger**: citation, BibTeX, ref.bib, verified.jsonl, references, 引用, 参考文献. **Use when**: 已有 `papers/paper_notes.jsonl`,需要为 prose/LaTeX 准备可追溯的引用(每条都有 url/date/title 验证记录)。 **Skip if**: 还没有 paper notes(或本次产出不需要引用/参考文献)。 **Network**: 自动验证通常需要网络;无网络时可先 record,再标注 needs manual verification。 **Guardrail**: 每个 BibTeX entry 必须对应一条 `citations/verified.jsonl` 记录;prose 只能使用已存在于 `citations/ref.bib` 的 citation keys。
Install this agent skill to your Project
npx add-skill https://github.com/WILLOSCAR/research-units-pipeline-skills/tree/main/.codex/skills/citation-verifier
SKILL.md
Citation Verifier
Generate citations/ref.bib and ensure every entry has a traceable verification record in citations/verified.jsonl.
When network access is restricted, prefer a “record now, verify later” workflow: keep URLs/titles consistent and leave a clear verification note.
Input
papers/paper_notes.jsonl
Outputs
citations/ref.bibcitations/verified.jsonl
Workflow (heuristic)
- Collect
bibkey,title,url,year,authorsfrompapers/paper_notes.jsonl. - Write/refresh
citations/ref.bib:- Prefer arXiv-style fields when
arxiv_id/primary_categoryexist (eprint,archivePrefix,primaryClass).
- Prefer arXiv-style fields when
- Write one verification record per BibTeX entry to
citations/verified.jsonlwith at least:bibkey,title,url,date
- If you cannot verify via network, record a clear
notesfield (e.g., “auto-generated; needs manual verification”) and/or request human confirmation depending on your policy.
Quality checklist
- Every BibTeX entry has a corresponding
verified.jsonlrecord. - No missing
url/date/titlein verification records.
Offline Mode
When network access is restricted, run in offline mode to produce auditable records now, then verify later.
- Generate offline records:
verification_status: offline_generated - Verify later (when network is available):
--verify-only
verification_status
offline_generated: record was generated without network verification (needs later verification)verified_online: URL/title verified successfully by the scriptverify_failed: verification was attempted but failed (network error or title mismatch)needs_manual_verification: missing/ambiguous fields (e.g., emptyurl/title)
Script
Quick Start
python .codex/skills/citation-verifier/scripts/run.py --help- Offline (record now, verify later):
python .codex/skills/citation-verifier/scripts/run.py --workspace <workspace_dir> --offline
All Options
--offline: do not attempt network verification; writeverification_status=offline_generated--verify-only: verify existingcitations/verified.jsonlrecords (does not rewrite BibTeX)--verification-note <text>: stored incitations/verified.jsonlnotes
Examples
- Generate BibTeX + offline verification records:
python .codex/skills/citation-verifier/scripts/run.py --workspace <ws> --offline --verification-note "auto-generated; needs manual verification"
- Later, verify-only (when network is available):
python .codex/skills/citation-verifier/scripts/run.py --workspace <ws> --verify-only
Notes
- Minimal requirement for every verification record:
url,date,title. - The script sanitizes stray/unbalanced
{}in titles to keepbibtexparsing robust. - The script escapes LaTeX special chars in text fields (
& % $ # _) and rewrites superscript patterns likeX^NorX$^N$asX\textsuperscript{N}to keep LaTeX builds stable. - URLs are kept raw in BibTeX
urlfields (BibTeX styles wrap them with\url{...});@miscuseshowpublished=\url{...}. - In offline mode, records are not truly verified; treat
offline_generatedas a to-do for human/network verification.
Troubleshooting
Common Issues
Issue: Missing bibkey / missing url in notes
Symptom:
citations/ref.bibis missing entries, orverified.jsonlhas emptyurl/title.
Causes:
papers/paper_notes.jsonllacksbibkey/urlfields.
Solutions:
- Ensure each core paper note has a stable
bibkeyand a canonicalurl. - Rerun citation generation after fixing notes.
Issue: verification_status=offline_generated
Symptom:
- Records exist but are not truly verified.
Causes:
--offlinewas used, or network verification was unavailable.
Solutions:
- When network is available, run
--verify-onlyto upgrade records. - Or manually verify and update
citations/verified.jsonlwith notes.
Recovery Checklist
- Every BibTeX entry has a matching
citations/verified.jsonlrecord. - Verification records include
url,date,title.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
thesis-compile-review
对中文毕业论文进行编译、warning 分级、模板模式检查、数据与引用复查,并把问题回写成可继续迭代的 review checklist。 **Trigger**: 毕业论文编译检查, thesis compile review, warning 分级, 终稿复查, main.pdf 检查. **Use when**: 论文已经回写到 TeX 交付层,需要确认是否真正达到“可提交”的质量,而不是只做到能编译。 **Skip if**: 还处于中间层重构阶段,`chapters/*.tex` 尚未形成稳定交付稿。 **Network**: none. **Guardrail**: 不在这里重构章节主线;如果发现结构问题,明确回退到上游修复。
front-matter-writer
Write the survey's front matter files (Abstract, Introduction, Related Work, Discussion, Conclusion) in paper voice, with high citation density and a single evidence-policy paragraph. **Trigger**: front matter writer, introduction writer, related work writer, abstract writer, discussion writer, conclusion writer, 引言, 相关工作, 摘要, 讨论, 结论. **Use when**: you are in C5 (prose allowed) and need the paper-like shell to stop the draft reading like stitched subsections. **Skip if**: `Approve C2` is missing in `DECISIONS.md`, or `citations/ref.bib` is missing. **Network**: none. **Guardrail**: no invented facts/citations; no pipeline jargon in final prose; no repeated evidence disclaimers; only use keys present in `citations/ref.bib`.
thesis-question-list
维护中文毕业论文的 `codex_md/question_list.md`:把本轮问题、边界、优先级、协作方案和验收口径结构化,作为整条 thesis pipeline 的控制面。 **Trigger**: 毕业论文问题清单, thesis question list, 论文修改清单, 本轮目标, 结构问题梳理, review问题整理. **Use when**: 你已经有一批材料或上一轮 review 结果,需要明确这一轮到底修什么、不修什么,并给后续重构与编译复查提供统一入口。 **Skip if**: 当前只是在做一次性局部措辞修改,且没有形成新一轮结构/证据/编译问题。 **Network**: none. **Guardrail**: 不在这里写正文;不把问题单写成长篇散文;每条问题必须可执行、可验收。
novelty-matrix
Create a novelty/prior-work matrix comparing the submission’s contributions against related work (overlaps vs deltas). **Trigger**: novelty matrix, prior-work matrix, overlap/delta, 相关工作对比, 新颖性矩阵. **Use when**: peer review 中评估 novelty/positioning,需要把贡献与相关工作逐项对齐并写出差异点证据。 **Skip if**: 缺少 claims(先跑 `claims-extractor`)或你不打算做新颖性定位分析。 **Network**: none (retrieval of additional related work is out-of-scope unless provided). **Guardrail**: 明确 overlap 与 delta;尽量给出可追溯证据来源(来自稿件/引用/作者陈述)。
protocol-writer
Write a systematic review protocol into `output/PROTOCOL.md` (databases, queries, inclusion/exclusion, time window, extraction fields). **Trigger**: protocol, PRISMA, systematic review, inclusion/exclusion, 检索式, 纳入排除. **Use when**: systematic review pipeline 的起点(C1),需要先锁定 protocol 再开始 screening/extraction。 **Skip if**: 不是做 systematic review(或 protocol 已经锁定且不允许修改)。 **Network**: none. **Guardrail**: protocol 必须包含可执行的检索与筛选规则;需要 HUMAN 签字后才能进入 screening。
rubric-writer
Write a rubric-based peer review report (`output/REVIEW.md`) using extracted claims and evidence gaps (novelty/soundness/clarity/impact). **Trigger**: rubric review, referee report, peer review write-up, 审稿报告, REVIEW.md. **Use when**: peer-review pipeline 的最后阶段(C3),已有 `output/CLAIMS.md` + `output/MISSING_EVIDENCE.md`(以及可选 novelty matrix)。 **Skip if**: 上游产物未就绪(claims/evidence gaps 缺失)或你不打算输出完整审稿报告。 **Network**: none. **Guardrail**: 给可执行建议(actionable feedback),并覆盖 novelty/soundness/clarity/impact;避免泛泛而谈。
Didn't find tool you were looking for?