Humanizer — Remove AI Writing Tells Without Changing the Facts
Humanizer is a 26-pattern editing skill for prose that sounds machine-written. It marks structural tells, rewrites in the writer's voice, and preserves every supported claim.

Humanizer
Humanizer is an editing skill for text that reads like a chatbot wrote it. It does not hunt for a banned-word list. It names 26 structural habits, ranks them by how reliably they signal machine prose, and rewrites the passage while keeping its claims.
The skill is maintained by Siqi Chen at blader/humanizer. Its patterns are adapted from Wikipedia's Signs of AI writing, maintained by WikiProject AI Cleanup.
Source and revision
| Field | Value |
|---|---|
| Maintainer | Siqi Chen (blader) |
| Canonical source | SKILL.md at d4b8127 |
| Revision inspected | d4b81278e6604e237bf32f0f7ce5c217aee94269, updated 2026-09-28 |
| Access date | 2026-10-23 |
| License | MIT (LICENSE, copyright 2025 Siqi Chen) |
| Install unit | The repository root; SKILL.md is the only file the agent loads |
What the skill actually does
The skill groups its patterns into six families:
- Staging instead of stating: not-X-but-Y contrasts, one-line closers, aphorisms, staged openers, and arguments against objections nobody raised.
- Rhythm by rule: forced triads, repeated sentence openings, dashes used as a universal connector, stacked qualifiers, decorative hyphenation, and passive constructions that hide the actor.
- Inflation and borrowed authority: overused AI words, significance padding, vague associations, shallow
-ingriders, sales language, unnamed experts, and avoidance of plainis/are/has. - Formatting by rule: bold labels, decorative headings, emoji bullets, curly quotes where the format expects straight ones.
- Chat leftovers: greetings, offers to continue, knowledge-cutoff disclaimers, headings repeated in the first sentence, and narration about how the document was assembled.
- Wrong reader: re-explaining context the reader already has, usually in a reply where the decision should come first.
The ordering matters. Patterns 1 through 5 justify an edit on a single sighting. Later patterns marked weak alone need company from other tells before the skill acts. That prevents a mechanical find-and-replace pass that strips legitimate style.
The workflow is four steps: mark the tells, draft the rewrite, check the draft against the source, then write the final version. In file mode it changes prose only and leaves code blocks, commands, paths, YAML, data, and link targets untouched. In embedded mode, for a pull request or commit message, it returns only the final text.
When to use it
- You have a draft that reads fluent but generic, and you want the structural causes named.
- You are editing a post, memo, docs page, or release note and need to keep every factual claim intact.
- You have a writing sample and want the rewrite to match that writer's sentence length, punctuation, and transitions.
- You want a review pass that flags chat residue before publishing.
When not to use it
- You want to defeat an AI detector. The project explicitly says that is not the goal, and its own README says detectors still flag most of its output.
- The text is fiction and invention is the task. The skill exempts fiction from its no-new-facts rule.
- The passage is a quotation, title, proper name, or a discussion about a phrase. The skill says to leave watched phrases alone in those contexts.
- You need fact-checking or source verification. Humanizer preserves claims; it does not establish whether they are true.
Workflow in practice
The useful mental model is that a language model picks the choice that fits the widest range of readers. A person writes for one reader and one subject, so their choices are uneven and specific. Humanizer edits toward specificity, not toward a different uniform style.
Illustrative example, not an executed run:
Draft:
This isn't just a caching change. It's a rethinking of how the application
handles state. At its core, the real question is whether teams are ready to
move beyond the old model. That is the real win.
Humanizer pass:
- "isn't just ... It's" -> not-X-but-Y contrast. State the change.
- "At its core, the real question" -> aphorism. Replace with the actual question.
- "That is the real win." -> one-line closer. Cut.
- "rethinking" / "move beyond" -> inflation. Name the mechanism.
Final:
The caching change removes the repeated state rebuild on each request. Teams
can keep the old path, but the new one avoids that work.
The final version is shorter, but the skill's check step is not "make it shorter." It asks whether the rewrite added or dropped a fact, name, number, date, quote, citation, ranking, or simultaneity claim. An unsupported addition is an error, and a lost claim is an error unless a pattern calls for cutting it.
If you supply a writing sample, the sample overrides the pattern list, including the dash rule. Without a sample, the skill takes the voice from the text type: blog posts and essays keep opinions and asides; reference, technical, legal, and factual text stays neutral.
Install
The repository is the skill, so a clone into a skills directory is a complete install.
npx skills add blader/humanizer --global --agent claude-code
This is the command documented in the upstream README. The CLI requires Node.js 22.20 or later.
Prerequisites and footprint
| Item | Detail |
|---|---|
| Runtime | Any agent that loads SKILL.md; no model-specific API |
| Files | SKILL.md plus the repository README and license |
| Scripts | None referenced by SKILL.md; the repository has a packaging validator at scripts/validate-package.py |
| Network | None at runtime |
| Credentials | None |
| Writes | Only the prose file you explicitly name in file mode |
| Context cost | About 5,200 words when the skill loads |
The text-only footprint is the main reason this is an easy skill to audit. SKILL.md makes no network calls and reads no credentials. The repository's packaging validator is development tooling, not part of the editing workflow.
Limitations
- Not a detector bypass. The skill edits for human readers; detector evasion is out of scope.
- Patterns can be deliberate. A dash, a triad, or a one-line closer may be the right choice. The weak-alone labels exist for that reason, but judgment still sits with the editor.
- Voice matching needs a sample. Without one, the skill infers a register from the text type, which may not match a specific publication.
- It is not a fact-checker. It can preserve a false claim perfectly.
- Results vary by model. The instructions are portable, but compliance with a 26-pattern checklist is not guaranteed across hosts.
- The README's blind-preference claim is the author's. It reports a 16-out-of-16 result in its own issue thread. We did not reproduce it.
Verify it yourself
-
Clone at the pinned revision and confirm the install unit:
git clone https://github.com/blader/humanizer /tmp/humanizer-review git -C /tmp/humanizer-review checkout d4b81278e6604e237bf32f0f7ce5c217aee94269 ls -la /tmp/humanizer-review -
Confirm there are no scripts, hooks, or unexpected executables in the tree.
-
Read the frontmatter and the closing "When not to act" section. The no-new-facts rule and the fiction exemption are the parts most likely to be dropped by a summarizer.
-
Run a passage through a model with the file, then diff the input and output for added or removed names, numbers, dates, quotes, and citations.
-
If detector evasion is your goal, stop. This skill does not claim it.
Review transparency
| Field | Value |
|---|---|
| Last reviewed | 2026-10-23 |
| What was inspected | Full SKILL.md, repository README, LICENSE, pinned commit metadata |
| What was not done | No install, no execution, no model comparison, no detector test, no independent benchmark |
| Reviewers | Editorial source inspection only. This is not a two-model security vetting pass. |
| Re-vet trigger | Any upstream change to SKILL.md; more than 30 days since review |
The page is an original guide. It does not reproduce the full skill text. Short quoted phrases are attributed to the source.
Related
- Skills Collection — the catalog this guide belongs to
- How to Vet an Agent Skill — the static and two-model review method
- AI SEO — the other content-workflow skill in this batch
- Self-Refine — a general revise-and-critique loop
- Agent Skills — the open standard behind the install
Related Articles & Guides
#skillsPlaywright Skill — Code-First Browser Automation for Agents
lackeyjb's Playwright Skill writes and runs reusable Playwright scripts through run.js — code-first, unlike Playwright MCP control or DevTools inspection.
#skillsUI UX Pro Max — Searchable Design Intelligence for Agents
UI UX Pro Max packages seven design skills, a local search corpus and a CLI. The core is MIT; logo/CIP and extended asset generation sit behind a paid Premium tier.
#skillsBrowser Testing with DevTools — Real Chrome Evidence Through MCP
Addy Osmani's browser-testing skill connects an agent to Chrome DevTools MCP for DOM inspection, console logs, network traces, screenshots, and accessibility checks, with explicit profile-isolation and untrusted-content rules.