ru-check
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRussian Text Quality Check
俄语文本质量检查
Review the text provided in $ARGUMENTS (or the most recent Russian text output if no arguments) using the ru-text skill.
使用 ru-text skill 审查 $ARGUMENTS 中提供的文本(如果没有参数,则审查最近的俄语文本输出)。
Where the reference files live
参考文件所在位置
This skill reads the corpus that ships with the ru-text skill, which is installed
alongside it. Locate that folder once, then read the named files from it:
- Look for a directory named whose parent directory is named
references, and which containsru-text. Every file named below sits in that folder.info-style.md - Search with file tools, never with a shell. on a pattern like
Glob, or whatever file search the host offers, then**/ru-text/references/info-style.md. This command has no use for a command line:Readis on itsBashlist, and hosts that do not implement that field still refuse it — measured in Claude Cowork on 12.08.2026, where an openingdisallowed-toolsreturned «Permission to use Bash has been denied» in red before the search found the corpus anyway. The call bought nothing and cost the reader a scare.ls - In Claude Code the plugin root is also available directly, which saves the search.
- Do not guess a path. If the folder cannot be found, say so and stop — a check run against remembered rules instead of the corpus is not this command, and reporting one as the other is the failure this whole product exists to prevent.
此 skill 读取随 ru-text skill 一起安装的语料库,该 skill 与它一同安装。先找到该文件夹,然后从中读取指定文件:
- 查找名为 的目录,其父目录名为
references,且包含ru-text。下面列出的每个文件都位于该文件夹中。info-style.md - 使用文件工具搜索,绝不使用 shell。 在类似 的模式上使用
**/ru-text/references/info-style.md,或使用宿主提供的任何文件搜索方式,然后Glob。此命令不需要命令行:Read在其Bash列表中,即使未实现该字段的宿主也会拒绝它——2026年8月12日在 Claude Cowork 中实测,开头的disallowed-tools在搜索找到语料库之前就返回了红色的「Permission to use Bash has been denied」。这个调用毫无收益,还让读者虚惊一场。ls - 在 Claude Code 中,插件根目录也可以直接访问,省去了搜索。
- 不要猜测路径。 如果找不到文件夹,请说明并停止——基于记忆中的规则而非语料库进行检查不是此命令的本意,将前者报告为后者是整个产品要防止的失败。
Two depths, one command
两种深度,一个命令
This check runs at one of two depths. Nobody chooses a depth; these rules do.
Full — the «Check order» below, whole. Run it whenever a person asked for this check
(«вычитай», «прогони ru-text», a gate that names ru-text, a golden-set run) or triage
escalated. An explicit request is never answered with triage.
Triage — for self-initiated runs only: you produced or encountered Russian text and are
checking it out of discipline, with no instruction naming ru-text. Load three things and
nothing else:
- The ru-text — its inline typography table and top stop-words. Skip if it is already in context, which on an always-on host it usually is.
SKILL.md - The «Neuroslop index» section of : from the
addenda.mdheading to the next## Neuroslop index. Not the rest of the file — the rest is ten times the size.## - Section «B. Каталог стоп-слов» of : from its
info-style.mdheading to the next## B.. Not the rest of the file.##
Then check the text: typography mechanically (straight quotes, a hyphen doing a dash's work,
for an ellipsis, an ordinary space after в, к, с, о, у, и, а, я — verify by codepoint, not
by eye); catalog stop-words including inflected forms, judging every candidate line yourself
(«данные» the noun is not «данный» the stop-word); index tells by eye.
...Triage may report only what a single line decides: typography and confirmed catalog hits.
A neuroslop tell is never a triage finding. Every AD rule carries carve-outs that live
only in the full file, and «не X, а Y» with a real antecedent is ordinary prose — flagging it
from an index alone is the false positive this command would lose the most trust for. A tell
seen in triage is an escalation trigger and nothing else.
Escalate to full when any one of these holds: a neuroslop candidate appeared · five
findings are confirmed · the text is bound for a reader (a deliverable, a publication, a
client). Escalating is silent — continue into the full procedure as though it had been asked
for.
A triage report names itself: «Быстрая проверка: типографика и стоп-слова. Полная вычитка по
корпусу не выполнялась.» Reporting triage as the full check is the failure this product
exists to prevent. No search tool on this host → no triage: run the full check.
此检查以两种深度之一运行。没有人选择深度;由规则决定。
完整 — 下面的「检查顺序」全部执行。每当有人请求此检查(「вычитай」、「прогони ru-text」、指定 ru-text 的门禁、黄金集运行)或分诊升级时运行。显式请求绝不以分诊回应。
分诊 — 仅用于自主启动的运行:你生成或遇到了俄语文本,出于纪律检查它,没有指示命名 ru-text。只加载三样东西,没有别的:
- ru-text 的 ——其内联排版表和顶部停用词。如果已在上下文中则跳过,在常驻宿主上通常如此。
SKILL.md - 的「Neuroslop index」部分:从
addenda.md标题到下一个## Neuroslop index。不是文件其余部分——其余部分是其十倍大小。## - 的「B. Каталог стоп-слов」部分:从其
info-style.md标题到下一个## B.。不是文件其余部分。##
然后检查文本:机械地检查排版(直引号、连字符代替破折号、 代替省略号、в、к、с、о、у、и、а、я 后有普通空格——按码点验证,而不是凭肉眼);目录停用词包括屈折形式,自行判断每个候选行(名词「данные」不是停用词「данный」);索引提示凭肉眼判断。
...分诊只能报告单行即可决定的内容:排版和已确认的目录命中。neuroslop 提示永远不是分诊发现。 每条 AD 规则都有只在完整文件中存在的例外条款,而带有真实先行词的「не X, а Y」是普通散文——仅凭索引标记它是此命令最会失去信任的误报。在分诊中看到的提示只是升级触发器,仅此而已。
升级到完整当以下任一情况成立:出现 neuroslop 候选 · 确认五个发现 · 文本面向读者(交付物、出版物、客户)。升级是静默的——继续进入完整流程,就像被要求的那样。
分诊报告要标明自己:「Быстрая проверка: типографика и стоп-слова. Полная вычитка по корпусу не выполнялась.」(快速检查:排版和停用词。未对语料库进行全面校对。)将分诊报告为完整检查是此产品要防止的失败。此宿主上没有搜索工具 → 没有分诊:运行完整检查。
Check order
检查顺序
-
Typography — read, then apply:
typography.md- Quotes: «» primary, „“ nested
- Dashes: — (em) in text, – (en) in ranges, - (hyphen) in compounds only
- Spaces: NBSP after single-letter words, in digit groups, before units
- Ellipsis, abbreviations, special characters
-
Anti-patterns — read, then scan for:
anti-patterns.md- Bureaucratic language and nominalization
- Passive voice overuse
- Sentence bloat
- Tautology and pleonasm
-
Writing quality — read, then apply:
info-style.md- Stop-words and filler
- Specificity and facts
- Structure and clarity
-
Domain-specific — load if text type is identifiable:
- UI/interface text →
ux-writing.md - Email/business →
business-writing.md - Needs grammar review → +
editorial-punctuation.mdeditorial-grammar.md
- UI/interface text →
-
Experience-based / neuroslop — read, then scan for the AI-generated-prose tells:
addenda.md- Manufactured antithesis (AD-6) — «не X, а Y» / «не просто X, а Y» with no antecedent
- Preemptive virtue qualifier (AD-7) — «без воды», «чётко, по делу»
- Assistant-register meta-commentary (AD-8) — «Отличный вопрос!», «Надеюсь, это помогло»
- Hollow openers (AD-9) — «давайте разберёмся», «погрузимся», «важно понимать, что»
- Declared sincerity (AD-10) — «честный разбор», «давайте будем честны»: honesty predicated of the piece. The same reflex on a single statement — «скажу честно: дедлайн сорван» — is AD-7
- Mandatory tricolon (AD-11) — «инновационный, трансформирующий, прорывной»
- Hollowed mechanism (AD-12) — «зависит от различных факторов», «свои особенности»
- Phantom attribution (AD-13) — «исследования показывают», «эксперты отмечают»
- Chat transcript as the artifact (AD-14) — the document's skeleton is a dialogue
- Search-engine addressee (AD-15) — the query phrase repeated where a pronoun would serve
- Additive pseudo-pair (AD-16) — «не только X, но и Y» where Y adds nothing
- Comma welded to a dash (AD-17) — a comma and an em dash side by side inside one sentence, both demanded by the same construction: «Отчёт, собранный за ночь, — на столе». Search by codepoint: the gap between the marks is normally the NBSP R16/R44 require before a dash, so a search written with an ordinary space finds nothing in correctly typeset text. Direct speech («Сроки поедут», — предупредила Петрова) is two constructions meeting, and a comma closing homogeneous subordinate clauses before the main clause forms a single mark with the dash — different grounds, same outcome: never this rule
- Uppercase band (AD-18) — three or more consecutive uppercase Cyrillic words of two letters or more, unbroken by a lowercase word or by a line break. Not a neuroslop tell, and it is absent from the index above on purpose: a person shouts on a keyboard with no italic key, a model does not. It belongs to this full pass and to nothing faster. One or two uppercase words are deliberate emphasis and are never flagged; abbreviations, machine text, status cells and headings do not count toward the run
The list above is a prompt for the eye, not the rule set. Two of these — AD-14 and AD-15 — are charged to the document, so ask them of the piece as a whole and not of any one sentence. Every rule has carve-outs that decide as many cases as the triggers do; they are in, and a finding raised without checking them is the false positive this command costs the most trust for.addenda.md
-
排版 — 读取,然后应用:
typography.md- 引号:«» 为主,„“ 嵌套
- 破折号:文本中用 —(em)、范围中用 –(en)、复合词中仅用 -(连字符)
- 空格:单字母词后、数字组中、单位前用 NBSP
- 省略号、缩写、特殊字符
-
反模式 — 读取,然后扫描:
anti-patterns.md- 官僚语言和名词化
- 被动语态过度使用
- 句子臃肿
- 同义反复和冗词
-
写作质量 — 读取,然后应用:
info-style.md- 停用词和填充词
- 具体性和事实
- 结构和清晰度
-
领域特定 — 如果文本类型可识别则加载:
- UI/界面文本 →
ux-writing.md - 电子邮件/商务 →
business-writing.md - 需要语法审查 → +
editorial-punctuation.mdeditorial-grammar.md
- UI/界面文本 →
-
基于经验的 / neuroslop — 读取,然后扫描 AI 生成散文的提示特征:
addenda.md- 人为对立(AD-6)—「не X, а Y」/「не просто X, а Y」没有先行词
- 先发制人的美德限定词(AD-7)—「без воды」、「чётко, по делу」
- 助手口吻的元评论(AD-8)—「Отличный вопрос!」、「Надеюсь, это помогло」
- 空洞开场(AD-9)—「давайте разберёмся」、「погрузимся」、「важно понимать, что」
- 宣称的真诚(AD-10)—「честный разбор」、「давайте будем честны」:将诚实归于作品本身。同一反射在单个陈述上——「скажу честно: дедлайн сорван」——是 AD-7
- 强制三连(AD-11)—「инновационный, трансформирующий, прорывной」
- 空洞机制(AD-12)—「зависит от различных факторов」、「свои особенности」
- 幻影归因(AD-13)—「исследования показывают」、「эксперты отмечают」
- 聊天记录作为产物(AD-14)—文档的骨架是对话
- 搜索引擎受众(AD-15)—重复查询短语而不是使用代词
- 附加伪对(AD-16)—「не только X, но и Y」其中 Y 没有增加任何东西
- 逗号焊接在破折号上(AD-17)—一个句子内部逗号和 em 破折号并排,两者由同一结构要求:「Отчёт, собранный за ночь, — на столе」。按码点搜索:标记之间的间隙通常是 R16/R44 要求在破折号前的 NBSP,因此用普通空格编写的搜索在正确排版的文本中找不到任何内容。直接引语(「Сроки поедут」, — предупредила Петрова)是两个结构相遇,而在主句之前关闭同质从句的逗号与破折号形成单个标记——理由不同,结果相同:永远不是此规则
- 大写带(AD-18)—三个或更多连续的西里尔大写单词,每个两个或更多字母,没有被小写单词或换行打破。不是 neuroslop 提示,故意不出现在上面的索引中:人在没有斜体键的键盘上大喊,模型不会。它属于这个完整流程,不属于任何更快的流程。一两个大写单词是刻意强调,绝不标记;缩写、机器文本、状态单元格和标题不计入运行
上面的列表是给眼睛的提示,不是规则集。其中两个——AD-14 和 AD-15——归属于文档,所以要从整体上询问作品,而不是任何单个句子。每条规则都有与触发器一样多的例外条款来决定案例;它们在中,没有检查它们就提出的发现是此命令最耗费信任的误报。addenda.md
Output format
输出格式
Read-only — do NOT modify the source files. is a check: it reports issues and returns the corrected text for the user to apply. It must not write to, edit, or overwrite the analysed file(s).
ru-checkHow this is enforced depends on the host, and it is worth being exact about it.
In Claude Code, removes the listed tools from the pool while the command is active — verified on 2.1.220 by attempting a write through , through redirection, through , and through a delegated subagent: every path was denied and no file was created. alone would not achieve this; that field pre-approves tools, it does not restrict them.
disallowed-toolsWriteBashMonitorallowed-toolsThe list removes the direct file-writers — , , — and the command-executing tools we identified and tested on 2.1.220: , and . is easy to miss: it runs commands too, and it follows permission rules, so a broad allow-rule silently pre-approves it while a entry does not remove it. The list names the paths we closed, not every path that exists.
WriteEditNotebookEditBashPowerShellMonitorMonitorBashBashdisallowed-tools: BashFour limits, stated plainly. A connected MCP server can expose its own write tools, which a per-tool denial list cannot know about. A named subagent whose own definition grants it is governed by that definition, not by a parent command's denial list. A later Claude Code release can add a tool this file does not name, and a hand-written list does not update itself. And on hosts that do not implement , everything above is an instruction the agent is asked to follow, not a guarantee the platform enforces.
tools: Writedisallowed-toolsWhere the mechanism ends, the contract does not: the rule is that this command returns text and never writes, on every host, whatever the tool roster happens to contain.
Returning the corrected text in the output rather than writing it keeps the command deterministic and free of side effects. Silently inserting NBSP into a source file is doubly harmful: a target that strips NBSP on import (e.g. Notion) shows the reader no change, and the same insertion breaks later exact-string tooling (grep/replace) on that file.
Return:
- Corrected text
- List of changes grouped by category (typography / style / grammar / domain)
- Severity per change: critical / high / medium / low
只读——不要修改源文件。 是一个检查:它报告问题并返回修正后的文本供用户应用。它不得写入、编辑或覆盖被分析的文件。
ru-check如何执行取决于宿主,值得精确说明。
在 Claude Code 中, 在命令激活期间从池中移除列出的工具——在 2.1.220 上通过尝试通过 、通过 重定向、通过 以及通过委派的子代理进行写入来验证:每条路径都被拒绝,没有创建任何文件。仅 无法实现这一点;该字段预先批准工具,不限制它们。
disallowed-toolsWriteBashMonitorallowed-tools该列表移除直接文件写入器——、、——以及我们在 2.1.220 上识别和测试的命令执行工具:、 和 。 很容易被忽略:它也运行命令,并且遵循 权限规则,因此宽泛的 允许规则静默地预先批准它,而 条目不会移除它。该列表列出了我们关闭的路径,不是存在的每条路径。
WriteEditNotebookEditBashPowerShellMonitorMonitorBashBashdisallowed-tools: Bash四个限制,直说。连接的 MCP 服务器可以暴露自己的写入工具,逐工具拒绝列表无法知道这些。一个命名子代理其自身定义授予 ,受该定义管辖,而不是受父命令的拒绝列表管辖。后来的 Claude Code 版本可以添加此文件未命名的工具,手写列表不会自我更新。在未实现 的宿主上,以上所有内容都是要求 agent 遵循的指令,而不是平台执行的保证。
tools: Writedisallowed-tools机制结束的地方,契约不会结束:规则是此命令返回文本绝不写入,在每个宿主上,无论工具名册碰巧包含什么。
在输出中返回修正后的文本而不是写入它,使命令保持确定性和无副作用。静默地将 NBSP 插入源文件有双重危害:在导入时剥离 NBSP 的目标(例如 Notion)向读者显示没有变化,而相同的插入会破坏该文件上以后的精确字符串工具(grep/replace)。
返回:
- 修正后的文本
- 按类别分组的变化列表(排版/风格/语法/领域)
- 每个变化的严重程度:严重/高/中/低