# Am I AI — How to write text that doesn't read as AI-generated

Version 2.0.8 · generated 2026-10-17T07:47:11Z · based on **2,128** analyses

This guide is built from the deterministic rule catalog and is updated live as new text is analysed. Every rule the system fires has a section below with what it is, why it matters, and a concrete before/after.

---

## Most-common issues in production

| Rank | Rule | Priority | Hits |
|-----:|------|----------|-----:|
| 1 | `DASH_PUNCTUATION` | medium | 5,735 |
| 2 | `JUDGE_TELL` | medium | 4,855 |
| 3 | `RHETORICAL_FRAGMENT_RHYTHM` | medium | 746 |
| 4 | `EXACT_REPETITION` | high | 457 |
| 5 | `TRIAD_OVERUSE` | medium | 444 |
| 6 | `EM_DASH_DENSITY` | high | 423 |
| 7 | `CONTRAST_TEMPLATE_OVERUSE` | medium | 422 |
| 8 | `BOLD_INLINE_DENSITY` | high | 421 |
| 9 | `SEMANTIC_REPETITION` | medium | 353 |
| 10 | `PARENTHETICAL_ENUMERATION` | medium | 232 |

## The five habits that fix 80% of AI tells

1. **Delete the opener and the closer.** Nothing that would be at home in a customer-service email should survive editing.
2. **Say what, not what-matters.** Cut *"it is important to note that…"* and every variant.
3. **Name names.** Add proper nouns, exact dates, exact numbers. AI text is abstract because commitment is expensive; specificity is what humans do that models don't.
4. **Vary your rhythm.** Short sentence. Long, rolling sentence. Short. Then medium. Do not emit three paragraphs of identical shape.
5. **Use bold and em-dashes like salt.** A little where it matters, never as decoration.

---

## Assistant frame — the biggest tells

### `CONTRAST_TEMPLATE_OVERUSE` (medium) · **422 hits**

**What it is.** Repeated balanced-contrast templates ("not just X but Y", "not only… but also", "at its core", "in a world where").

**Why it matters.** One is fine; three or more in the same passage reads as decorative rather than logical.

**How to fix:**
- Keep at most one contrast sentence.
- Rewrite the rest as direct claims.

**Before / after:**

```text
BEFORE: It's not just a product — it's a movement. Not only does it save time, but it also transforms culture. In a world where every second counts…
AFTER:  The workflow cuts approval time from 4 hours to 12 minutes. Two of the six teams using it stopped their Monday sync.
```

### `FORMULAIC_CLOSER` (medium) · **118 hits**

**What it is.** The text ends with a formulaic wrap ("In conclusion,", "To summarize,", "I hope this helps,", "Let me know if you have questions").

**Why it matters.** Assistants add mechanical closings; edited human copy usually ends when the point ends.

**How to fix:**
- Delete the closer.
- If the final point needs weight, restate it as one crisp sentence — no meta-frame.

**Before / after:**

```text
BEFORE: In conclusion, this transformation stands as a testament to modern strategy.
AFTER:  Chen expects the Monterrey plant online in early 2026.
```

### `UNIVERSAL_TRUTH_OPENER` (medium) · **51 hits**

**What it is.** "Modern enterprises should…" / "Effective reporting begins with…" / "Successful founders need…" universal-truth openers.

**Why it matters.** GPT starts essays with universal claims because it hasn't been given a specific subject. Real writing starts with a specific subject.

**How to fix:**
- Replace 'Modern X should…' with a named X on a specific date doing a specific thing.
- If you can't name X, cut the sentence entirely.

**Before / after:**

```text
BEFORE: Effective quarterly reporting begins with consistent definitions and reliable data sources.
AFTER:  When Acme unified its close checklist in April 2024, five of the six regions cut their finalization time by more than 40%.
```

### `EMPTY_IMPLICATION_FRAME` (medium) · **15 hits**

**What it is.** "This highlights…", "This underscores…", "This serves as a reminder…" — meta-comment about the implication instead of the implication itself.

**Why it matters.** Assistants love to editorialize on their own points. Human writing states the implication as the sentence.

**How to fix:**
- Remove the meta-frame.
- Write the implication directly, as a claim you're willing to defend.

**Before / after:**

```text
BEFORE: This underscores the importance of investing in supplier diversification.
AFTER:  Firms that kept fewer than three suppliers per key input took 22% longer to recover from the 2024 shortage.
```

### `HEDGING_CASCADE` (high) · **9 hits**

**What it is.** Three or more hedges within a 400-character window ("generally speaking", "in many cases", "it depends", "could potentially", "typically", "tends to").

**Why it matters.** Chat models default to sounding safely non-committal. Human writing picks a side.

**How to fix:**
- Cut every hedge that isn't literally load-bearing.
- If the sentence still sounds uncertain, add a caveat only where uncertainty is real.

**Before / after:**

```text
BEFORE: Generally speaking, in most cases, PostgreSQL tends to be a better choice, though it depends on your specific situation.
AFTER:  PostgreSQL is the safer default. Pick MongoDB only if your schema is truly document-shaped and you never need joins.
```

### `BALANCED_PERSPECTIVE_TEMPLATE` (high) · **6 hits**

**What it is.** "On one hand… on the other hand" / "While it's true that… it's also important to…" / "That said," — mechanical balancing framework.

**Why it matters.** Assistant models are RLHF-trained to appear balanced. Real writing takes a position.

**How to fix:**
- Pick a side and defend it.
- If the trade-off is genuinely central, name it in one clause, not a whole paragraph.

**Before / after:**

```text
BEFORE: On one hand, remote work offers flexibility. On the other hand, it can lead to isolation. That said, hybrid models often…
AFTER:  Fully remote works for maker roles and breaks for management roles. Split the org, don't split the schedule.
```

### `RHETORICAL_ENUMERATION_OPENER` (medium) · **3 hits**

**What it is.** "Here are the N key things you need to know…" / "There are several factors to consider…" — meta-frame that announces a list.

**Why it matters.** Assistants announce their list before delivering it. Edited copy presents the list directly.

**How to fix:**
- Delete the announcement.
- Start with the first item.

**Before / after:**

```text
BEFORE: Here are the 3 key considerations when choosing a database:

1. Scalability…
AFTER:  The choice comes down to your schema. If it's fixed, pick Postgres; if it changes weekly, pick Mongo; if it's a single table, pick SQLite.
```

### `EMPTY_IMPORTANCE_FRAME` (medium) · **2 hits**

**What it is.** The text uses "It is important to note that…" / "It is worth noting that…" instead of just stating the fact.

**Why it matters.** Announcing that something matters is filler. If it matters, say what it is.

**How to fix:**
- Cut the frame.
- State the underlying fact as a normal sentence.

**Before / after:**

```text
BEFORE: It is important to note that the plant employs 1,240 people.
AFTER:  The plant employs 1,240 people.
```

### `CONSULT_PROFESSIONAL_DISCLAIMER` (medium)

**What it is.** "Consult a professional / doctor / lawyer / financial advisor" — safety-training disclaimer.

**Why it matters.** Assistants attach these disclaimers reflexively. In edited copy they read as a legal hedge, not a genuine caveat.

**How to fix:**
- Delete the disclaimer.
- If liability really is a concern, put it in a footer, not in every paragraph.

**Before / after:**

```text
BEFORE: Consult a qualified financial advisor before making any investment decisions.
AFTER:  (delete)
```

### `FORMULAIC_OPENER` (high)

**What it is.** The text opens with an assistant-style preamble ("Certainly!", "Sure!", "Great question!", "Here's a…", "Let me…").

**Why it matters.** Chat-tuned LLMs are trained to acknowledge the request before answering. Human writers usually just start with the point.

**How to fix:**
- Delete the preamble sentence entirely.
- Start with the first substantive fact instead.

**Before / after:**

```text
BEFORE: Certainly! Here's a comprehensive overview of Q3 results.
AFTER:  Q3 revenue rose 27% to $412M, driven by the Guadalajara plant.
```

### `HERE_IS_BALANCED` (medium)

**What it is.** "Here's a balanced / thoughtful / comprehensive / structured comparison / overview / framework / analysis" — meta-frame.

**Why it matters.** Announcing that your answer is balanced is what assistants do. Human writing just is balanced (or isn't).

**How to fix:**
- Delete the meta-frame.
- Go straight into the comparison.

**Before / after:**

```text
BEFORE: Here's a balanced comparison of PostgreSQL and MongoDB.
AFTER:  PostgreSQL wins if your schema is stable. MongoDB wins if it isn't. Here's the numbers.
```

### `NOT_JUST_X_BUT_Y_DENSE` (high)

**What it is.** The "Not just X — it's Y" / "It's not just a…, it's a…" template used 2+ times.

**Why it matters.** Assistant models default to this template when they want to sound insightful. It becomes formulaic quickly.

**How to fix:**
- Rewrite as direct claims.
- Say what Y is and why.

**Before / after:**

```text
BEFORE: It's not just a workflow — it's a movement.
AFTER:  The workflow removed three approval layers and cut cycle time by 68%.
```

### `SUMMARY_OPENER_CLOSER_BOTH` (high)

**What it is.** Both a summary opener ("Here are the…") and a formulaic closer ("In conclusion…") in the same passage — the classic assistant sandwich.

**Why it matters.** It's a template. Present the substance without wrapping it in frames.

**How to fix:**
- Delete both the opener and the closer.
- The text between them is usually the actual answer.

**Before / after:**

```text
BEFORE: Here are the top 5 tips. [content] In conclusion, these tips will help you succeed.
AFTER:  [content]
```

---

## Buzzwords and stock phrases

### `ABSTRACT_BUZZWORD_DENSITY` (medium) · **224 hits**

**What it is.** High density of abstract evaluative words: leverage, foster, ecosystem, robust, seamless, holistic, transformative, delve, landscape, tapestry, paradigm, unlock, empower.

**Why it matters.** These words carry no verifiable content. They sound impressive without committing to anything.

**How to fix:**
- Replace each with a concrete verb + named object.
- If you can't name the object, delete the sentence.

**Before / after:**

```text
BEFORE: We leverage a robust ecosystem to foster seamless growth.
AFTER:  We integrated Stripe billing and a Snowflake analytics pipeline, cutting reconciliation time from 6 hours to 40 minutes.
```

### `AI_PHRASE_PATTERN` (medium) · **165 hits**

**What it is.** A phrase from the AI-writing pattern catalog ("in today's rapidly evolving", "stands as a testament", "unlock the full potential", "navigate the complexities", …).

**Why it matters.** These exact phrases recur across chat-model output because they match training data high-frequency spans.

**How to fix:**
- Delete the stock phrase.
- Write the specific claim that only fits this subject.

**Before / after:**

```text
BEFORE: In today's rapidly evolving digital landscape, organizations must delve into the intricacies of modern data infrastructure.
AFTER:  Snowflake and BigQuery now handle 82% of Fortune 500 analytics workloads. Which one you pick depends on your existing cloud commit.
```

### `GENERIC_TRANSITION_DENSITY` (medium)

**What it is.** Too many transition adverbs (Additionally, Moreover, Furthermore, However, Therefore).

**Why it matters.** Transitions are load-bearing when the logic changes. Assistants sprinkle them decoratively.

**How to fix:**
- Remove any transition that would still make the paragraph readable without it.
- Rely on sentence order to carry the argument.

**Before / after:**

```text
BEFORE: Furthermore, Q3 growth accelerated. Moreover, margins expanded. Additionally, cash flow improved.
AFTER:  Q3 growth accelerated, margins expanded, and cash flow improved.
```

### `PARALLEL_ADJECTIVE_STACK` (medium)

**What it is.** Stacked corporate adjectives — "comprehensive, holistic, and integrated approach".

**Why it matters.** Each additional adjective narrows nothing; it's evaluative filler.

**How to fix:**
- Pick one adjective that carries specific content.
- Back it with a concrete example.

**Before / after:**

```text
BEFORE: A comprehensive, holistic, and integrated approach.
AFTER:  A single dashboard that pulls from Salesforce, HubSpot, and Segment.
```

---

## Formatting fingerprints (Mistral / GPT / Claude)

### `DASH_PUNCTUATION` (medium) · **5,735 hits**

**What it is.** One or more long dashes (em-dash or double hyphen) present.

**Why it matters.** Not proof of anything on its own; combined with `EM_DASH_DENSITY` becomes a stronger signal.

**How to fix:**
- Consider whether the dash is doing work a comma or full stop could do.

### `RHETORICAL_FRAGMENT_RHYTHM` (medium) · **746 hits**

**What it is.** Very short declarative fragments (≤6 words) used repeatedly as rhythmic hooks: "The best part? Freedom." "But it's not all sunshine." "The isolation is real."

**Why it matters.** This is a Mistral / GPT rhetorical rhythm. Humans use one; assistants string 3+ together.

**How to fix:**
- Keep at most one punchline fragment per section.
- Merge the rest into surrounding sentences.

**Before / after:**

```text
BEFORE: The best part? Freedom. But it's not all sunshine. The isolation is real. Every day I wonder…
AFTER:  The freedom is real, but so is the isolation — most days I'd trade half a Slack channel for a co-worker who could actually see the whiteboard.
```

### `TRIAD_OVERUSE` (medium) · **444 hits**

**What it is.** Three-item lists everywhere ("faster, cheaper, and more reliable", "strategy, execution, and vision").

**Why it matters.** The rule-of-three is a strong AI-writing tic. Human writers vary between 1, 2, and 4+ items depending on content.

**How to fix:**
- Cut any triad to two items unless three is required by the content.
- Ask: would this sentence be worse with just two items?

**Before / after:**

```text
BEFORE: The plan is scalable, sustainable, and impactful.
AFTER:  The plan pays back capex in 14 months.
```

### `EM_DASH_DENSITY` (high) · **423 hits**

**What it is.** Em-dashes (—) above human baseline (roughly more than 1 per 250 words, or 3+ in a short passage).

**Why it matters.** Chat models over-use em-dashes to chain qualifiers because they defer commitment. Human writers vary punctuation.

**How to fix:**
- Cap em-dashes at ~1 per 250 words.
- Replace chains with commas, semicolons, or full stops.

**Before / after:**

```text
BEFORE: It's not just a product — it's a movement — and one that's growing.
AFTER:  It's a movement. Enrollment has doubled every quarter since Q1 2024.
```

### `BOLD_INLINE_DENSITY` (high) · **421 hits**

**What it is.** **Bold emphasis** peppered inside paragraphs on more than one noun phrase.

**Why it matters.** Assistants (especially Mistral / GPT) bold half the nouns as decoration. Human copy uses bold for actual emphasis at most once per paragraph.

**How to fix:**
- Remove all inline bold except one per paragraph, and only where it's genuinely load-bearing.

**Before / after:**

```text
BEFORE: The **MX Keys S** has **PerfectStroke keys** and **smart backlighting**.
AFTER:  The Logitech MX Keys S has scissor-switch keys and a proximity sensor that fades the backlight on and off as your hands approach.
```

### `PARENTHETICAL_ENUMERATION` (medium) · **232 hits**

**What it is.** Parenthetical three-item enumerations — "(X, Y, and Z)" — repeated across paragraphs.

**Why it matters.** Assistants stuff enumerations into asides. In human copy the items go in the main sentence or don't appear at all.

**How to fix:**
- Move the enumeration into the main sentence, or drop it.

**Before / after:**

```text
BEFORE: PostgreSQL offers ACID compliance (transactions, consistency, and durability).
AFTER:  PostgreSQL is ACID: every write is atomic and durable across replicas.
```

### `COLON_HEADED_LIST` (medium) · **126 hits**

**What it is.** Every numbered list item opens with **Bold Label:** followed by an explanation.

**Why it matters.** Perfect uniformity is an assistant tell. Human writers vary the shape of list items.

**How to fix:**
- Prose out at least half the items.
- Or drop the bold labels and let the item stand as a sentence.

**Before / after:**

```text
BEFORE: 1. **Scalability:** The system should handle…
2. **Maintainability:** Clear code…
AFTER:  The choice comes down to two things. Scalability is straightforward — pick Postgres with read replicas and you're set to 10× current load. Maintainability is where teams trip up: a codebase without inline docs decays in about six months.
```

### `LIST_OVERUSE` (medium) · **122 hits**

**What it is.** Too much of the text is bullet lists.

**Why it matters.** Legitimate for API docs; suspect in essays and reports.

**How to fix:**
- Convert lists that are really prose into paragraphs.

**Before / after:**

```text
BEFORE: - The system is fast.
- The system is reliable.
- The system is well-tested.
AFTER:  The system runs at 180ns per Get on a 12-core Ryzen 9 and has 3,400 lines of test coverage.
```

### `HEADING_OVERUSE` (medium) · **42 hits**

**What it is.** Heading density above the norm for this genre.

**Why it matters.** Legitimate for reference docs, high for prose.

**How to fix:**
- Merge small sections.
- Keep headings only where they aid navigation.

**Before / after:**

```text
BEFORE: ## Introduction
(one paragraph)
## Background
(one paragraph)
## Analysis
AFTER:  (one flowing three-paragraph section, no headings)
```

### `BOLD_LABEL_OVERUSE` (medium) · **28 hits**

**What it is.** Repeated **Label:** blocks (bold label followed by an explanation).

**Why it matters.** It's the assistant's default list format.

**How to fix:**
- Reduce to prose, or keep only where the label is a genuine category.

**Before / after:**

```text
BEFORE: **Scalability:** … **Reliability:** … **Cost:** …
AFTER:  Scalability, reliability, and cost each shift the answer, and in that order.
```

### `STRUCTURAL_SYMMETRY` (medium) · **1 hits**

**What it is.** Paragraph or sentence lengths are unusually uniform.

**Why it matters.** Chat models emit near-identical paragraph shapes.

**How to fix:**
- Vary length — a one-sentence paragraph next to a long one, or a short sentence after a rolling one.

**Before / after:**

```text
BEFORE: (three paragraphs of exactly 42 words each)
AFTER:  (short. Long. Medium. Short again.)
```

### `MIXED_AUTHORSHIP_SIGNAL` (medium)

**What it is.** Different segments of the document have very different authorship scores.

**Why it matters.** Suggests a paragraph or section was pasted from a different source (often, from an assistant).

**How to fix:**
- Identify the flagged segment.
- Rewrite it in your own voice or cite the source.

---

## Specificity — the human differentiator

### `LOW_SPECIFICITY` (medium) · **128 hits**

**What it is.** The text has few or no proper nouns, exact dates, numbers, quantities, or verifiable facts.

**Why it matters.** Chat models generate at a level of abstraction that avoids commitment. Real writing names names.

**How to fix:**
- Add at least 2–3 concrete facts.
- A named person, an exact date, a specific number, a place, a version.

**Before / after:**

```text
BEFORE: The company grew rapidly last year across multiple regions.
AFTER:  Snowflake's revenue rose 33% to $3.6B in FY2024, with the EMEA region growing 51%.
```

### `MODAL_OBLIGATION_DENSITY` (high) · **55 hits**

**What it is.** High density of 'should be', 'must be', 'needs to be' prescriptive verbs — often five or more per short passage.

**Why it matters.** GPT-4/5-class corporate essays default to prescriptive framing because it lets the model recommend without committing to specific actors, dates, or numbers. Human writing names things.

**How to fix:**
- Cut every 'should be X' where you can name a real actor doing X.
- Replace 'X should be integrated' with 'Acme integrated X in Q2 2024, cutting reconciliation time from 6 hours to 40 minutes.'
- Keep at most one or two 'should' verbs per 200 words.

**Before / after:**

```text
BEFORE: Modern enterprises should combine historical reporting with forward looking analysis. Automation should be used to improve data collection. Dashboards should remain concise and focused.
AFTER:  In FY2024 Snowflake replaced its 14-tab monthly deck with a single BigQuery view maintained by two analysts. Cycle time from close to CFO-approved narrative dropped from 8 days to 3.
```

---

## Repetition and symmetry

### `EXACT_REPETITION` (high) · **457 hits**

**What it is.** The same sentence or n-gram appears more than once.

**Why it matters.** Generation artefact, or lazy revision.

**How to fix:**
- Delete the duplicate.
- Rephrase if the repetition was intentional.

### `SEMANTIC_REPETITION` (medium) · **353 hits**

**What it is.** Two paragraphs say the same thing in different words.

**Why it matters.** Chat models restate to fill space.

**How to fix:**
- Merge into one.

---

## Direct forensic tells

### `PLACEHOLDER_LEAK` (high) · **120 hits**

**What it is.** Unresolved template placeholders remain — `{{X}}`, `[YOUR NAME]`, `TODO:`, `lorem ipsum`.

**Why it matters.** The generation was pasted before the template variables were filled in.

**How to fix:**
- Fill the placeholder with the intended value or delete the section.

### `INVISIBLE_UNICODE` (high) · **1 hits**

**What it is.** Zero-width or other invisible Unicode characters are present.

**Why it matters.** Almost always a copy-paste artefact from a rich-text UI; occasionally a watermark.

**How to fix:**
- Strip the characters (many editors have a 'remove invisible chars' command).

### `BIDI_CONTROL` (high)

**What it is.** Bidirectional control characters are present.

**Why it matters.** Very rarely legitimate in English text; sometimes a security concern (Trojan Source).

**How to fix:**
- Strip them unless you're doing RTL layout intentionally.

### `CONFUSABLE_CHARACTER` (high)

**What it is.** Latin text contains look-alike Cyrillic / Greek letters (e.g. Cyrillic 'а' where Latin 'a' belongs).

**Why it matters.** Copy-paste from mixed-script sources or (rarely) evasion.

**How to fix:**
- Search-and-replace the confusable with the intended Latin letter.

### `MISTRAL_CONTROL_TOKEN` (critical)

**What it is.** Mistral chat-template tokens (`[INST]`, `[/INST]`, `<s>`, `</s>`) are in the text.

**Why it matters.** A raw serialization leak — the chat template wasn't stripped before publication.

**How to fix:**
- Strip the tokens.
- Configure the downstream pipeline to skip special tokens.

### `MODEL_SELF_REFERENCE` (high)

**What it is.** Text contains "As an AI language model…" or similar model-identity phrasing.

**Why it matters.** A near-perfect direct tell — an assistant leaked its own framing.

**How to fix:**
- Delete the entire sentence.

### `PROMPT_LEAK` (critical)

**What it is.** The response contains leaked system prompt text ("You are a helpful assistant", "Ignore all previous instructions").

**Why it matters.** Prompt-injection artefact or debug leakage.

**How to fix:**
- Remove the leaked instruction and everything derived from it.

---

## Provenance and watermarks

### `SYNTHID_TEXT_SUSPECTED` (info)

**What it is.** Placeholder — SynthID-Text is Google/Anthropic's token-biasing watermark for chat models.

**Why it matters.** Anthropic has not published the detection key as of August 2026, so this is currently a hook for future adapters.

**How to fix:**
- No action — this rule is informational.

---

## Integration

- `POST /verdict` returns a `remediation_prompt` string keyed to the fixes that fired — paste it straight into Claude / GPT / Mistral.
- `GET /fix-recipes` returns this catalog as JSON.
- `GET /style-guide.json` returns this guide as JSON.
- `GET /rules` returns the compact rule catalog.

See `AMIAI_API_INTEGRATION.md` for the full API contract.