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.
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.
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.
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.
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.
| Matched | Uses | Files | Cluster | What to do |
|---|---|---|---|---|
harness, Unlock, unlocks, unlock, unlocked, leverage1 in display copy | 19 | 13 | Empty corporate verbs and superlatives | Use literal verb: "use", "wire up", "save", "let X do Y" |
honest limits, Honest caveat, the honest test, honest answer, Honest limits | 6 | 6 | Self-declared honesty | Cut the label, state the claim |
disrupting, disruptive, disruption | 6 | 5 | Hype verbs and number framing | Cut or quantify ("doubled MQLs in 90 days") |
dominated, Crush, dominate3 in display copy | 4 | 3 | Hype verbs and number framing | State the actual outcome with numbers |
most people don't, most people never | 3 | 3 | False-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, incredible | 3 | 3 | Empty corporate verbs and superlatives | Cut, or replace with a specific claim |
why it matters, Why it matters | 3 | 3 | Filler transitions and preambles | Cut the label. Lead with the fact ("There's no database and no plugins, so there's very little to attack") |
real value1 in display copy | 3 | 3 | Vague mass-noun results | Cite 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's | 2 | 2 | Triadic list with a verdict tag | Rewrite as plain sentences stating which items go where |
next level | 2 | 2 | Hype verbs and number framing | Cut or quantify |
groundbreaking | 1 | 1 | Empty corporate verbs and superlatives | Cut or cite the evidence |
the single biggest lever | 1 | 1 | Superlative ranking claims (the "single best" tell) | Cut the ranking. State the metric |
Compared Honestly1 in display copy | 1 | 1 | Self-declared honesty | "X vs Y compared" or "X vs Y, compared" |
gnarly1 in display copy | 1 | 1 | Triadic list with a verdict tag | "hard", "messy", or name the specific difficulty |
Additionally, | 1 | 1 | Filler transitions and preambles | Cut or use a casual connector |
Everything you need to know about1 in display copy | 1 | 1 | Authoritative-guide setups and listicle filler | Cut 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.
| Matched | Uses | Files | Cluster | What to do |
|---|---|---|---|---|
a significant milestone | 1 | 1 | Significance inflation | State 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.
| Shape | Uses | Per 10k | Budget | Found |
|---|---|---|---|---|
| "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. | 5 | 0.2 | 0 | Not 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. | 35 | 1.6 | 8 | state, 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. | 1 | 0 | 10 | That 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. | 0 | 0 | 0 | — |
| 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. | 46 | 2.1 | 5 | A 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. | 186 | 8.7 | 120 | — |
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.