AI speak patterns, part 2
Built from the packs in hooks/lib/patterns. Each section names its own source.
The category index is in ai-speak-patterns.md.
inflation
Presets: default, ryan, technical, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Wording that makes a change sound larger than it is.
| Flagged | Fix |
|---|---|
marks a significant, marks a major, marks a new, marks a turning | state what happened |
represents a significant, represents a major, represents a fundamental | state what changed |
a significant step forward, a major step towards, a bold step toward, a big step forward, step forward for | state what changed |
turning point, sea change, paradigm shift, game-changer, game-changing, watershed moment | state what changed |
groundbreaking | name the prior art it beats |
first of its kind | cite the search |
revolutionary, revolutionize, revolutionizes, revolutionized | describe the change |
the future of | cut |
unprecedented | name the precedent, or cut |
redefine the, redefine how, redefine what, redefines the, redefines how, redefines what, reshape the, reshapes the, reshaping the | describe the change |
real utility, actual value, genuine impact, true change, real results | drop the adjective |
despite challenges, despite these challenges, despite the challenges | name the challenge |
continues to thrive, remains resilient | cite the number |
lexical-diversity
Presets: statistical, all.
Flags text that reuses the same words instead of varying vocabulary.
| Flagged | Fix |
|---|---|
| Flags text that reuses the same words instead of varying vocabulary. | minWords = 150, minRatio = 0.55, segment = 100, tailSegment = 50 |
Mean segmental type-token ratio over 100-word segments. Direction of the academic signal is contested, so it stays out of the ryan preset.
negative-parallelism
Presets: default, ryan, technical, all. Source: Wikipedia:Signs of AI writing, WikiProject AI Cleanup catchphrases, tropes.fyi, refine.so.
A chain of two or more negated clauses resolved by one affirmation.
| Flagged | Fix |
|---|---|
Not X. Not Y. Just Z. | state the one claim |
no X, no Y, just Z | state the one claim |
not X, not Y, but Z | state the one claim |
no X, no Y. Just Z. | state the one claim |
isn't X. It's not Y. It's Z. | state the one claim |
The contrast pack owns the single “not X, it’s Y” pair. This pack fires only on two or more stacked negations before the resolution.
outline-conclusion
Presets: ryan, all. Source: Wikipedia:Signs of AI writing (outline-like conclusions) and tropes.fyi fractal summaries.
A closing paragraph that re-lists the section headings instead of adding a new fact.
| Flagged | Fix |
|---|---|
| A closing paragraph that re-lists the section headings instead of adding a new fact. | minWords = 300, minHeadings = 3, minOverlap = 3, minRatio = 0.6, smallDoc = 4, maxParagraphWords = 120 |
Needs 300 words, three headings, a closing paragraph that echoes three section titles, and a restatement cue. A closing paragraph that adds a new fact passes.
overgeneralization
Presets: default, ryan, technical, all. Source: Wikipedia:Signs of AI writing and WikiProject AI Cleanup catchphrases.
A universal claim about people or the industry with no source.
| Flagged | Fix |
|---|---|
everyone agrees, everyone knows, everyone understands | name who agrees |
everybody agrees, everybody knows | name who agrees |
no one deny, no one denies, no one can deny, no one can denies | name the source |
in every case, instance, scenario, situation | name the case |
the industry agrees, the industry is unanimous | name who agrees |
universally acknowledged, universally accepted, universally recognized, universally true | name who accepts it |
without exception | name the exception, or cut |
all developers agree, and the same verbs after users, teams, companies, engineers | name who |
every single one, every single time, every single user, every single developer, every single case | cut single, or count |
Bare always, never, and all stay unflagged: they are correct in API docs and code comments. Only a universal claim about a human population is reported.
paragraph-coherence
Presets: ryan, statistical, all.
Flags formulaic paragraphs: near-identical lengths, repeated opening words, or repeated topic sentences.
| Flagged | Fix |
|---|---|
| Flags formulaic paragraphs: near-identical lengths, repeated opening words, or repeated topic sentences. | minWords = 300, minParagraphs = 4, minParagraphWords = 20, minRepeatParagraphs = 5, maxLengthCv = 0.15, firstWordShare = 0.6, minFirstWordCount = 3, maxSimilarity = 0.6, minPairs = 2 |
Three proxies, any one of which reports on its own: length uniformity, first-word repetition, topic-sentence overlap.
parallel-bullets
Presets: ryan, all. Source: Pangram signs-of-ai-writing bullet counts and tropes.fyi bold-first bullets and anaphora abuse.
A bulleted list where every item shares one rigid shape.
| Flagged | Fix |
|---|---|
| A bulleted list where every item shares one rigid shape. | minItems = 3, minScore = 2, strongWeight = 2, lengthSpread = 1, lengthMinItems = 4 |
A bold lead-in or one shared opening word across every item is enough on its own. The two weaker shapes need a second one.
passive-voice
Presets: ryan, statistical, all.
Flags text where passive voice runs past a third of the sentences.
| Flagged | Fix |
|---|---|
| Flags text where passive voice runs past a third of the sentences. | minWords = 150, minSentences = 8, maxRatio = 0.3 |
Be-verb plus past participle, counted per sentence. Adjectival forms such as “is committed” are the known false positive.
promotional
Presets: default, ryan, technical, all. Source: Wikipedia:Manual of Style/Words to watch (peacock terms) and Wikipedia:Signs of AI writing.
Marketing language for a technical change.
| Flagged | Fix |
|---|---|
unlocks the full potential, unlock value | name what changes |
supercharge, supercharges, supercharged | improve, or name the effect |
effortless, effortlessly | simple, or name the steps |
legendary, iconic, visionary | cut, or cite the achievement |
acclaimed, celebrated, award-winning | name the award |
industry-leading | name the metric |
outstanding as praise, as in outstanding work | name the metric |
landmark, next-level, top-tier, turnkey | name the change |
one-stop shop | say what it does |
take it to the next level | state the improvement |
outstanding reports only in a praise frame, so the plain technical sense in outstanding requests stays clean.
punctuation-patterns
Presets: statistical, all.
Flags punctuation habits that agree: colon and semicolon rate, no exclamations, a uniform Oxford comma, no sentence-initial conjunctions.
| Flagged | Fix |
|---|---|
| Flags punctuation habits that agree: colon and semicolon rate, no exclamations, a uniform Oxford comma, no sentence-initial conjunctions. | minWords = 150, colonRate = 0.15, semicolonRate = 0.1, exclamationWords = 300, oxfordMin = 6, conjunctionSentences = 20, minScore = 4 |
Each sub-signal is weak alone. The pack reports only when four of the five agree.
rare-words
Presets: statistical, all.
Flags text with an unusually high share of long, low-frequency words.
| Flagged | Fix |
|---|---|
| Flags text with an unusually high share of long, low-frequency words. | minWords = 150, maxRatio = 0.25, minSyllables = 3, minLength = 7 |
A length and syllable proxy for register inflation. The vocabulary pack covers the specific words with corpus evidence.
readability-grade
Presets: ryan, statistical, all.
Flags text with a Flesch-Kincaid grade level above what technical writing needs.
| Flagged | Fix |
|---|---|
| Flags text with a Flesch-Kincaid grade level above what technical writing needs. | minWords = 150, minSentences = 5, maxGrade = 16 |
Flesch-Kincaid grade level over the whole text. It reads register, and says nothing about who wrote the text.
rule-of-three
Presets: ryan, all. Source: Pangram signs-of-ai-writing triad counts and tropes.fyi directory.
Triads of adjectives, nouns, or clauses used past the point of restraint.
| Flagged | Fix |
|---|---|
| Triads of adjectives, nouns, or clauses used past the point of restraint. | minWords = 100, minTriads = 3, minPerParagraph = 2, bulletMaxWords = 8, bulletSpread = 3 |
One accurate triad passes. The pack counts triads across the whole text and reports once when the rate crosses the threshold.
sentence-variation
Presets: ryan, statistical, all.
Flags text where every sentence runs about the same length.
| Flagged | Fix |
|---|---|
| Flags text where every sentence runs about the same length. | minWords = 160, minSentences = 8, minCv = 0.35 |
Sentence-length burstiness, the coefficient of variation of words per sentence.
ste
Presets: ste, all. Source: the ASD-STE100 word list.
Word choices from Simplified Technical English.
| Flagged | Fix |
|---|---|
accomplish, perform, conduct a test, conduct the check, conduct a review | do |
acquire, obtain, procure | get |
adhere to, comply with | obey |
assist, aid, assistance | help |
attempt, attempts, attempted | try |
cease, discontinue | stop |
initiate, initiates, initiated, commencement | start |
depress the button, depress the switch, depress a button, depress a switch | push |
desire, desires, desired | want |
indicate, indicates, indicated | show |
locate, locates, located | find |
modify, modifies, modified | change |
observe, observes, observed | look at, see |
permit, permits, permitted | let |
purchase, purchases, purchased | buy |
rectify, rectifies, rectified, remedy, remedies, remedied | correct, repair |
replenish, replenishes, replenished | fill |
retain, retains, retained | keep |
transmit, transmits, transmitted | send |
verify, verifies, verified | make sure |
aperture | hole |
malfunction | fault |
personnel | persons |
portion | part |
remainder | the other part |
requirement, requirements | need |
termination | end |
utilization | use |
adequate, sufficient | enough |
adjacent | near, next to |
approximately | about |
additional | more |
initial | first |
numerous, multiple | many |
optimum | best |
previous | before, earlier |
principal | main |
ensure | make sure |
examine, inspect | do a check of |
vicinity | area |
rapidly | quickly |
subsequent | after, next |
Off unless the preset is ste or all. The rules behind the list are in simplified-technical-english.md.
structure
Presets: default, ryan, technical, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Openers and frames that delay the point.
| Flagged | Fix |
|---|---|
What does this mean, So why should you care, Why does it matter as an opener | answer it |
Picture this., Run the numbers., Think about it., Consider this: as a line-initial fragment | state the fact |
Three key takeaways, 5 things to know, Four reasons, 10 ways, Six tips (line-initial) | drop the count, lead with the finding |
Let me think step by step, Let me break this down step by step, Let me walk through this step by step, Here's my thought process, To approach this systematically, Breaking this down: | cut, give the result |
Enter Redis. and the rest of the reveal form | name it in a plain sentence |
ever wondered, have you ever wondered, what if I told you | state the fact |
Imagine a world where, Picture a future in which, Envision a scenario where | state the fact |
You're asking about, To answer your question, The question of whether (sentence-initial) | answer |
superficial-analysis
Presets: ryan, all. Source: Wikipedia:Signs of AI writing and tropes.fyi directory.
A significance claim with no evidence behind it.
| Flagged | Fix |
|---|---|
this is important because, this matters because | state the fact |
has significant implications for, has significant implications on | name the implication |
cannot be overstated, can't be overstated | state the fact plainly |
underscores its importance, underscores its significance | state the fact |
goes a long way toward, goes a long way in, goes a long way to | cut, state the result |
speaks volumes about | state the fact |
carries significant weight, carries considerable weight, carries real weight | name the weight, or cut |
highlighting its importance | state the fact, drop the tail |