Consulting Work Blog Contact
← Back to blog

The Edit That Invented Its Own Sources

The Edit That Invented Its Own Sources

I was finishing a long master’s thesis, and the bibliography needed a tidy-up before the defense: stale entries, missing edition numbers, drifting formatting. So I did the modern thing and let an automated pass clean it. It came back faster and neater than I could have done by hand, every entry polished, every field filled. It had also quietly invented book editions that were never printed and stamped real sources with identifier numbers that point to nothing. It looked so clean that I almost shipped it.

TL;DR

  • An automated pass to “refresh” my bibliography filled in missing details by inventing them: wrong editions, fabricated ID numbers, the right look on the wrong facts.
  • It rewrote 9 entries; 3 came back with confident, plausible metadata that was simply false, and one dead identifier is enough to sink a defense.
  • Re-verify every field a machine touched. Spot-checking fails you, because the bad entries look exactly like the good ones.

A boring task I was glad to delegate

A bibliography is the most thankless part of a big document: dozens of entries in a rigid format where one wrong comma is an error. Exactly the kind of dull, rule-heavy chore you want to hand to a machine, and mostly that instinct is right. The pass I ran was supposed to do something narrow and safe: normalize the formatting, fill the obvious gaps, bump anything visibly out of date.

What I did not expect was for it to treat a missing field as a problem it was allowed to solve on its own. When an entry was short an edition number, it did not flag the gap. It filled it. When a year looked old, it nudged it forward. There was no marker anywhere saying “I wasn’t sure about this one, so I guessed.” The guesses wore the same confident formatting as the facts.

What clean actually hid

Here is the part that still unsettles me. By the two tests most people would think to run, the work was flawless: nothing cited in the text was missing from the list, and no whole fake source had been invented from nothing. Coverage came back spotless, and that was the last time the document looked fine.

The rot was one level down, inside entries for real books that genuinely belonged there. A foundational textbook I had actually read and cited now carried an edition number that was never published. A well-known methods reference had picked up an identifier that resolves to nothing at all. One entry even credited as an author someone who was not one. The sources were real, the facts attached to them were invented, and that combination is far more dangerous than a missing line, because a missing line announces itself and a wrong-but-tidy field just sits there looking correct.

What the bibliography audit found: coverage was clean while the metadata was fabricated

A missing source gets noticed. A real source wearing fake details gets believed, cited, and printed.

The click that would have ended it

Academic identifiers are not decorative. Anyone evaluating the work can copy one, paste it into a public registry, and in one second see whether it resolves. A dead identifier does not read as a typo to an examiner. It reads as fabrication, the single accusation you least want attached to a thesis. I had unknowingly planted three small landmines in a document I was about to defend.

They got caught because I ran a proper audit before submission: several independent review passes going through the list field by field, each verifying details against the real records instead of against each other. The slow, suspicious read that assumed every value the machine had touched was guilty until proven otherwise.

What I’d do differently

I would never again let an automated pass fill a blank field silently. The fix is almost embarrassingly simple: a machine is allowed to reformat what is already there, but a gap has to come back as a flagged gap, not a confident guess. “Edition unknown, please verify” is infinitely safer than a clean-looking edition number nobody checked.

The wider habit, for anyone running edits at scale: we picture automation errors as obvious breakage you can spot from across the room. The errors that actually hurt are the polished ones. A bulk pass can manufacture a fact that is wrong, specific, and verifiable-looking, which means someone downstream can check it, find it false, and conclude you were careless or dishonest. And spot-checking is exactly what fails you here, because the three poisoned entries looked like the ninety good ones. The boring discipline that works is to verify every field the automation touched, especially the ones it filled in, against the real source.

So here is the question I would put to anyone who runs bulk edits across contracts, reports, catalogs, or data: when your tool fills in a missing value, can you tell, later, whether a human confirmed it or a machine guessed it? If the answer is no, you are not shipping a cleaned-up document. You are shipping confident fiction that nobody has read closely yet.

Stack: LaTeX · BibTeX · Claude Code

Need something like this for your own business? See how I can help →