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 AI tells, or when editing a Markdown file in place. Triggers on phrases like "humanize this", "make this sound less AI", "make this sound human", "remove AI tells", "does this read like ChatGPT", and "rewrite so it does not sound AI-generated". Pure Markdown, zero dependencies, no network calls.
- Skill ID
- aboudjem/humanizer-skill/humanizer
- Publisher
- aboudjem
- Repository
- humanizer-skill
- Installs
- 0
- Files
- 6
- Synced
- Sep 23, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
aboudjem/humanizer-skill/humanizerInstalls these files- README.md
- SKILL.md
- evals/evals.json
- references/always-on-templates.md
- references/patterns.md
- references/patterns.zh.md
What this skill tells the agent
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`, 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`. 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-codeor--ignore-quotesis 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"
useEffectinto "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); 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), oredit(read--fileand 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.
Use this skill in a project
Open any RiverX project, search the Skills panel for aboudjem/humanizer-skill/humanizer, and install it in one click.
