Rule-based reference integrity checks for AI conference submissions.
Catch hallucinated, malformed, and suspicious references before they become a desk-reject risk.
Quick start · Venues · Checks · Policy basis
LLMs are now part of literature survey and related-work writing, but they can generate references that look real and point to no real paper. Several AI venues now treat non-existent references as a serious integrity issue.
venue-ref-guard gives authors a local pre-submission check:
- Export your
.bibfrom Overleaf or your LaTeX project. - Optionally include the rendered submission PDF.
- Run the venue profile for ACL, EMNLP, NAACL, ICLR, ICML, NeurIPS, or CVPR.
- Resolve every
suspected_hallucinated,invalid, andneeds_reviewentry before submitting.
This is not a promise of acceptance and it cannot eliminate all desk-reject risk. It is a practical guardrail that makes citation-integrity problems visible while you can still fix them.
Run from the repository:
python3 -m venue_ref_guard venues
python3 -m venue_ref_guard rules --venue icml
python3 -m venue_ref_guard check --venue icml --bib examples/references.bib --output report.mdCheck a paper PDF against the same BibTeX file:
python3 -m venue_ref_guard check \
--venue neurips \
--bib references.bib \
--paper paper.pdf \
--output venue-ref-report.md \
--json venue-ref-report.jsonRun an offline structural check when network access is unavailable:
python3 -m venue_ref_guard check --venue acl --bib references.bib --offline| Venue | Key | Rule family | Focus |
|---|---|---|---|
| ACL | acl |
ACL/ARR | Real artifacts, ACL citation style, pubcheck-adjacent checks |
| EMNLP | emnlp |
ACL/ARR | ACL/ARR integrity policy plus EMNLP paper-integrity rules |
| NAACL | naacl |
ACL/ARR | ACL/ARR citation and publication-ethics rules |
| ICLR | iclr |
OpenReview | LLM-use responsibility and hallucinated-reference desk-reject risk |
| ICML | icml |
OpenReview | Published AC guidance for problematic references |
| NeurIPS | neurips |
OpenReview | Author responsibility for text, figures, and references |
| CVPR | cvpr |
CVF | Cited-reference pages, arXiv version hygiene, reference integrity |
| Check | Result |
|---|---|
| BibTeX syntax and required fields | Finds missing title, author/editor, year, and malformed entries |
| DOI shape and DOI/title disagreement | Flags bad DOI formats and strong-title matches with conflicting DOIs |
| Public-source existence | Searches Crossref, OpenAlex, Semantic Scholar, DBLP, and arXiv |
| Fuzzy title reality check | Flags entries when no public source has a title near the submitted title |
| Author/year/venue drift | Separates minor repair issues from potentially fabricated metadata |
| PDF/BibTeX alignment | Checks whether BibTeX titles appear in the rendered reference section when PDF text extraction is available |
| Venue-specific rule mapping | Reports each issue with the relevant official rule URL |
| Status | Meaning | Action |
|---|---|---|
verified |
Strong public-source title/author/year match found | Keep it, but still review important citations manually |
needs_review |
Fuzzy match, artifact-like citation, or lookup uncertainty | Manually confirm and update BibTeX from the authoritative source |
offline_unverified |
Network source matching was skipped | Re-run online before submission |
invalid |
BibTeX is structurally incomplete for checking | Fix the BibTeX entry first |
suspected_hallucinated |
No close public-source title match was found | Treat as a blocker until manually disproven |
# venue-ref-guard report
- Venue: ICML (`icml`)
- References checked: 42
- Suspected hallucinated: 1
- Invalid BibTeX entries: 0
- Needs manual review: 3
- Verified: 38
## Findings
- BLOCKER `NO_SOURCE_MATCH` `smith2026imaginary`
No public source found a publication with a title close to this reference.
- WARNING `AUTHOR_LIST_REVIEW` `lee2024benchmark`
Author names differ from the best public source match.
Use --fail-on to make the CLI suitable for CI or a pre-submission script:
python3 -m venue_ref_guard check --venue iclr --bib references.bib --fail-on suspected
python3 -m venue_ref_guard check --venue iclr --bib references.bib --fail-on needs-review
python3 -m venue_ref_guard check --venue iclr --bib references.bib --fail-on warning
python3 -m venue_ref_guard check --venue iclr --bib references.bib --fail-on never| Mode | Non-zero exit when |
|---|---|
suspected |
A reference is suspected hallucinated or invalid |
needs-review |
A reference is suspected, invalid, or needs manual review |
warning |
Any warning, error, or blocker exists |
never |
Never fails from report findings |
The built-in profiles use public official sources:
| Venue family | Sources |
|---|---|
| ACL/ARR | ACL hallucinated-reference statement, ACL author guidelines, ACLPUB style guide, aclpubcheck |
| EMNLP | EMNLP 2026 CFP, double-blind instructions, ACL/ARR policy |
| ICLR | ICLR 2026 author guide, ICLR response to LLM-generated papers and reviews |
| ICML | ICML 2026 author instructions, ICML 2026 AC hallucinated-reference guidance |
| NeurIPS | NeurIPS 2026 main track handbook |
| CVPR | CVPR 2026 author guidelines |
The current implementation has no required third-party runtime dependencies.
Optional PDF extraction:
- Install Poppler so
pdftotextis available onPATH, or - install the optional Python extra after packaging:
pip install "venue-ref-guard[pdf]"python3 -m unittest discover
python3 -m venue_ref_guard check --venue acl --bib examples/references.bib --offline --fail-on neverProject layout:
venue_ref_guard/
bibtex.py BibTeX parser
venues.py Official venue profiles and rules
verifier.py Reference-level verdicts
sources.py Crossref/OpenAlex/Semantic Scholar/DBLP/arXiv clients
pdf.py Optional PDF/reference-section alignment
report.py Markdown and JSON reports
cli.py Command-line interface
venue-ref-guard errs on the side of manual review. A single suspected hallucinated reference is reported as a blocking finding even when a venue escalation policy mentions a higher reporting threshold, because the intended user is an author checking before submission.