Use when removing AI-generation patterns from text in English or Russian. Auto-detects language by Cyrillic ratio and applies the matching ruleset. Trigger phrases: "humanize this", "remove AI patterns", "make this sound human", "очеловечить текст", "убрать признаки нейросети", "сделай текст живым". Honors explicit overrides like "humanize as English" / "обработай как русский". For mixed-language text, asks which ruleset to apply.
Scanned 9/1/2026
Install to Claude Code
npx -y skills add DmitriyYukhanov/claude-plugins --skill humanizer --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Humanizer?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dmitriyyukhanov-humanizer)More formats (shields.io, HTML) on the badges page.
---
name: humanizer
description: |
Use when removing AI-generation patterns from text in English or Russian.
Auto-detects language by Cyrillic ratio and applies the matching ruleset.
Trigger phrases: "humanize this", "remove AI patterns", "make this sound human",
"очеловечить текст", "убрать признаки нейросети", "сделай текст живым".
Honors explicit overrides like "humanize as English" / "обработай как русский".
For mixed-language text, asks which ruleset to apply.
allowed-tools:
- Read
- Write
- Edit
- Grep
- Glob
- Bash
- AskUserQuestion
---
# Humanizer (EN + RU auto-routing)
Remove AI-generation patterns from text. This skill bundles two MIT-licensed
upstream rulesets and routes the input to the right one based on language.
This file is a router. The actual humanization rules live in
`references/humanizer-en.md` and `references/humanizer-ru.md` and are
authoritative. Do not paraphrase, summarise, or "improve" them — load and follow.
## Process
### Step 1 — Receive input
Accept the text to humanize as: a pasted block, a file path (use `Read`), or the
current selection. If the input is unclear, ask the user once.
### Step 2 — Honour explicit override
Scan the user's request (case-insensitive) for an explicit language directive:
- **EN override** — the request contains any of: `as english`, `english only`,
`humanize in english`, `на английском`, `обработай как английский`.
- **RU override** — the request contains any of: `as russian`, `russian only`,
`humanize in russian`, `на русском`, `обработай как русский`.
If an override is present, skip step 3 and jump to step 4 with the chosen language.
### Step 3 — Detect language
Count letters in the input (ignore digits, punctuation, whitespace):
- `cyr` = number of letters matching `[А-Яа-яЁё]`
- `lat` = number of letters matching `[A-Za-z]`
- `total = cyr + lat`
Decide:
- **`total < 20`** (input too short to classify reliably) → use `AskUserQuestion`
with options "English", "Russian".
- **`cyr / total >= 0.6`** → Russian.
- **`cyr / total <= 0.1`** → English.
- **Otherwise** (mixed, Cyrillic ratio between 10 % and 60 % exclusive) → use `AskUserQuestion` with options
"Apply Russian rules", "Apply English rules", "Run both passes (RU then EN)".
### Step 4 — Load the chosen ruleset
- For English: `Read references/humanizer-en.md`
- For Russian: `Read references/humanizer-ru.md`
- For "both passes": load both. Execute RU first, then EN on the RU output.
The loaded file is authoritative. Treat its instructions as if they were yours.
### Step 4b — Russian only: resolve the ruleset's own file paths
The Russian ruleset is a thin prompt that names three companion files. Every one
of those paths is relative to *this* file, not to `references/`:
- `references/catalog.md` — the 54 patterns with before/after examples and the
marker word lists. The ruleset tells you to open it in full-edit and audit
modes. Open it there; without it you have the process but not the tells.
- `edit-log.md` — accumulated editing rules from the owner's own feedback. Read
it in the ruleset's Step 1. It ships empty, so an empty file is normal and
means there is nothing extra to apply.
- `scripts/scan.py` — the deterministic scanner the ruleset runs before auditing.
Otherwise follow the ruleset verbatim, including its fallbacks when Python or the
scanner packages are missing.
There is no English counterpart; upstream does not ship one. Skip this step for EN.
### Step 5 — Execute
Apply the diagnostic, rewrite, and audit process described in the loaded
reference verbatim. Do not skip the audit pass. Do not invent new rules.
If the user provided a writing sample for voice calibration, pass it through to
the chosen ruleset's voice-calibration section as-is, regardless of sample
language.
### Step 6 — Output
Use the output format specified by the loaded reference (typically:
draft → audit → final → list of changes). Do not change the format.
The English ruleset defines three invocation modes and the format follows from
which one applies: pasted text, a file to rewrite in place, or an embedded call
from another task, which gets the final prose and nothing else. Pick the mode
that matches how this skill was reached rather than defaulting to the first.
## Rules of the road
- The router never edits the rulesets, `references/`, or `scripts/`. They are
vendored verbatim; refresh from upstream is a separate procedure documented in
`../../../README.md`. The one file that may grow locally is `edit-log.md`, and
only by appending an entry in the format that file specifies.
- The router never invents new patterns or merges English/Russian rules.
- The scanner is advisory. Its score never overrides the ruleset's own judgement,
and a missing Python or a failed run never blocks the pass.
- "Both passes" runs RU first because RU's hard bans include em-dash removal
(which already covers EN pattern #14) — running EN first would let dashes
re-enter via RU's rewrites.
## Attribution
This skill bundles MIT-licensed work by
[blader](https://github.com/blader/humanizer) (English ruleset) and
[ilyautov](https://github.com/ilyautov/humanizer-ru) (Russian ruleset).
See `../../../NOTICE` for full attribution and pinned upstream commits.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!