Skip to main content
Blog

ai-writing · data

We Catalogued 758 Phrases AI Can't Stop Writing. Here's What They Have in Common.

JP LeBlanc · October 1, 2026 · 7 min read

A specimen card for the word delve tagged red, strength 99, 25.2 times baseline, next to the number 758 and a red orange yellow tier count for AIStoryHub's AI cliches corpus.

The spreadsheet has 758 rows now, and the day it crossed 700 I caught myself doing the thing you are not supposed to do with a dataset: scrolling to the bottom to check that it was real. Somewhere in there is "voice barely above a whisper." Somewhere in there is "delve." And somewhere in there, filed under Formatting tells, is a row that is not even a word: "utm_source=chatgpt.com in cited URLs," a tracking parameter ChatGPT appends to links, and it survives copy-paste more often than you would think. That is the moment this stopped feeling like a list of annoying words and started feeling like a fingerprint.

We call it the Corpus of AI Cliches. It is the dataset behind /slop-checker, the free tool on AIStoryHub that scores a piece of writing against catalogued AI tells instead of a gut feeling. Version 1.8, the current one, has 758 entries across six categories: Words & phrases (509), Names & personas (86), Sentence patterns (53), Channel-specific and assistant tells (50), Rhetorical and structural moves (36), and Formatting tells (24). Every entry carries a confidence tier: 359 are red (strong tell), 300 are orange (moderate), and 99 are yellow (only a tell in clusters), plus a strength score from 0 to 100 built from real evidence where it exists, a detector score, a frequency study, or a banded default otherwise.

New in this version is a lifecycle tag, an admission that a list like this has a shelf life. Of the 758 entries, 742 are "live," still reliable against current models. Eight are "fading": delve, tapestry, crucial, robust, seamless, pivotal, intricate, meticulous, words the internet spent two years mocking, so both models and the humans imitating their tone have started avoiding them. Seven are "hard evidence," not vocabulary at all but literal debris left behind by the tool. And one is a "red herring." I will get to that one. It is the part of this project I am least proud of and most glad we caught.

None of this arrived in one draft. Version 1.4 shipped in June 2026 with 574 entries. Version 1.5 added 184 more and quietly cut 16 that turned out to be false-positive traps, ordinary words too common in plain human writing to mean anything on their own. That prune took longer than expected, mostly because half the words on the chopping block were ones we used constantly ourselves. That version also added a fiction wing, since a corpus tuned for business memos was useless for a platform full of novelists. Later versions added dialogue-tag crutches, paragraph-closer patterns, and now the lifecycle axis. It is a living document, not a list we wrote once and left alone.

Where the numbers come from

The strongest entry in the set is "delve" as a verb: strength 99, confidence red, study ratio 25.2, meaning it appears 25.2 times more often in AI-processed writing than in a 14-million-abstract PubMed baseline collected before large language models existed (Kobak et al., 2024). That same paper produced the number that still bothers me: at least 10 percent of 2024 PubMed abstracts show detectable signs of LLM involvement. Not marketing copy. Peer-reviewed medical abstracts. A separate 3.3-million-document GPTZero study gives ratios for other phrases, including "valuable insights" at 468 times baseline and "unwavering commitment" at 202 times. That is why we did not just write down words that sound fake to us and call it a corpus.

The sentences built to sound important

Twenty five entries are not words but templates, whole sentence shapes whose only job is to manufacture significance without adding a fact. "Is a testament to." "Marks a turning point." "Plays a pivotal role." "Cements its status." Almost all score red, strength 75, the same reliability tier as "delve," even though none is a rare word. You have read "plays a crucial role" a thousand times and never once flagged it as strange. The pattern is the tell, not the vocabulary. Two of these carry real numbers: "left an indelible mark" at 317 times baseline and "a stark reminder" at 166 times, both from the GPTZero study above. A third, "watershed moment," came from Wikipedia's own "Signs of AI writing" project: their volunteer editors got tired of scrubbing it out of articles and wrote it down themselves. A strange kind of peer review.

What it does to bodies in fiction

This is the part of the corpus I care about most, because generic AI-detection guides never touch it: 22 entries just for how AI writes a body in a scene. "Voice barely above a whisper" is the single most over-represented dialogue descriptor across LLM story corpora, strength 92, red. "Heart pounding in her chest" ranks in the top five trigrams of the same corpora, a notch lower on confidence, orange, strength 70. "A shiver ran down her spine" shows up across four separate variants (shiver or chill, ran or run or sent), a machine finding six ways to write one sentence. Then there is "let out a breath she didn't know she was holding," scored orange on purpose: it is also a thirty-year-old romance cliche the models did not invent, just found in the training data and now reach for constantly. Some of what gets called an AI tell is genre absorbing itself, amplified.

The weakest entry here is weak on purpose: "eyes widened in surprise" sits at yellow, strength 50, because alone it is just ordinary prose. Plenty of human-written fiction has a character's eyes widen once. It only becomes a signal in a cluster, a design choice that matters again below, once I get to how the checker scores a draft.

Names work the same way, weaker alone, stronger together. Eighty six entries track the narrow pool of names models default to: Elara, Aria, Kira, Lyra, Seraphina on the female side, Voss, Blackwood, Kincaid, Chen on the surname side, plus a pattern the dataset flags as real rather than coincidence, an unusual number of "Elena ___" and "___ Voss" pairings. "Elara" alone scores 90, the highest of any name in the corpus, close to diagnostic on its own. Almost everything else needs company. A character named Marcus is not evidence of anything. A cast where every love interest is Elara or Aria and every villain is a Voss or a Blackwood, is.

The one we got wrong

The corpus used to treat em dash overuse as a strong tell, on the old and reasonable theory that ChatGPT loves the em dash and most people typing on a normal keyboard do not. We checked that assumption against how current models actually behave, and it flipped. Models now underuse the em dash, likely tuned down after it got mocked as a giveaway, so its absence is the newer signal, and heavy em dash use now more often signals a human doing it on purpose. It sits in the corpus as the single "red herring" entry, orange confidence, strength 50, kept in specifically so the record shows we were wrong about it once. This post has no em dashes for an unrelated reason, a house style rule, not a slop-avoidance tactic. But the irony of writing an em-dash-free post about a corpus that just cleared the em dash's name was not lost on anyone here.

How this runs inside the checker

/slop-checker does not just count matches and hand you a number. It weights by density, so one cliche in three thousand words reads differently than the same cliche eleven times. It weights by confidence tier, so a red hit costs more than a yellow one, and as of 1.8 it weights by lifecycle too, so a fading term like "delve" no longer inflates a score the way it once did. Yellow-tier terms only count starting on the second appearance, not the first, because one ordinary sentence should not tank a manuscript. Five instances in one chapter is a different fact about that chapter.

It is not locked up here

The whole thing is released under CC BY 4.0. Download the raw JSON at aistoryhub.co/ai-cliches-corpus.json, or browse and filter it by category, tier, and lifecycle at /corpus. We built our own checker on it, but that is not the only use. Build a different detector, run a research project, or just settle a curiosity about which surname shows up most in AI fantasy. The data is free to reuse, attribution only. There is also a running score index at /slop-index, if you want to see the corpus applied to writing that is not yours.

Six months from now some of this will be wrong again. A few more red entries will fade the way delve and tapestry already have, once enough writers and models get self-conscious about them. Something we are confident about right now will, like the em dash, quietly reverse while nobody on our end is checking. We plan to keep the version number moving and leave the wrong ones on the record instead of deleting them. A corpus that only ever admits to being right stops being data and starts being an ad for itself.

Reading is nice. Writing is better.

Try the thing we keep writing about.