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.

October 22, 2026
skillshumanizerwritingeditingai-writingprose
Humanizer — Remove AI Writing Tells Without Changing the Facts

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

FieldValue
MaintainerSiqi Chen (blader)
Canonical sourceSKILL.md at d4b8127
Revision inspectedd4b81278e6604e237bf32f0f7ce5c217aee94269, updated 2026-09-28
Access date2026-10-23
LicenseMIT (LICENSE, copyright 2025 Siqi Chen)
Install unitThe 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 -ing riders, sales language, unnamed experts, and avoidance of plain is/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

ItemDetail
RuntimeAny agent that loads SKILL.md; no model-specific API
FilesSKILL.md plus the repository README and license
ScriptsNone referenced by SKILL.md; the repository has a packaging validator at scripts/validate-package.py
NetworkNone at runtime
CredentialsNone
WritesOnly the prose file you explicitly name in file mode
Context costAbout 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

  1. 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
    
  2. Confirm there are no scripts, hooks, or unexpected executables in the tree.

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

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

  5. If detector evasion is your goal, stop. This skill does not claim it.

Review transparency

FieldValue
Last reviewed2026-10-23
What was inspectedFull SKILL.md, repository README, LICENSE, pinned commit metadata
What was not doneNo install, no execution, no model comparison, no detector test, no independent benchmark
ReviewersEditorial source inspection only. This is not a two-model security vetting pass.
Re-vet triggerAny 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.