A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.
SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.
# 1. Clone the canonical copy
mkdir -p ~/.agents/skills
git clone https://github.com/solutionscay/humanizer.git ~/.agents/skills/humanizer
# 2. Claude Code: point the whole skills directory at ~/.agents/skills# (do this once - it covers this skill and every other one you keep there)
rm -rf ~/.claude/skills # only if it's empty or you're migrating existing skills into ~/.agents/skills first
ln -s ~/.agents/skills ~/.claude/skills
# 3. Codex: symlink the skill itself into ~/.codex/skills
mkdir -p ~/.codex/skills
ln -s ~/.agents/skills/humanizer ~/.codex/skills/humanizer
# 4. Codex: expose it as a /humanizer custom prompt
mkdir -p ~/.codex/prompts
ln -s ~/.agents/skills/humanizer/SKILL.md ~/.codex/prompts/humanizer.mdWith this layout:
~/.agents/skills/humanizer- the git repo (this one), the only place you edit orgit pull.~/.claude/skills- a symlink to~/.agents/skills, so~/.claude/skills/humanizerresolves straight through to the repo.~/.codex/skills/humanizer- a per-skill symlink into the repo (Codex'sskills/directory holds real entries, not a symlinked directory).~/.codex/prompts/humanizer.md- a symlink toSKILL.md, so Codex can also run it as a/humanizerprompt.
If you only use one tool and don't want the shared-source layout above, clone or copy the skill directly where that tool expects it:
# Claude Code
mkdir -p ~/.claude/skills
git clone https://github.com/solutionscay/humanizer.git ~/.claude/skills/humanizer
# or just the skill file, if you already have this repo checked out
mkdir -p ~/.claude/skills/humanizer
cp SKILL.md ~/.claude/skills/humanizer/In Claude Code:
/humanizer
[paste your text here]
In Codex, custom prompts use $ instead of /:
$humanizer
[paste your text here]
Or ask directly:
Please humanize this text: [your text]
Based on Wikipedia's "Signs of AI writing" guide, maintained by WikiProject AI Cleanup, plus additional rhetorical-structure patterns and process guidance layered on top:
- Voice calibration - if you give it a writing sample, it matches your habits (sentence length, punctuation, recurring phrases) instead of applying the default rules blind. A sample even overrides the em-dash ban.
- Detection guidance - a false-positive checklist and a list of "signs of human writing to preserve," so it doesn't gut legitimate prose that happens to share a surface trait with an AI tell (an em dash, a curly quote, formal vocabulary).
- Invocation modes - output shape changes depending on how it's called: full draft+audit+final for pasted text, a quiet in-place rewrite for files, bare final text when embedded in another task.
- No-fabrication rule - the rewrite can't state any fact, name, date, or citation that isn't in the source text. This is a hard constraint, checked explicitly in the audit step.
The skill also runs a final "obviously AI generated" audit pass and a second rewrite, to catch lingering AI-isms in the first draft.
"LLMs use statistical algorithms to guess what should come next. The result tends toward the most statistically likely result that applies to the widest variety of cases."
| # | Pattern | Before | After |
|---|---|---|---|
| 1 | Significance inflation | "marking a pivotal moment in the evolution of..." | "was established in 1989, part of a wider decentralization" |
| 2 | Notability name-dropping | "cited in NYT, BBC, FT, and The Hindu" | Trim the list; don't add unsourced context |
| 3 | Superficial -ing analyses | "symbolizing... reflecting... showcasing..." | Remove or expand with actual sources |
| 4 | Promotional language | "nestled within the breathtaking region" | "is a town in the Gonder region" |
| 5 | Vague attributions | "Experts believe it plays a crucial role" | Name the real source, or cut the claim |
| 6 | Formulaic challenges | "Despite challenges... continues to thrive" | State the specific, documented challenge |
| # | Pattern | Before | After |
|---|---|---|---|
| 7 | AI vocabulary | "Additionally... testament... landscape... showcasing" | "also... remain common" |
| 8 | Corporate-register verbs | "leveraged infrastructure to drive outcomes" | "reused infrastructure, which improved outcomes" |
| 9 | Copula avoidance | "serves as... features... boasts" | "is... has" |
| 10 | Negative parallelisms / tailing negations | "It's not just X, it's Y" / "...no guessing" | State the point directly, as a real clause |
| 11 | Rule of three | "innovation, inspiration, and insights" | Use natural number of items |
| 12 | Synonym cycling | "protagonist... main character... central figure... hero" | "protagonist" (repeat when clearest) |
| 13 | False ranges | "from the Big Bang to dark matter" | List topics directly |
| 14 | Passive voice / subjectless fragments | "No configuration file needed" | "You do not need a configuration file" |
| 15 | Hyphenated word pair overuse | "the report is high-quality" (predicate position) | "the report is high quality" |
| # | Pattern | Before | After |
|---|---|---|---|
| 16 | Em/en dash overuse (hard rule) | "institutions—not the people—yet this continues—" | Use commas, periods, or parentheses |
| 17 | Boldface overuse | "OKRs, KPIs, BMC" | "OKRs, KPIs, BMC" |
| 18 | Inline-header lists | "Performance: Performance improved" | Convert to prose |
| 19 | Title Case Headings | "Strategic Negotiations And Partnerships" | "Strategic negotiations and partnerships" |
| 20 | Emojis | "🚀 Launch Phase: 💡 Key Insight:" | Remove emojis |
| 21 | Curly quotes | said “the project” | said "the project" |
Sentence- and paragraph-level habits inherited from persuasive and speechwriting registers. The AI tell isn't the device itself, it's using it on nearly every paragraph regardless of whether the content calls for it.
| # | Pattern | Before | After |
|---|---|---|---|
| 22 | Antithesis / contrasting pairs | "minimal yet bold, familiar yet fresh" | State what it actually does |
| 23 | Corrective negation | "This isn't a bug fix, it's a rethink" | "This rewrites the caching layer" |
| 24 | Negative anaphora | "Not a warning. Not a demand. Not a plea." | "Consider this an observation, not a demand" |
| 25 | Parataxis | "The server crashed. Users lost data. Trust eroded." | Connect the clauses causally |
| 26 | Paragraph pinning | Opening every paragraph with a restated theme | Start with the specific fact |
| 27 | Summary beats | "In short, its history is complicated" | Cut the recap sentence |
| 28 | Landing sentences | "...that's the real cost of moving fast" | Cut the mic-drop closer |
| 29 | Setup/payoff constructions | "What begins as X soon becomes Y" | State the outcome plainly |
| 30 | Throat-clearing openers | "When it comes to X, it's worth noting..." | Start with the point |
| 31 | Conversational rhetorical openers | "Honestly? It depends..." | Cut the fake-candid hook |
| 32 | Parallel sentence structures | Every sentence in a paragraph is the same shape | Vary length and structure |
| 33 | Stacked noun phrases | "cross-functional stakeholder alignment strategy" | "getting product, sales, and support to agree" |
| 34 | Nominalization | "conducted an evaluation and reached a determination" | "evaluated... and rejected" |
| 35 | Aphorism formulas | "Symmetry is the language of trust" | State the concrete claim it's gesturing at |
| 36 | Persuasive authority tropes | "The real question is... at its core..." | Say the plain point |
| 37 | Signposting and announcements | "Let's dive in... here's what you need to know" | Just say the thing |
| 38 | Fragmented headers | Heading followed by a throwaway restating it | Cut the throwaway line |
| 39 | Diff-anchored writing | "This function was added to replace..." | Describe the thing as it is now |
| 40 | Manufactured punchlines / staccato drama | "No aesthetic prior. No nostalgia..." | Connect the clauses into real sentences |
| 41 | Performed enthusiasm | "This update is huge! We're thrilled!" | State what shipped |
| # | Pattern | Before | After |
|---|---|---|---|
| 42 | Chatbot artifacts | "I hope this helps! Let me know if..." | Remove entirely |
| 43 | Cutoff disclaimers / speculative gap-filling | "likely grew up in a middle-class household" | State what isn't documented, or cut it |
| 44 | Sycophantic tone | "Great question! You're absolutely right!" | Respond directly |
| # | Pattern | Before | After |
|---|---|---|---|
| 45 | Filler phrases | "In order to", "Due to the fact that" | "To", "Because" |
| 46 | Filler intensifiers | "genuinely... really... truly... actually" | Cut them |
| 47 | Excessive hedging | "could potentially possibly" | "may" |
| 48 | Generic conclusions | "The future looks bright" | Cut the paragraph; end on the last concrete fact |
- Wikipedia: Signs of AI writing - Primary source
- WikiProject AI Cleanup - Maintaining organization
- 2.4.1 - Removed the Full Example section from SKILL.md and README.md. It was redundant with the per-pattern before/afters and the Process and Output section, and risked anchoring rewrites to one example's register.
- 2.4.0 - Merged in upstream additions from
blader/humanizer: 9 more patterns (passive voice, hyphenated word pair overuse, aphorism formulas, persuasive authority tropes, signposting, fragmented headers, diff-anchored writing, manufactured punchlines, conversational rhetorical openers), plus Voice Calibration, Detection Guidance, and Invocation Modes sections. Total patterns: 48. Fixed a few Content Pattern examples that had fabricated specifics in their own "After" text. Dropped WARP.md. - 2.3.0 - Added 15 rhetorical-structure patterns (antithesis, parataxis, paragraph pinning, nominalization, and more), bringing the total to 39
- 2.2.0 - Added a final "obviously AI generated" audit + second-pass rewrite prompts
- 2.1.1 - Fixed pattern #18 example (curly quotes vs straight quotes)
- 2.1.0 - Added before/after examples for all 24 patterns
- 2.0.0 - Complete rewrite based on raw Wikipedia article content
- 1.0.0 - Initial release
MIT