Avoid AI Writing
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
Removes AI writing tells from prose through an audit-first flow, routing to a two-pass rewrite, a report-only cleanup, voice teaching or mimicry depending on the sub-command used.
$ npx skills add theclaymethod/unslop --skill unslop -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install theclaymethod/unslop unslop --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .claude/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add theclaymethod/unslop --skill unslop -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install theclaymethod/unslop unslop --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .agents/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add theclaymethod/unslop --skill unslop -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install theclaymethod/unslop unslop --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .cursor/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add theclaymethod/unslop --skill unslop -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install theclaymethod/unslop unslop --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .gemini/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install theclaymethod/unslop unslopInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add theclaymethod/unslop --skill unslop -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .github/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add theclaymethod/unslop --skill unslop -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install theclaymethod/unslop unslop --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unslop" agent skill from https://github.com/theclaymethod/unslop/tree/main into .opencode/skills/unslop/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unslop", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unslopRemoves AI writing tells from prose through an audit-first flow, routing to a two-pass rewrite, a report-only cleanup, voice teaching or mimicry depending on the sub-command used.
A shared core-contract reference file is read before every audit or rewrite and defines the single behavior contract that command files and voice presets build on without overriding. A bare request with no named sub-command defaults to rewrite, the two-pass default that diagnoses AI-sounding patterns, reconstructs the text under guardrails, and validates the result, while an explicit sub-command such as /unslop cleanup or /unslop teach is routed to that command's own reference file, which must be read before acting since it defines the flow's exact steps.
Besides rewrite, cleanup acts as a co-writer offering cheap detection with reviewable, gated suggestions, including a report-only mode that just flags AI tells without changing anything; teach builds a personal voice profile by harvesting and scoring the user's own writing samples; mimic drafts or rewrites in that learned voice under the full guard set, refining when one pass falls short; and a maintenance flow turns a newly spotted AI-ism into an eval row and a pull request rather than acting as a top-level command. Natural phrases like just flag it or review this before I publish route to the matching sub-flow even without the exact command name.
Read from SKILL.md and the folder at commit 17ed39c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unslop AI Writing Cleanup loads about 1.7k tokens when it runs, and up to ~44k if it reads all its reference files. Until then it costs about 165 tokens; SKILL.md has 558 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from theclaymethod/unslop at commit 17ed39c, republished under its MIT licence (© theclaymethod). 558 words, ~1,690 tokens.
.claude/skills/unslop/SKILL.md (or your agent's skills folder). This skill also uses 508 other files; get the full folder from GitHub.Humanize AI-generated prose. Audit first. Rewrite only when the user asks for a rewrite.
For every audit or rewrite, read references/core-contract.md. It is the single behavior contract. Command files define routing and mechanics; presets supply optional voice, but neither can override the core contract.
When the user invokes a sub-command (/unslop teach ..., /unslop cleanup ...), you MUST read references/commands/<command>.md before acting.
Non-optional — the command file defines the flow, and skipping it drops steps the
user expects. A bare /unslop <text> with no leading command word defaults to
rewrite. If the first word does not match a command but the intent clearly maps
to one (e.g. "flag the AI tells, don't change anything" → cleanup report-only),
load that command file and proceed as if invoked.
| Command | Purpose | File |
|---|---|---|
rewrite | Default two-pass de-slop: diagnose, reconstruct under the guards, validate. | references/commands/rewrite.md |
cleanup | Co-writer: cheap detection, reviewable suggestions with contract gates; includes report-only "flag, change nothing". | references/commands/cleanup.md |
teach | Agent-driven voice building: harvest, approve, profile, layered card, scored demo. | references/commands/teach.md |
mimic | Voiced drafting or rewriting under the full gates; refine loop when one pass falls short. | references/commands/mimic.md |
| maintenance | Turn a wild AI-ism into an eval row and a PR (not a top-level verb). | references/commands/contribute.md |
Sub-flows are reachable by their natural names without being top-level verbs. When the user says any of these, load the named file and jump to the flow:
| The user says | Go to |
|---|---|
audit / "just flag it" / "don't change anything" | references/commands/cleanup.md |
review / "review this before I publish" | references/commands/cleanup.md |
harvest / "what writing of mine do you have?" | references/commands/teach.md |
calibrate / "the A/B game" / "quiz me on my voice" | references/commands/teach.md |
refine / "keep pushing until it sounds like me" | references/commands/mimic.md |
| voice check / "does this sound like me?" | references/commands/mimic.md |
| "found a new AI-ism" / "add this tell" | references/commands/contribute.md |
| Argument | Description | Default |
|---|---|---|
--preset | Voice style: crisp, warm, expert, story | crisp |
--strict | Fail if rubric score < 32/40 | false |
--report | Flag AI patterns without changing the text (cleanup) | false |
| Input | Text to transform (argument, file path, or stdin) | required |
Read one preset from presets/ before writing.
| Preset | Style | Best For |
|---|---|---|
crisp | Short, direct, no fluff | Technical writing, documentation |
warm | Friendly, conversational | Emails, blog posts |
expert | Authoritative, confident | Thought leadership, articles |
story | Narrative flow, show don't tell | Case studies, personal posts |
Rewrite, preservation, register, and validation behavior lives only in
references/core-contract.md; do not recreate or override those rules here.
For a quick rewrite, return the cleaned text only. For audit-only (cleanup
--report):
## Issues Found
- [Quoted issue, category, severity, why it reads as AI]
## Assessment
- [Which issues are clear problems]
- [Which issues are judgment calls or context-dependent]For strict or requested analysis:
## Transformed Text
[The humanized version]
## Validation
- Constraints: [X]/[Y] preserved
- AI patterns: [N] remaining (was [M])
- Structure: [pass/fail]
- Readability: Grade [X], sentence variance [Y]
- Change: [X]% from original
- Score: [X]/40| File | When to Read |
|---|---|
references/commands/*.md | The routed command flows (rewrite, cleanup, teach, mimic, contribute). |
references/pipeline.md | Orchestrated tiered execution for multi-agent harnesses. |
references/taboo-phrases.md | Authoritative phrase catalog and scanner categories. |
references/fact-preservation.md | Constraint preservation rules. |
references/rewrite-examples.md | Executable before/after examples. |
references/{mimic,harvest,calibrate}.md | Voice-tool internals loaded by their routed command. |
references/{rubric,edit-library,maintenance}.md | Strict scoring, examples, and contribution procedures. |
presets/*.md | Voice-specific deltas. |
The eval contracts define the product. Add scanner examples eval-first in
evals/fixtures/contracts/scanner-examples.json; use
evals/adversarial-evals.json for agent behavior and routing. Do not edit legacy
evals/evals.json. New patterns need a false-negative example and a
false-positive protection example. Agent behavior changes need a skill row
and a regenerated shared benchmark. For the
concrete procedures (add a phrase or structure, list current patterns, sync with
Wikipedia's signs-of-AI-writing page), read references/maintenance.md. Found a
new AI-ism in the wild? references/commands/contribute.md turns the exact
snippet into a contract example and a structured PR, keeping both user-confirmation gates.
© theclaymethod, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 508 other files (scripts, references, assets) in the repository root of theclaymethod/unslop.
Open the folder on GitHubat commit 17ed39c
Unslop AI Writing Cleanup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unslop AI Writing Cleanup this skilltheclaymethod/unslop | 512 | — | ~1.7k | Automated safety check: Pass | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| Remove AI Patternspchalasani/claude-code-tools | 2k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Brand Voiceaffaan-m/ECC | 275k | 3 repos | ~912 | Automated safety check: Pass | MIT | |
| Writewaynesutton/markdown-site | 628 | — | ~3k | Automated safety check: Pass | MIT | |
| Voice Profilepedrohcgs/claude-code-my-workflow | 1.6k | — | ~1.6k | Automated safety check: Notes | MIT |
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
pchalasani/claude-code-tools
Remove AI-writing patterns ("AI-isms") from text using the avoid-ai-writing catalog (conorbronsdon/avoid-ai-writing).
affaan-m/ECC
Build a source-derived writing style profile from real posts, essays, launch notes, docs, or site copy, then reuse that profile across content, outreach, and social workflows.
waynesutton/markdown-site
Writing style guide for technical content, social media, blog posts, READMEs, git commits, and developer documentation.
pedrohcgs/claude-code-my-workflow
Extract a written voice profile from your own prior papers, then use it to keep new drafts sounding like you.
rileyhilliard/claude-essentials
Writing style and tone guide for human-sounding content. An agent skill from rileyhilliard/claude-essentials.
Categories
Removes AI writing tells from prose through an audit-first flow, routing to a two-pass rewrite, a report-only cleanup, voice teaching or mimicry depending on the sub-command used. A shared core-contract reference file is read before every audit or rewrite and defines the single behavior contract that command files and voice presets build on without overriding. A bare request with no named sub-command defaults to rewrite, the two-pass default that diagnoses AI-sounding patterns, reconstructs the text under guardrails, and validates the result, while an explicit sub-command such as /unslop cleanup or /unslop teach is routed to that command's own reference file, which must be read before acting since it defines the flow's exact steps.
Unslop AI Writing Cleanup fits situations like: rewriting AI-generated text so it reads as human-written; flagging AI writing tells in a draft without changing any text; building a personal voice profile to draft future text in that style.
Run `npx skills add theclaymethod/unslop --skill unslop -a claude-code`. Or copy the skill folder (the theclaymethod/unslop repository) into .claude/skills/unslop in your project. Claude Code loads it when a task matches its description.
Run `npx skills add theclaymethod/unslop --skill unslop -a codex`. Or copy the skill folder (the theclaymethod/unslop repository) into .agents/skills/unslop in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add theclaymethod/unslop --skill unslop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unslop, .gemini/skills/unslop, .github/skills/unslop and .opencode/skills/unslop in your project.
SKILL.md names no scripts, command-line tools or credentials: Unslop AI Writing Cleanup is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Unslop AI Writing Cleanup is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 42k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unslop AI Writing Cleanup: Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars), Remove AI Patterns (pchalasani/claude-code-tools, 2k stars), Brand Voice (affaan-m/ECC, 275k stars) and Write (waynesutton/markdown-site, 628 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
theclaymethod (a GitHub user) maintains it in theclaymethod/unslop, which has 512 GitHub stars. The repository was last updated on September 7, 2026.
Source: theclaymethod/unslop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.