Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

14 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Humanizer

A Claude Code / Codex skill that removes signs of AI-generated writing from text, making it sound more natural and human.

Installation

SKILL.md is the single source of truth. Everything else is a symlink to it, so editing one copy updates every tool.

Recommended (canonical copy under ~/.agents, symlinked into each 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.md

With this layout:

  • ~/.agents/skills/humanizer - the git repo (this one), the only place you edit or git pull.
  • ~/.claude/skills - a symlink to ~/.agents/skills, so ~/.claude/skills/humanizer resolves straight through to the repo.
  • ~/.codex/skills/humanizer - a per-skill symlink into the repo (Codex's skills/ directory holds real entries, not a symlinked directory).
  • ~/.codex/prompts/humanizer.md - a symlink to SKILL.md, so Codex can also run it as a /humanizer prompt.

Simple install (single tool, no shared ~/.agents convention)

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/

Usage

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]

Overview

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.

Key Insight from Wikipedia

"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."

48 Patterns Detected (with Before/After Examples)

Content Patterns

#PatternBeforeAfter
1Significance inflation"marking a pivotal moment in the evolution of...""was established in 1989, part of a wider decentralization"
2Notability name-dropping"cited in NYT, BBC, FT, and The Hindu"Trim the list; don't add unsourced context
3Superficial -ing analyses"symbolizing... reflecting... showcasing..."Remove or expand with actual sources
4Promotional language"nestled within the breathtaking region""is a town in the Gonder region"
5Vague attributions"Experts believe it plays a crucial role"Name the real source, or cut the claim
6Formulaic challenges"Despite challenges... continues to thrive"State the specific, documented challenge

Language Patterns

#PatternBeforeAfter
7AI vocabulary"Additionally... testament... landscape... showcasing""also... remain common"
8Corporate-register verbs"leveraged infrastructure to drive outcomes""reused infrastructure, which improved outcomes"
9Copula avoidance"serves as... features... boasts""is... has"
10Negative parallelisms / tailing negations"It's not just X, it's Y" / "...no guessing"State the point directly, as a real clause
11Rule of three"innovation, inspiration, and insights"Use natural number of items
12Synonym cycling"protagonist... main character... central figure... hero""protagonist" (repeat when clearest)
13False ranges"from the Big Bang to dark matter"List topics directly
14Passive voice / subjectless fragments"No configuration file needed""You do not need a configuration file"
15Hyphenated word pair overuse"the report is high-quality" (predicate position)"the report is high quality"

Style Patterns

#PatternBeforeAfter
16Em/en dash overuse (hard rule)"institutions—not the people—yet this continues—"Use commas, periods, or parentheses
17Boldface overuse"OKRs, KPIs, BMC""OKRs, KPIs, BMC"
18Inline-header lists"Performance: Performance improved"Convert to prose
19Title Case Headings"Strategic Negotiations And Partnerships""Strategic negotiations and partnerships"
20Emojis"🚀 Launch Phase: 💡 Key Insight:"Remove emojis
21Curly quotessaid “the project”said "the project"

Rhetorical Structure Patterns

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.

#PatternBeforeAfter
22Antithesis / contrasting pairs"minimal yet bold, familiar yet fresh"State what it actually does
23Corrective negation"This isn't a bug fix, it's a rethink""This rewrites the caching layer"
24Negative anaphora"Not a warning. Not a demand. Not a plea.""Consider this an observation, not a demand"
25Parataxis"The server crashed. Users lost data. Trust eroded."Connect the clauses causally
26Paragraph pinningOpening every paragraph with a restated themeStart with the specific fact
27Summary beats"In short, its history is complicated"Cut the recap sentence
28Landing sentences"...that's the real cost of moving fast"Cut the mic-drop closer
29Setup/payoff constructions"What begins as X soon becomes Y"State the outcome plainly
30Throat-clearing openers"When it comes to X, it's worth noting..."Start with the point
31Conversational rhetorical openers"Honestly? It depends..."Cut the fake-candid hook
32Parallel sentence structuresEvery sentence in a paragraph is the same shapeVary length and structure
33Stacked noun phrases"cross-functional stakeholder alignment strategy""getting product, sales, and support to agree"
34Nominalization"conducted an evaluation and reached a determination""evaluated... and rejected"
35Aphorism formulas"Symmetry is the language of trust"State the concrete claim it's gesturing at
36Persuasive authority tropes"The real question is... at its core..."Say the plain point
37Signposting and announcements"Let's dive in... here's what you need to know"Just say the thing
38Fragmented headersHeading followed by a throwaway restating itCut the throwaway line
39Diff-anchored writing"This function was added to replace..."Describe the thing as it is now
40Manufactured punchlines / staccato drama"No aesthetic prior. No nostalgia..."Connect the clauses into real sentences
41Performed enthusiasm"This update is huge! We're thrilled!"State what shipped

Communication Patterns

#PatternBeforeAfter
42Chatbot artifacts"I hope this helps! Let me know if..."Remove entirely
43Cutoff disclaimers / speculative gap-filling"likely grew up in a middle-class household"State what isn't documented, or cut it
44Sycophantic tone"Great question! You're absolutely right!"Respond directly

Filler and Hedging

#PatternBeforeAfter
45Filler phrases"In order to", "Due to the fact that""To", "Because"
46Filler intensifiers"genuinely... really... truly... actually"Cut them
47Excessive hedging"could potentially possibly""may"
48Generic conclusions"The future looks bright"Cut the paragraph; end on the last concrete fact

References

Version History

  • 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

License

MIT

About

Claude Code skill that removes signs of AI-generated writing from text

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors