AgentStack
SKILL verified MIT Self-run

Russian Text Quality

skill-anic888-russian-text-quality-russian-text-quality · by Anic888

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 ё/е.

No reviews yet
0 installs
7 views
0.0% view→install

Install

$ agentstack add skill-anic888-russian-text-quality-russian-text-quality

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Russian Text Quality? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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 .gitignored 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 identifierspolzovatel, tovar, kolichestvo etc. | Dictionary + phonotactic + file-context (3-tier) | Info | Low |

Full detection algorithms live in references/plural-rules.md (check #1), references/concatenation-triggers.md (check #3), and references/mixing-and-transliteration.md (checks #4 and #5). Check #2 terminology detection is described in the workflow below and in .claude/russian-glossary.example.yml.

What this skill does NOT check

Delegate these to purpose-built tools:

| Out of scope | Recommended tool | |---|---| | Typography (« », em-dash —, non-breaking spaces) | talkstream/ru-text | | Spelling | yaspeller | | ё/е restoration | eyo / eyo-kernel | | UX writing quality, translationese | talkstream/ru-text |

Review workflow

  1. Check activation. If conditions not met, stop.
  2. Detect i18n framework from package.json: i18next, react-intl/@formatjs/*, vue-i18n/@intlify/*, or none. If multiple, run all applicable detection strategies.
  3. Run checks against matching file targets. Skip checks whose file types are absent.
  4. Emit the Markdown report in the format below.
  5. Do NOT modify files without explicit user approval. Findings are suggestions except for #1 plural scaffolding, which may be auto-applied only when the user approves.

Output format

# Russian Text Review — 

## Summary
- Files scanned: N
- Russian content detected in: M files
- Findings: X errors, Y warnings, Z info

## Findings

### Errors (must fix)
#### #1 Plural structure
- [HIGH] path/to/ru.json:L — key `items.count` missing `_few`, `_many` siblings
  - **Why:** Russian CLDR requires `one/few/many/other`. Missing `_few` produces wrong form for n=2,3,4.
  - **Fix:** add `items.count_few`, `items.count_many` entries (scaffolded below).

### Warnings
#### #5 Terminology drift
- [MEDIUM] locales/ru.json vs locales/admin/ru.json — key `user` translates to `пользователь` and `юзер`
  - **Why:** inconsistent terminology confuses users and breaks search.
  - **Fix:** pick one; lock via `.claude/russian-glossary.yml`.

### Info
#### #1 Transliterated identifiers
- [LOW] src/order.ts:12 — identifier `kolichestvo_tovarov` looks like transliterated Russian
  - **Suggestion:** `product_quantity` or keep Cyrillic if that is your project convention.

## External tools we recommend
- Typography / UX writing → talkstream/ru-text
- Spelling → yaspeller
- ё/е → eyo

The "External tools we recommend" block appears only when the scan finds Russian content. On English-only projects, the skill does not run at all.

Common mistakes when using this skill

  • Running on English-only projects. Honor the activation guard. Do not bypass it to "check anyway".
  • Flagging typography, spelling, or ё/е. These are explicit non-goals — delegate, do not duplicate.
  • Treating medium-confidence heuristics as errors. Checks #3, #4, #5 emit warnings or info; never promote them to errors.
  • Auto-fixing without approval. Only #1 plural scaffolding can be offered as an auto-fix, and only after the user approves the suggested diff.
  • Matching key_plural suffixes. This skill targets i18next v4 format only. Old v3 projects using key_plural are out of scope in v1: when detected, emit a single Info finding noting the v3 file was skipped, then stop plural checks for that file.

References

  • references/plural-rules.md — CLDR Russian rules + per-framework detection algorithms (i18next, ICU, vue-i18n) with test cases. Includes Step 2.5 for locale values with count-placeholders but no plural siblings.
  • references/concatenation-triggers.md — closed list of triggers for check #3 with exclusions
  • references/mixing-and-transliteration.md — detection pseudo-code and thresholds for checks #4 and #5
  • references/transliteration-dict.yml — seed dictionary used by check #5
  • references/activation-logic.md — activation pseudo-code + test cases
  • references/examples.md — 16 before/after cases sourced from real projects
  • .claude/russian-glossary.example.yml — template for user-provided terminology glossary

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.