skills/citation-audit/SKILL.md
Audit LaTeX citations and references before submission. Use for BibTeX metadata, unresolved keys, invalid labels, DOI/arXiv data, and citation-claim support.
npx skillsauth add a-green-hand-jack/ml-research-skills citation-auditInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Run a pre-submission audit of citations, BibTeX entries, and LaTeX cross-references. This skill is for checking correctness before submission, not for broad literature discovery.
Use this skill when a paper already has draft citations and the user wants confidence that:
\cite{...} key in TeX exists in BibTeX\ref{...}, \cref{...}, \eqref{...}, \autoref{...} target exists\label{...} is unique and follows the local naming conventionPair this with submit-paper for the broader submission checklist. Pair it with research-project-memory when citation correctness issues should become blocking paper risks or actions.
<installed-skill-dir>/
├── SKILL.md
├── scripts/
│ └── audit_latex_refs.py
└── references/
├── citation-claim-audit.md
├── metadata-verification.md
└── report-template.md
scripts/audit_latex_refs.py for deterministic TeX/BibTeX/reference checks.references/metadata-verification.md when checking DOI, arXiv, OpenReview, proceedings, or publisher metadata.references/citation-claim-audit.md when the user asks whether citations support the claims made in the paper, or when doing a full pre-submission audit.references/report-template.md for the final audit report.Determine:
\bibliography{...} or \addbibresource{...}Useful local checks:
find . -maxdepth 4 -name "*.tex" -o -name "*.bib"
find . -maxdepth 3 -name "main.tex" -o -name "paper.tex"
If the user provides a paper directory, use it. If no main file is provided, prefer main.tex, then paper.tex, then the TeX file containing \begin{document}.
Run:
python3 <citation-audit-skill-dir>/scripts/audit_latex_refs.py --paper-dir "$PAPER_DIR" --main "$MAIN_TEX"
Use an absolute path to the installed skill script. Do not assume a Claude-specific install path.
The script checks:
\cite, \citet, \citep, \citealp, \citeauthor, \citeyear, \textcite, \parencite?? and citation placeholders such as [?]If the script reports blocking issues, fix or report those before doing web metadata checks. Metadata validation is much less useful if the TeX/BibTeX graph is broken.
Use this severity model:
blocking: missing cited key, duplicate BibTeX key, undefined ref, duplicate label, invalid BibTeX structure, broken DOI for a cited workimportant: metadata mismatch, wrong venue/year, likely duplicate entry, citation claim not supported, arXiv cited when peer-reviewed version should be citedwarning: unused BibTeX entry, unreferenced label, inconsistent key naming, missing optional DOI/URLnote: style cleanup, capitalization, field normalization, BibTeX key rename suggestionDo not treat unused BibTeX entries as blocking unless the target venue or user requires a minimal bibliography.
Read references/metadata-verification.md.
For every cited key, verify the best available identifier:
Check:
When metadata cannot be verified, mark it explicitly instead of guessing.
Read references/citation-claim-audit.md for full guidance.
For each citation context, classify what the prose asks the citation to support:
Then check whether the cited paper actually supports that role. For high-risk claims, inspect the abstract, introduction, method/result section, and if needed the PDF.
High-risk contexts:
Do not silently rewrite scientific claims. If a citation does not support a claim, propose one of:
Safe auto-fixes:
.bib extension resolution in the reportNever auto-fix:
For any edit, keep the smallest possible diff.
Use references/report-template.md.
The final report should include:
If the user asks for a saved report and gives no path, use:
docs/reports/citation_audit_YYYY-MM-DD.md
Before finalizing:
If the project uses research-project-memory, update:
memory/risk-board.md: blocking or important citation, metadata, label, reference, or citation-claim risksmemory/action-board.md: concrete fixes for missing keys, metadata corrections, unsupported claims, or broken refsmemory/claim-board.md: claims that must be weakened because citations do not support thempaper/.agent/paper-status.md: citation-audit status and unresolved author decisionsUse observed for deterministic TeX/BibTeX graph findings and needs-verification for metadata or claim-support issues not fully checked.
testing
Bootstrap project-local ml-research-skills. Use from global installs when creating a new ML research project, enabling this collection in an existing ML research repo, or deciding whether to install the full bundle locally. Route to project-init for new projects; do not handle paper or experiment work directly.
development
Route project operations tasks — git, memory, bootstrap, remote, workspace, code review, timeline, ops — to the correct skill. Use when the task involves commits, pushes, worktrees, project memory, enabling project-local skills, SSH/server coordination, sidecar runners, or audits. Do not solve the ops task directly.
testing
Route ML/AI paper writing tasks to the correct skill — contract planning, prose drafting, section writing, consistency editing, review simulation, rebuttal, submission, or citation work. Use when the task involves writing, revising, reviewing, or submitting a paper instead of guessing between paper-writing-assistant, paper-writing-contract-planner, paper-reviewer-simulator, auto-paper-improvement-loop, or citation skills. Do not draft prose directly.
data-ai
Project-local router for ML research skill selection. Use inside an initialized ML research project, or while maintaining this skill repo, when the user describes an ML research/paper/experiment/discovery/ops/release workflow and may not know the skill; route to a domain router or high-signal leaf. Do not use for generic non-ML projects.