russian-text-quality
A Claude Code skill that finds Russian-language bugs in code: incomplete plural forms, case errors in string concatenation, terminology drift
Install
git clone https://github.com/Anic888/russian-text-quality.git ~/russian-text-quality
ln -s ~/russian-text-quality ~/.claude/skills/russian-text-qualityYou can copy the folder into ~/.claude/skills instead of symlinking.
This is third-party code. Review the repository files before installing.
What it does
The skill checks Russian strings in code and locale files against five rules. The strictest one requires all CLDR plural categories in i18next, ICU and vue-i18n keys and reports gaps as errors. Warnings cover one term translated differently across files, concatenation after words that govern a different case, and mixed comment languages. Transliterated identifiers such as polzovatel are flagged as info. It activates only when the project contains Cyrillic, and writes the report in English so non-Russian reviewers can act on it.
Who it is for. For teams whose code is in English while the UI or comments are in Russian.
Good fit when
- Before merging a PR that touches ru.json, ru.yml or ru.po
- An agent translated or refactored locale files and plurals need checking
- You want consistent terms, for example two different words for user across files
Not a fit when
- You need typography, spelling or yo/ye restoration
- You need UX copy editing rather than structural checks
Example request
Review this project for Russian text quality issues, especially plural forms in locale filesLimitations
The legacy i18next v3 _plural suffix is not supported. Concatenation and transliteration checks are heuristic and produce false positives, so they are never reported as errors. Terms are compared by suffix stripping without full morphology, and nested ICU constructs may be missed. Auto-fix exists only for plurals and only after approval.
How to disable. Delete the russian-text-quality folder or symlink from ~/.claude/skills.
Security check
- The skill consists of instructions and references
- Locale edits are applied only after approval
README in short
The README explains which Russian-language bugs linters and models miss and lists five checks with severity levels. Installation is a clone plus a symlink into ~/.claude/skills. It describes activation conditions, a sample report and a candid list of limitations. For typography and spelling the author points to separate tools such as ru-text and yaspeller. MIT license.
SKILL.md
--- name: russian-text-quality description: Use when reviewing or writing code that contains Russian-language UI strings, i18n locale files (ru.json, ru.yml, ru.po), Russian comments, or transliterated identifiers (polzovatel, tovar, kolichestvo). Triggers on mixed English-code + Russian-content projects. Does not cover typography, spelling, or ё/е. --- # Russian Text Quality Review ## Overview Detects Russian-language quality bugs that general linters and LLMs consistently miss in code: broken pluralization in i18n locale files, case-agreement bugs in string concatenation, terminology drift across files, transliterated identifiers, and inconsistent language mixing. Code-aware, not prose-focused. **Core principle:** structural Russian mistakes that survive `eslint` and type-checks but break production UIs. Prose quality is delegated to other tools. ## Activation Run this skill ONLY if BOTH conditions hold: 1. The project contains **≥10 total Cyrillic characters** across code and locale files (excluding `node_modules`, `.git`, `dist`, `build`, and `.gitignore`d paths). 2. At least one file contains **≥5 consecutive Cyrillic characters** (rules out single stray tokens). If either condition fails, respond with `Not activated — no Russian content detected` and stop. Never run on English-only projects. Full activation pseudo-code: `references/activation-logic.md`. ## What this skill checks | # | Check | Detection | Severity | Confidence | |---|---|---|---|---| | 1 | **Plural structure** — i18next/ICU/vue-i18n Russian plurals missing CLDR categories (`one`/`few`/`many`/`other`) | Deterministic parse of locale files + call sites | **Error** | High | | 2 | **Terminology drift** — same source key translated to different Russian terms across files, or known-synonym variance | Normalized value comparison | Warning | Medium | | 3 | **Concatenation case bug** — Russian preposition/verb governing non-nominative case followed by string interpolation | Heuristic regex + closed trigger list | Warning | Medium | | 4 | **Language mixing** — inconsistent comment language in a single file, or inline Russian literals outside i18n | Per-file line-language ratios | Warning | Medium | | 5 | **Transliterated identifiers** — `polzovatel`, `tovar`, `kolichestvo` etc. | Dictionary + phonotactic + file-context (3-tier) | Info | Low |
FAQ
Will it add noise on English-only projects?
No, it runs only when code or locale files contain Cyrillic, otherwise it reports that it is not activated.
How do I lock a term translation?
Copy the example glossary to .claude/russian-glossary.yml and set the preferred terms; it overrides automatic drift detection.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything