name: citation-check description: Cross-checks in-text citations against the bibliography of a Markdown or LaTeX manuscript and reports citations with no entry and entries never cited. Use when the user asks to verify references, find missing or unused citations, or audit a paper before submission. license: MIT compatibility: The bundled script needs Python 3.8 or later. It reads only the files passed as arguments and never uses the network.
Citation check
Find two kinds of problems in a manuscript:
- Missing entries: a key is cited in the text but has no bibliography entry.
- Uncited entries: a bibliography entry is never cited in the text.
Workflow
-
Ask the user which manuscript files and which bibliography files to check, unless they already said. Check only those files. Do not scan the rest of the workspace.
-
Run the bundled script with the manuscript files first and the bibliography after
--bib:bashpython3 scripts/check_citations.py paper.tex sections/intro.tex --bib references.bibAdd
--jsonfor machine-readable output. Exit code 0 means consistent, 1 means problems were found, 2 means a file could not be read. -
If Python is unavailable, do the check by reading the files yourself, using the patterns in
references/patterns.md. -
Report the result as two short lists (missing entries, uncited entries), each key with the file and line of its first occurrence. Say plainly when both lists are empty.
-
Do not edit the manuscript or the bibliography unless the user asks. Never invent a reference to fill a missing entry: ask the user for the source.
Limits
- Keys are compared exactly (case-sensitive), as BibTeX-style tools do.
\nocite{*}marks every entry as cited.- Citations built by custom macros are not detected; tell the user if the manuscript defines its own citation commands.