AiBook · Jeremy Schoemaker · 2026 · ch-23.html

The Citation Was Fake

(Spine Ch. 23.)

“QUOTATION, n. The act of repeating erroneously the words of another. The words erroneously repeated.” Ambrose Bierce, The Devil’s Dictionary (1911)

August 22, 2026. A check I wrote for airank passed, and it passed with a number attached, which is the most convincing kind of passing. Crawlers were fetching our markdown files. Logged, counted, reproducible. I read the integer, nodded at my own cleverness, and moved on. Two weeks before that, a different check of mine flagged 58 duplicate products, and 54 of them were real records that a fix would have deleted. Both numbers were true. Neither one meant what I said it meant, and I did not find that out by being careful.

Bottom line: The dangerous hallucination isn’t the wrong answer. It’s the right answer wearing a fake badge. The agent tells you something true, then bolts on a line number, a commit hash, a quote, a URL, and none of them exist. You check the claim, the claim holds, you ship. Nobody checks the badge. The fact was real. The citation was theater.


When it bites


The pattern

Models are trained to produce well-formed output, and a well-formed factual assertion in professional writing has a citation attached to it. It has never seen a credible paragraph that ends with “I know this but I can’t tell you where from,” so it fills the slot with the most plausible citation it can synthesize. Right journal. Right-looking volume number. Right decade. Correct format down to the page range. Not because it retrieved it: because the shape demands it.

This is “first post” energy. Anyone who spent 2002 refreshing Slashdot knows the shape: the slot is open, so something goes into it, and what goes into it does not have to mean anything at all.

The citation isn’t a lie about the fact. It’s decoration that got promoted to evidence. It’s the under-construction GIF of epistemology, a little animated ornament from somebody’s GeoCities page, except this one is holding up the roof.

This is why the error rate on citations is so much higher than the error rate on claims. A 2024 study in the Journal of Medical Internet Research measured reference hallucination directly: 39.6% for GPT-3.5, 28.6% for GPT-4, 91.4% for Bard. Those models were not wrong about medicine 91% of the time. They were wrong about where they read it 91% of the time.

Stanford RegLab’s peer-reviewed study found that purpose-built, paid legal research systems (retrieval-augmented, domain-tuned, sold specifically to lawyers who will be sanctioned for this) still hallucinate 17% to 34% of the time. General chatbots are worse.


One worked example

August 22, 2026. airank. “Fetch is not cite.”

We had a measurement. Crawlers were fetching our markdown files. That was real: logged, counted, reproducible, not in dispute.

The check we’d written claimed those files change whether pages get cited by AI answer engines.

Here’s what the number actually proved: crawlers fetch the file. That’s it. The fetch count is completely blind between “this works” and “this does nothing.” One causal hop, entirely unbridged, and a real integer sitting on top of it looking like proof.

Outcome: the check got downgraded to UNPROVEN and shipped carrying its own disclaimer: “it is proven that crawlers FETCH the file. It is NOT proven that fetching it changes whether the page gets CITED: those are two different claims, and only the first has evidence behind it.”

Two weeks earlier, same shape, different costume. August 8, 2026: a data-quality metric flagged 58 duplicate products. Products were duplicated: the claim was true. Re-measured with a proper grouping key (brand + name + use_case_segment), the real number was 4. The other 54 were genuine segment data. A naive fix would have deleted them, and I was about ninety seconds from being the naive fix. Pwned by my own metric, like a total n00b.

Ninety-three percent of the findings were artifacts of the measurement, not of reality. And the only reason it got caught is that each result contradicted something else that was also true.

Neither of those is a fabricated file:line, and the honest reason is that I have the memory and not the transcript. An agent hands me a path and a line number with the confidence of a man reading off a boarding pass. I open it. There’s a closing brace where the answer was supposed to be, and the fix it described one paragraph earlier is completely correct. That has happened to me plenty of times. I never saved one, because every single time it read like a typo instead of a pattern. The same guy who wrote up 58 duplicates and a 93% artifact rate on August 8 never once logged the thing this chapter is named after.

My hunch is that coding agents fake it less than prose agents, because a path either resolves or it doesn’t, and making the agent paste real grep output drops it further still. I have measured neither of those. That’s my opinion, not a number, and you should read it that way.


The quiet failure

The loud failure is a model making something up and being wrong about it. Embarrassing, obvious, caught in review.

The quiet failure:

You verify the claim and treat that as verifying the citation.

You read the sentence. It’s right. You’ve now confirmed the expensive part, the reasoning, so your brain files the whole line as checked. The citation rides in on the credibility of the fact it’s attached to. It never gets its own inspection.

The true claim is the getaway car.

Second quiet failure: fabricated citations are load-bearing for other people, not for you. You knew the claim was right: you didn’t need the citation. The next reader does. They can’t verify the claim on their own. You shipped a true statement with a fake proof, and the fake proof is the only part that reaches the person who needs it most.

June 2023, Southern District of New York: two lawyers filed a brief with six nonexistent cases generated by ChatGPT. The court fined them and their firm $5,000, and made them write letters to their client and to the judges whose names appeared as authors of the fake opinions. That’s the field’s origin story, and everyone treated it as a one-off idiot tax.

It was not a one-off. As of June 9, 2026, Damien Charlotin’s AI Hallucination Cases database had 1,598 documented court cases involving AI-fabricated citations, up from roughly 200 a year earlier. Between the May 22 audit (1,458) and June 9 (1,598), the database added 140 cases, just under 8 per day, up from 5 to 6 per day in April.

The receipts, in order of how much they should scare you:

US courts imposed over $145,000 in AI-filing penalties in Q1 2026 alone.

Nobody in any of those filings was checking whether the argument was sound. They lost the two years anyway.


Do / don’t

Do

Don’t


Where this sits in the book

Ch. 22 sets up the general problem of agent output that reports on itself. This chapter is the sharpest version of it: the report is mostly correct, which is why it survives.

Ch. 36 (don’t say done until you checked) is the same disease at the task level. “Done” is a citation-shaped object too. It’s the model filling a slot the conversation demanded, and it has exactly the same relationship to reality as auth.php:412.

Ch. 57 (prove it, don’t narrate it) is the fix generalized. Narration is what fabricated citations are made of. Proof is a command you ran and the output it printed. The rule that survives all three chapters: the artifact, not the account of the artifact.

And Ch. 7’s argument gets an assist here. Your traces (the actual file, the actual grep, the actual commit) are the moat and the ground truth. The thing that makes a specialist model good at your job is the same thing that makes a citation checkable: it exists on your disk.


Sources and receipts

Thesis is Jeremy’s (the true claim is the getaway car; the citation is theater): argument, not citation.

Stated as memory and opinion, not measured: the closing-brace file:line handoffs from his own repos, and the read that coding agents fabricate less than prose agents. No saved transcript, no rate. See Gaps.

Verified:

What I could not verify: