More screenshots

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+21 more

    bib-check: Catch Fake Citations and Wrong DOIs

    1

    This skill finds them the reliable way, by asking the registries that index scholarly work.

    Free

    Security scanned
    bib-check: Catch Fake Citations and Wrong DOIs

    bib-check: Catch Fake Citations and Wrong DOIs

    Example session with this skill installed

    Before I submit this to the journal, can you check that every reference in paper/main.tex is real? A writing assistant helped me with parts of the bibliography and I want to be sure nothing is made up.

    • Read your context and instructions
    • Compiled the bib-check

    I checked all 15 references your paper cites. 9 are fine, including one I confirmed by hand.

    5 need fixing before you submit, and for 2 of those I couldn't find the paper anywhere. I haven't changed any of your files.

    No trace of these two papers

    • lindgren2022dawn (cited at main.tex:15): no registry lists it, and a web search for the exact title found nothing. The closest real work is a 2021 Nature Communications study on quieter dawn choruses, which used bird-count data and archived recordings, not smartphones. Where did this reference come from?
    • novak2023transformer (main.tex:20): its arXiv id, 1412.6980, belongs to the Adam optimizer paper, which you already cite as kingma2015adam. No registry lists the title, and a web search found nothing by those authors.

    Real papers with errors in the entry

    • rosenberg2019decline: the paper is real, but the authors are wrong. It is by Rosenberg, Dokter, Blancher, Sauer, Smith et al. (doi:10.1126/science.aaw1313).
    • pimm2014biodiversity: the DOI is the BirdNET paper's (your kahl2021birdnet). The correct DOI is 10.1126/science.1246752.
    • dickinson2010citizen: the DOI ends in …-144663 and doesn't exist. The correct one ends in …-144636.

    The full report is at paper/bib-check-main-2026-11-02.md. I can fix the three entries that have registry records and show you each change before saving. The two papers I couldn't find need your decision.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    What it does

    An invented reference looks exactly like a real one: plausible authors, a fitting title, a real journal. This skill finds them the reliable way, by asking the registries that index scholarly work. Point your agent at a LaTeX paper or a .bib file and it:

    • Looks up every entry. DOIs are resolved (Crossref, then doi.org for DataCite and other agencies), arXiv and PubMed ids are checked, and everything else is searched by title in Crossref, OpenAlex, DBLP and arXiv.
    • Names each problem precisely: references no registry lists, DOIs that are not registered, DOIs that belong to a different paper (with that paper's title), arXiv ids that belong to another paper, and real titles cited with other authors.
    • Works on your paper, not just your .bib: it follows \input, checks only the keys you cite, and says where each problem entry is cited (main.tex:15).
    • Takes a second look before any verdict: for every entry the registries could not confirm, your agent searches the exact title on the web and tells you whether it exists elsewhere, resembles a different real work, or has no trace at all.
    • Writes a Markdown report with counts, problems by severity, every found entry linked to its registry record, and the registries asked.

    It says "no registry lists it", never "fake", and it never edits your .bib unless you ask.

    What a run looks like

    In our demo a fresh agent with only this skill got a 15-reference LaTeX paper with five planted problems. In 82 seconds it reported all five: two papers no registry or web search could find (one carrying the arXiv id of the Adam paper, cited elsewhere in the same .bib), a real title with invented authors (with the real ones), a DOI copied from another entry and a DOI with two digits swapped (each with the correct DOI). For the invented dawn-chorus paper it named the closest real study. It also cleared a real book the registries were unsure about.

    How well it works

    Scored once on 492 held-out references it was never developed on (two independent sets; the invented ones come from published compilations of fabricated citations found in ACL 2026 and ICLR 2026 submissions): real references found 189 of 190, invented references flagged 108 of 108, wrong DOIs reported 60 of 60, retracted papers found 70 of 70, and all 168 flags right. Most invented items are computer science; details and intervals on the docs page.

    What's included

    • SKILL.md: inputs, how to run the check, what each result means, the web double-check, how to report and fix
    • scripts/bib_check.py: the check, one Python file, standard library only, network calls documented at the top
    • examples/sample-refs.bib and examples/sample-report.md: a seeded bibliography and the report a real run wrote
    • references/research-folder.md: the shared research/ folder convention

    Part of the Aurora Lab research pipeline

    Free, and works entirely on its own. Before a submission it pairs well with claim-check (every result backed by its data) and journal-house-style (any venue's author guidelines).

    Existence and DOIs only: an entry can be found and still have the wrong year, pages, volume, venue or part of the author list, which the check does not compare; it does not look for retractions or read the cited works. Registries cover journal articles, conference papers and preprints well, and books, theses, reports, standards and web pages poorly, so "not found" for those is weak evidence and is reported at low severity. A badly garbled title can show as not found or uncertain even when the work exists. OpenAlex without a key shares a small daily budget per network, and a registry that stops answering is skipped for the run (the report says so; rerun later). Tested on English-language bibliographies; the invented references in our held-out test are mostly computer science.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Free forever

    No account required to browse

    Trust & safety

    Security scan

    Security scan passed today

    • Free with an Agensi account

    Requires

    Doi
    Crossref
    Arxiv
    Nih
    Openalex
    Dblp
    Python 3.10+ (standard library only)
    Internet access to Crossref, doi.org, arXiv, PubMed, OpenAlex and DBLP
    Web search in the agent (optional, recommended)
    Python
    macOS

    Permissions

    Terminal / Shell
    Network Access
    Read Files
    Write Files
    Environment Variables

    Allowed Hosts

    doi.org
    api.crossref.org
    export.arxiv.org
    eutils.ncbi.nlm.nih.gov
    api.openalex.org
    sparql.dblp.org

    File Scopes

    **/*.tex
    **/*.bib
    research/reviews/**

    Reads the .tex or .bib files you point to (a .tex file brings in its \input files and the bibliographies it names). Runs one Python script that sends each entry's title, first author, year and any DOI, arXiv or PubMed id, never your paper's text, to api.crossref.org, doi.org, export.arxiv.org, eutils.ncbi.nlm.nih.gov, api.openalex.org and sparql.dblp.org. Reads two optional environment variables: BIB_CHECK_MAILTO (your email, for Crossref's and PubMed's polite pools) and OPENALEX_API_KEY. Writes one Markdown report, to research/reviews/ or next to your file. Uses the agent's own web search to double-check entries no registry lists. Never edits your .bib or paper unless you ask.

    Listedtoday

    What's inside

    Frequently Asked Questions

    No. It reports what it can know: no registry lists the work, or the DOI points elsewhere. Your agent's web search then tells you whether the work exists outside the registries. Whether an entry was invented, garbled or just obscure is for you to judge, and when you check someone else's paper the report describes references, not people.

    Only if you ask, and only with what a registry record supports: a wrong or unregistered DOI can be replaced with the DOI of the record the work was found as, and the agent shows each change first. It never invents a DOI or swaps an entry for a different paper without your confirmation.

    Yes. The agent writes each reference into a temporary BibTeX file exactly as printed, without correcting anything, and runs the same check; the temporary file is deleted afterwards.

    For each entry: the title, the first author's family name, the year and any DOI, arXiv or PubMed id, to six public registries (Crossref, doi.org, arXiv, PubMed, OpenAlex and DBLP's query service). Never your paper's text. The full list is at the top of the script.

    About a second per entry; entries that need arXiv take longer because arXiv allows one request every three seconds. In our demo, 15 references plus the agent's web checks took 82 seconds.

    Any agent that loads SKILL.md skills and can run Python 3.10+, including Claude Code, Codex CLI, Cursor and Gemini CLI. There is nothing to install.