Repository Public MIT
1---2name: citation-check3description: 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.4license: MIT5compatibility: The bundled script needs Python 3.8 or later. It reads only the files passed as arguments and never uses the network.6---78# Citation check910Find two kinds of problems in a manuscript:1112- **Missing entries**: a key is cited in the text but has no bibliography entry.13- **Uncited entries**: a bibliography entry is never cited in the text.1415## Workflow16171. Ask the user which manuscript files and which bibliography files to check, unless they already18 said. Check only those files. Do not scan the rest of the workspace.192. Run the bundled script with the manuscript files first and the bibliography after `--bib`:2021 ```bash22 python3 scripts/check_citations.py paper.tex sections/intro.tex --bib references.bib23 ```2425 Add `--json` for machine-readable output. Exit code 0 means consistent, 1 means problems were26 found, 2 means a file could not be read.273. If Python is unavailable, do the check by reading the files yourself, using the patterns in28 `references/patterns.md`.294. Report the result as two short lists (missing entries, uncited entries), each key with the file30 and line of its first occurrence. Say plainly when both lists are empty.315. Do not edit the manuscript or the bibliography unless the user asks. Never invent a reference32 to fill a missing entry: ask the user for the source.3334## Limits3536- Keys are compared exactly (case-sensitive), as BibTeX-style tools do.37- `\nocite{*}` marks every entry as cited.38- Citations built by custom macros are not detected; tell the user if the manuscript defines its39 own citation commands.40