Humanize AI-written text. A portable agent skill that writes prose, or rewrites it, so it doesn't read as AI. Plain words over inflated ones, specific facts over puffery, uneven human rhythm over the metronome. Works in Claude Code, Cursor, Codex, and OpenClaw.
Before (15+ AI tells in two sentences):
In today's rapidly evolving fintech landscape, our platform serves as a testament to seamless innovation, leveraging cutting-edge technology to foster vibrant communities. Despite its challenges, the product continues to thrive — showcasing not just growth, but also resilience.
After:
Our platform settles P2P trades in under three seconds. We had two outages this quarter and fixed both inside an hour. Growth is steady: 4,000 active traders, up from 2,500 in March.
It caught: significance inflation ("serves as a testament"), the abstract "landscape", four word swaps (leverage, foster, seamless, showcasing), "vibrant", the "Despite its X… continues to thrive" formula, "not just X, but also Y" parallelism, an em dash, and the vague claims with no numbers. Then it replaced the puffery with specifics.
"Make this sound human" catches the obvious words. This skill goes further:
- Two depths, picked automatically. Short text (a DM, an email) gets one fast surgical pass. Long-form (an article, a post) loads a full detection engine and iterates until clean.
- ~50 pattern categories from a vendored detection engine. Vocabulary, structural tells (rigid templates, uniform rhythm), AI fingerprints (placeholders, citation-markup leaks, UTM params), and stylometric checks.
- An editable house-rules file that wins on conflict. Your taste is the source of truth; the engine supplies breadth.
- It catches the tells that survive a word swap. Plain-speech rules go after writing that sounds impressive and says nothing: abstract metaphor nouns, unattributed passives, sentences that would sit unchanged in any other project's docs.
- Writes clean from the start. A consistent first draft avoids the "sudden style shift" tell that stitched-together rewrites create.
Three layers, with a clear precedence so nothing drifts:
references/house-rules.md. Your editable banned words, structures, and style defaults, including the punctuation rules (zero em dashes, no colon splices, straight quotes). The single source of truth; wins on conflict. This is the one file you customize.references/write-human.md. The prescriptive ruleset ("write this way, not that way"), synthesized from the house rules, Wikipedia's "Signs of AI writing" catalog, and the engine. Each rule is tagged with its source. §8 holds the plain-speech rules.references/avoid-ai-writing.md. The deep detection engine, loaded only for the heavy pass.
On the heavy pass the engine detects, the house rules overlay (and win), and the rewrite iterates to convergence, re-scanning until a pass makes no new edits.
One command, via skills.sh. It installs to Claude Code, Cursor, Codex, Windsurf, and 60+ other agents:
npx skills add daniel-bogale/anti-ai-writing-humanizerAdd -g for a global install (all projects), or -a claude-code -a cursor to target specific agents.
Once installed, it auto-triggers on phrases like "humanize this", "remove AI-isms", or "rewrite so it
doesn't sound like ChatGPT".
For a versioned, updatable plugin (also the path for Claude Cowork, which loads skills only from plugins):
/plugin marketplace add daniel-bogale/anti-ai-writing-humanizer
/plugin install anti-ai-writing-humanizer@daniel-bogale-skills
The skill lives at skills/anti-ai-writing-humanizer/. Clone the repo and point your agent at that
folder. For a bare Claude Code skill:
git clone https://github.com/daniel-bogale/anti-ai-writing-humanizer /tmp/aaw
cp -r /tmp/aaw/skills/anti-ai-writing-humanizer ~/.claude/skills/The same folder works for Codex (~/.agents/skills/) and OpenClaw (~/.openclaw/skills/).
mkdir -p .cursor/rules
curl -o .cursor/rules/anti-ai-writing-humanizer.mdc \
https://raw.githubusercontent.com/daniel-bogale/anti-ai-writing-humanizer/main/cursor-rules/anti-ai-writing-humanizer.mdcSee cursor-rules/README.md. The Cursor port carries the same core rules
in one self-contained file.
Just ask, in plain language:
- "humanize this" / "make this sound human"
- "rewrite this so it doesn't read like ChatGPT"
- "audit this draft for AI tells and fix them" (triggers the deep pass)
- "draft a cold email to a fintech CTO, make it sound like a human wrote it"
Edit references/house-rules.md to add a banned word, loosen a rule, or tighten another. It's
loaded every pass and overrides the engine, so a change there takes effect everywhere with nothing
else to touch.
Built from:
- Wikipedia, "Signs of AI writing". The pattern catalog the prescriptive rules distill (CC BY-SA 4.0).
- Conor Bronsdon's
avoid-ai-writingengine (v3.9.0, MIT), vendored unmodified atreferences/avoid-ai-writing.mdas the deep detection layer. - The
unslopskill. §8 ofwrite-human.mdis ported from it: the plain-speech rules (abstract metaphor nouns, active voice, the portability test) plus the zero-em-dash and straight-quote rules.
Those sources are synthesized into references/write-human.md (the prescriptive ruleset) and a
default references/house-rules.md. Full attribution in NOTICE.
MIT. The vendored engine is MIT © Conor Bronsdon; see NOTICE for third-party terms.
