AI speak patterns, part 3
Built from the packs in hooks/lib/patterns. Each section names its own source.
The category index is in ai-speak-patterns.md.
sycophancy
Presets: default, ryan, technical, minimal, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Praise aimed at the reader instead of the work.
| Flagged | Fix |
|---|---|
You're right (sentence-initial) | cut, state the fix |
you're absolutely right | cut |
what a great, what a fantastic, what a wonderful | cut |
Great point, Great idea, Great catch, Excellent observation, Excellent suggestion | cut |
That's a great point, That's an excellent point, That's a fantastic idea, That's a really good observation, That's an insightful observation | cut |
I completely understand, I completely agree, I totally understand, I totally agree | cut |
thank you for sharing, thank you for bringing this, thank you for pointing, thank you for the clarification, thank you for your patience | cut |
thanks for sharing, thanks for pointing, thanks for flagging | cut |
You raise a great point, You raise an excellent point, You raise a good point, You raise a valid point, You raise an important point | cut |
I apologize for the confusion, I apologize for the oversight, I apologize for the inconvenience, I apologize for any confusion, I apologize for any oversight, I apologize for any inconvenience, apologies for the confusion, my apologies | state the correction |
terminal-punctuation
Presets: statistical, all.
Flags list items that all carry a trailing period even though they read as short fragments.
| Flagged | Fix |
|---|---|
| Flags list items that all carry a trailing period even though they read as short fragments. | minWords = 0, minItems = 8, minBlocks = 2, maxItemWords = 8 |
List items only. Every declarative sentence ends in a period, so sentence-level uniformity carries no signal.
transition-density
Presets: ryan, statistical, all.
Flags text where too many sentences open on a transition or connector word.
| Flagged | Fix |
|---|---|
| Flags text where too many sentences open on a transition or connector word. | minWords = 150, minSentences = 8, maxDensity = 0.3 |
Document-wide connector rate. The transitions pack flags single openers; this one flags the habit.
transitions
Presets: default, ryan, technical, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Connectors and scene setters that add length without adding a fact.
| Flagged | Fix |
|---|---|
Moreover, Furthermore, Additionally (sentence-initial) | cut, or “and”, “also” |
Notably, Importantly, Interestingly, Surprisingly (sentence-initial) | cut |
in today's | name the context or cut |
in an era where, in an era of | cut |
in the evolving world of, in the evolving field of, in the changing world of, in the changing field of, in the rapidly evolving world of, in the rapidly evolving field of, in the rapidly changing world of, in the rapidly changing field of | lead with the point |
worth noting, it's worth noting, it is worth noting | state the fact |
when it comes to | name the thing |
here's what's interesting, here's what caught my eye, here's what stood out, here's the interesting part | state the fact |
that said, that being said | cut, or “but” |
Certainly, Undoubtedly, Without a doubt | cut |
undue-emphasis
Presets: ryan, all. Source: Pangram signs-of-ai-writing frequency counts and Wikipedia:Manual of Style/Words to watch.
Intensifiers, stacked qualifiers, or markup used to manufacture stress.
| Flagged | Fix |
|---|---|
extremely, remarkably, utterly, undeniably, unquestionably, exceptionally, tremendously, immensely | cut |
| a stress word in bold or italics | remove the bold, state the fact |
| a stress word in capitals mid-sentence | use normal case |
| Intensifiers, stacked qualifiers, or markup used to manufacture stress. | minPairs = 2 |
very, highly, deeply, and particularly report only when two of them share a sentence. A line-initial admonition label with a colon stays unflagged.
vague-attribution
Presets: default, ryan, technical, all. Source: Wikipedia:Manual of Style/Words to watch, Wikipedia:Weasel word, Simple Wikipedia avoid-weasel-words.
A claim attributed to an unnamed authority.
| Flagged | Fix |
|---|---|
experts say, experts agree, experts argue, experts believe | name the expert |
studies show, studies suggest, studies indicate | cite the study |
research has shown, research shows, research suggests | cite the source |
it is widely believed, it is widely known, it is widely accepted, it is widely held | name who believes it |
many argue, many believe, many say, many feel | name who |
some observers argue, some observers say, some observers note, some observers suggest, some analysts argue, some analysts say, some analysts note, some analysts suggest | name the observer |
industry reports suggest, industry reports indicate, industry reports say, industry observers suggest, industry observers indicate, industry observers say | cite the report |
it has been said that, it has been reported that, it has been observed that, it is said that, it is reported that, it is observed that | name the source |
critics argue, critics say, critics contend | name the critic |
sources say, sources indicate, sources suggest | name the source |
A correctly sourced sentence is flagged the same as an unsourced one: the pattern cannot see a citation that follows.
vocabulary
Presets: default, ryan, technical, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Words that appear far more often in model output than in human writing.
| Flagged | Fix |
|---|---|
delve, delves, delved, delving | look at, examine |
tapestry | describe the actual parts |
realm | area, field |
embark, embarks, embarked, embarking | start |
beacon | rewrite |
testament to | shows, proves |
robust | reliable, or the measured property |
comprehensive | complete, full |
cutting-edge | latest, or name the version |
leverage, leverages, leveraged, leveraging (verb) | use |
pivotal | important, or say what depends on it |
meticulous, meticulously | careful |
seamless, seamlessly | works without X, name X |
nestled | is in, sits |
vibrant | describe what is active |
thriving | growing, or cite a number |
showcases, showcasing (verb) | shows |
deep dive | look at, examine |
dive into | look at |
bustling | busy |
intricate, intricacies | complex, or name the complexity |
ever-evolving | changing |
daunting | hard |
holistic, holistically | complete, or list what is included |
actionable | practical, or drop |
impactful | effective, or name the effect |
learnings | lessons, findings |
thought leader, thought leadership | expert, or name the work |
best practices | what works, the standard approach |
synergy, synergies | describe the combined effect |
interplay | relationship |
symphony (as metaphor) | describe the coordination |
state-of-the-art | name the benchmark |
world-class, best-in-class | cite a comparison |
future-proof | say what changes it survives |
empower, empowers, empowered, empowering | let, enable |
crucial | important, or say what breaks without it |
incredibly | cut |
competitive edge | name the advantage |
vast experience | years and scope |
excited to announce | state the fact |
humbled | cut |
paradigm | model, approach |
load-bearing, load bearing (as metaphor) | essential, or say what breaks without it |
underscores the, underscored how, underscore that, underscores why | shows |
the landscape, today's landscape, current landscape, evolving landscape, competitive landscape, digital landscape, tech landscape, business landscape, AI landscape, landscape of | field, market, or cut |
| Flagged (tier 2) | Fix |
|---|---|
harness, harnesses, harnessed, harnessing | use |
navigate, navigates, navigating | handle, or name the work |
foster, fosters, fostering | build, cause |
elevate, elevates, elevated | improve, raise |
unleash, unleashes, unleashed, unleashing | release, start |
streamline, streamlines, streamlined | simplify, speed up |
bolster, bolsters, bolstered, bolstering | strengthen, add to |
spearhead, spearheads, spearheaded, spearheading | lead |
resonate with, resonates with | matches, appeals to |
facilitate, facilitates, facilitated | help, run |
underpin, underpins, underpinning | supports |
nuanced | name the difference |
multifaceted | list the parts |
ecosystem | the tools, the parts |
myriad, plethora | many, or the number |
encompass, encompasses, encompassed | includes, covers |
catalyze, catalyzes, catalyzed, catalyst for | causes |
reimagine, reimagines, reimagined | redesign |
galvanize, galvanizes, galvanized | prompt, spur |
augment, augments, augmented, augmenting | add to |
cultivate, cultivates, cultivated | build, grow |
illuminate, illuminates | shows, explains |
elucidate, elucidates | explain |
juxtapose, juxtaposes, juxtaposed | compare |
cornerstone | the main part |
paramount | most important |
poised to | about to, or say when |
burgeoning | growing |
nascent | new, early |
quintessential | typical |
overarching | main, general |
transformative | describe the change |
Tier-2 verbs and nouns report only when two or more of them share a paragraph, so a single ordinary use stays quiet. load-bearing before a structural noun (wall, beam, column, joist, truss, member, footing, slab, stud, partition, masonry, lintel, pier, rafter, girder, capacity), with up to one adjective in between, is building terminology and stays unflagged. bearing down, bearing on, and bearing upon are the literal verb and stay unflagged.
word-frequency
Presets: statistical, all.
Flags text that leans on one favorite word far more than natural word spread predicts.
| Flagged | Fix |
|---|---|
| Flags text that leans on one favorite word far more than natural word spread predicts. | minWords = 200, maxShare = 0.035 |
Share of the text taken by its most repeated content word. The research’s Zipf exponent is unreachable at this text size, so the share replaces it.
wordiness
Presets: ryan, ste, all. Source: avoid-ai-writing by Conor Bronsdon (MIT) and Ryan Yannelli’s house rules.
Long forms of short words.
| Flagged | Fix |
|---|---|
utilize, utilise, utilizes, utilized, utilizing, utilising | use |
in order to | to |
due to the fact that | because |
commence, commences, commenced | start |
ascertain | find out |
endeavor, endeavors, endeavored, endeavoring, endeavour, endeavours, endeavoured, endeavouring | try, effort |
prior to | before |
subsequent to | after |
in the event that | if |
at this time, at this point in time | now |
for the purpose of | to, for |
with regard to | about |
in conjunction with | with |
in accordance with | as in, follow |
is capable of, are capable of, has the ability to, have the ability to | can |
a number of | some, or the number |
a large number of | many, or the number |
it is necessary to | you must |
in the vicinity of, in close proximity | near |
the majority of | most |
in spite of the fact that | although |
A hit here is a writing fix and says nothing about who wrote the text.
ai-attribution
Presets: default, ryan, technical, minimal, git, all. Source: Group G research: claude-code#1296, Codex CLI commit attribution, VS Code #314311, Cursor forum #168258, docs.devin.ai, code.claude.com settings reference (attribution.sessionUrl), Cursor forum #154494, GitHub changelog 2026-03-20.
A commit or PR trailer credits an AI tool as co-author, generator, or signer.
| Flagged | Fix |
|---|---|
Generated with [Claude Code] | drop the generated-with line |
Generated with Devin | drop the generated-with line |
Made with Cursor | drop the made-with line |
a Generated-By: trailer | drop the trailer |
This commit was generated by | drop the disclosure sentence |
an Assisted-by: trailer | drop the trailer |
a Claude-Session: trailer | drop the session trailer |
a Made-with: Cursor trailer | drop the trailer |
an Agent-Logs-Url: trailer | drop the trailer |
Signed-off-by: plus a [bot] account | drop the bot sign-off |
Signed-off-by: plus an AI tool email | drop the bot sign-off |
| Flagged (tier 2) | Fix |
|---|---|
Co-authored-by: plus an AI tool name | drop the co-author trailer |
Co-authored-by: plus an AI tool email | drop the co-author trailer |
The two Co-authored-by patterns sit at tier 2. A trailer that pairs an AI tool name with an AI email reports; a co-author named Claude with a personal address stays quiet.
ai-identity
Presets: default, ryan, technical, minimal, git, all. Source: Group G research: claude-code#72477, VS Code #314311, Cursor forum #168258, gemini-cli #11447.
The commit author or committer field names an AI tool instead of a person.
| Flagged | Fix |
|---|---|
--author= naming an AI tool | use a human author name |
--author= holding an AI tool email | use a human email address |
GIT_AUTHOR_NAME set to an AI tool | use a human author name |
GIT_COMMITTER_NAME set to an AI tool | use a human committer name |
GIT_AUTHOR_EMAIL on an AI tool domain | use a human email address |
GIT_COMMITTER_EMAIL on an AI tool domain | use a human email address |
git config user.name or user.email set to an AI tool | set a human name or email |
| a numeric-id GitHub bot address | use a human email address |
| Flagged (tier 2) | Fix |
|---|---|
--author= naming a bare AI tool name | use a human author name |
GIT_AUTHOR_NAME or GIT_COMMITTER_NAME set to a bare AI tool name | use a human author name |
Bare first names such as Claude, Devin, and Gemini sit at tier 2, so a person who sets their own identity with a personal email produces one hit and stays quiet. A repo that intentionally commits as a bot lists ai-identity in excludePacks.