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) → useAskUserQuestionwith options "English", "Russian".cyr / total >= 0.6→ Russian.cyr / total <= 0.1→ English.- Otherwise (mixed, Cyrillic ratio between 10 % and 60 % exclusive) → use
AskUserQuestionwith 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/, orscripts/. They are vendored verbatim; refresh from upstream is a separate procedure documented in../../../README.md. The one file that may grow locally isedit-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 (English ruleset) and
ilyautov (Russian ruleset).
See ../../../NOTICE for full attribution and pinned upstream commits.