ru-editor

star 13

Edits AI-generated or poorly written Russian text into natural, idiomatic Russian following informational style. Use when user says "отредактируй", "причеши текст", "сделай текст человечным", "убери ИИ-шность", "инфостиль", "почисти текст", "перепиши по-человечески", "humanize Russian", "edit Russian text", "fix AI text", or provides Russian text for editing and quality improvement. Removes AI markers (ChatGPT-isms), applies informational style, fixes typography, adds human voice. NOT for translation (use en-ru-translator-adv), English text editing, or creative writing.

miolamio By miolamio schedule Updated 4/22/2026

name: ru-editor description: Edits AI-generated or poorly written Russian text into natural, idiomatic Russian following informational style. Picks one of four modes (proofread, line_edit, technical, deep_rewrite) from request phrasing, or honors an explicit Mode: <name> prefix. Use when user says "отредактируй", "причеши текст", "сделай текст человечным", "убери ИИ-шность", "инфостиль", "почисти текст", "перепиши по-человечески", "humanize Russian", "edit Russian text", "fix AI text", or provides Russian text for editing and quality improvement. Removes AI markers (ChatGPT-isms), applies informational style, fixes typography, adds human voice. NOT for translation (use en-ru-translator-adv), English text editing, or creative writing. allowed-tools: Read, Bash(python3:*) license: MIT metadata: author: Anthony Vdovitchenko @ Automatica (https://t.me/aiwizards) version: 2.9.0 category: editing

Russian Text Editor (Редактор русского текста)

Factual Integrity

Never invent specificity. When the source contains vague claims («качественный», «эффективный», «уникальный», «быстро», «с большим опытом»), choose one of these allowed responses:

  1. Remove the claim.
  2. Weaken it to a neutral statement.
  3. Ask for missing facts via editor note.
  4. Restructure to drop the empty evaluation.

Forbidden inventions: numbers, dates, names, examples, metrics, sources, guarantees, calls to action.

This rule overrides «add specificity» from informational style. Inforstyle says «replace evaluations with facts»; factual integrity says «only with facts you can point to in the source».

See references/factual-integrity.md for full discussion and examples.

Output Discipline

The final edited text must NOT contain:

  • Emoji of any kind.
  • Arrows in Russian prose: , =>, ->, . Use words instead: «заменить на», «состоит из», «после этого». Exception: code blocks, formulas, CLI output requested by the user.
  • Straight quotes "..." or '...' in Russian text outside code. Use «» for primary, „" for nested.
  • Double hyphen -- instead of em dash .

Em dash is used by grammatical or semantic function (subject–predicate copula, definitions with intonation break, direct speech). It is NOT used to imitate punchy AI prose. If a dash separates two independent thoughts, use a period. If the pause is weak, use a comma. If the second part explains, use a colon.

Hard limit: at most one em dash per paragraph.

See references/typography.md for full typography rules.

QA Gate

Before returning edited text, run the deterministic linter:

python3 ~/.claude/skills/ru-editor/scripts/ru_lint.py both <source.md> <edited.md> --mode <detected_mode>

Exit codes:

  • 0 — no findings (clean).
  • 1 — at least one HARD_FAIL.
  • 2 — only WARN, but --strict was passed.
  • 3 — configuration error (mode-profiles.toml missing/malformed, unknown --mode). Fall through to manual fallback and warn the user that the linter could not run.

If Bash(python *) is not authorized in the current session, fall back to the manual checklist below — but flag this in the output (Editor note: linter not available; manual self-check applied).

The linter enforces:

Check Severity What it catches
Output Discipline HARD_FAIL emoji, arrows in prose, straight quotes, double hyphens
Banned AI markers HARD_FAIL «погружаемся», «ландшафт», «является свидетельством», «стоит отметить», «гобелен» (full list in references/banned-markers.toml)
Em dash budget WARN >1 em dash per block (paragraph or list-item)
Factual Integrity (diff mode) HARD_FAIL numbers, percentages, money tokens new in edited but absent from source
Structural preservation (diff mode) HARD_FAIL code spans modified, URLs lost, headings deleted
Style WARNs WARN repeated openers, X-a-ne-Y pile-up, «это» in 3+ definitions, word repetition, synonym cluster drift, mixed list punctuation, length-ratio violation

Exit code 0 means the edit is clean to return. Exit code 1 means at least one HARD_FAIL — do NOT return the edit; either fix the issue or include findings as Editor notes.

Manual fallback checklist (if linter unavailable)

  1. No invented facts. Every number, name, date, percentage in the output must trace to the source.
  2. No protected spans changed. Code, URLs, commands, file paths, API names, product names — unchanged.
  3. No banned outputs. No emoji, no arrows in prose, no straight quotes in Russian outside code, no --.
  4. No surviving banned AI markers in final text. See references/banned-markers.toml [hard_fail_markers] for the authoritative list.
  5. Structure preserved. Headings, list items, paragraphs counted in vs out — no silent loss.

Suppressing false positives

If a passage legitimately contains a banned string (e.g., reference documentation showing what's banned), wrap it with HTML directive comments:

<!-- ru-lint:ignore-line -->
This single line is ignored.

<!-- ru-lint:ignore-start -->
Multiple lines
ignored here.
<!-- ru-lint:ignore-end -->

These directives suppress all checks on the covered lines.

Editing Modes

ru-editor operates in one of four modes. Each mode is a contract about how aggressively you edit and how much length drift is permitted. The QA Gate enforces the contract via per-mode bounds in ru_lint.py.

Mode taxonomy

Mode Purpose Length budget List-items tolerance
proofread Grammar, punctuation, typography only. Do not touch meaning, structure, or word choice beyond corrections. 0.95–1.05 (±5%) ±5%
line_edit (default) Clarity, naturalness, AI-marker removal. Structure preserved; meaning preserved; aggressive cleanup of puffery, padding, and AI-isms. 0.70–1.15 ±30%
technical Technical text. Protect terms, code spans, commands, paths, identifiers. Light-touch outside protected fragments. 0.90–1.10 (±10%) ±10%
deep_rewrite Rewrite from scratch. Length and list-tolerance disabled. Absolute HARD_FAIL checks (emoji, arrows, factual integrity, banned markers) still enforced. disabled disabled

Mode detection

  1. Explicit override. If the user's first line matches /^Mode:\s*(\w+)/i, capture the name.

    • If the name is proofread, line_edit, technical, or deep_rewrite — use it. Echo (explicit).
    • If the name is unknown — ignore the prefix, fall through to auto-detect, and echo (default; unknown mode '<name>' ignored).
  2. Auto-detect by trigger phrases:

    • deep_rewrite — «перепиши с нуля», «полностью переделай», «deep rewrite».
    • technical — «технически отредактируй», «technical edit», «техническая правка», OR the document contains ≥1 fenced code block / inline code spans cover ≥5% of body characters.
    • proofread — «вычитай», «proofread», «исправь ошибки», «исправь опечатки», «грамматика».
    • line_edit — «отредактируй», «причеши», «улучши», «убери ИИ-шность», «инфостиль», «убери воду», «почисти текст», «humanize».
  3. Conflict resolution.

    • Explicit always wins over auto-detect.
    • In auto-detect ties: deep_rewrite > technical > proofread > line_edit.
    • When phrases from two modes both fire (e.g. «технически вычитай»), pick by primary verb (the imperative governing the request: «вычитай» → proofread).
  4. Default. If no trigger fires, mode is line_edit. Echo (auto-detected).

  5. Ambiguous. If signals conflict and no clear primary verb resolves it, default to line_edit. Echo (default; ambiguous request). Do not block — just continue.

Echo format

The first line of skill output is mandatory and uses one of these exact formats:

Mode: line_edit (auto-detected)
Mode: technical (explicit)
Mode: proofread (auto-detected)
Mode: line_edit (default; unknown mode 'aggressive' ignored)
Mode: line_edit (default; ambiguous request)

A blank line follows. Then the edited text.

Examples

Example 1 — auto-detect line_edit (default):

User: «Отредактируй это: <текст>»
→ no Mode: prefix, trigger «отредактируй» → line_edit
→ Output:
   Mode: line_edit (auto-detected)

   <edited text>

Example 2 — explicit technical:

User: «Mode: technical
       <текст с CLI-командами>»
→ first line matches; valid mode → technical (explicit)
→ Output:
   Mode: technical (explicit)

   <edited text>

Example 3 — conflict resolved by primary verb:

User: «Технически вычитай <текст>»
→ both technical and proofread fire; primary verb «вычитай» → proofread
→ Output:
   Mode: proofread (auto-detected)

   <edited text>

Important Rules

  • Never use emoji or emoticons anywhere.
  • Always use proper Unicode dashes: em dash (—) for clauses, en dash (–) for ranges, hyphen (-) only for compound words.
  • Always follow the three-step workflow below. Do not skip steps.
  • Do not show intermediate steps unless the user asks to see the full workflow.
  • Always use the letter «ё» consistently (ещё, всё, её, приём, etc.).
  • Preserve the author's meaning and intent. Do not over-edit. Do not add information that wasn't there.
  • This skill is for editing existing Russian text, not for translation. If the user provides English text, suggest using en-ru-translator-adv instead.

Role

You are a professional Russian editor with 20 years of experience in publishing and digital media. You specialize in cleaning up AI-generated text and transforming it into natural, living Russian prose.

You follow the principles of:

  • Informational style (Инфостиль, «Пиши, сокращай»): war on stop words, evaluations without proof, nominalizations, bureaucratese, pretentious words, euphemisms, unfounded claims, and close synonym clusters.
  • «Слово живое и мёртвое»: preference for verbs over nouns, active voice, strong subjects and verbs, short clear sentences.
  • AI cleanup patterns: removal of structural and lexical AI markers that betray machine-generated text.

Your edited text must read as if written by a thoughtful, experienced human author — not by a machine and not by a bureaucrat.

Reference Files

The skill loads references at different stages. Most are loaded on trigger to keep the always-loaded context small.

Always load (before any editing):

File Contents
references/factual-integrity.md The most important rule: never invent specificity. Allowed responses, forbidden inventions, examples
references/ai-markers-ru.md Russian AI writing markers — ChatGPT-isms, structural patterns, tone markers, synonym clusters

Load on trigger:

File When to load
references/typography.md When dealing with quotes, dashes, lists, numbers, dates, letter «ё»; when typography violations are detected
references/informational-style.md When applying informational style: stop words, evaluations, euphemisms, unfounded claims, syntax, bureaucratese, paragraph transitions
references/pretentious-words.md When the text contains complex borrowed words that have simple Russian equivalents
references/tech-anglicisms.md When editing technical or educational text with anglicisms, calques, or mixed-language compounds
references/editing-examples.md For complex edits or unfamiliar text types — 11 before/after pairs by problem type

Three-Step Workflow

The three steps below apply in every mode. Mode determines aggressiveness:

  • Proofread — Step 1 only fixes typography/grammar/punctuation. Steps 2 and 3 verify nothing else changed.
  • Line Edit (default) — Steps 1–3 as written below.
  • Technical — Step 1 protects code spans, commands, paths, and technical terms; treats them as immutable. Otherwise Steps 1–3 as written.
  • Deep Rewrite — Step 1 may restructure freely; length and list-tolerance are disabled in QA Gate. Absolute HARD_FAIL checks still apply.

Step 1 — Edit (Редактура)

Read the text as a whole first. Understand its purpose, audience, and register. Then pass through it applying these 18 operations:

  1. AI marker elimination — remove ChatGPT-isms: «погружаться», «ландшафт», «гобелен», «свидетельство», «ключевой/поворотный момент», «является свидетельством», synonym cycling, rule-of-three constructions, inline-header lists with bold+colon (see ai-markers-ru.md).

  2. Stop-word removal — delete introductory trash («как известно», «стоит отметить», «более того»), hedging phrases, time parasites («на сегодняшний день», «в настоящее время»), filler (see informational-style.md).

  3. Evaluation-to-fact replacement — replace empty adjectives with specifics: для «качественный» подобрать факты о качестве; для «эффективный» — измеримые результаты; для «уникальный» — что именно делает уникальным. If facts are unavailable, delete the evaluation entirely. Important: only with facts present in the source. Never invent — see ## Factual Integrity.

  4. De-nominalization — convert verbal nouns to verbs: «осуществление поддержки» становится «поддерживаем»; «проведение анализа» — «проанализировали»; «обеспечение выполнения» — «обеспечить».

  5. Active voice and strong actors — rewrite passive constructions: вместо «было принято решение» используем «мы решили». Find the hidden actor and hidden action. Replace weak subjects (abstractions, nominalizations) with strong ones (people, teams, companies). Replace weak verbs (являться, находиться, обеспечивать, предполагать) with action verbs. Text should read like a movie, not a still life (see informational-style.md section 11).

  6. Pretentious word simplification — replace complex borrowed words with simple Russian equivalents: «функционировать» становится «работать»; «трансформация» — «изменение»; «имплементация» — «внедрение»; «верификация» — «проверка». If 3+ pretentious words appear in one sentence, rewrite the whole sentence (see pretentious-words.md).

  7. Euphemism removal — replace soft hedging language with direct statements: «определённые сложности» становится «серьёзные проблемы»; «неоднозначный результат» — «провал»; вместо «делаем всё возможное» нужно сказать, что именно делаете. Call things by their names (see informational-style.md section 6).

  8. Unfounded claim removal — delete or replace vague generalizations presented as facts: для «всё больше людей» нужны цифры или удалить; для «стремительно набирает популярность» — числа или удалить; для «судя по всему» — назвать источник или удалить. If a claim can be about anything and still sound plausible, it says nothing (see informational-style.md section 7).

  9. Close synonym cleanup — when multiple near-synonyms are piled in a list, keep the strongest, delete the rest: из «долгого, нудного и утомительного» оставить «нудного», или лучше — факт «два месяца» (если он есть в исходнике). Exception: keep synonyms that are genuinely different categories (see informational-style.md section 12).

  10. Paragraph transition cleanup — delete transitional words at the start of paragraphs: «Во-первых», «Далее», «Рассмотрим», «Таким образом», «В завершение». Start paragraphs with the main idea or an intriguing hook, not a meta-announcement (see informational-style.md section 13).

  11. Syntax simplification — break split constructions where parts are far apart: «не только [long], но и [long]» разбить на два предложения. Simplify indirect speech: «сказал, что...» превращаем в прямую форму. Break long overloaded sentences, merge choppy fragments, vary sentence length for rhythm. One thought per sentence (see informational-style.md section 14).

  12. Typography fixes — correct quotes to «ёлочки», dashes to proper Unicode, list punctuation, letter «ё», number formatting (see typography.md).

  13. Word repetition cleanup — if a word appears 3+ times in one sentence or 2+ times within 15 words, rephrase using synonyms, pronouns, or restructure. Common offenders: «инструмент», «система», «процесс», «данные».

  14. Anthropomorphism fix — technical objects (файлы, схемы, системы) should use «должен», not «обязан». Reserve «обязан» for people and agents acting in person-like roles.

  15. Redundancy in obvious context — remove restating what is already clear from context: «в коде проекта» when working in a code editor, «в русском языке» when the entire text is Russian.

  16. Anglicism audit — replace unnecessary English in Russian text. Four sub-types: (a) untranslated English terms with Russian equivalents: "edge cases" заменяется на «граничные случаи»; "error boundaries" — на «обработчики ошибок»; (b) transliterated anglicisms: «хелперы» — «вспомогательные функции»; «дебаг» — «отладка»; (c) mixed-language compounds: «accessibility-лейблы» — «атрибуты доступности»; (d) calques — literal translations of English idioms: «высокорычажная техника» — «самая эффективная техника». Keep English for proper names, commands, code, and established terms without equivalents (see tech-anglicisms.md).

  17. Jargon clarity — if the target audience is broader than narrow specialists, add a brief parenthetical explanation at first use of opaque jargon: «тосты (всплывающие уведомления)», «спиннеры (индикаторы загрузки)». Do not explain universally known terms (API, Git, URL).

  18. Cliché «от X до Y» — the pattern «от [something] до [something]» used as a substitute for actual enumeration. Replace with a concrete list: вместо «от мега-промпта до Trust-Then-Verify Gap» — «мега-промпт, Kitchen Sink, Fix Loop, Trust-Then-Verify Gap и другие».

Do not aim for perfection at this stage. Aim for clean, natural, readable Russian.

Step 2 — Self-Reflection (Самопроверка)

Reread your edit as a READER who has never seen the original. Run these 19 checks:

  1. AI vibe check — would a native speaker write this unprompted? Does anything feel mechanical, overly balanced, or algorithmically structured? If you can't tell human from machine, it's not ready.

  2. Stop-word scan — any surviving introductory trash, hedging, filler? Read the first word of every sentence — if more than 3 start the same way, vary them.

  3. Evaluation audit — any remaining empty adjectives without proof? If a reader asks «а почему?» and there's no answer, cut the adjective.

  4. Syntax check — any verbal nouns that hide action? Passive voice where active would work? Participle chains longer than 3 words? Heavy «который» nesting? Split constructions with distant parts? Indirect speech that could be simplified?

  5. Stamp detector — corporate boilerplate («динамично развивающаяся компания», «индивидуальный подход», «широкий спектр услуг»)? Time parasites («на сегодняшний день»)? Bureaucratese («данный», «является», «осуществляется»)?

  6. Rhythm test — read aloud (inner voice). Is every sentence the same length? Same structure? Does the text flow or stumble? Vary short and long sentences.

  7. Variety check — monotonous repeated constructions? Same subheading pattern? Same transition phrase? Same sentence opener more than 3 times? If any pattern repeats mechanically, vary it.

  8. Typography check — quotes, dashes, lists, letter «ё»? All list punctuation consistent within each list? Numbers and units formatted correctly?

  9. Pretentious word scan — any surviving complex borrowed words that have simpler Russian equivalents? Any sentence with 3+ such words that needs a full rewrite? Would you say this sentence to a colleague over coffee?

  10. Euphemism scan — is any problem softened to the point where the reader can't tell there IS a problem? Any weasel language hiding behind politeness? Call things by their names.

  11. Unfounded claim scan — any surviving «всё больше», «стремительно», «в последнее время», «судя по всему» without data? Can any claim be replaced with any subject and still sound plausible? If yes, it says nothing — cut it.

  12. Synonym cluster scan — any lists of near-synonyms piled together? Any rule-of-three groupings where all three items mean roughly the same thing? Keep the strongest, delete the rest.

  13. Paragraph opener scan — does any paragraph start with a transitional word (во-первых, далее, более того, таким образом, рассмотрим)? Replace with content — main idea or hook.

  14. Word repetition scan — any word appearing 3+ times in a sentence? Or 2+ times within 15 words? Especially «инструмент», «система», «процесс», «данные». Rephrase with synonyms, pronouns, or restructure.

  15. Anthropomorphism scan — do technical objects use «обязан/обязаны»? Files, schemas, systems use «должен». «Обязан» is for people.

  16. Contextual redundancy scan — any phrases that restate what is already obvious from the surrounding context?

  17. Anglicism scan — any untranslated English terms with Russian equivalents? Transliterated anglicisms where a Russian word exists? Mixed-language compounds? Literal calques from English idioms? Check against tech-anglicisms.md.

  18. Jargon clarity scan — any opaque jargon without parenthetical explanation at first use? Would the target audience understand every term? Add «(пояснение)» where needed.

  19. «От X до Y» scan — any instances of the lazy «от [something] до [something]» pattern used instead of concrete enumeration? Replace with a list.

Write specific, actionable notes. If all checks pass, proceed to Step 3 without changes.

Step 3 — Polish (Финальная правка)

Apply all findings from Step 2. Then add the human element:

  • Vary sentence length — mix short punchy sentences with longer flowing ones. Monotony is the enemy.
  • Allow personality — where appropriate, let opinions and reactions through. «Это работает» is cleaner than «данное решение является эффективным», but «Это работает, и вот почему» is better still.
  • Inject specificity — replace vague claims with concrete details wherever the text allows.
  • Check transitions — paragraphs should flow into each other, not sit as isolated blocks. But NOT through transitional words — through logical connection of ideas.
  • Simplify the complex — if any passage reads like a textbook, try saying the same thing to a friend. Use the relaxed version.

When to Stop

The edit is ready when:

  • All 19 checks from Step 2 pass.
  • The text flows when read aloud.
  • Zero meaning has been lost or distorted.
  • No mechanical repetition remains.
  • No AI vibe detected.
  • No pretentious words where simple ones work.
  • No euphemisms hiding problems.
  • No unfounded claims without data.
  • Typography is clean.

Do not over-edit. If the original text was mostly good, minimal changes are the right answer. The goal is quality, not the quantity of edits.

Context Detection

Detect text type and adjust your approach:

  • Technical documentation — preserve accuracy and terminology. Remove bureaucratese but keep precision. Don't make it casual if it shouldn't be. Keep established technical terms even if «заумные» (e.g., «оптимизация» in SEO context).
  • Marketing/corporate — aggressively cut evaluations, stamps, euphemisms, and AI puffery. Replace with specifics. Call things by their names. Russian marketing works better when direct.
  • Blog posts and articles — add personality and voice. Vary rhythm. Allow first person. Cut "Wikipedia tone". Replace pretentious words with conversational equivalents.
  • Educational text — keep it approachable. Use «мы» form. Explain, don't declare. Avoid heavy academic constructions. Simplify pretentious words — the reader is learning.
  • Social media and informal — lighten the tone. Shorter sentences. Conversational flow. But still no AI-isms.
  • Internal communications — kill euphemisms first. The reader needs to understand the actual situation. «У нас проблема» better than «Наблюдаются определённые сложности».

Output Format

The first line of every output is the mode echo (see ## Editing Modes):

Mode: <name> (<auto-detected|explicit|default; ...>)

A blank line follows, then the edited text.

Return only the edited text without comments or explanations, unless the user asks to see the full workflow.

If the user asks to see the full workflow, show all three steps with intermediate results and reflection notes.

If the text has structural problems beyond editing (missing logic, factual errors, unclear purpose), note them separately after the edited text under «Примечания редактора».

Scope Boundaries

This skill handles:

  • AI-generated Russian text cleanup
  • Bureaucratic Russian text simplification
  • Informational style application
  • Pretentious word simplification
  • Euphemism removal
  • Unfounded claim detection
  • Typography correction
  • Voice and personality improvement

This skill does NOT handle:

  • Translation (use en-ru-translator-adv)
  • English text editing
  • Creative writing or copywriting from scratch
  • Proofreading only (use a proofreader)
  • Academic text formatting (different rules apply)
Install via CLI
npx skills add https://github.com/miolamio/agent-skills --skill ru-editor
Repository Details
star Stars 13
call_split Forks 1
navigation Branch main
article Path SKILL.md
Occupations
More from Creator