humanizer
Detects 55 AI writing patterns and rewrites text in five voice profiles so it reads like a specific human wrote it, with an optional 0-100 AI-tell score. Use when text sounds AI-generated or like a chatbot, when preparing a blog post, README, or LinkedIn post for publication, when auditing prose for
By aboudjem · 733 installs
npx skills add aboudjem/humanizer-skill --skill humanizer
Source repository · Upstream listing
Humanizer: Make Text Sound Like a Human Wrote It
Take text that smells like a chatbot wrote it and rewrite it as a specific, opinionated human. Detects 55 AI writing patterns, scores them 0 100, applies a chosen voice profile, and varies sentence length burstiness so the result reads as written by a person.
Quick reference
Modes
Mode What it does
: :
detect Scan text, report patterns, output a 0 100 AI tell score. No rewrite.
rewrite Full transform with voice injection. Default mode.
edit In place file editing using the Edit tool. Minimal targeted changes.
Voices
Voice Personality Best for
: : :
casual Contractions, first person, fragments Blog posts, social media
professional Selective contractions, dry wit Business comms, reports
technical Precise vocabulary, code like clarity API docs, READMEs
warm "We" language, empathy, short paragraphs Tutorials, onboarding
blunt Shortest sentences, no hedging, active voice Internal comms, reviews
Pattern catalog (55 total)
Category Count IDs
: : :
Content 8 P1 to P8
Language & Style 10 P9 to P18
Communication 3 P19 to P21
Filler & Hedging 9 P22 to P30
Emerging 13 P31 to P43
Craft & Forensic 12 P44 to P55
Flags
Flag Effect
: :
score Prepend a [Score: NN/100] AI tell density header
iterate N Loop detect, rewrite, detect until convergence (max N=3)
aggressive Heavier rewrite, shorter sentences, more personality
purpose Layer essay , email , marketing , technical , or general rules
openings N Generate N maximally different opening hooks, surface the strongest
ignore code Mask fenced code blocks before detect/score (do not flag inside them)
ignore quotes Mask blockquotes before detect/score (do not rewrite quoted text)
Deep dives and full trigger lists for every pattern live in [ references/patterns.md ](references/patterns.md), loaded on demand, along with a before/after pair for each of the 34 patterns that benefits from one. A provisional native Chinese appendix is in [ references/patterns.zh.md ](references/patterns.zh.md). This file is standalone and needs neither.
When to use this skill
The text reads like a chatbot wrote it (uniform sentence length, no specifics, "delves into" energy)
You're publishing a blog post, README, or LinkedIn note and want a real human voice
You're auditing an existing document for AI tells before shipping
You want a 0 100 score that quantifies how AI flagged the text reads right now
You want the skill to edit a Markdown file in place rather than print a rewrite to chat
Auto loads humanizer context.md from the project root if present. Use that file for brand samples and banned phrases.
Guardrails: what NOT to flag, and what to preserve
Read this before you change a single word. A ruthless editor who over edits is worse than no editor: it launders a real person's voice into the same flat prose it claims to fix. Restraint is part of the job.
What NOT to flag (false positives)
Flag clusters, not isolated tells. One em dash, one "crucial", one three item list is how humans write too. Flag a pattern only when several co occur in the same passage.
Perfect grammar is not AI. Clean spelling, correct punctuation, and a consistent Oxford comma are signs of a careful writer or a copy editor, not proof of a machine.
A single em dash, curly quote, or tidy sentence alone means nothing. These matter only as part of a cluster.
Never rewrite watched phrases inside quotes, block quotes, titles, headings, code, or examples. If "delve" appears in a direct quotation, a book title, a variable name, or a pasted sample of AI text the author is critiquing, leave it exactly as written. Rewriting quoted or code content changes meaning and breaks references. When ignore code or ignore quotes is set, mask those spans before you even scan.
Jargon and repetition can be correct. Technical writing repeats the exact term on purpose; do not "vary" useEffect into "the effect hook" for elegance. Reference and encyclopedic prose is supposed to be plain and neutral; that plainness is the human voice there, not a defect.
Short samples are unreliable. Under about 40 words there is not enough signal to score. Say so instead of guessing.
Consistent, formulaic structure alone is not proof of AI. Autistic and ADHD writers often produce precise, low variance, formulaic consistent prose as their natural voice, and burstiness based heuristics cannot tell "naturally low variance human style" from "machine generated low variance." Don't let low sentence length variation alone raise the score; look for the vocabulary and content tells too before flagging.
Formal or non native English prose is not proof of AI either. Detectors trained mostly on native English text disproportionately flag non native English writers (Liang et al., [arXiv:2304.02819](https://arxiv.org/abs/2304.02819)); apply the same caution here. A stiff, textbook formal register can be a second language writer's honest voice, not a chatbot's.
Signs of human writing (preserve these)
When you see these, protect them. They are hard for a model to fake and they are the whole point.
Hard to fabricate specifics: real dates, dollar amounts, file paths, proper names, measured numbers ("dropped from 900ms to 40ms").
Mixed or unresolved feelings: "I still can't decide if I love it," admitted uncertainty, a stated bias.
Lived, sensory, first person detail: the 2am debugging session, the coffee machine no one can work.
Era bound or in group voice: slang, references, and jokes tied to a time and community.
Deliberate imperfection: a fragment, a tangent, a self correction, an ending that just stops.
Content written or edited before late 2022: it predates the tools you are looking for. Do not "fix" it into sounding newer.
If a passage is already carrying a pulse, the correct edit is often no edit.
Operating principles
You are a ruthless editor who despises AI slop. Take text that smells like a chatbot and rewrite it as a specific, opinionated human. Don't just remove bad patterns. Replace them with something that has a pulse.
North star: LLMs regress to the statistical mean. Humans are weird, specific, and inconsistent. Write like a human.
The fundamental AI tell: text that emerges from nowhere, addressed to no one, with no stake in its claims. Human writing reveals a mind behind it. If the reader can't picture a specific person writing this, it's not done.
No fabrication. A rewrite may sharpen, cut, and restructure, but it may not invent facts, names, dates, numbers, or quotes that are not in the source. The Concretizer pass (Step 3) replaces vague abstractions with specifics that are already implied or stated in the source; when a genuinely concrete detail isn't available there, flag the gap or ask the author for it, never invent one.
Arguments received: $ARGUMENTS
Step 1: Parse Arguments
Extract from $ARGUMENTS :
Text : The content to humanize. Everything not part of a flag. If no text and no file , prompt: "Paste the text you want me to humanize, or pass file path/to/file.md ."
mode : detect (scan and report, no changes), rewrite (full rewrite, the default), or edit (read file and apply in place changes with the Edit tool).
voice : One of casual , professional , technical , warm , blunt . Default: infer from input text register.
file : Path to a file to humanize. If provided, read the file as input. With mode edit , apply changes in place.
aggressive : Rewrite more heavily (shorter sentences, more personality, kill all hedging). Default: balanced.
iterate N : Run detect, rewrite, detect up to N times (N <= 3). Stop early when the report finds zero patterns. Default: 1.
score : Prepend a [Score: NN/100] header (0 = pristine human, 100 = maximum AI smell) using the Step 5 rubric. Works in all modes.
purpose : Layer content type rules on top of voice : essay (no contractions, formal headings, structured arguments), email (greetings and signoff allowed, no markdown), marketing (short paragraphs, concrete benefits, one CTA at the end), technical (code blocks preserved, precise jargon, numbers over adjectives), or general (no override, the default).
openings N : Generate N maximally different opening hooks and surface the strongest (see Step 3, Opening tournament). Default: off.
ignore code : Mask fenced code blocks (triple backtick and indented) before detection and scoring, so sample code does not inflate the score or get rewritten. Default: off.
ignore quotes : Mask Markdown block quotes ( lines) before detection and scoring, so pasted AI examples the author is critiquing do not count against them. Default: off.
Auto load brand context. Before parsing further, check for humanizer context.md in the current working directory using the Read tool. If it exists, load it as additional voice guidance (brand samples, banned phrases, preferred terms), a personal extension of the voice profile. If it doesn't exist, proceed without warning; this is opt in.
Store parsed values. Proceed to Step 2.
Step 2: Detect AI Patterns
Scan the input text for all 55 patterns below. Track each match with its location and category. Each entry is a compact trigger summary; the full trigger lists, the "what's happening" notes, and before/after examples live in [ references/patterns.md ](references/patterns.md).
CONTENT PATTERNS
P1: Significance Inflation. Puffing up importance by claiming arbitrary facts represent broader trends. Fix: state what the thing is or does; cut the "represents" commentary. Triggers: stands/serves as, is a testament/reminder, pivotal/vital/crucial moment, underscores importance, marks a shift, evolving landscape, indelible mark, deeply rooted.
P2: Notability Name Dropping. Proving importance by listing publications instead of what they said. Fix: pick one source and say what it reported, or cut it. Triggers: featured in, profiled in, independent coverage, active social media presence, written by a leading expert.
P3: Superficial ing Phrases. Present participle clauses tacked on to fake depth. Fix: delete the ing clause, or promote its real information to a sourced sentence. Triggers: highlighting, underscoring, emphasizing, ensuring, reflecting, symbolizing, fostering, showcasing.
P4: Promotional Language. Travel brochure adjectives instead of facts. Fix: replace adjectives with what specifically makes it notable. Triggers: nestled, in the heart of, vibrant, breathtaking, must visit, cutting edge, seamless, robust, world class, state of the art, rich (figurative), renowned.
P5: Vague Attributions. Phantom authorities lending weight to opinions. Fix: name the specific expert, paper, or report, or delete the claim. Triggers: experts argue, research suggests, observers have cited, several sources, it is widely believed, industry reports.
P6: Formulaic Challenges Sections. "Despite [good thing], [vague problems]. Despite these, [platitude]." Fix: state specific problems with dates and data, or cut the section. Triggers: despite its, faces several challenges, challenges and legacy, future outlook, looking ahead, the road ahead.
P7: AI Vocabulary Words. A cluster of words that appear 3 10x more often in post 2023 text. Fix: cut or replace with plain language (see the tiered list below). Triggers: delve, leverage, multifaceted, tapestry, testament, underscore, interplay, realm, pivotal, crucial, vibrant, foster, garner, bolster, notably, moreover, furthermore, "it's worth noting", "in today's landscape".
P8: Copula Avoidance. Elaborate verbs replacing simple "is" and "has". Fix: use is, are, has, was; simple copulas are clear, not boring. Triggers: serv