In April 2026, Nature reported that tens of thousands of 2025 publications may include invalid references generated by AI. arXiv will ban submitters for a year when a paper shows incontrovertible evidence of unchecked LLM output — including fabricated references. ICLR 2026 audits found roughly one in twenty-nine accepted papers carried at least one likely hallucinated citation.
The hard part is not “use AI less.” Authors already use assistants to fill BibTeX, polish related-work sections, and expand paraphrased cites into full entries. The hard part is a gate that fits real writing workflows: local CLI, CI, structured reports, and repair — not only a one-off web form after the damage is done.
Several good projects check whether a cited work exists (RefChecker, Hallucinator, CheckIfExist, Paperpile’s Citation Checker). Reviewers need those. Authors and automated agents need something slightly different:
citesure is an open-source Python library and CLI that verifies bibliographies against Crossref, doi.org, arXiv, and PubMed (optional Semantic Scholar / OpenAlex), then optionally repairs them.
pip install git+https://github.com/SybilGambleyyu/citesure.git citesure check refs.bib citesure check refs.bib -f sarif -o citesure.sarif citesure fix refs.bib -o refs.fixed.bib
Statuses you get per entry:
verified — strong match, consistent metadatametadata_mismatch — real work found; fields disagree (classic LLM “autocomplete” failure)retracted — Crossref-style retraction signalsnot_found — no acceptable match (candidate hallucination or unindexed work)ambiguous — several close matches; human review
Default CI fails on not_found, retracted, and errors.
Use --fail-on-mismatch or --strict when you want a tighter gate.
Against a fixture with two real papers, one deliberate fabrication, and one entry
with a real title but wrong authors/year, the CLI verifies the real works, marks the
fabrication not_found, and surfaces the poisoned metadata for repair.
Live API tests in the repo exercise the same path on every release candidate.
Demo (Cloudflare Worker, same idea as the CLI, polite Crossref/arXiv lookups): citesure.sybilgambleyyu.workers.dev
citesure flags suspicion, not guilt. Databases miss books, brand-new preprints,
and many non-English venues. A not_found result is a lead for a human to check —
never an automatic accusation. Claim-level support is available via
citesure claim (lexical abstract/title overlap, plus optional SpaceXAI/xAI
judge with --llm). That checks citation relevance, not absolute truth.
Existence and metadata integrity remain the primary gate.
citesure check paper.pdf)--used-in to check only keys cited in the manuscript (huge shared .bib files)extract-claims to pull claim sentences near citations for relevance auditsdedupe, merge, export-csl; journal CI templates347 U.S. 483)