LLM-written bibliographies fail in boring, predictable ways: placeholder DOIs,
DOIs buried in url=, missing volumes, ALL-CAPS titles, citation keys
that break LaTeX. Live verification catches fabrications and retractions — but
only after you pay network latency and only for the keys that still parse.
Serious work needs a single pre-submit command with one exit code: offline floors first, then multi-source verify of what the manuscript actually cites.
# Opinionated presets (0.5.58+)
citesure gate refs.bib --preset ci # offline PR floor
citesure gate refs.bib -m paper.tex --preset arxiv
citesure gate refs.bib -m paper.tex --preset journal -f html -o gate.html
# Or set floors by hand
citesure gate refs.bib --offline --fail-on-warning --min-hard-id-pct 80
What it runs:
url=/note.Exit non-zero when any configured floor fails. That is the entire contract for CI.
Most LLM bibliography defects do not need Crossref. Soft-lint catches them in milliseconds, without API rate limits, and works on air-gapped laptops and pre-commit hooks. Network verification is for existence, metadata mismatch, and retractions — the expensive layer.
pip install https://github.com/SybilGambleyyu/citesure/releases/download/v0.5.58/citesure-0.5.57-py3-none-any.whl
citesure gate refs.bib -m paper.tex --fail-on-warning --min-hard-id-pct 80
Source: github.com/SybilGambleyyu/citesure · Demo: citesure.sybilgambleyyu.workers.dev