← ru-textCONTENT HISTORY

Update to ru-text

Snapshot Sep 30, 2026 · 23:13 UTC · version 2.3.0

Collection source: not recorded for this historical snapshot.

WHAT CHANGED · RULE-BASED ANALYSIS

First saved snapshot

No earlier snapshot is available to establish a change.

Compare saved observations

Download comparison JSON
Full technical diff · 0 changed fields
Full snapshot data
{
  "name": "ru-score",
  "description": "Score Russian text 0.0–10.0 across five dimensions: typography, clean language, grammar, structure, precision for the reader. Triggers: оцени текст, ru-score, оценка качества текста, насколько хорош текст, балл за текст. Use when the user wants a number rather than a list of findings. Never edits a file.",
  "included_files": [],
  "skill_md_contents": "---\nname: ru-score\ndescription: >\n  Score Russian text 0.0–10.0 across five dimensions: typography, clean language, grammar,\n  structure, precision for the reader. Triggers: оцени текст, ru-score, оценка качества\n  текста, насколько хорош текст, балл за текст. Use when the user wants a number rather than\n  a list of findings. Never edits a file.\nallowed-tools: Read, Grep, Glob\ndisallowed-tools: Write, Edit, NotebookEdit, Bash, PowerShell, Monitor\ncontext: fork\nuser-invocable: true\n---\n\n# Russian Text Quality Score\n\nScore the text provided in $ARGUMENTS (or the most recent Russian text output if no arguments) using the ru-text scoring rubric.\n\n## Procedure\n\n## Where the reference files live\n\nThis skill reads the corpus that ships with the **ru-text** skill, which is installed\nalongside it. Locate that folder once, then read the named files from it:\n\n- Look for a directory named `references` whose parent directory is named `ru-text`, and\n  which contains `info-style.md`. Every file named below sits in that folder.\n- In Claude Code the plugin root is also available directly, which saves the search.\n- **Do not guess a path.** If the folder cannot be found, say so and stop — a check run\n  against remembered rules instead of the corpus is not this command, and reporting one\n  as the other is the failure this whole product exists to prevent.\n\n1. **Load rubric** — read `scoring.md` for the full rubric with anchors.\n\n2. **Determine domain** — identify whether the text is UI/interface, business email, article, or general:\n   - UI text → also load `ux-writing.md` for the Reader Precision dimension\n   - Business email → also load `business-writing.md` for the Reader Precision dimension\n   - General → use `info-style.md` only\n\n3. **Evaluate each dimension separately** — score in this order:\n   - **T — Типографика** (weight 0.15): quotes, dashes, spaces, special characters per `typography.md`\n   - **Ч — Чистота языка** (weight 0.25): stop-words, bureaucratic language, clichés, passive voice per `info-style.md` + `anti-patterns.md`\n   - **Г — Грамотность** (weight 0.20): punctuation, agreement, tautology per `editorial-grammar.md` + `editorial-punctuation.md`\n   - **С — Структура** (weight 0.20): logical flow, paragraphs, transitions, heading use per `info-style.md` structure section + `addenda.md`\n   - **Ц — Точность для читателя** (weight 0.20): facts, evidence, reader benefit, actionability per domain rules\n\n4. **For each dimension** — assign a score (0.0–10.0) using the rubric anchors in scoring.md. List 1–3 specific issues, quoting the problematic text fragment.\n\n5. **Apply non-compensatory rules:**\n   - Any dimension < 3.0 → cap total at 5.0\n   - Typography < 4.0 → cap total at 7.0\n   - Grammar < 4.0 → cap total at 7.0\n   - Use the most restrictive cap when multiple conditions trigger\n\n6. **Compute composite score:**\n   ```\n   S = round₁(T × 0.15 + Ч × 0.25 + Г × 0.20 + С × 0.20 + Ц × 0.20)\n   ```\n\n7. **Short text warning** — if text is under 50 words, prepend a reliability caveat.\n\n## Score labels\n\n| Score | Label |\n|---|---|\n| 9.0–10.0 | Эталонный |\n| 7.0–8.9 | Хороший |\n| 5.0–6.9 | Средний |\n| 3.0–4.9 | Слабый |\n| 0.0–2.9 | Критический |\n\n## Output format\n\n**Read-only — do NOT modify the source files.** `ru-score` reports a score and issues; it must not write to, edit, or overwrite the analysed file(s).\n\nIn Claude Code this is hardened by `disallowed-tools`, which removes the listed tools while the command is active — verified on 2.1.220. The list removes the direct file-writers `Write`, `Edit` and `NotebookEdit`, plus the command-executing tools we identified and tested: `Bash`, `PowerShell` and `Monitor`. It names the paths we closed, not every path that exists. `allowed-tools` pre-approves tools; it does not restrict them.\n\nFour limits, stated plainly. A connected MCP server can expose write tools that a per-tool denial list cannot know about. A named subagent whose own definition grants it `tools: Write` is governed by that definition, not by this list. A later Claude Code release can add a tool this file does not name. And on hosts without `disallowed-tools` support the rule is an instruction rather than a platform guarantee.\n\nThe contract itself is behavioural and does not depend on the list: this command returns a score and never writes.\n\nThe report shape is not written twice. Read section «Output format» of `scoring.md` —\nthe mandated heading, the five Russian dimension labels, the per-cell limit of one to\nthree issues with quoted fragments, the weighted formula, the cap note, and the closing\n«Что оценка не измеряет» section — and follow it exactly.\n\nThat file is the single source of it. A copy lived here until v2.0 and sat outside the\nno-loss gate, so the two could drift and only a reader comparing them would notice.\n\nIf a dimension has no issues, write «Замечаний нет» in the remarks column.\n"
}

SHA-256: ba70f647007d0f76f80bb36dd39d2db4ba360d6a66586dff04b785b6ae4c8a68