Removing AI slop from your writing
Text written with a model carries tells: “delve”, “leverage”, “it’s not X, it’s Y”, a trailing “highlighting the team’s commitment”, an em dash every second sentence, “In conclusion”. Readers have learned to spot them and stop reading. Business Studio finds those tells, counts them, and removes them on request — in the card editors while you write, and as a workflow node over many cards at once.
Three parts, and the split is the point:
- A detector that runs in your browser and on the server, spends no credits, and gives a number. It is the measurement: the badge in the editor, the before/after count in a workflow run, and the reason a clean card never reaches the model.
- A rewrite by the model, handed the detector’s findings as the list to fix — “fix these spans, fix any pattern from the rules the scanner missed, change nothing else”. One credit-metered call, like Rephrase.
- A guard that checks the answer: every number, URL, e-mail address,
@mention,#hashtagand quoted phrase from the original must still be there, the text must not have shrunk below 40% or grown past 160%, and the warning count must not have gone up. A rewrite that fails the guard is refused, never silently kept.
The rules are ported from petergyang/no-ai-slop
(MIT, © 2026 Peter Yang) — the mechanical subset of them, turned into code.
In the editor
Section titled “In the editor”Open a social post, a blog post, a task or an e-mail. Below the text you will see, when there is something to see, a quiet count: AI slop · 7. Click it for the list — each rule that fired, how many times, and a short quote. Two kinds of finding:
- Warnings count. Banned words, the “isn’t X. It’s Y.” shape, negative listings, throat-clearing openers, faux-insight setups, trailing “-ing” analysis, importance puffery, weasel attribution (“experts agree”), rhetorical setups, recap endings, assistant sign-offs, and em dashes beyond the allowance (none in short copy; one per 150 words after).
- Notes are shown and never counted: “just”, “actually”, “in order to”, colon reveals, stacked short fragments, “First, Second, Finally” ceremony, emoji used as formatting. They are often fine. The list says where they are; you decide.
Code blocks, blockquotes, URLs and anything inside quotation marks are not judged — a banned word in a quoted example is the example, not slop.
Remove AI slop is the button next to Rephrase. It rewrites the whole field,
or the selection if you have one, and puts the answer above the original
with a divider between them, exactly as Rephrase does: compare, keep the
better half, delete the other. If the guard finds a dropped fact, the answer
arrives with a ⚠ line naming it, so the thing to check is the first thing
you read.
The detector understands English and French. French posts are judged by their own phrase list and get a wider em-dash allowance (the tiret is ordinary French punctuation). Other languages get only the rules that need no vocabulary.
As a workflow
Section titled “As a workflow”Three nodes, on the same find → transform → write split the other card-editing workflows use, so the model never touches the database and the writer can be marked to run even after a failure.
| Node | What it does | Outputs |
|---|---|---|
Read cards (read_tasks) | Reads your cards by kind, status, tag and destination — or, fed by a task.* event trigger, the one card the event names. Cards carrying the skipTag (default writing:deslopped) are excluded. | main |
Remove AI slop (remove_ai_slop) | Runs the detector on body (or description); a card with zero warnings leaves on clean without a model call. The rest are rewritten, judged by the guard, and leave on main (rewritten, with a deslop record of the before/after counts) or declined (the reason is on the item). Optional instruction or a skill adds your voice guidance. | main, clean, declined |
Write back to the card (update_task) | Writes body/description/title from the item, keeps the stored body format, refuses a body over the destination’s cap, and adds a tag (default writing:deslopped). Runs on failure too, tagging what it could not write. | main |
The template Remove AI slop from new drafts wires them hourly over your
post drafts: main is written back and tagged, declined is tagged
writing:deslop-declined so a card is judged once rather than every hour, and
clean is deliberately left unwired — a clean card costs nothing and needs no
mark. Clone it from Workflows → Templates, or wire the nodes yourself: the
node accepts any item that carries the text under the key you name.
The run view shows one line per node — Rewrote 7 of 12 · 3 clean · 2 declined
— and the output sample carries each item’s deslop record.
Credits
Section titled “Credits”The detector is free. The editor button is a one-off agent job, charged as
agent, like Rephrase. The workflow node is metered as remove_ai_slop; a
clean card is not charged because no model is called.
What it does not do
Section titled “What it does not do”It does not guess whether a text was written by a model — that is what AI detectors do, and they guess. It names patterns you can check. It also does not send your text anywhere but your own AI channel.
