Skip to content

Ref Verify

Zero-hallucination reference verification for Claude Code — live CrossRef/S2/PubMed verification, verbatim abstract traceability, retraction check

Install

$git clone https://github.com/Moonweave-Research/ref-verify

Install command taken from the project's README or registry entry. Always review code before running it.

ref-verify

English | 한국어

Check a reference list before you submit it, and find the references that do not exist, point to a different paper, or were retracted.

Reference lists drafted by AI assistants, or copied from one manuscript to the next, pick up references that do not exist, DOIs that belong to another paper, and papers that were retracted. ref-verify compares each reference with CrossRef and tells you which ones to look at.

  • Who it is for: researchers and students finishing a paper, thesis, or proposal, and the AI assistants that help them.
  • What you get: one verdict per reference (PASS, WARN, REJECT, UNVERIFIED) with the reason, in the terminal, as JSON, or as an HTML report.
  • How it runs: as an agent skill for citation verification (Claude Code, Cursor, Codex) or as a command-line tool. No server setup is required, and no account or API key.

Try it in 30 seconds

You need Python 3.10 or newer.

pipx install ref-verify            # or run without installing: uvx ref-verify check-bib ...
curl -O https://raw.githubusercontent.com/Moonweave-Research/ref-verify/main/examples/references.txt
ref-verify check-bib references.txt

examples/references.txt holds seven references, and a comment above each one says what it really is: three real papers, one real paper cited with the wrong year, one made-up reference, one retracted paper, and a Korean doctoral thesis that CrossRef does not index. This is the output of ref-verify 1.3.1:

7 references: 3 PASS, 1 WARN, 2 REJECT, 1 UNVERIFIED

VERDICT     REFERENCE                                   DOI
PASS        1. Pelrine, R., Kornbluh, R., Pei, Q., &…   10.1126/science.287.5454.836
PASS        2. Watts, D. J., & Strogatz, S. H. (1998)…  10.1038/30918 (resolved)
PASS        3. 김가은 (2024). IPA 분석을 통한 프로스…   10.5392/jkca.2024.24.09.361
WARN        4. Hochreiter, S., & Schmidhuber, J. (199…  10.1162/neco.1997.9.8.1735
            DOI matches, but the year differs (reference: 1999; CrossRef: 1997).
REJECT      5. Pelrine, R., Kornbluh, R., & Pei, Q. (…  10.1002/adma.200390974
            CrossRef has no record for this DOI (HTTP 404), and doi.org does not list it either.
REJECT      6. Wakefield, A. J., Murch, S. H., Anthon…  10.1016/s0140-6736(97)11096-0
            CrossRef records this paper as retracted (notice DOI 10.1016/s0140-6736(10)60175-4); do
            not use it as a source.
UNVERIFIED  7. 강동휘 (2025). 폴리(비닐피리딘) 기반…    -
            No matching CrossRef record was found; verify this reference manually.

PASS: matches CrossRef. WARN: check the difference named under it. REJECT: dead DOI, a different
paper, or retracted. UNVERIFIED: could not be confirmed automatically; that alone does not mean the
reference is wrong.

The command exits with code 2 because not every reference passed. CrossRef's data changes over time, so a later run can differ slightly. To check your own list, export it from Zotero, EndNote, or Mendeley as BibTeX or RIS, or paste it into a .txt file, and run ref-verify check-bib <file>.


How to read a result

Similar plugs

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…

Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…

Explore related