citation-verifier
Generate and verify BibTeX entries from paper notes, writing `citations/ref.bib` and `citations/verified.jsonl`.
How do I install this agent skill?
npx skills add https://github.com/willoscar/research-units-pipeline-skills --skill citation-verifierIs this agent skill safe to install?
- Gen Agent Trust Hubpass
This skill generates BibTeX citations and verifies them by accessing external URLs. It is generally safe, but its ability to fetch any user-provided URL creates a surface for network probing or indirect prompt injection if the input paper notes are malicious.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
- Runlayerpass
2/2 files flagged
What does this agent skill do?
Citation Verifier
Triggers & routing
- Trigger: citation, BibTeX, ref.bib, verified.jsonl, references, 引用, 参考文献.
- Use when: 已有
papers/paper_notes.jsonl,需要为 prose/LaTeX 准备可追溯的引用(每条都有 url/date/title 验证记录)。
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
uv run python .codex/skills/citation-verifier/scripts/run.py --help- Offline (record now, verify later):
uv run python .codex/skills/citation-verifier/scripts/run.py --workspace <workspace> --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:
uv run python .codex/skills/citation-verifier/scripts/run.py --workspace <workspace> --offline --verification-note "auto-generated; needs manual verification"
- Later, verify-only (when network is available):
uv run python .codex/skills/citation-verifier/scripts/run.py --workspace <workspace> --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.
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/willoscar/research-units-pipeline-skills/citation-verifier">View citation-verifier on skillZs</a>