Deterministic
49 rules, no LLM, milliseconds per file
Each phrase-based rule lists every phrase it scans for. Density rules report only when their threshold is crossed; structural rules examine sentence and paragraph shape.
AI phrasebank 7
| id | sev | what it catches |
|---|---|---|
ai-tell-phrasebank |
error | Phrases that overwhelmingly indicate AI-generated prose. Replace with concrete, specific language.61 phrases
|
overused-words |
info | Single words that show up disproportionately in AI prose. Any one may be defensible in context, but in aggregate they form a recognizable AI accent. Matched via stem, so morphological variants (e.g., 'unleashes', 'fostering') are caught.52 phrases
|
antithesis-cadence |
warning | The 'It's not X, it's Y' / 'Not just X but Y' rhythm is a signature AI structural tell. One instance is fine; the cadence becomes a fingerprint when it repeats. |
throat-clearing-openers |
warning | Sentences that start with filler delay the real opening. Cut the opener; lead with substance.21 phrases
|
cliche-closers |
warning | Boilerplate openers in closing paragraphs. Trust the reader; don't announce you're concluding.13 phrases
|
meta-discourse |
info | Talking about the writing instead of writing. Cut self-reference; just say the thing.23 phrases
|
copula-dodge |
warning | AI prose substitutes plain "is/are" with inflated verbs ("serves as", "stands as", "marks", "represents"). One is fine; in aggregate it's a tell.16 phrases
|
AI fossils 4
| id | sev | what it catches |
|---|---|---|
signoff-chatbot |
error | Chat-style closing lines leaked from an assistant reply into prose. Cut entirely.12 phrases
|
sycophant-opener |
error | Flattering acknowledgements ("Great question!", "Absolutely!") that praise the prompt or reader instead of starting. Cut.12 phrases
|
disclaimer-tail |
error | Verbatim AI self-disclosure or refusal language leaked into prose. Always delete.14 phrases
|
citation-artifact |
error | Raw citation / tool-call tokens left over from LLM output (turn0search0, oaicite, contentReference, …). Always delete. |
Phrase 6
| id | sev | what it catches |
|---|---|---|
corporate-cliche |
warning | Boardroom jargon hides meaning. Use the plain word the jargon replaced.17 phrases
|
cliche-list |
warning | Tired phrases the reader skims past. Replace with a fresh image or plain statement.15 phrases
|
wordy-phrases |
warning | Multi-word phrases that compress to a single word without losing meaning.16 replacements
|
redundant-pairs |
warning | One word already means what the pair means together. Drop the redundant modifier.18 replacements
|
weasel-hedges |
warning | Hedges weaken claims without naming real uncertainty. Make the claim or name the doubt.25 phrases
|
vague-quantifiers |
info | 'Many', 'several', 'a number of' all dodge specifics. If you have a number, name it; if you don't, name what you do know.11 phrases
|
Density 8
| id | sev | what it catches |
|---|---|---|
em-dash-density |
warning | Em-dashes used too frequently. AI prose leans on em-dashes for any pause; vary with commas, semicolons, or full stops. |
adverb-density |
info | High -ly adverb count. Adverbs usually mark a weak verb. Strengthen the verb and the adverb falls out. |
nominalization-density |
info | Heavy use of -tion / -ment / -ity nouns. Turn nominalizations back into the verbs they hide. |
boosters |
info | Intensifiers that add no information. Cut them; the sentence almost always survives.12 phrases
|
passive-voice |
info | Passive constructions hide the actor. Recast in active voice where the agent matters. |
pronoun-density-low |
info | First- and second-person pronouns are absent. Prose reads as detached corporate-speak. Address the reader; own the claim. |
parenthetical-aside-density |
info | Parentheticals used as breath-marks ("(yes, really)", "(more on that below)"). A few are fine; many is an AI rhythm. |
inline-bold-emphasis |
warning | Compulsive **bolding** of key terms inside running prose. Vary emphasis or trust the reader. |
Cadence 12
| id | sev | what it catches |
|---|---|---|
sentence-length-monotony |
warning | Sentences of similar length lull the reader. Vary the rhythm: short sentences for impact, long ones for thinking. |
sentence-too-long |
warning | Sentences over 40 words usually carry too many clauses. Break or cut. |
paragraph-monotony |
info | Many consecutive paragraphs of similar length give the page a wall-of-text feel. Vary paragraph weight. |
parallel-triplet-density |
info | AI prose leans on the 'A, B, and C' triplet for rhythm. A few are fine; many in succession is a tell. |
transition-stacking |
warning | Three or more consecutive sentences starting with Moreover/Furthermore/etc. reads as machine-generated. Vary openings. |
repeated-words-window |
info | Same content word three times in five sentences. Vary diction. |
noun-stacking |
info | Long chains of complex nouns/adjectives crush comprehension. Break with prepositions or verbs. |
anaphora-cadence |
warning | Three or more consecutive sentences open with the same content word. Vary the rhythm. |
fragment-cadence |
warning | Three or more consecutive paragraphs that are each a single short sentence. Punchy-fragment rhythm reads as AI marketing. |
hero-tagline-imperative |
error | Cross-sentence imperative-verb tricolon ("Ship faster. Build smarter. Scale forever."). The single most recognizable AI marketing rhythm. |
from-x-to-y |
warning | Sentence-initial "From X to Y, …" manufactures a survey-of-the-field tone. Lead with the specific case. |
present-participle-tail |
warning | Sentences ending in ", highlighting/emphasizing/underscoring …" tack on faux-analysis. Cut the tail or replace with a specific consequence. |
Consistency 3
| id | sev | what it catches |
|---|---|---|
dash-style-inconsistency |
warning | Document mixes em-dash, en-dash, and double-hyphen for parenthetical breaks. Pick one and use it consistently. |
quote-style-inconsistency |
info | Document mixes straight ASCII quotes (") with curly quotes (“/”). Pick one and normalize. |
oxford-comma-inconsistency |
info | Document uses Oxford comma in some 3-item lists but not others. Pick one style. |
Weak constructions 4
| id | sev | what it catches |
|---|---|---|
there-is-there-are |
info | Sentences that open with 'There is/are' bury the subject. Recast so the real subject is at the front. |
expletives |
info | Sentences opening with a bare 'This is the...', 'That was a...', or 'It is the...' delay the real subject. |
negation-of-negation |
info | 'Not unimportant', 'not impossible' — double negatives make the reader work to extract a simple positive. |
pronoun-it-vague |
info | Sentences opening with 'It is/was/seems' use 'It' as a placeholder. Name what 'it' refers to. |
Markdown shape 5
| id | sev | what it catches |
|---|---|---|
bullet-bold-lead |
warning | Bullet lists where most items start with a `**Bold label:**` followed by an explanation. Signature AI-assistant markdown shape. |
title-case-headers |
info | Markdown headings written in Title Case. Sentence case is the modern default; Title Case in headings is a recognizable AI tic. |
colon-headline |
info | Most headings shaped "Topic: Descriptor". A recognizable AI-listicle / mock-bookstore-spine template. |
decorative-emoji |
info | Emoji used as decoration in headings or bullets (🚀, ✨, 📌, 💡). A recognizable AI-marketing tic; remove or replace with words. |
false-precision-headline |
warning | Listicle / faux-precise headings ("5 Reasons …", "10x Faster …"). Cheap manufactured concreteness. |
LLM-judged
19 higher-level patterns
Patterns regex can’t catch. The engine ships these as a prompt the model evaluates; the model returns structured findings in the same shape the deterministic engine uses.
| id | sev | what it catches |
|---|---|---|
buried-lede |
error | The piece's most important claim or finding is not in the first paragraph. The opening warms up instead of starting.
ExamplesGood Bad |
voice-consistency |
warning | Voice/persona drifts between sections — formal opening, conversational middle, technical closing — with no narrative reason.
ExamplesGood Bad |
mixed-metaphor |
warning | Two or more incompatible metaphors used together — picture-bending images that collide rather than reinforce.
ExamplesGood Bad |
claim-without-support |
error | A non-trivial factual or evaluative claim is asserted without evidence, reasoning, citation, or example.
ExamplesGood Bad |
missing-stakes |
warning | The reader cannot answer 'so what / who cares / what changes' after reading. The piece describes without naming consequence.
ExamplesGood Bad |
distinctive-vs-generic |
warning | Prose could have been written by anyone (or any model). No specific detail, no authorial fingerprint, no opinion the writer would defend.
ExamplesGood Bad |
abstract-without-concrete |
warning | Extended abstract reasoning runs for paragraphs without a grounding example, scene, number, or sensory detail.
ExamplesGood Bad |
showing-vs-telling |
info | Narrative tells the reader what to feel or conclude instead of showing the evidence that produces the feeling/conclusion.
ExamplesGood Bad |
transition-coherence |
warning | Paragraphs do not logically connect — abrupt topic jumps, missing causal/temporal links, or 'list of points' structure where prose should flow.
ExamplesGood Bad |
register-mismatch |
info | Formal and casual constructions sit side-by-side without intent — signals an untuned voice or AI-generated mash-up.
ExamplesGood Bad |
excessive-balance |
warning | Every claim earns a 'but' / 'however' / 'on the other hand'. Faux-balance flattens the piece's point and signals AI hedging.
ExamplesGood Bad |
redundant-thesis |
info | The opening and closing restate the same thesis in nearly identical words — a hallmark of AI structure-by-template.
ExamplesGood Bad |
marketing-template-cadence |
warning | Stock AI hero-line shape: imperative fragment then tricolon expansion ("Ship X. A Y, a Z, and N things for Q."). The template is the tell — content specificity doesn't redeem it.
ExamplesGood Bad |
sycophantic-tone |
warning | Whole-passage flattery: praising the reader, the prompt, the topic, or itself before delivering. Distinct from a single opener.
ExamplesGood Bad |
stakes-inflation |
warning | World-historical or paradigm-shifting stakes attached to small features or routine changes. Inverse of missing-stakes.
ExamplesGood Bad |
false-reframe |
warning | The 'It's not X, it's Y' move performed without semantic content — Y is a paraphrase of X, or both are empty. Catches the rhetoric even when antithesis-cadence misses the surface form.
ExamplesGood Bad |
invented-concept-label |
info | A Capitalized Compound ("The Engagement Doom Loop", "The Velocity Trap") referred to as if established, without rigorous definition or citation.
ExamplesGood Bad |
listicle-disguise |
info | Structurally a numbered list but flowed into paragraphs — each paragraph one item, all parallel shape, thin connective veneer.
ExamplesGood Bad |
one-point-dilution |
info | A single idea restated under multiple framings instead of advancing the argument or supplying evidence.
ExamplesGood Bad |