A writing-editor skill for Claude. It asks one question of a draft — is this doing its job? — and edits toward clarity, trust, and evidence that a person made decisions.
Built from The habits of AI writing, and what to do about them by Steph Zinn (@stephbzinn) for a16z crypto. The taxonomy, the calls on when to edit and when to leave things alone, and most of the good lines are hers. This repo turns them into something Claude runs.
Not an AI detector. Not an em-dash remover. Not a banned-word list.
Those all fail the same way: strip em dashes and the model routes into colons with the sentence structure untouched. Ban delve and you get explore. The tic moves; nothing improves. And "how much of this is AI" stopped being a useful question the moment the answer became "to some degree" for nearly everything.
So the skill edits the problems the AI-writing panic made visible — which mostly predate it. Corporate-speak is decades old. Abstract nouns are centuries old. It works the same on prose a person wrote by hand.
Five passes, in order:
| Pass | Target |
|---|---|
| Rhetoric | Sentences that sound good and mean nothing. "The stakes couldn't be higher." |
| Voice | Vocabulary so generic a stranger could claim the sentence word-for-word. |
| Structure | Form imposed on content that didn't want it — subheads, threes, signposts with no job. |
| Punctuation | Sameness, not marks. Clustering, colon-lists, performative semicolons. |
| Read aloud | Rhythm monotony, register slips, and anything you'd be embarrassed to say to a smart friend. |
Before any of it, a job check: what genre is this, who reads it in what state, and what must it accomplish. Different jobs want different shapes — and some jobs want the flat voice. Support docs, error messages, terms of service, safety instructions: there, personality is friction, and the skill says so and skips the voice pass rather than injecting character into a status page.
git clone https://github.com/phillydoug/de-slop.git ~/.claude/skills/de-slopThat makes it available in every project. For one project only, clone into .claude/skills/de-slop inside the repo instead.
On Claude.ai or the desktop app, upload SKILL.md under Settings → Capabilities → Skills.
It triggers on intent, so plain requests work:
edit this / tighten this / why does this sound like AI
Or call it directly:
/de-slop <paste draft>
Two useful variants:
diagnose this, don't rewrite it— names the genre and job, tells you what's working first, then the failures with real quotes, then the single biggest lever.this is support copy— pins the job so it doesn't try to give your error message a voice.
Rewrite first, reasoning after. Always that order — the clean draft is what you came for, so it isn't buried under an explanation of itself.
[clean rewrite — copy-pasteable, no annotations]
---
What changed:
- <edit> — <one line> (max five)
Left alone: <what it deliberately didn't touch, and why>
Cut: ~18% of original
The left alone line matters as much as the edits. Every untouched sentence is a decision, and resisting the urge to rewrite a working draft is itself good editing.
- Report an AI percentage
- Ban a punctuation mark
- Apply a word list mechanically — the test is whether a more specific word exists, and sometimes there is simply no other word for "ecosystem"
- Trade a tic for a new one: em dashes for parentheses, threes for fours
- Invent a specific. If the draft needs a number it doesn't have, it writes
[figure]and flags it - Flatten you. An edit that makes prose more correct and less recognizable is a bad edit
That last one is the point. Load-bearing hedges stay — in finance, healthcare, and legal work some hedges are law, not filler. Your imperfect word choices stay too. They're patina a machine could never add.
Nearly every idea here is from Steph Zinn's a16z crypto post. Read it — it's better than this README.
MIT licensed. PRs welcome, especially counterexamples where the skill gets an edit wrong.