Project report · Poe Poe Myint Swe · October 2026

When AI cites a real paper, does it say what the paper says?

Building a checker to find out.

Why I built this

I build Co-Researcher, research tools that run inside AI assistants such as Claude Code and Codex. One tool writes literature reviews, which summarize what published studies found. AI writers sometimes cite papers that don't exist, and my name goes on what this tool produces, so I wanted every reference checked.

Checking that a paper exists takes one database lookup. Checking what the review says about it takes more. Take the sentence “The trial found no change in recall (Lumen, 2024).” Lumen 2024 can be a real paper and the sentence can still be wrong, because the study found a change, or measured something other than recall, or was written by someone else. A reference check passes all three.

How the checker works

The checker never hunts for evidence on its own. For each study it relies on, the AI has to write down what it says the study found, the exact words from the study that back it up, and which study it is. The checker then tests that record in four steps, and each step closes off a different way of getting a citation wrong.

  1. Is the study on the list? Before any writing starts, a search of research databases builds the list of studies the review may use, so the AI doesn't write the list. The cited study has to be on it, and the citation has to match the entry. “(Lumen, 2024)” needs a study by Lumen from 2024, and “[3]” must lead to the same study in the reference list. An invented study fails here, and so does a real quote credited to the wrong author.
  2. Are the quoted words in the study? The checker opens the study's text, downloaded during the search, and looks for the quote. It ignores capital letters, line breaks and the page numbers that PDF conversion leaves behind, but any change in wording fails, even a single dropped “not”. Each number in the quote must match the number at the same spot in the study, so 18 can't stand in for 118. Quotes under eight words are refused, because short phrases turn up almost anywhere. A quote that sounds right but was never written is the easiest way to fake support, and this step is what stops it.
  3. Does the claim match its quote? A true quote can sit beside a claim it doesn't support, such as 64% where the study says 6.4%. Every number in the claim must appear in the quote. If the quote is only the study's title, or a “no” sits just outside the quoted words, the entry goes back for review.
  4. Is every cited sentence backed? Last, the checker reads the finished review. Each sentence that cites a study must match one of the checked claims for that study, with the same numbers and the same “no” or “not”, and a sentence with a number but no citation is flagged too. Without this step the AI could check a careful claim and then write a bolder one into the review.

When a step fails, the AI gets the list of failures and another try, for up to three rounds. A review that still fails goes out marked INVALID EVIDENCE.

I wrote the checker as ordinary code that compares text, and no second AI is asked for an opinion. The same review always gets the same verdict, and anyone can read the exact rule that failed. What the code can't do is judge meaning. It sees words and numbers, which is why a review that turns “suggested” into “proved” still passes.

How I tested it

I wrote short, made-up studies so no AI could recognize them from training, and planted one mistake in each test. Claude, from Anthropic, and Codex, from OpenAI, then wrote reviews from those studies. For each test I recorded whether the checker flagged the planted mistake before any fixing.

Kind of mistakeWhat I slipped inResult
Altered quotea letter from another alphabet that looks identical, a deleted “no”, two sentences glued together from different placesCaught
Wrong citationa quote credited to the wrong author, a title that matches two papers, “La Cruz” for “de la Cruz”Caught
Wrong number or source64% added with no source, 64% where the study says 6.4%, a finding taken from a paper marked as background readingCaught
Broken filesa missing file, a corrupted file, a file swapped for a shortcut, a file pointing outside the projectCaught
Overstated findinga study that “suggested” something, reported as having “proved” itMissed
13 of 13kinds of mistake caught before any fixing, in every run with both AI writers
1 missA review said a study “proved” what it only “suggested”. No rule compares those words.
10 of 10mistakes fixed by each AI once its repair instructions pointed to the checker's rules. Without them, Claude fixed 8 and Codex 4. I ran each setup once.
38.5 pointsthe widest spread, out of 100, when an AI grader scored the same short text several times. A grader that moves that much can't stand in for the checker.

What still gets through

When Codex reviewed a draft of the technical write-up, it found four kinds of mistake that get a perfect score. I reproduced all four.

The checker catches the mistakes I built it to catch, with real AI writers in the loop. I haven't yet tested it on reviews of real papers. Because I wrote the mistakes and the checker myself, this test is easier than real use would be.

Read the technical write-up → Every method, table and test case, about 30 minutes.