AI tells

How much of this site's copy carries the habits of machine-written prose — measured over the same corpus as Voice & tone, against a catalogue of165 patterns in two tiers plus 6 sentence shapes.

Scoped corpus. Only blog, newsletter, guides and docs were measured — 4 of 17 collections under src/content/. The rest is not site prose. Text hardcoded into src/pages/ templates is always measured, whatever the scope.

How to read this

This does not detect AI writing, and a match does not prove anything.

It cannot tell you who or what wrote something, and it never will. Every pattern below appears in prose written by people — several are ordinary English that any writer uses. A number here tells you to go and look at a sentence. It does not judge the sentence. Using one to accuse a writer would be a misuse of this page.

What is actually measurable is rate and position. One "plays a crucial role" in two thousand words means nothing. Three of them in the same section is a pattern, and readers notice patterns. A phrase in a headline counts for more than the same phrase in a paragraph, because more people read headlines.

The three measures work differently, and you should act on each one differently. Distinctive phrases are close to a ban: almost nobody writes "here's the kicker" on purpose. Overused ordinary English gets a budget instead. Cut it to zero and the writing turns stiff, and stiff writing is just as easy to spot. Sentence shapes are habits — one is fine, and a lot of them is the problem.

Summary

253,187 words scanned — prose and display copy together, across every markdown file, section default and page template on the site.

Distinctive phrases

57 uses

Above target target 0 or fewer

16 of 110 catalogued phrases appear. Each one has a repair that costs the sentence nothing.

Close to a ban, not a budget. These are constructions with a repair that loses nothing — the sentence works without them.

How this is measured

Counts: Phrases almost nobody writes on purpose — "here’s the kicker", "unlock the power of", "in today’s fast-paced world".

Computed: Each of the catalogue’s ban-tier patterns matched case-insensitively across prose and display copy. Counted flat: one hit is a hit, and the table shows what it matched so the reader can judge it rather than take the count on trust.

Limits: A hit is not evidence of anything. People write these too, and a handful across a whole site is a handful. The examples are shown for exactly this reason.

AI-tells catalog

Words per overused phrase

253187 words

Within target target 400 or more

1 uses across 253,187 words.

A density budget from the catalogue: at most one per 400 words. Above the budget is fine; below it means the register is thickening.

How this is measured

Counts: Phrases that are normal English but 22x-182x commoner in machine-written text.

Computed: A density budget, not a ban: at most one hit per 400 words. Reported as words-per-hit against that budget. Position matters too — the catalogue counts a hit in a headline, an H1 or a CTA as over budget regardless of document length, so display-copy hits are counted separately.

Limits: Chasing these to zero is the wrong outcome. Every one is a sentence a human writes sometimes, and a writer avoiding them all produces stilted prose, which is its own tell. Over budget means look, not delete.

AI-tells catalog

Shapes over budget

4 of 6

Above target target 0 or fewer

Over budget: "Not just X, it's Y", Three-item lists, Stacked hedging, Em-dash density.

Each shape carries its own rate budget, listed below with what it matched. A shape over budget is a habit worth breaking, not a fault.

How this is measured

Counts: Constructions rather than phrases: "not just X, it’s Y", rule-of-three cadence, stacked hedging, em-dash density, conjunctive-adverb openers, empty lead-ins.

Computed: Each shape matched by its own pattern over the prose, reported per 10,000 words against a budget. Shapes are measured because they survive paraphrase: a writer told to stop saying "not just X, it’s Y" writes "this isn’t merely X — it is Y", which a phrase list misses and the shape catches.

Limits: The rule-of-three pattern is narrowed to three lowercase single words closing a sentence, because matching every "X, Y and Z" caught ordinary lists of services. It undercounts on purpose — for a number that gets read as an accusation, that is the right direction to be wrong in.

AI-tells catalog

In display copy

8 uses

Above target target 0 or fewer

Hits that landed in a heading, tagline, caption or button label rather than in a paragraph.

The catalogue counts a hit in a headline, an H1 or a CTA as over budget regardless of document length. Position is part of the measure, not a refinement of it.

How this is measured

Counts: Hits from either tier that landed in a heading, tagline, caption or button label rather than in a paragraph.

Computed: Every match is attributed to the field it came from as it is found, and display-copy matches are totalled across both tiers. Position is part of the measure rather than a refinement of it: the catalogue counts a hit in a headline, an H1 or a CTA as over budget regardless of how long the document is.

Limits: It counts where a phrase sits, not how prominent that position actually is on the rendered page. A caption on the twelfth image and an H1 both count as display copy.

AI-tells catalog

Distinctive phrases

The strictest tier. Almost nobody writes these on purpose, and every one can be fixed without losing anything from the sentence. That is the test for putting a phrase here.

MatchedUsesFilesClusterWhat to do
harness, Unlock, unlocks, unlock, unlocked, leverage1 in display copy1913Empty corporate verbs and superlativesUse literal verb: "use", "wire up", "save", "let X do Y"
honest limits, Honest caveat, the honest test, honest answer, Honest limits66Self-declared honestyCut the label, state the claim
disrupting, disruptive, disruption65Hype verbs and number framingCut or quantify ("doubled MQLs in 90 days")
dominated, Crush, dominate3 in display copy43Hype verbs and number framingState the actual outcome with numbers
most people don't, most people never33False-insider framing (the "secret knowledge" move)Cut. If you must, name what the masses do instead with specifics ("HubSpot priced out at $800/mo")
fantastic, incredible33Empty corporate verbs and superlativesCut, or replace with a specific claim
why it matters, Why it matters33Filler transitions and preamblesCut the label. Lead with the fact ("There's no database and no plugins, so there's very little to attack")
real value1 in display copy33Vague mass-noun resultsCite the actual result ("3× pipeline in 90 days")
, a subagent's final report returns to the agent that spawned it, which then decides what to run next: that is, , quest chat, side quests) | Sends the message | New line | | Workbench task **description** | New line | New line | | Workbench task **title** | Commits the rename | Commits the rename | The Workbench description is the odd one out: it's22Triadic list with a verdict tagRewrite as plain sentences stating which items go where
next level22Hype verbs and number framingCut or quantify
groundbreaking11Empty corporate verbs and superlativesCut or cite the evidence
the single biggest lever11Superlative ranking claims (the "single best" tell)Cut the ranking. State the metric
Compared Honestly1 in display copy11Self-declared honesty"X vs Y compared" or "X vs Y, compared"
gnarly1 in display copy11Triadic list with a verdict tag"hard", "messy", or name the specific difficulty
Additionally,11Filler transitions and preamblesCut or use a casual connector
Everything you need to know about1 in display copy11Authoritative-guide setups and listicle fillerCut or scope to one specific question

16 of 110 patterns in this tier matched; 94 matched nothing.

Overused ordinary English

A budget, not a ban. Every phrase in this tier is grammatical English a person writes sometimes — "parents play a significant role in shaping their children's values" is a normal sentence. What marks copy as machine-written is how often these turn up: each one appears between 22 and 182 times more often in AI text than in writing by people. One is nothing. Three in a short section is a pattern.

Budget: at most one per 400 words, none in a headline or a first paragraph, never two in one paragraph. Over budget, cut the weakest hits — the ones carrying no fact — and keep any doing real work. Cutting all of them is the wrong outcome.

MatchedUsesFilesClusterWhat to do
a significant milestone11Significance inflationState what changed

1 of 55 patterns in this tier matched; 54 matched nothing.

Sentence shapes

These are sentence constructions rather than fixed phrases. They matter more than any word list because rewording does not remove them. A writer told to stop saying "it's not just X, it's Y" writes "this isn't merely X — it is Y". A phrase list misses that. A shape catches it.

ShapeUsesPer 10kBudgetFound
"Not just X, it's Y"Over budgetA negated setup followed by the real claim. The most recognisable single construction in machine-written marketing copy.Repair: Delete the setup and keep the claim. The reader did not need to be told what it is not.50.20Not just the file you're editing, butnot just that the agent will do the right thing, butnot just the output, butNot just the final output, but
Three-item listsOver budgetThree single words closing a sentence — "fast, cheap, and honest". Ordinary lists count too, because no pattern can tell a rhetorical triad from a real list of three things. One is nothing; a page of them is a template.Repair: Keep the best two, or replace all three with the one specific thing they were circling.351.68state, retries, and branching.reads, reasons, and adapts.read, understood, and modified.made, saved and searchable.
Conjunctive-adverb openersSentences opening Furthermore, Moreover, Ultimately. Essay register borrowed into brand copy.Repair: Cut the adverb. The connection is almost always already clear from the order of the sentences.1010That said, cross-platform is now on the table. crystl's terminal core
Empty lead-ins"In today's fast-paced world", "when it comes to", "it's important to note that" — throat-clearing before the sentence starts.Repair: Delete it. Every one of these can be removed without changing the meaning of the sentence.000—
Stacked hedgingOver budgetTwo or more hedges in one sentence. Each softens the claim, and together they leave nothing a reader can hold you to.Repair: Keep one hedge at most. If the claim needs two, it is not a claim yet.462.15A permission mode declared inside a repository may narrow what crystl Where it stops: - **Not every session reaches the Agents window.** LocSomeone (often you, often an agent, often ) deleted the worktree folde
Em-dash densityOver budgetEm dashes per 10,000 words. A real punctuation mark, and a documented habit of generated prose when it appears in every second sentence.Repair: Alternate. A comma, a full stop, or a pair of brackets does the same job and the page stops looking uniform.1868.7120—

Budgets are per 10,000 words. They are house style, not findings. When a shape goes over budget, look at what it matched. If the examples are ordinary lists rather than rhetoric, the pattern is matching too loosely and the number is not telling you anything.

Method

The catalogue is a curated pattern bank, grown by hand as somebody notices a new tell. It is not a trained classifier, and the full methodology — what each measure counts, how it is computed, its source and its known limits — is on Voice & tone with every other measure, so there is one place to argue with the method rather than two.

Every entry matches a construction rather than a single word. "Delve" is a real word, and banning a word makes writers work around it. What they write instead usually reads worse than the word did, and is just as easy to spot. The catalogue lives in src/lib/ai-tells-catalog.ts, the shapes in src/lib/ai-tells.ts, and both are meant to be edited. If a pattern keeps flagging ordinary sentences on this site, narrow it or remove it. Explaining it away each time somebody reads the page is not a fix.