name: prose description: Removes AI writing patterns from prose. Use when drafting, editing, or reviewing essays, blog posts, docs, release notes, commit message bodies, PR descriptions, CHANGELOG entries, README content, or any human-facing text that reads AI-generated: hedged, metronomic, padded with throat-clearing, or full of em-dashes, adverbs, and "not X, it's Y" contrasts. user-invocable: true allowed-tools: Read, Edit, Write, Grep model: claude-sonnet-4-6 context: fork
prose
Eliminate AI writing patterns from prose.
Hardik Pandya wrote the upstream version (stop-slop). MIT-licensed. Source: https://github.com/hardikpandya/stop-slop. Core rules + references run verbatim. Edit only in socket-wheelhouse/template/; the cascade refreshes downstream copies.
Fleet surfaces — two modes
This skill runs in two modes. Both strip the AI-slop the Core Rules target; the conversational mode adds brevity + voice on top.
Route by surface:
- Targeting a
docs/**file, README, CHANGELOG, GitHub Release notes, or API-reference prose → documentation mode (the Core Rules below, unchanged). - Targeting a PR description / comment (
gh pr create/edit/comment --body), an issue body or reply (gh issue create/comment), a review comment, a Linear issue/comment, a status summary, or a multi-paragraph commit body → conversational mode: the Core Rules plus references/conversational.md (lead with the point, be brief, show the receipt, drop the AI scaffolding).
Documentation mode applies to:
- CHANGELOG entries, README sections,
docs/markdown, GitHub Release notes, API-reference prose. Complete + precise + durable; length serves correctness. - Code-format bare library/tool names in prose (e.g.
rustls,rolldown,reqwest) — they read as code, not prose. Theprose-code-format-nudgehook flags them on*.mdedits, off a shared dictionary (.claude/hooks/fleet/_shared/known-names.mts) derived from the repo's own manifests; that lib is the single source of truth for this check.
Conversational mode applies to:
- PR descriptions + comments, issue bodies + replies, review comments, Linear issues/comments, status summaries, and multi-paragraph commit bodies. Land the point now, to a person; length serves the point (often 1–3 sentences). Commit subject lines stay terse + imperative per
commit-message-format-guard(not this skill).
When to skip this skill
- Code, code comments, or structured data.
- JSON, YAML, TOML.
chore(wheelhouse): cascade template@<sha>commits. sync-scaffolding generates them with a fixed shape.- Bot output: Dependabot PRs, release auto-notes from PR titles.
- Transcripts and direct quotes (preserve voice verbatim).
- API reference prose where precision matters more than rhythm.
Instructions
- Apply the Core Rules to every paragraph, in order.
- Run the Quick Checks on the full draft.
- Score with the Scoring table; if it totals below 35/50, revise and re-score.
- Stop when the draft reads like a person wrote it. Further edits risk over-polishing.
If an edit changes meaning or loses the author's voice, revert it. Never rewrite a direct quote.
Core Rules
Cut filler phrases. Remove throat-clearing openers, emphasis crutches, and all adverbs. See references/phrases.md.
Break formulaic structures. Avoid binary contrasts, negative listings, dramatic fragmentation, rhetorical setups, false agency. See references/structures.md.
Use active voice. Every sentence needs a human subject doing something. No passive constructions. No inanimate objects performing human actions ("the complaint becomes a fix").
Be specific. No vague declaratives ("The reasons are structural"). Name the specific thing. No lazy extremes ("every," "always," "never") doing vague work.
Put the reader in the room. No narrator-from-a-distance voice. "You" beats "People." Specifics beat abstractions.
Vary rhythm. Mix sentence lengths. Two items beat three. End paragraphs differently. No em dashes.
Trust readers. State facts directly. Skip softening, justification, hand-holding.
Cut quotables. If it sounds like a pull-quote, rewrite it.
Quick Checks
Before delivering prose:
- Any adverbs? Kill them.
- Any passive voice? Find the actor, make them the subject.
- Inanimate thing doing a human verb ("the decision emerges")? Name the person.
- Sentence starts with a Wh- word? Restructure it.
- Any "here's what/this/that" throat-clearing? Cut to the point.
- Any "not X, it's Y" contrasts? State Y directly.
- Three consecutive sentences match length? Break one.
- Paragraph ends with punchy one-liner? Vary it.
- Em-dash anywhere? Remove it.
- Vague declarative ("The implications are significant")? Name the specific implication.
- Narrator-from-a-distance ("Nobody designed this")? Put the reader in the scene.
- Meta-joiners ("The rest of this essay...")? Delete. Let the essay move.
Scoring
Rate 1-10 on each dimension:
| Dimension | Question |
|---|---|
| Directness | Statements or announcements? |
| Rhythm | Varied or metronomic? |
| Trust | Respects reader intelligence? |
| Authenticity | Sounds human? |
| Density | Anything cuttable? |
Below 35/50: revise.
Example
Before:
Here's the thing: building products is hard. Not because the
technology is complex. Because people are complex. Let that sink in.
After:
Building products is hard. Technology is manageable. People aren't.
Removed the opener, the binary contrast, and the emphasis crutch. Two direct statements, same meaning.
See references/examples.md for more.
Edge cases
- Direct quotes: leave them alone; quoting a hedging speaker verbatim is not slop.
- Technical prose where precision > rhythm: API reference sentences can be metronomic; don't force variation that loses accuracy.
- Lists and tables: structural repetition is the point; don't "vary rhythm" inside a parameter list.
- First-person personal voice:
you/Iis fine; don't strip writer presence in the name of directness.