---
name: ai-slop
description: "Write without AI slop: twelve named rules (contrastive negation, filler phrases, hedging, answer-first, ...) with the fix for each. Use before drafting or when a draft reads as generated."
---

AI slop is text whose sentences are individually correct and collectively empty: a filler opener, a contrast that denies what nobody believed, a hedge on every claim the writer did not measure, a statistic with no owner, and a closing line that restates the paragraph. Most of that shape has a grammar, which is what lets code find it.

The rule names and definitions below are bilingual: the same twelve rules read English and Spanish text in one pass. See https://seodraft.app/tools/ai-slop.md and https://seodraft.app/es/tools/ai-slop.md for the Spanish copy.

## Rules

### Contrastive negation (`contrastive-negation`)

A contrastive negation affirms one thing by denying another: "X, not Y", "it is not X, it is Y", "not just X but Y", or the same figure split over two sentences. The rule counts them across the prose, the title, the summary and the H2s, and allows one per article.

Fix: Delete the negated half and read the sentence again. If the shorter sentence says the same thing, keep it shorter. Keep the contrast only where the reader believes the thing you are denying, and name that belief with its number.

### Filler phrases (`filler-phrases`)

A filler phrase is a fixed expression that occupies a sentence without adding a fact: "in today's digital landscape", "it's important to note", "delve into", "game-changer", "en la era digital", "cabe destacar", "sin duda". The rule matches a bilingual list of 57 of them across the body, the title and the summary, and any hit fails.

Fix: Delete the phrase. If the sentence still stands, you are done. If it collapses, delete the sentence.

### Hedging (`hedging`)

Hedging softens a claim with "might", "perhaps", "somewhat", "arguably", "tends to be", "quizás", "probablemente" or "suele ser". The rule counts 15 such phrases over the prose and advises when they exceed 8 per 1,000 words.

Fix: For each hedge, write down what you would need to know to remove it. If you know it, state it with the number. If you do not, say what you measured and stop.

### Answer first (`answer-first`)

Answer first means the opening sentence under every H2 carries the answer to that heading on its own: at least six words, never a question, and never one of 43 openers that postpone the answer, such as "as we saw", "before we begin", "it depends" or "there are many ways".

Fix: Write the answer as one complete sentence. Use the rest of the section to qualify it. If the honest answer is a condition, put the condition and the outcome in the same sentence.

### Intro length (`intro-length`)

The intro is every prose sentence before the first H2. The rule requires between 3 and 14 of them: a preview of the answer, one piece of proof, a preview of the structure and a transition.

Fix: Open with the answer in one sentence. Follow it with the number or case that proves it. Say what the sections cover. Start the first H2.

### Generic closing (`generic-closing`)

A generic closing is a last H2 titled "Conclusion", "Final thoughts", "Summary", "Wrapping up", "Conclusiones" or "Reflexiones finales". The rule checks the last heading against 13 of these and fails on a match.

Fix: Name the decision the reader has to make now. Give the next step and one resource for it. If there is no decision and no next step, delete the section.

### Sentence variety (`sentence-variety`)

Sentence variety measures how much sentence length moves across a text. Over 15 or more sentences, the rule computes the standard deviation of words per sentence and advises when it falls under 4.

Fix: Find three consecutive sentences of the same length. Cut one to under eight words. Let another run past twenty-five if it has two clauses that belong together.

### Paragraph length (`paragraph-length`)

Paragraph length counts the sentences in each prose paragraph and advises when any paragraph runs past four. Lists, headings, tables and code are skipped.

Fix: Find the sentence where the subject changes and break the paragraph there. If no sentence changes the subject, the extra sentences repeat the first one, so delete them.

### Bold-label lists (`bold-list-pattern`)

A bold-label list is a bullet list where each item opens with a bold label and a colon: "**Speed**: the fastest option". The rule counts bullets in that shape and advises when they exceed 70% of a list with four or more items.

Fix: Keep one list in that shape if the labels are real categories. Turn the others into prose, or into a table if every item has the same two or three attributes.

### Thin content (`thin-content`)

Thin content is an article whose prose, with code blocks and headings removed, runs under 900 words. The rule counts the words and advises below that line.

Fix: Add the measurement, the case or the mistake that is missing. If you have nothing to add, the article is finished.

### Straw-man contrast (`strawman-contrast`)

A straw-man contrast is a contrastive negation whose negated half nobody held. A classifier reads the article and returns the probability that at least one contrast is of this kind. Above 0.6 the tool advises.

Fix: For each contrast, write down who believes the negated half and what number they would quote. If you cannot name them, delete the negated half. If you can, put their number in the sentence.

### Unsourced numbers (`unsourced-numbers`)

An unsourced number is a statistic with no owner: "studies show 73% of users", "most companies see a 3x lift". A classifier reads the article and returns the probability that its figures are first-hand measurements or named cases. Below 0.35 the tool advises.

Fix: For each figure, name who measured it and when, or replace it with a figure you measured. Delete a figure you can do neither with.

## Check a draft

POST the text to `https://seodraft.app/api/slop` and read the findings back as JSON:

```
curl -s https://seodraft.app/api/slop \
  -H "Content-Type: application/json" \
  -d '{"text":"# Title\n\nYour draft here."}'
```

Full reference with the reasoning and before/after examples for every rule: https://seodraft.app/tools/ai-slop.md
