ru-text
Russian text quality. Triggers: вычитай, проверь текст, поправь, отредактируй, причеши, ru-text. Typography silently on any Russian output; deeper editing on request. Info-style, editorial, UX writing, business correspondence, AI-text cleanup.
Install
npx skills add https://github.com/talkstream/ru-text/tree/main/skills/ru-text
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install talkstream-ru-text@llmmart
git clone https://github.com/talkstream/ru-text.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole talkstream/ru-text collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
ru-text — Russian Text Quality
Independent Russian text quality reference by Arseniy Kamyshev.
With gratitude to the authors whose work shaped modern Russian text standards.
Credits and recommended reading: references/sources.md
Style priority: if the user explicitly requests a specific style (casual, academic, SEO, literary, etc.), their prompt overrides these default rules where they conflict. These rules are defaults, not mandates.
Reviewing vs. rewriting: when checking or proofreading existing text or a file, return the corrected version plus a list of changes — do not silently overwrite the source file. Rewrite a file in place only when the user explicitly asks.
Someone else's words stay theirs: quoted material, code blocks and third-party text inside the user's document are reproduced as-is. Report an issue you see in them if it matters; never rewrite them.
Always-On: Typography
Apply to ALL Russian text output — silently: fix, don't announce.
| Rule | Wrong | Correct |
|---|---|---|
| Primary quotes: guillemets | "текст" | «текст» |
| Nested quotes: lapki | «"вложенные"» | «„вложенные“» |
| Em dash, NBSP before it | слово - слово | слово — слово |
| En dash for ranges, no spaces | 10-15 дней | 10–15 дней |
| NBSP after single-letter words | в начале (breakable) | в\u00A0начале |
| Ellipsis: single character | ... | … |
| Digit groups with thin spaces | 1000000 | 1 000 000 |
| Decimal comma (not dot) | 3.14 | 3,14 |
| Ordinal with hyphen | 1ый, 2ой | 1-й, 2-й |
| Numero sign | No. 5, #5 | № 5 |
| Abbreviations with NBSP | т.д., т.е. | т. д., т. е. |
| Ruble sign after number, NBSP | 1500₽ | 1 500 ₽ |
Full typography reference: references/typography.md
/ru-text:ru-score — text quality score (0–10, 5 dimensions).
Top Stop-Words (when writing or editing on request)
| Stop-word | Replace with |
|---|---|
| является | — (dash) or restructure |
| осуществлять | делать, проводить |
| в настоящее время | сейчас |
| данный | этот |
| определённый | (name the specific thing) |
| произвести оплату | оплатить |
| высококачественный | (name the specific quality) |
| был осуществлён | (active voice + actor) |
| на сегодняшний день | сегодня |
| в целях | чтобы |
Full stop-word catalog (92 entries): references/info-style.md
When to Load Reference Files
Reference files (paths are relative to this SKILL.md): references/<filename>
If the path is not resolved, search: Glob("**/ru-text/references/scoring.md") and use the parent directory.
| Task | File |
|---|---|
| Writing/editing articles, blog posts, SEO, content | info-style.md |
| Interface text, buttons, errors, hints, microcopy | ux-writing.md |
| Emails, messenger, business correspondence | business-writing.md |
| Punctuation review, comma placement | editorial-punctuation.md |
| Grammar, capitalization, agreement, pleonasms | editorial-grammar.md |
| Finding and fixing text problems, diagnostics | anti-patterns.md |
| Text scoring, quality assessment | scoring.md |
| Credits, source attribution | sources.md |
| Experience-based rules (dash overuse, etc.) | addenda.md |
Quality Checklist
Before delivering Russian text:
- Quotes: «» primary, „“ nested
- Dashes: — in text (NBSP before it), – in ranges, - only in compounds; max 1–2 per paragraph (a parallel row counts as one, dialogue dashes as none); trim to the limit, not to zero; edit a row whole or not at all
- NBSP after в, к, с, о, у, и, а, я
- Ellipsis: … (single char)
- Abbreviations: т. д., т. п. (with NBSP)
- No double spaces, no space before punctuation
Files (ru-text)
-
agents
-
gemini.yaml 177 B
interface: display_name: "ru-text" short_description: "Russian text quality — typography, info-style, editorial, UX writing, business correspondence, and AI-text cleanup" -
openai.yaml 220 B
interface: display_name: "ru-text" short_description: "Russian text quality — typography, info-style, editorial, UX writing, business correspondence, and AI-text cleanup" policy: allow_implicit_invocation: true
-
-
references
-
addenda.md 106.6 KB
# Addenda — rules added from usage experience The rules below were added later, from real editorial practice, and were not part of the plugin's initial rule set. Like the rest of the plugin, they are independently formulated; the 16 sources in `sources.md` informed the work, but no rule is taken or copied from them. They are supported by academic references. Kept separate for traceability: initial rule set vs. experiential additions. ## Table of Contents - [Neuroslop index](#neuroslop-index) - [Two rules that govern all the others](#two-rules-that-govern-all-the-others) - [AD-1. Excessive em dashes](#ad-1-excessive-em-dashes-избыточные-тире) - [AD-2. Excessive parcellation](#ad-2-excessive-parcellation-избыточная-парцелляция) - [AD-3. Patronizing explanation](#ad-3-patronizing-explanation-разжёвывание-очевидного) - [AD-4. Unprovoked rebuttal](#ad-4-unprovoked-rebuttal-возражение-без-предпосылок) - [AD-5. Subject-predicate semantic mismatch](#ad-5-subject-predicate-semantic-mismatch-семантическое-несоответствие-субъекта-и-предиката) - [AD-6. Manufactured antithesis](#ad-6-manufactured-antithesis-ложная-антитеза) - [AD-7. Preemptive virtue qualifier](#ad-7-preemptive-virtue-qualifier-непрошенная-оговорка-без-воды) - [AD-8. Assistant-register meta-commentary](#ad-8-assistant-register-meta-commentary-сервисные-реплики-ассистента) - [AD-9. Hollow opener](#ad-9-hollow-opener-пустой-зачин) - [AD-10. Declared sincerity](#ad-10-declared-sincerity-объявленная-искренность) - [AD-11. Mandatory tricolon](#ad-11-mandatory-tricolon-обязательная-триада) - [AD-12. Hollowed mechanism](#ad-12-hollowed-mechanism-выхолощенность) - [AD-13. Phantom attribution](#ad-13-phantom-attribution-неопределённая-атрибуция) - [AD-14. Chat transcript as the artifact](#ad-14-chat-transcript-as-the-artifact-диалог-с-нейросетью-вместо-текста) - [AD-15. Search-engine addressee](#ad-15-search-engine-addressee-адресат--поисковик-а-не-читатель) - [AD-16. Additive pseudo-pair](#ad-16-additive-pseudo-pair-не-только-x-но-и-y) - [AD-17. Comma welded to a dash](#ad-17-comma-welded-to-a-dash-запятая-сомкнутая-с-тире) - [AD-18. Uppercase band vs. deliberate emphasis](#ad-18-uppercase-band-vs-deliberate-emphasis-капслок-полоса-против-выделения) ## Neuroslop index A compact catalogue of the recurring tells of AI-generated Russian prose, each routed to the rule that is its canonical home. These tells skew by training era and instruction-tuning style rather than by any single vendor; a breakdown by specific model family is intentionally omitted as unverifiable and fast-dating. | Tell | Canonical home | |---|---| | Manufactured antithesis — «не X, а Y» / «не просто X, а Y» with no antecedent | AD-6 | | Declared sincerity — «честный разбор», «давайте будем честны», «рассказываю как есть» | AD-10 | | Mandatory tricolon — «инновационный, трансформирующий, прорывной» | AD-11 | | Hollowed mechanism — «зависит от различных факторов», «свои особенности» | AD-12 | | Phantom attribution — «исследования показывают», «эксперты отмечают» | AD-13 | | Chat transcript as the artifact — «Я: … / Модель: …» as the document's skeleton | AD-14 | | Search-engine addressee — the query phrase repeated where a pronoun would serve | AD-15 | | Additive pseudo-pair — «не только X, но и Y» where Y adds nothing | AD-16 | | Preemptive virtue qualifier — «без воды», «чётко, по делу», «коротко и ясно» | AD-7 | | Assistant-register meta-commentary — «Отличный вопрос!», «Надеюсь, это помогло» | AD-8 | | Hollow opener — «давайте разберёмся», «погрузимся», «важно понимать, что» | AD-9 | | Excessive em dashes — staccato dash rhythm | AD-1 | | Comma welded to a dash — «…, — …» inside one sentence | AD-17 | | Throat-clearing stop-words — «стоит отметить, что», «нельзя не отметить» | `info-style.md` §B | | Empty universal preamble — «в современном мире», «не секрет, что» | `info-style.md` §B | | Unproven-claim adjectives — «качественный», «надёжный», «эффективный» | `info-style.md` §B | | Generic conclusion — «таким образом, подводя итог» | `anti-patterns.md` | | Artificial liveliness — exclamation stacks and emoji as a substitute for detail | `info-style.md` §F | ## Two rules that govern all the others **Density raises severity; it never replaces the findings.** Several rules here treat a cluster as their main signal — AD-1, AD-2, AD-6, AD-9, AD-11, AD-16. Once a rule has decided that it fires, report every instance, individually, with its own quoted fragment, and let the count govern how far the score moves. One line saying «два и более на текст» in place of the four fragments is a loss of coverage wearing the clothes of a summary: the person fixing the text is left without the list of lines to fix. This says nothing about **whether** a rule fires. Two of the six — AD-11 and AD-16 — put density into the flag condition itself, so an isolated triple or an isolated pair is not a finding at all; that is their own text and it stands. The rule here governs what happens after a rule has decided to fire, never before. Nor is the score card a limit on what the check reports: `scoring.md` asks for one to three issues per dimension in the scored output; that is the size of a table cell, not the size of the check. `/ru-text:ru-check` lists what it found; `/ru-text:ru-score` quotes the most telling of them per dimension. Neither number licenses dropping a finding. **A document-level charge adds; it never replaces.** AD-14 and AD-15 are charged to the piece as a whole. Each absorbs only its own evidence — the repetitions that demonstrate it — and absorbs nothing else. Every ordinary finding in that text stands: stop-words, unproven claims, passive voice, punctuation, typography. Both statements exist because a measured run did the opposite: it replaced ten ordinary findings with three document-level ones, and the text came out looking better for it. --- ## AD-1. Excessive em dashes (избыточные тире) **Problem:** multiple em dashes in a paragraph create choppy rhythm, monotony, and an affected (mannered) tone. **Sources:** - Chekhov cautioned against overusing italics and dashes, treating the habit as mannered (letters/notebooks) - Rozental "Практическая стилистика": dashes should serve clear semantic function, not be default punctuation - Gramota.ru: some writers abuse dashes; the 1956 Rules of Russian Orthography note both extremes - Gorky, Dostoevsky used excessive dashes as INTENTIONAL literary device — not a model for non-literary prose - Milchin/Cheltsova: restraint in editorial formatting **Rules:** AD-1.1. Limit to 1–2 em dashes per paragraph in non-literary prose. Three or more is a signal to restructure. AD-1.2. Never use em dashes as default punctuation when a more precise mark exists: - Explanation/enumeration → colon `:` - Stronger pause between independent clauses → semicolon `;` - Aside/clarification → parentheses `()` - Complex sentence → restructure into two sentences AD-1.3. Consecutive sentences with em dashes = monotonous pattern. Vary punctuation across sentences. AD-1.4. "Dash between subject and predicate" (тире между подлежащим и сказуемым) is often skippable in conversational register — Rozental notes it's usually NOT placed in simple conversational-style sentences. AD-1.5. Test for "mannered" tone (манерность): read aloud. If dashes create a staccato rhythm that feels artificial, replace some with other constructions. AD-1.6 (what the budget counts — a parallel row is one dash). AD-1.1 is a budget on choices, and a series is one choice made once. Two or more em dashes are ONE ROW when all three hold: - they sit inside one paragraph or one list block — a row never spans paragraphs; - every dash carries the same syntactic role; - the text itself anchors them as a series. The anchor is one of: a count announced before them («решение состоит из трёх частей»); ordinals, dates or numbers standing in the same position in every member; list markup; the same word or phrase repeated after every dash. A row counts as ONE dash toward AD-1.1. **The list of anchors is closed**, and it governs the count in AD-1.1 and nothing else: AD-1.2 reaches a row whatever the count says, charged once, to the row (AD-1.7). An anchor a reader has to argue for is not an anchor — the test is a string another person can point at, not the author's statement that a series was intended. Looking enumerable is not an anchor either: «Отчёт — на почте. Правки — в комментариях. Сборка — завтра утром» has no announced count, no ordinal, no list markup and no phrase repeated after the dashes, so it is three sentences sharing a shape and not a row. That shape is AD-1.3's own territory, and AD-1.3 fires on it. Nor does repetition across a junction anchor anything: a word that closes one member and opens the next stands in two different positions rather than the same one. Two constructions stay outside this clause. A paired aside («Скилл — набор правил — помогает») is one construction spending two marks, not a series, and counts as the two it is written with. And the budget governs running prose: a table is not a paragraph and is not counted, because AD-1's signal is the rhythm of running prose and cells have no rhythm across them. AD-1.7 (a row is edited whole or left whole). Where a row is charged — because it carries the paragraph over the limit, or because AD-1.2 finds a more precise mark for it — the charge is made to the row, and the replacement applies to every member or to none. Varying the mark among members costs more than the density it cures: «Первая — очередь запросов… Вторая: переработка шага… Третья: повторный прогон…» takes away the parallel the reader was using to hold the list. Inside one row AD-1.3 does not apply — there the repetition IS the structure. Between rows, and between independent sentences, AD-1.3 stands unchanged. AD-1.8 (trim to the limit, never to zero). AD-1.1 sets a budget of one to two, not of none. A paragraph over the limit comes down to one or two dashes and stops there; a paragraph left with none, where the dashes were carrying structure, is a new defect and not a fix. Measured over ten texts on 01.08.2026: the dash count fell in seven of them, and one paragraph of three anaphoric «— потому что» went to zero — past this rule's own budget. AD-1 was the mechanic that did it, which is why the floor is written here instead of being left to judgement. AD-1.9 (marks the norm prescribes are not counted). The budget is on dashes the author chose. The dialogue dash, and the dashes that set off the author's words in direct speech — the one before them and the one resuming the speech after them, as in R19's «— Добрый день! — сказал он» and the broken-quote schema «П, — а, — п» — are prescribed and have no alternative mark: they do not count toward AD-1.1 at all. This is the reasoning AD-17.1 already applies to the same construction. Charging them would fine a text for obeying this corpus. Order of application, because four clauses now touch one number: exclude the prescribed marks (AD-1.9), then collapse rows (AD-1.6), then count what is left against AD-1.1. **Acknowledged:** the blind reading of 01.08.2026, where readers were given ten pairs without being told which side had been edited and preferred the unedited side. **Replacement strategies:** | Pattern with dash | Alternative | When to use alternative | |---|---|---| | Москва — столица России | Москва, столица России, … | Appositive, not emphasis | | Это — важно | Это важно | No emphasis needed, conversational | | Он пришёл — и замолчал | Он пришёл и замолчал | No dramatic pause needed | | Результат — рост продаж | Результат: рост продаж | Explanation follows | | Всё готово — можно начинать | Всё готово; можно начинать | Two independent clauses | | Скилл — набор правил — помогает | Скилл (набор правил) помогает | Aside, not emphasis | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Причины две. Первая — цена. Вторая — сроки. | Announced count and ordinals: one row, one dash toward the budget (AD-1.6). | | «4 августа — стенд», «11 августа — приёмка», «20 августа — отчёт» одним списком | Dates in the same position inside one list block: one row (AD-1.6). | | — Смету пересчитали к утру, — доложил прораб. | Direct speech: the marks are prescribed, not chosen (AD-1.9). | --- ## AD-2. Excessive parcellation (избыточная парцелляция) **Problem:** splitting a single clause into several independent fragments for dramatic effect produces a choppy, affected rhythm typical of online copywriting. Parcellation is a legitimate stylistic device (Розенталь, «Справочник», ГЛАВА L) — the issue is overuse in registers where it does not fit. **Sources:** - Розенталь Д. Э. «Справочник по правописанию и стилистике», ГЛАВА L — parcellation as a stylistic figure of expressive syntax - `info-style.md` section D: sentences should be compact but carry full meaning; parcellation is «неуместна» in info-style - See also AD-1: analogous staccato-rhythm diagnosis for em dashes **Rules:** AD-2.1. In informational, UX, and business-writing registers: merge parcellated fragments back into a single clause with appropriate conjunctions or punctuation. AD-2.2. In publicism: 1–2 parcellated constructions per article are acceptable as a rhythmic device; more signals overuse. AD-2.3. In literary/artistic prose: parcellation is a legitimate author's device and is not penalized. AD-2.4. Diagnostic test: read aloud. If several consecutive sentences are subject-less fragments or single-phrase rebuttals, the rhythm is staccato and likely excessive. **Examples (info-style / UX / business context):** | Wrong | Correct | |---|---| | Не шум и не артефакт. Воспроизводимый механизм. | И это не шум или артефакт, а воспроизводимый механизм. | | Не потому что злой умысел. А потому что невозможно. | …не из-за злого умысла, а потому что это невозможно. | | Расскажу последовательно, доступно, без воды. | Постараюсь объяснить доступным языком. | | Это было не случайно. Это было продумано. Каждое слово. | Это было не случайно — каждое слово продумано. | **Severity:** Low. Secondary signal in the **С — Structure** dimension (supporting **Ч — Clarity**). Cannot trigger non-compensatory caps alone. **Acknowledged:** proposed by @V8-Software in issue #9 (2026-04-16). --- ## AD-3. Patronizing explanation (разжёвывание очевидного) **Problem:** explaining what the context has already conveyed treats the reader as unable to make simple inferences. Over-explanation lowers pace, lowers trust, and adds words without information. > **Not to be confused with** *примитивизация* as used in `info-style.md` section A, point 2: «Сокращение — забота о читателе, **не примитивизация**.» There «примитивизация» means oversimplification at the cost of meaning (e.g., removing necessary qualifiers). This rule concerns the opposite failure: redundant explanation of what the sentence has already conveyed. Both rules defend reader intelligence — from different directions. **Sources:** - Editorial practice around «respect the reader's intelligence»: cf. N. Gal, Ilyakhov - Over-explaining in writing: liminalpages.com, writing.codidact.com/posts/75048 - `info-style.md` section A, point 2 — companion principle (against the opposite failure) **Rules:** AD-3.1. If a sentence already conveys a fact, do not immediately re-state it in a simpler metaphor or reformulation. AD-3.2. Numeric comparisons that are self-evident to the reader do not need verbal paraphrase. AD-3.3. Qualifiers like «то есть», «другими словами», «проще говоря» are warning signs — verify that the following clause actually adds information, not just rewords the preceding one. **Examples:** | Wrong | Correct | |---|---| | Конверсия выросла с 2% до 8%, то есть стала в четыре раза больше. | Конверсия выросла с 2% до 8%. | | Мы сократили расходы на 30% — это почти треть бюджета. | Мы сократили расходы на 30%. | | Пользователи тратят 12 минут, другими словами, больше десяти. | Пользователи тратят 12 минут. | **Severity:** Low. Secondary signal in the **Ч — Clarity** dimension. Cannot trigger non-compensatory caps alone. **Acknowledged:** proposed by @V8-Software in issue #9 (2026-04-16) as «Примитивизация»; renamed to avoid terminological collision with `info-style.md` A.2. --- ## AD-4. Unprovoked rebuttal (возражение без предпосылок) **Problem:** constructions like «а это уже…», «но на самом деле…», «однако в реальности…» presuppose a prior claim that the writer is now refuting. When no such claim exists in the preceding text, the rebuttal invents an imaginary opponent and creates a non-existent conflict (cf. straw man / non-sequitur). **Sources:** - Straw-man fallacy and non-sequitur: Grammarly; Scribbr; Excelsior Online Writing Lab - The rhetorical idea that a speaker argues against an opponent who may be real or imagined: HSE «Риторика» (nnov.hse.ru) **Trigger constructions:** - «а это уже [нечто важное/серьёзное]» - «но на самом деле…», «на самом-то деле…» - «однако в реальности…», «однако на практике…» - «но при этом нужно понимать, что…» - «только вот…» **Rules:** AD-4.1. Before any adversative construction, verify that the preceding text (within the same section or 1–2 paragraphs back) contains a claim that is actually being rebutted. AD-4.2. If no antecedent exists, rewrite as a direct positive statement — remove the pseudo-rebuttal scaffolding. AD-4.3. Legitimate use: rebutting a cited source, an earlier paragraph of the same text, or a reader expectation that the context makes explicit. **Examples:** | Wrong | Correct | |---|---| | …а это уже реальный сценарий, в котором модели постоянно обучают друг друга. | …данных, которыми модели постоянно обучают друг друга. | | Но на самом деле алгоритм обрабатывает 10 000 запросов в секунду. | Алгоритм обрабатывает 10 000 запросов в секунду. | | Однако в реальности пользователь открывает приложение раз в день. | Пользователь открывает приложение раз в день. | **Severity:** Low. Secondary signal in the **С — Structure** dimension (supporting **Ч — Clarity**). Cannot trigger non-compensatory caps alone. **Acknowledged:** proposed by @V8-Software in issue #9 (2026-04-16). --- ## AD-5. Subject-predicate semantic mismatch (семантическое несоответствие субъекта и предиката) **Problem:** using a predicate whose semantics imply volition, consciousness, resistance, or goal-directed intent, applied to a subject that has none of these. A narrow subset of the broader phenomenon of lexical-semantic compatibility (лексическая сочетаемость / семантическая валентность — Текстология.ру; studme.org). **Scope restriction (important):** this rule targets only cases where the mismatch creates a **false implication of will, consciousness, resistance, or intent**. It does **not** condemn technical or mathematical personification that has become normative terminology. **Sources:** - Лексическая сочетаемость и семантическая валентность: Текстология.ру; studme.org/43201; sci.house/russkiy-yazyik - Antropomorphism as a recognized cognitive/linguistic phenomenon: Большая Российская Энциклопедия, article «Антропоморфизм» **Rules:** AD-5.1. Do not use verbs implying conscious will, resistance, or goal-seeking for subjects that lack them (abstract entities, software without an agent, inanimate processes in non-technical prose). AD-5.2. **Exception — normative technical terminology.** In mathematical, algorithmic, ML, and general technical writing, the following are legitimate and do not trigger this rule: - сходимость алгоритма, последовательность сходится - алгоритм стремится к оптимуму / к пределу (mathematical «limit» sense) - модель обучается, сеть обучается - программа / система принимает решение - память компьютера, ответ системы, запрос пользователя Rule of thumb: if a domain textbook uses the construction, it is terminology, not anthropomorphism. AD-5.3. Apply the diagnostic: would a reader infer conscious will or resistance from the predicate? If yes and the subject lacks these properties, rewrite. If the predicate is a technical term or a well-established metaphor (already catalogued in domain usage), leave it. **Examples:** | Wrong | Correct | Why | |---|---|---| | Модель заставили генерировать числа. | Модели дали задачу генерировать числа. | «заставить» presupposes will to resist | | Программа не хочет сохранять файл. | Программа не может сохранить файл / отказывается сохранять файл. | «хотеть» implies conscious desire | | Модель осознала ошибку и исправилась. | Модель выдала ошибку и на следующей итерации — корректный результат. | «осознание» implies reflective consciousness | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Алгоритм стремится к оптимуму. | Standard optimization terminology (mathematical limit sense). | | Градиентный спуск сходится к локальному минимуму. | Standard calculus/optimization term. | | Машина решает задачу за 3 секунды. | Established technical usage — in technical writing such anthropomorphic terms rest on an objective similarity rather than literal animacy (cf. БРЭ, «Антропоморфизм»). | | Сеть обучается на 10 000 примеров. | Standard ML terminology. | **Severity:** Low. Secondary signal in the **Ч — Clarity** dimension (supporting **Г — Grammar**), with explicit technical-context exception. Cannot trigger non-compensatory caps alone. **Acknowledged:** proposed by @V8-Software in issue #9 (2026-04-16) with the example «Алгоритм стремится → Алгоритм становится». That example is preserved here as a *counter-example* illustrating the exception boundary, per deep-research review of mathematical and ML usage norms. --- ## AD-6. Manufactured antithesis (ложная антитеза) **Problem:** a symmetric contrastive-negation pair — «не X, а Y», «это не X, это Y», «X — это не Y. Это Z», «не про X, а про Y», «не потому что X, а потому что Y», «не там, где X, а там, где Y» — where the negated pole X was never voiced in the preceding text and is not a reader expectation the context made explicit. The pair invents a rejected pole only to throw the «true» pole Y into relief, manufacturing rhetorical tension and arguing against an opponent who never spoke. It is one of the strongest machine-generation tells in Russian prose: in measured corpora it appears far more densely in generated text than in live human writing, where the natural device is the opposite: asymmetric self-correction («вернее…», «то есть…», «не то чтобы X, но Y») that refines what was just said. AD-6 targets the manufactured symmetric replacement; the asymmetric refinement is always allowed. **Sources:** - Antithesis as a rhetorical figure and the cost of its hollow imitation: editorial practice, informed by Розенталь «Практическая стилистика» on противопоставление - Distinct from AD-4: AD-4 is a one-sided rebuttal of an unvoiced claim; AD-6 is a two-pole symmetric fork - Independently formulated from corpus analysis of AI-generated Russian prose **Trigger constructions:** - «не X, а Y» / «X, а не Y» — X has no antecedent within the preceding 1–2 paragraphs - «это не …, это …» / «X — это не Y. Это Z» — two equiweight definitions of one subject, often split by a period - «не про X, а про Y» / «дело не в X, а в Y» / «вопрос не в X, а в Y» / «суть не в X, а в Y» — the topic swapped through a phantom rejected topic - «не просто X, а Y» — the hype escalation; flag on the AD-6.1 test, especially when Y is itself inflated («целый», «настоящий», «полноценный»). Hype in Y is a signal, not a standalone trigger - «не потому что X, а потому что Y» — a cause X that no one supposed - «не там, где X, а там, где Y» — a locative pseudo-antithesis with no premise - «не паранойя и не „всё видят“» — a pre-emptive string negating labels nobody put forward - a cluster of two or more such pairs within ~150 words — density is the strongest signal **Rules:** AD-6.1. Flag only when all three conditions hold (any one failing → leave): (1) **no antecedent** — X was not voiced in the preceding 1–2 paragraphs and is not an explicit reader expectation; (2) **symmetry** — X and Y form an equiweight binary of comparable rank and parallel grammar, not a narrowing; (3) **zero increment** — drop the «не X» clause and no fact is lost, Y stands whole. AD-6.2. Rewrite a flagged pair as a direct positive statement: keep Y, drop the phantom X. «X — это не Y, а Z» → «X — это Z». Do not trade one machine construction for another — removing «не X, а Y» must not introduce «но на самом деле Y» (that is AD-4). Carry the assertion with a fact, a number, an image, or rhythm. AD-6.3. If the contrast is genuinely needed, earn it: let X be voiced first as a real thesis, a citation, or a reader expectation the context made explicit (the AD-4.3 mechanism). With an antecedent in place, «а Y» is a legitimate antithesis. AD-6.4. Asymmetric self-correction is never flagged: «вернее…», «то есть…», «по сути…», «не то чтобы X, но Y». Here X is physically present in the preceding clause and the second clause narrows or qualifies the first (refinement, not replacement). AD-6.5 (quota). Headings: **0** — antithesis in a heading is the loudest tell and reads as clickbait. Sub-headings and leads: rare, and only with a real antecedent in the body (default 0). Body: **0–2** legitimate pairs per article (antecedent present, or concrete data on both poles). Manufactured pairs are always 0 regardless of the limit; self-corrections and antecedent-backed antitheses are not counted toward it. AD-6.6. Single-count with neighbours. A phantom contrast can also read as AD-4 (one-sided rebuttal) or AD-2 (parcellation when split on periods). Count one violation per fragment: AD-6 takes precedence for a symmetric two-pole fork; a one-sided «но на самом деле…» with no named counter-pole stays AD-4. Do not double-charge Structure. AD-6.7 (scope of strengthening). The trigger set now includes «не просто X, а Y» and «вопрос/суть не в X, а в Y». Two look-alikes are NOT auto-flagged: «не столько X, сколько Y» (a degree-narrowing, cf. AD-6.4) and «важно не X, а Y» without an antecedent (often a real reader priority). A cluster of manufactured pairs bites harder in **С — Structure** (see `scoring.md`); the carve-outs hold — asymmetric self-correction (AD-6.4) and the 0–2 legitimate antecedent-backed body pairs (AD-6.5) are never penalised, and the construction is never banned outright. AD-6.8 (the quota is not a finding). AD-6.5 sets how many pairs a text may carry; it is not a line to report in place of them. Report each manufactured pair with its own fragment and let the count raise the weight in **С — Structure**. In a measured run a checker reported «два и более на ~150 слов» and dropped one of the pairs it was counting. **Examples:** | Wrong | Correct | |---|---| | Это не баг, а фича. | Так и задумано. | | Это не про скорость, а про надёжность. | Это про надёжность. | | ИИ — это не инструмент. Это образ мышления. | ИИ меняет то, как я думаю о задаче. | | Дело не в модели, а в промпте. | Всё решает промпт. | | Не медленно, а быстро. | Отвечает за 200 мс. | | Это не просто инструмент, а целая экосистема. | Это экосистема: редактор, отладчик, пакетный менеджер. | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Хочу и буду. Вернее, буду, когда хочу. | Asymmetric self-correction: X is present, the second clause narrows it. | | Это не неуверенность — это точность мышления вслух. | The negated pole is a real reader misreading the context invites (antecedent satisfied). | | Выросло не на 2%, а на 40%. | Both poles carry data; deletion loses information. | | Не мытьём, так катаньем. | Fixed idiom. | | Не оферта, а приглашение делать оферты. | Legal formula where the binary is operative semantics. | | Не столько баг, сколько недокументированное поведение. | Degree-narrowing («не столько… сколько»): X is present and partly true, the clause refines rather than replaces (cf. AD-6.4). | | Он сделал это не просто так, а с умыслом. | «не просто так» is a fixed idiom («for a reason»), not the «не просто X, а Y» hype escalation. | **Severity:** Medium — the manufactured antithesis is the single strongest machine-generation tell in this addenda set, and density compounds fast. Primary signal in the **С — Structure** dimension (supporting **Ч — Clarity**), reflected in the С rubric anchors. A cluster of manufactured pairs materially lowers the С score; a single antecedent-backed pair does not. Still cannot, by itself, trigger a non-compensatory cap — that stays reserved for the hard dimensions and the global < 3.0 floor. **Acknowledged:** identified from corpus analysis of AI-generated Russian prose (2026-06); the contrastive-negation antithesis runs at high density in machine drafts and near-zero in human reference corpora. --- ## AD-7. Preemptive virtue qualifier (непрошенная оговорка «без воды») **Problem:** a trailing manner-flourish that asserts the author's virtue by denying a fault the reader never raised — «без воды», «без виляния», «без лишних слов», «начистоту», «честно говоря», «прямо скажем», «не побоюсь этого слова», «и без всякой магии». The statement reassures the reader against a vice nobody suspected, so the qualifier carries no information and only performs sincerity. It is a cousin of AD-4: where AD-4 rebuts an unvoiced external claim, AD-7 denies an unvoiced fault of the author's own delivery. The same flourish also appears in positive polarity — «чётко, по делу», «коротко и ясно», «простыми словами», «разложу по полочкам» — naming a delivery virtue the text should simply demonstrate; it is flagged identically. Virtue is shown by the writing, never announced. **Sources:** - Telling vs. showing, and self-praise as an empty signal: editorial practice, informed by Нора Галь «Слово живое и мёртвое» on needless self-qualification - Adjacent to AD-4 (unprovoked rebuttal) and AD-3 (patronizing explanation) - Independently formulated from corpus analysis of AI-generated Russian prose **Trigger constructions:** - «без воды» / «без виляния» / «без лишних слов» / «без обиняков» — a manner-flourish denying a vice of delivery - «честно говоря» / «начистоту» / «прямо скажем» / «не побоюсь этого слова» — announced sincerity - «скажу честно» / «если честно» / «честно» / «по-честному» / «не буду врать» / «откровенно говоря» / «положа руку на сердце» — the same announced sincerity in the forms a model reaches for most. Where the sincerity is predicated of the whole piece rather than of one statement — «честный разбор», «давайте будем честны» — the home is AD-10; charge the fragment once (AD-10.6) - «и без всякой магии» / «без всяких фокусов» / «без нервов» appended to a claim about one's own product or method - «чётко, по делу» / «коротко и ясно» / «простыми словами» / «разложу по полочкам» / «на пальцах» — a positive-form flourish praising the author's own delivery (the polarity twin of «без воды») - a self-praise tricolon about one's own product or method — «быстро, качественно, надёжно» — where each adjective is itself an unproven claim (cf. `info-style.md` §B) and the rule-of-three stacking is the added tell - a virtue adverb stacked on a self-statement where deleting it loses no fact **Rules:** AD-7.1. Flag a preemptive virtue qualifier — whatever its surface form, including a «без [vice]» phrase, announced sincerity in any syntactic form (parenthetical «честно говоря», finite verb «скажу честно», bare adverb «честно»), a positive-form delivery flourish, a self-praise tricolon, and a virtue adverb stacked on a self-statement — when it (1) characterises the author's own product, delivery or method, (2) answers an objection the text never raised, whether by denying the vice or by asserting its opposite, and (3) carries no information — deleting it loses no fact. The carve-outs of AD-7.3, AD-7.4, AD-7.5 and AD-7.7 apply to every branch of this test, the positive-polarity branch included: an informative «без», a genuine epistemic qualifier, a speaker inside the text, a qualifier previewing concrete content that immediately follows, and an established genre or rubric label are not flagged. AD-7.2. Rewrite by deleting the qualifier and letting the statement stand; the virtue is demonstrated by the writing. «Соберу мысль, без виляния» → «Соберу мысль». AD-7.3. Allow informative «без»: «кофе без сахара», «работает без интернета», «ноль vi.*-моков, без заглушек», «без регистрации» — here «без» names a real removed ingredient, dependency, or feature, not a manner. AD-7.4. Allow a genuine epistemic qualifier that carries information: «строго говоря, это аппроксимация», «по сути» when it narrows the claim (cf. AD-6.4). These calibrate meaning; they do not advertise sincerity. AD-7.5 (register — whose voice it is). The carve-out holds when the construction belongs to a **speaker inside the text**: a line of dialogue, a quotation, an interviewee, a character. «— Скажу честно, я не знаю, — ответил инженер» is speech and is not flagged. It does **not** hold when the author says it about their own text, in any register — an author addressing the reader in a conversational tone is still the author, and «скажу честно» in a lead is the self-promotional flourish AD-7.1 describes, not spoken connective tissue. This is a deliberate narrowing: the earlier wording exempted the conversational register as such, and the assistant register — a monologue written to sound like speech — fell straight through it, which is how a construction listed among the triggers went unflagged for a year. AD-10.4 is the canonical statement of this boundary; it governs both rules, and is stated there in full because a rule read on its own must decide on its own. AD-7.6. Single-count with neighbours. A «без [vice]» flourish can also be caught by AD-2 (parcellation / filler rhythm in Structure) — the «без воды» tail in «Расскажу последовательно, доступно, без воды» is one fragment, not two faults. Count one violation per fragment: charge it to AD-7 (**Ч — Clarity**) when the defect is the empty self-virtue, to AD-2 (**С — Structure**) when the defect is the staccato or filler rhythm. Never double-charge the same fragment across Ч and С. AD-7.7. Positive-form delivery self-praise is flagged under AD-7.1: it is the positive-polarity branch of clause (2), and two carve-outs apply to it specifically. «Объясню чётко, по делу» → «Объясню» (then actually do). Do NOT flag a qualifier that previews concrete content that immediately follows: «Объясню коротко: значение лежит в стеке» carries information about what comes next and stays. An established genre or rubric label — a column or book title «… на пальцах», «… простыми словами» — is a recognised popular-science convention, not a delivery flourish, and is not flagged. AD-7.8 (single-count with info-style §B). The unproven-claim tricolon «быстро, качественно, надёжно» is also three §B unproven adjectives (`info-style.md` §B, «качественный»/«надёжный»/«эффективный» family). Count it once in **Ч — Clarity**: charge AD-7 when the defect is the self-virtue rule-of-three, or info-style §B when the defect is the missing evidence per the domain brief — never both for the same fragment. **Examples:** | Wrong | Correct | |---|---| | Соберу мысль, без виляния. | Соберу мысль. | | Отвечу честно, без воды: дедлайн сорван. | Дедлайн сорван. | | Скажу прямо, без обиняков: тест не проходит. | Тест не проходит. | | Это работает, и без всякой магии. | Это работает. | | Max 20× закрывает запрос начисто, без нервов. | Max 20× закрывает запрос. | | Объясню чётко, по делу, без воды. | Объясню. | | Расскажу простыми словами, разложу по полочкам. | Расскажу. | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Кофе без сахара. | «без» names a real removed ingredient. | | Ноль vi.*-моков — без заглушек. | «без» names a real removed thing. | | Сервис работает без интернета. | «без» names a real capability. | | Строго говоря, это аппроксимация. | Epistemic qualifier carrying real information. | | Объясню коротко: значение лежит в стеке. | «коротко» previews concrete content that immediately follows (AD-7.7). | | Работает быстро: ответ за 200 мс. | A speed claim backed by a number, not a self-virtue flourish. | **Severity:** Low. Secondary signal in the **Ч — Clarity** dimension (supporting **С — Structure**). Cannot trigger non-compensatory caps alone. **Acknowledged:** identified from corpus analysis of AI-generated Russian prose (2026-06); the «без [vice]» self-virtue flourish recurs in machine drafts and reads as announced rather than demonstrated quality. --- ## AD-8. Assistant-register meta-commentary (сервисные реплики ассистента) **Problem:** a chatbot-persona flourish that addresses the reader as a live interlocutor or narrates the helping transaction instead of carrying the subject — a sycophantic acknowledgement of the question («Отличный вопрос!», «Прекрасная идея», «Вы абсолютно правы»), or an assistant sign-off offering further help («Надеюсь, это помогло», «Готов помочь», «Обращайтесь, если что»). It breaks the fourth wall of written prose: it talks about the helping exchange rather than delivering content. A cousin of AD-7 — both perform a stance instead of demonstrating it — but distinct in that AD-7 praises the text's quality while AD-8 performs the assistant's service persona. **Sources:** - Telling vs. showing, and respect for the reader's time: editorial practice, informed by Нора Галь «Слово живое и мёртвое» - Adjacent to AD-7 (preemptive virtue) and to business-writing email-closing norms - Independently formulated from corpus analysis of AI-generated Russian prose **Trigger constructions:** - «Отличный вопрос!» / «Прекрасный вопрос» / «Хороший вопрос» / «Прекрасная идея» / «Вы абсолютно правы» — a sycophantic acknowledgement of the reader as interlocutor - «Надеюсь, это помогло» / «Надеюсь, было полезно» / «Готов помочь» / «Обращайтесь, если что» / «Если будут вопросы — спрашивайте» — an assistant sign-off offering further help - «Сейчас всё объясню» / «Давайте я расскажу» narrating the helping process where no real internal cross-reference is meant **Rules:** AD-8.1. Flag a flourish that (1) addresses the reader as a conversational interlocutor or narrates the helping transaction, and (2) carries zero subject content — deleting it loses no fact and the surrounding text stands whole. AD-8.2. Rewrite by deleting the flourish: open with the answer, end on the last substantive point. «Отличный вопрос! Давайте посмотрим…» → start with the answer. AD-8.3. Cross-reference, not double-charge. A genuine call to action with a real channel in correspondence — «пишите на support@…», «звоните в будни» — is business-writing territory, and an over-bloated email closing is already covered (cf. `business-writing.md:158`, `anti-patterns.md:90`). AD-8 targets the persona leak into article or documentation prose, not a real email CTA; charge a given fragment once. AD-8.4 (register carve-out). Not flagged in genuine live dialogue, chat-support exchanges, or interview and quoted registers, where the speaker is responding to a real interlocutor: a support reply «Спасибо за обращение! Подскажите номер заказа», or «„Хороший вопрос“, — ответил инженер», is natural discourse (cf. AD-2.3, AD-7.5). A standalone «Готов помочь» in a real contact or footer block is a genuine offer, not meta-commentary. A sincere authorial wish in a book preface, foreword, or acknowledgements («надеюсь, книга окажется полезной») is a conventional register, not a chat-persona leak. The target is the assistant persona injected into monologue or educational prose, not a one-way FAQ that answers anticipated questions. AD-8.5. Single-count with neighbours. A sign-off that also reads as filler rhythm can be caught by AD-2; charge the empty-persona defect to AD-8 (**Ч — Clarity**), the staccato or filler defect to AD-2 (**С — Structure**). Never double-charge the same fragment. **Examples:** | Wrong | Correct | |---|---| | Отличный вопрос! Давайте разберёмся. | (delete; open with the answer) | | Вы абсолютно правы, и вот почему. | Вот почему. | | Надеюсь, это было полезно. Обращайтесь! | (delete; end on the last substantive point) | | Готов помочь с любыми вопросами по теме. | (delete) | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Спасибо за обращение! Подскажите номер заказа. | Real support dialogue with a live user. | | Если остались вопросы по договору — пишите на support@example.com. | Genuine CTA with a real channel (cf. business-writing.md:158). | | «Хороший вопрос», — ответил инженер. | Quoted dialogue / interview register. | | Вы правы: в расчёте действительно ошибка. | A genuine concession in real correspondence, carrying a fact. | **Severity:** Low. Secondary signal in the **Ч — Clarity** dimension (supporting **С — Structure** at lead and closer position). Cannot trigger non-compensatory caps alone. **Acknowledged:** identified from corpus analysis of AI-generated Russian prose (2026-06); the assistant-persona flourish leaks the chat register into monologue text and reads as service performance rather than content. --- ## AD-9. Hollow opener (пустой зачин) **Problem:** an opening or transitional flourish that announces explanation instead of delivering it — «давайте разберёмся», «давайте погрузимся», «копнём глубже», «разложим по полочкам», «важно понимать, что», and «итак» used as filler. The lead carries no fact; it only clears the throat before the real first sentence. It works against the inverted pyramid (`info-style.md` §D: the main point goes first, and the first sentence is the paragraph's thesis). The strongest signal is density — a cluster of such openers, one per paragraph, padding a text that never quite begins. **Sources:** - Main point first, first sentence as thesis: `info-style.md` §D (structure) - The throat-clearing openers «стоит отметить, что» / «не секрет, что» are already catalogued as stop-words in `info-style.md` §B (see AD-9.3) - Independently formulated from corpus analysis of AI-generated Russian prose **Trigger constructions:** - «давайте разберёмся» / «давайте погрузимся» / «копнём глубже» / «разложим по полочкам» — a narrated descent into the topic with no content - «важно понимать, что» / «здесь важно понять» / «нужно понимать» — a hedged preamble before a claim - «итак,» / «как известно,» used as a paragraph opener that introduces nothing new - a lead whose only content is the promise to explain - the strongest signal: a cluster of two or more such openers within a short section (~200 words) **Rules:** AD-9.1. Flag an opener or transition that (1) announces explanation rather than delivering it, and (2) carries zero increment — deleting it loses no fact and the next sentence stands as the real lead. A cluster of two or more hollow openers in a paragraph or short section is the primary signal; an isolated instance is weak. AD-9.2. Rewrite by deleting the flourish and promoting the first substantive sentence to the lead (`info-style.md` §D). AD-9.3 (single-count with info-style §B). The throat-clearing openers «стоит отметить, что», «следует подчеркнуть», «нельзя не отметить», «не секрет, что», «в современном мире» are already stop-words in `info-style.md` §B — apply them there and count once. AD-9 adds the dive-in family («давайте разберёмся», «погрузимся», «важно понимать») not listed in §B, plus the cluster signal. Never charge one fragment to both §B and AD-9. AD-9.4 (carve-out — genuine connective). «Итак» as a real summative connective that closes a reasoning chain, or a resumptive connective that picks up a narrative thread (cf. `editorial-punctuation.md:119`), is not flagged; only the empty opener «Итак,» that introduces nothing. AD-9.5 (carve-out — real tutorial). «Давайте разберём» / «давайте посмотрим» in a genuine step-by-step walkthrough, where the next sentence actually begins with concrete steps, is not flagged. The target is the decorative promise with no follow-through. AD-9.6 (carve-out — informative «важно»). «Важно понимать разницу между TCP и UDP — от неё зависит выбор протокола» carries a real consequence and is not flagged (analogous to AD-7.4). Flag only the empty hedge. AD-9.7 (carve-out — dialogue register). «Давайте разберёмся» / «давайте посмотрим» in genuine live dialogue or a quoted or interview register, where a real interlocutor proposes to look into something together, is natural speech, not a hollow opener (cf. AD-7.5, AD-8.4). **Examples:** | Wrong | Correct | |---|---| | Давайте разберёмся, как это работает. | Алгоритм делает три вещи: … | | В этой статье мы погрузимся в мир машинного обучения. | Машинное обучение… (open with the subject) | | Важно понимать, что скорость зависит от железа. | Скорость зависит от железа. | | Итак, что же мы имеем? | (delete; state what we have) | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | Итак, из трёх замеров следует: задержка не выше 200 мс. | Genuine summative connective closing a chain (cf. editorial-punctuation.md:119). | | Давайте разберём по шагам. Шаг 1: откройте файл. | Real tutorial; the next sentence delivers concrete steps. | | Важно понимать разницу между TCP и UDP — от неё зависит выбор протокола. | The «важно» clause carries a real consequence (cf. AD-7.4). | **Severity:** Low. Secondary signal in the **С — Structure** dimension (supporting **Ч — Clarity**). A cluster lowers Structure; an isolated opener does not. Cannot trigger non-compensatory caps alone. **Acknowledged:** identified from corpus analysis of AI-generated Russian prose (2026-06); the hollow opener announces explanation instead of leading with the point and clusters densely in machine drafts. --- ## AD-10. Declared sincerity (объявленная искренность) **Problem:** the text asserts its own honesty as a property of itself — «честный разбор», «давайте будем честны», «рассказываю как есть», «без прикрас», «вся правда о…». Sincerity is what a reader infers from what a text does with an inconvenient fact; announced, it is a claim with no evidence, and it takes the place of the evidence that would have earned it. AD-7 catches the same reflex attached to one statement («скажу честно: дедлайн сорван»); AD-10 catches it when honesty is predicated of the piece or of the block that follows. The label form is the louder of the two and is graded accordingly, and giving it its own name is what lets the carve-out be stated once instead of twice. **Sources:** - Telling vs. showing, and self-praise as an empty signal: editorial practice, informed by Нора Галь «Слово живое и мёртвое» - Platform moderation practice treats stylistic resemblance as sufficient grounds on its own, without proof of generation — Habr's site rules as they stood on 27.07.2026, the version announced in the platform's own post of 17.06.2026 (paraphrased, not quoted); this is external evidence that a style-level rule has a real object - Adjacent to AD-7 (delivery-virtue qualifier) and AD-13 (phantom attribution): all three perform a stance instead of demonstrating it - Independently formulated from the 2026 review of AI-generated Russian prose **Trigger constructions:** - «честный разбор» / «честный обзор» / «честно о…» / «вся правда о…» / «без прикрас» — the piece labelled honest, most often in a title - «давайте будем честны» / «будем откровенны» / «скажем прямо» opening a paragraph or a section - «рассказываю как есть» / «пишу как думаю» / «без купюр» / «начистоту» - a title or lead whose only claim is the author's own sincerity - the strongest signal: the label in a heading, where the reader has been given nothing yet against which to weigh it **Rules:** AD-10.1. Flag a construction when all three hold: (1) it predicates honesty, frankness or candour of the text, of the author's account, or of the block that follows; (2) the author is speaking about their own text; (3) it carries no fact — deleting it loses nothing. AD-10.2. Rewrite by deleting the label and letting the inconvenient fact do the work it was standing in for. «Честный разбор: почему сроки срываются» → «Почему сроки срываются» — and then name the reason. AD-10.3. Honesty is demonstrated specifically: an admitted mistake, a number that costs the author something, a stated limit of what is known. Where the demonstration is present the label is redundant; where it is absent the label is false. AD-10.4 (carve-out — the speaker inside the text). Not flagged when the construction belongs to a speaker inside the text: a line of dialogue, a quotation, an interviewee, a character. «— Скажу честно, я не знаю, — ответил инженер» is speech, not a label. This is the canonical statement of the boundary the narrowed AD-7.5 applies: the carve-out protects a voice inside the text, never the author speaking about their own text. AD-10.5 (carve-out — informative «честный»). «Честная цена» meaning a price with no hidden fees, «честный вес», «честный тест» meaning one whose method is published — here «честный» names a checkable property of the object, not a virtue of the prose (compare AD-7.3). AD-10.6 (single-count with AD-7). One fragment, one charge. AD-10 takes it when honesty is predicated of the text or frames what follows; AD-7 takes it when the qualifier modifies a single statement in the flow. Never both. **Examples:** | Wrong | Correct | |---|---| | Честный разбор: почему проекты срываются | Почему проекты срываются | | Давайте будем честны — планировать умеет не каждая команда. | Из двенадцати команд в срок уложились три. | | Рассказываю как есть, без прикрас. | (delete; then tell it) | | Вся правда о подписках. | Что входит в подписку и что нет. | **Counter-examples (do NOT flag):** | Acceptable | Reason | |---|---| | — Скажу честно, я не знаю, — ответил инженер. | Speech of a person inside the text (AD-10.4). | | Честная цена: 4 900 ₽, доставка входит. | «Честный» names a checkable property of the object (AD-10.5). | | Мы ошиблись в расчёте на 30% и потеряли квартал. | Honesty demonstrated rather than announced (AD-10.3). | | Строго говоря, это аппроксимация. | Epistemic qualifier carrying information (cf. AD-7.4). | **Severity:** Medium — the label form is the most conspicuous member of the declared-sincerity family and the one a reader notices first. Primary signal in the **Ч — Clarity** dimension (supporting **Ц — Reader precision**), reflected in the Ч rubric anchors. A label in a heading, or two instances in one text, materially lowers Ч; a single one in the body does not. Still cannot, by itself, trigger a non-compensatory cap. **Acknowledged:** identified in the 2026 neuroslop review, from a reader-complai -
anti-patterns.md 12.5 KB
# Russian Text Anti-Patterns Catalog of common mistakes organized by severity. Format: wrong|correct. ## Contents - [Critical: Typography (15 entries)](#critical-typography-15-entries) - [Critical: Канцелярит и номинализация (32 entries)](#critical-канцелярит-и-номинализация-32-entries) - [High: Vague Adjectives (11 entries)](#high-vague-adjectives-11-entries) - [High: Passive Voice (10 entries)](#high-passive-voice-10-entries) - [High: Sentence Bloat (15 entries)](#high-sentence-bloat-15-entries) - [Medium: False Intensifiers (11 entries)](#medium-false-intensifiers-11-entries) - [Medium: Tautology/Pleonasm (22 entries)](#medium-tautologypleonasm-22-entries) - [Low: Anglicisms (11 entries)](#low-anglicisms-11-entries) - [Low: Archaic (6 entries)](#low-archaic-6-entries) - [Low: Overly Formal (5 entries)](#low-overly-formal-5-entries) - [Summary](#summary) ## Critical: Typography (15 entries) Full typography rules: see [typography.md](typography.md). Top 5 most frequent crimes: Wrong|Correct "кавычки" (straight)|«кавычки» (guillemets «ёлочки») Дефис вместо тире: "Москва - столица"|Москва -- столица (em-dash) Три точки "..."|Многоточие … (U+2026, single glyph) Знак номера: "No." или "#"|№ (знак номера) ЭТО НУЖНО СДЕЛАТЬ СЕГОДНЯ, ИНАЧЕ РЕЛИЗ СОРВЁТСЯ|Обычный регистр; одно-два слова прописными не трогать — правило и его карв-ауты в AD-18 Remaining 10: nested quotes (R4), en-dash in ranges (R21–R26), double dashes (R14), space before comma (R40), no space after period (R41), latin x vs multiplication sign (R82), (c) vs © (R87), minus vs em-dash in text (R28) — all in [typography.md](typography.md). ⚠ Two of the ten are NOT in `typography.md` and were claimed to be. **Double spaces** have no rule anywhere in the corpus — they stay as hygiene the Quality Checklist asks for. **Inconsistent ё** is governed, but by [ux-writing.md](ux-writing.md) § L.3–L.5, not here. ⚠ An earlier repair of this sentence said the corpus has no rule for either, and that was the same error one layer down. ## Critical: Канцелярит и номинализация (32 entries) Bureaucratic constructions and verb-hidden-inside-noun patterns. Anti-bureaucratic tradition: named by K. Chukovsky and N. Gal, operationalized for modern web/info-style by M. Ilyakhov. Top 5 most frequent: Wrong|Correct Осуществлять деятельность|Работать Произвести оплату|Оплатить / Заплатить В настоящее время|Сейчас Принимать участие|Участвовать Нести ответственность|Отвечать (за) Remaining 27 (split-predicate verb+noun → verb, plus officialese phrases): full dead→live catalog in [editorial-grammar.md](editorial-grammar.md) §H.2; the stop-word form of канцелярит is also in [info-style.md](info-style.md) §B. ## High: Vague Adjectives (11 entries) Words that add volume but no information. If removing changes nothing -- delete. Vague|Fix Высококачественный продукт|Продукт [конкретное свойство: прочный, быстрый] Оптимальное решение|Решение, которое [конкретное преимущество] Инновационный подход|[Описание подхода] Достаточно быстро|За 3 часа / К вечеру Определённые трудности|[Названные трудности] Соответствующие меры|[Конкретные действия] Данный вопрос|Этот вопрос (or omit) Ряд причин|Три причины: [1, 2, 3] Определённым образом|[Описать, как именно] Весьма существенно|На 40% / Вдвое Комплексное решение|Решение, которое охватывает [что] ## High: Passive Voice (10 entries) Passive hides the actor, making text evasive and bureaucratic. Carve-out -- the passive says how the product behaves, not what a person did. Not flagged where the verb is something the product, tool or service does by itself and the sentence carries nothing but that: «Предупреждение выводится один раз за сессию», «Токены перестанут приниматься первого сентября», «Поле `updated_at` меняется при каждой записи». Naming the actor there only repeats the thing the page is already about. The verb decides first, so no heading buys the exemption: deciding, checking, reviewing, approving, notifying and sending are done by people, and «информация подлежит рассмотрению в установленные сроки» stays a finding -- naming the регламент beside it names nobody. A passive carried inside a larger point is not a behaviour line -- more of the same behaviour alongside keeps the exemption, an instruction, an inference or a person's commitment in the same sentence breaks it: «сколько запросов обрабатывается», set inside a sentence about what the real question is, stays a finding. A message shown to the reader is the message, not documentation about one: «Ваш запрос не может быть обработан» withholds the cause and the next step -- «Не смогли обработать запрос: истёк срок токена». Nothing else changes, including the default that the passive is fine when the agent is unknown or irrelevant. No row of the table below is exempt -- not one names a machine. Passive|Active Было принято решение|Мы решили / Руководитель решил Отчёт будет подготовлен|Ольга подготовит отчёт Работа выполняется|Команда выполняет работу Задача была поставлена|Иван поставил задачу Ошибка была допущена|Мы допустили ошибку Вопрос рассматривается|Анна рассматривает вопрос, ответит до пятницы Проект был завершён|Команда завершила проект Меры будут приняты|[Кто] сделает [что] до [когда] Совещание проведено|Мы провели совещание Информация доведена до сведения|Мы сообщили команде ## High: Sentence Bloat (15 entries) Sentences that could be half as long with no loss of meaning. Bloated|Concise В связи с тем, что проект находится на завершающей стадии реализации|Проект почти завершён На сегодняшний день не представляется возможным дать однозначный ответ|Пока не можем ответить точно Мы хотели бы выразить надежду на то, что|Надеемся По результатам проведённого анализа установлено, что|Анализ показал: Необходимо обратить особое внимание на тот факт, что|Обратите внимание: Данная информация носит конфиденциальный характер|Информация конфиденциальная Если у вас возникнут дополнительные вопросы, вы можете обратиться|Если есть вопросы -- пишите Мы придерживаемся мнения о том, что|Считаем, что Является ключевым фактором, определяющим|Определяет / Главная причина В рамках проводимых мероприятий по улучшению|Чтобы улучшить Следует отметить тот немаловажный факт, что|Важно: Исходя из совокупности имеющихся факторов|Учитывая [что именно] На протяжении длительного периода времени|Долго / С [года] по [год] Таким образом, подводя итог всему вышесказанному|Итого По вопросу, касающемуся|По поводу / О ## Medium: False Intensifiers (11 entries) Words that claim to amplify but weaken because they substitute for evidence. False Intensifier|Fix Абсолютно уникальный|Уникальный (or describe why) Очень важно|Важно (or explain why it matters) Крайне необходимо|Необходимо (or state consequences) Максимально эффективно|Эффективно: [метрика] Реально классный|[Конкретное достоинство] Совершенно очевидно|Вот данные: ... Буквально взорвал|[Конкретный результат] Невероятно быстрый|Обрабатывает 10K запросов/сек По-настоящему|[Remove or replace with facts] Самый лучший|Лучший по [критерий] Довольно-таки неплохой|Хороший / Достойный ## Medium: Tautology/Pleonasm (22 entries) Tautology: same meaning repeated (масло масляное). Pleonasm: redundant word already contained in neighbor (подняться вверх). Top 5 most frequent: Redundant|Fix Свободная вакансия|Вакансия Главный приоритет|Приоритет Подняться вверх / спуститься вниз|Подняться / спуститься Масло масляное|(убрать повтор) Спросить вопрос|Задать вопрос / Спросить Remaining 17 (период времени, передовой авангард, краткое резюме, совместное сотрудничество, другая альтернатива, ответная реакция, etc.): full catalog in [editorial-grammar.md](editorial-grammar.md) §E.1 (pleonasms) and §E.2 (cognate repeats). ## Low: Anglicisms (11 entries) Use Russian when it carries the same meaning. Some anglicisms have no precise equivalent -- those are fine. Anglicism|Russian|Replace when Дедлайн|Срок / Крайний срок|Non-IT context Фидбэк|Обратная связь / Отзыв|Non-IT audience Митинг|Встреча / Совещание|General business Апрувить|Утвердить / Согласовать|Any formal text Кейс|Случай / Пример / Ситуация|Outside legal/marketing use Ворк-шоп|Мастерская / Практикум|General audience Тимлид|Руководитель группы|Formal HR documents Коллаборация|Сотрудничество|General text Факап|Провал / Ошибка|Any non-slang text Пушить (задачу)|Продвигать / Настаивать|Non-slang context Сетапить|Настраивать|Non-slang context ## Low: Archaic (6 entries) Words that make text sound pre-revolutionary. Archaic|Modern Сие|Это Оный|Тот / Этот Коим образом|Каким образом / Как Ибо|Потому что / Так как Дабы|Чтобы Токмо|Только ## Low: Overly Formal (5 entries) Official language where it creates distance and discomfort. Formal|Appropriate Разрешите поинтересоваться...|Подскажите, пожалуйста... Прошу принять к сведению|Имейте в виду Выражаю благодарность|Спасибо! Настоящим подтверждаю|Подтверждаю / Да, всё верно Имею честь сообщить|Расскажу / Хочу поделиться ## Summary Severity|Category|Entries Critical|Typography|15 Critical|Канцелярит и номинализация|32 High|Vague adjectives|11 High|Passive voice|10 High|Sentence bloat|15 Medium|False intensifiers|11 Medium|Tautology/pleonasm|22 Low|Anglicisms|11 Low|Archaic|6 Low|Overly formal|5 **Total**||**138** -
business-writing.md 12.8 KB
# Russian Business Writing Guide Principles of clear, respectful, and effective written communication in Russian -- for email, messengers, and formal correspondence. ## Contents - [A. Email Structure](#a-email-structure) - [B. Messenger Etiquette](#b-messenger-etiquette) - [C. Tone Management](#c-tone-management) - [D. Clean Business Phrases](#d-clean-business-phrases) - [E. Meeting Notes Structure](#e-meeting-notes-structure) - [F. Saying No Respectfully](#f-saying-no-respectfully) - [Sources](#sources) --- ## A. Email Structure ### Subject Line Formula: **[action type] + topic**. **Rules:** 1. One email = one topic. Two unrelated things = two emails. 2. Subject names the action: approve, review, respond, FYI. 3. Include project name or context if relevant. 4. Never leave subject empty. 5. Update subject when conversation topic shifts. **Bad|Good:** | bad|good | |---|---| | Вопрос|[Согласовать] Бюджет на Q3 | | Срочно!!!|[До 15.03] Правки в договор с Альфа | | Привет|[Ознакомиться] Новый регламент командировок | | Без темы|[Ответить] Дата встречи по проекту Орион | | Информация|[К сведению] Изменение графика работы офиса | | Важно|[Утвердить] Макет лендинга до пятницы | | Документы|[Проверить] Акт сверки за февраль | | Напоминание|[Подписать до 20.03] Допсоглашение к договору | | Предложение|[Обсудить] Партнёрство с LogiTech на 2026 | | Просьба|[Выслать] Отчёт по трафику за март | | re: re: re: fw:|[Решить] Выбор подрядчика: финальное голосование | | Мысли|[Дать обратную связь] Прототип мобильного приложения | ### First Sentence Pattern: greeting (short) + main point in sentence one. No filler. | weak|strong | |---|---| | Добрый день! Как ваши дела? Хотел бы обсудить один момент...|Добрый день! Предлагаю перенести запуск на 20 марта -- нужна ещё неделя на тестирование. | | Здравствуйте! Надеюсь, у вас всё хорошо. Пишу по поводу проекта...|Здравствуйте! Проект задерживается на 5 дней. Причина и план ниже. | ### Body 6. Use numbered/bulleted lists for multiple items. 7. Bold key terms and deadlines. 8. Paragraphs: 3–4 sentences max. 9. Attach files instead of pasting long content inline. 10. Referencing previous correspondence -- include the relevant quote. ### Closing Sentence Last sentence answers: who does what, by when. | weak|strong | |---|---| | Буду рад обсудить.|Прошу согласовать макет до 18.03. Правки -- до пятницы. | | Жду вашего ответа.|Ольга, пришлите финальный текст до среды, 19 марта. | | Надеюсь на понимание.|Если возражений нет до 15:00 пятницы, запускаем как есть. | --- ## B. Messenger Etiquette 1. **One message = greeting + question + context.** Never send "Привет" and wait. The recipient opens chat and finds nothing actionable. 2. **No voice messages** unless recipient explicitly agreed. If you must -- add text summary of key points. 3. **Thread replies in group chats (5+).** No threads? Prefix with topic: "[логистика] Отгрузка перенесена". 4. **Async by default.** No "???" after 10 min silence. Urgent = call. ### Channel Selection | Channel|Use for|Not for | |---|---|---| | Email|Formal decisions, documents, audit trail|Urgent questions, quick yes/no | | Messenger|Quick coordination, clarifications, informal updates|Long discussions, signature approvals | | Call|Urgent blockers, emotional topics, complex negotiations|Things needing written record (follow up with email) | | Meeting|Brainstorming, alignment 3+ stakeholders|Status updates (email), decisions one person can make | --- ## C. Tone Management ### Respectful Without Being Servile | servile|respectful | |---|---| | Не сочтите за дерзость, но мне кажется, возможно, стоило бы...|Предлагаю другой вариант: ... | | Простите, что отнимаю ваше драгоценное время...|Есть вопрос по срокам -- займёт пару минут. | | Осмелюсь предположить...|Думаю, причина в ... | | Если вас не затруднит и будет удобно...|Пришлите, пожалуйста, отчёт до пятницы. | ### Direct Without Being Rude | rude|direct | |---|---| | Вы опять не сделали отчёт.|Отчёт не получен. Пришлите до 17:00, пожалуйста. | | Я же говорил.|Обсуждали 10 марта (ссылка). Давайте вернёмся к тому решению. | | Это не моя проблема.|Вопрос в зоне логистики. Подключаю Олега. | | Разберитесь уже наконец.|Предлагаю разобрать на звонке сегодня в 15:00. | ### «Вы» vs «ты» | Context|Norm | |---|---| | First contact, unknown person|Always «вы» | | Formal correspondence (clients, partners, officials)|Always «вы» | | Internal team IT/startup|Often «ты» by convention -- follow team norms | | Other person switched to «ты»|May reciprocate, no obligation | | Mass emails, mixed audience|Always «вы» | | When in doubt|«Вы» -- never offends | 5. Capitalized «Вы» = additional formality (official letters, senior officials). Lowercase «вы» = normal business email. ### Softening Without Weakening | hard|soft | |---|---| | Вам необходимо прислать отчёт.|Пришлите, пожалуйста, отчёт до пятницы. | | Вы должны это исправить.|Предлагаю исправить до релиза -- вот что нужно: ... | | Я требую объяснений.|Расскажите, пожалуйста, что произошло -- хочу разобраться. | | Немедленно перезвоните.|Позвоните, когда будет возможность -- вопрос срочный. | | Это нужно переделать.|Есть несколько правок. Основное: [конкретика]. | --- ## D. Clean Business Phrases Replace bureaucratic filler with clear, human language. | bureaucratic|clean|cat | |---|---|---| | Довожу до вашего сведения|Сообщаю / Рассказываю|opening | | Настоящим уведомляем|Сообщаем|opening | | Данным письмом информируем|Пишу, чтобы рассказать|opening | | В рамках настоящего письма|В этом письме|opening | | Обращаюсь к вам с просьбой|Прошу|opening | | Хотелось бы поставить вас в известность|Хочу рассказать|opening | | По существу вопроса сообщаю следующее|Отвечаю на ваш вопрос|opening | | В связи с вышеизложенным|Поэтому|transition | | На основании вышесказанного|Итого|transition | | Принимая во внимание тот факт, что|Учитывая, что / Так как|transition | | Исходя из имеющейся информации|По нашим данным|transition | | В целях обеспечения|Чтобы|transition | | В соответствии с достигнутыми договорённостями|Как мы договорились|transition | | Ввиду сложившихся обстоятельств|Из-за (конкретная причина)|transition | | В случае возникновения вопросов|Если есть вопросы|transition | | Просим вас рассмотреть возможность|Предлагаем|request | | Убедительно просим вас|Пожалуйста / Прошу|request | | Прошу вас обеспечить выполнение|Пожалуйста, сделайте|request | | Ожидаем вашего содействия|Нужна ваша помощь|request | | Просим произвести оплату|Пожалуйста, оплатите|request | | Необходимо осуществить|Нужно сделать|request | | Просим подтвердить получение настоящего письма|Подтвердите, что получили|request | | Просим предоставить информацию|Расскажите / Пришлите данные|request | | Считаем необходимым отметить|Обращаю внимание|emphasis | | Не представляется возможным|Не получится / Невозможно|refusal | | Вынуждены отказать|Не сможем|refusal | | Не имеем возможности|Не можем|refusal | | К сожалению, вынуждены констатировать|К сожалению,|refusal | | Данный вопрос находится на рассмотрении|Решение ещё не принято / Думаем|status | | Работа ведётся в штатном режиме|Всё идёт по плану|status | | На данный момент времени|Сейчас|time | | В ближайшее время|До [конкретная дата]|time | | В кратчайшие сроки|До [дата] / Завтра / К пятнице|time | | По истечении установленного срока|После дедлайна / После [дата]|time | | Вышеупомянутый / нижеперечисленный|Этот / Вот они|reference | | Вышеуказанные рекомендации|Эти рекомендации|reference | | С уважением и надеждой на дальнейшее плодотворное сотрудничество|С уважением, [имя]|closing | | Заранее благодарим за оперативный ответ|Буду благодарен за ответ до [дата]|closing | | Надеемся на положительное решение вопроса|Надеемся, что получится|closing | | Остаёмся в ожидании вашего ответа|Жду ответа до [дата]|closing | | Выражаем надежду на взаимовыгодное сотрудничество|Будем рады работать вместе|closing | --- ## E. Meeting Notes Structure ### Template ``` # Meeting: [Topic] Date: [date], [time] Participants: [names] ## Decisions 1. [Decision] -- rationale if not obvious ## Action Items | # | Task | Owner | Deadline | |---|------|-------|---------| | 1 | [Task] | [Name] | [Date] | ## Open Questions - [Question] -- who investigates, by when ## Next Meeting [Date, time, agenda if known] ``` ### Rules 1. Decisions as statements, not discussion summaries. "Decided to postpone to April 5" -- not "We discussed and considered options..." 2. Every action item: exactly one owner + one deadline. "The team" is not an owner. 3. No decision? Write: "No decision. [Name] will prepare data by [date]." --- ## F. Saying No Respectfully Structure: **acknowledge -- decide -- offer alternative**. 1. **Acknowledge** the request (show you understood). 2. **State decision** clearly and early (don't bury "no" in paragraph 3). 3. **Brief reason** (one sentence, not a defensive essay). 4. **Alternative** if possible. 5. **Constructive ending.** ### Best Examples **Declining a meeting:** > Не смогу быть 15 марта -- финализирую отчёт. Готов ответить письменно заранее. Пришлите повестку? **Rejecting a proposal:** > Спасибо за предложение. Не подходит по бюджету -- лимит распределён. Вернёмся в июне при планировании Q3. **Denying a deadline extension:** > Понимаю, задача сложнее. Перенести дедлайн не получится -- зависит запуск. Давайте упростим скоуп. --- ## Sources See [sources.md](sources.md) -
editorial-grammar.md 30.5 KB
# Editorial: Grammar and Style ## Contents - [C. Capitalization](#c-capitalization) - [D. Agreement (syntactic concord)](#d-agreement-syntactic-concord) - [E. Tautology and pleonasms](#e-tautology-and-pleonasms) - [F. List homogeneity](#f-list-homogeneity) - [G. Numbers in text](#g-numbers-in-text) - [H. Clean language principles (inspired by the anti-bureaucratic tradition, cf. N. Gal, M. Ilyakhov)](#h-clean-language-principles-inspired-by-the-anti-bureaucratic-tradition-cf-n-gal-m-ilyakhov) - [I. Government (управление)](#i-government-управление) - [J. Gerund phrases (деепричастные обороты)](#j-gerund-phrases-деепричастные-обороты) - [K. Contextual homophones](#k-contextual-homophones) - [Sources](#sources) ## C. Capitalization ### C.1. After colon situation|upper/lower|example enumeration after generalizing word|lower|Привезли: молоток, пилу, рубанок. direct speech|upper|Он ответил: "Согласен". two independent sentences (journalistic)|upper allowed|Итог очевиден: Команда проиграла. list item after digit with period (1.)|upper|1. Подготовить документы. list item after digit/letter with bracket (1), а))|lower|а) подготовить документы; ### C.2. Headings Russian does NOT use Title Case. Only first word and proper nouns are capitalized. - Correct: "Краткий курс теоретической механики" - Wrong: "Краткий Курс Теоретической Механики" ### C.3. Job titles and ranks context|upper/lower|example running text (general use)|lower|президент компании, генеральный директор official document (decree, order)|upper|Президент Российской Федерации supreme state positions in official docs|upper|Председатель Правительства academic degrees, titles|always lower|доктор наук, профессор, академик ### C.4. Geographic names 1. All words in official name capitalized: Великий Новгород, Нижний Тагил 2. Generic term lowercase unless part of name: город Москва, озеро Байкал; but: Белое море 3. Foreign function words (articles, prepositions) lowercase: Рио-де-Жанейро, Франкфурт-на-Майне ### C.5. After ellipsis situation|upper/lower ellipsis ends sentence|upper (new sentence): Всё кончилось… Наступила тишина. ellipsis = pause inside sentence|lower: Он вошёл… и остановился. ellipsis at text start (continuation)|lower: …и тогда всё стало ясно. ### C.6. Quotation marks and names 1. First word inside quotation marks capitalized: роман "Война и мир" 2. Other words follow general rules (lowercase unless proper noun) 3. Organizations: ООО "Ромашка", ПАО "Газпром" --- ## D. Agreement (syntactic concord) ### D.1. Collective nouns as subject Words ряд, большинство, меньшинство, часть, множество, несколько allow singular or plural predicate. Singular predicate (grammatical agreement): condition|example no dependent word|Большинство согласилось. dependent word in singular|Ряд предложений был отклонён. subject = inanimate|Большинство зданий было построено. predicate = passive participle|Часть документов была утрачена. predicate before subject|Пришло несколько человек. Plural predicate (semantic agreement): condition|example animate subject, separate actions emphasized|Большинство студентов сдали экзамен. distance between subject and predicate|Ряд сотрудников, работающих в отделе, подали заявления. homogeneous predicates|Большинство вышли и присоединились. participial phrase / subordinate in plural|Часть студентов, которые не сдали, были отчислены. enumeration at subject|Большинство -- инженеры, врачи, учителя -- проголосовали. ### D.2. Numerals + noun numeral|noun case|example 1 (21, 31, 101...)|nom. sg.|двадцать один студент 2, 3, 4 (22, 33, 44...)|gen. sg.|двадцать два студента 5-20, 25-30 etc.|gen. pl.|пять студентов fractions|gen. sg.|две трети территории полтора/полторы|gen. sg.|полтора часа, полторы минуты Predicate number with numeral subject: - Singular: inanimate, emphasis on totality. Прошло пять лет. - Plural: animate, separate actions. Пять студентов сдали экзамен. ### D.3. Compound subjects connector|rule|example и (both animate)|plural|Мать и дочь пришли. или / либо|by nearest subject|Поездка или путешествие состоится. ни... ни|plural (usually)|Ни дождь, ни ветер не помешали. не только... но и|by nearest to predicate|Не только студенты, но и преподаватель присутствовал. как..., так и|plural|Как дети, так и взрослые участвовали. ### D.4. Mixed gender Subjects of different gender joined by "и" -> plural predicate: Стол и лампа стояли. With inversion, singular by nearest is allowed: У окна стояла лампа и стол. --- ## E. Tautology and pleonasms Pleonasm: words duplicating each other's meaning. Tautology: adjacent cognate words. ### E.1. Pleonasms wrong|correct|why свободная вакансия|вакансия|вакансия = free position прейскурант цен|прейскурант|прейскурант = price list памятный сувенир|сувенир|сувенир = keepsake совместное сотрудничество|сотрудничество|со- = together полный аншлаг|аншлаг|аншлаг = sold out временная отсрочка|отсрочка|отсрочка = time delay ведущий лидер|лидер|лидер = leader впервые познакомиться|познакомиться|always first time главный приоритет|приоритет|приоритет = top thing демобилизоваться из армии|демобилизоваться|only army жестикулировать руками|жестикулировать|hands by definition импортировать из-за рубежа|импортировать|импорт = from abroad коллега по работе|коллега|коллега = workmate народный фольклор|фольклор|фольклор = folk art перспективы на будущее|перспективы|перспектива = future view подняться вверх|подняться|подняться = go up предварительное планирование|планирование|always preliminary самый оптимальный|оптимальный|superlative built-in автобиография жизни|автобиография|авто+био = own life взаимное сотрудничество|сотрудничество|со- = mutually возвратиться обратно|возвратиться|воз- = back главная суть|суть|суть = the main point депиляция волос|депиляция|депиляция = hair removal другая альтернатива|альтернатива|альтернатива = other option дублировать дважды|дублировать|дубль = double единогласный консенсус|консенсус|консенсус = full accord заранее предупредить|предупредить|пред- = beforehand каждая деталь важна и существенна|каждая деталь важна|synonyms краткое резюме|резюме|резюме = brief summary лично я|я|я = always personal местный абориген|абориген|абориген = local молодой юноша|юноша|юноша = young man наиболее оптимальный|оптимальный|superlative built-in начальные азы|азы|азы = the very basics неожиданный сюрприз|сюрприз|сюрприз = surprise ностальгия по родине|ностальгия|ностальгия = homesickness огромная махина|махина|махина = huge thing первый дебют|дебют|дебют = first show передовой авангард|авангард|авангард = vanguard период времени|период|период = time span полное фиаско|фиаско|фиаско = total failure предварительный анонс|анонс|анонс = advance notice прогнозировать на будущее|прогнозировать|forecast = future саммит на высшем уровне|саммит|саммит = top-level meeting своя автобиография|автобиография|авто- = own смешивать вместе|смешивать|mixing = combining спуститься вниз|спуститься|спуститься = go down страсть к графомании|графомания|мания = obsession хронометраж времени|хронометраж|хроно- = time экспонат выставки|экспонат|экспонат = exhibited item в январе месяце|в январе|январь = month полностью завершить|завершить|завершить = bring fully to an end внутренний интерьер|интерьер|интерьер = inside space ответная реакция|реакция|реакция = response ### E.2. Tautology (cognate repeats) wrong|correct спросить вопрос|задать вопрос организовать организацию|создать организацию следует учитывать следующие факторы|нужно учитывать такие факторы проливной ливень|сильный ливень / проливной дождь сгруппировать в группы|объединить в группы проектировать проект|разрабатывать проект адресовать адресату|направить адресату --- ## F. List homogeneity ### F.1. Grammatical parallelism All list items must agree with the introductory phrase and share the same grammatical form. Do not mix: verbal nouns, infinitives, plain nouns in one list. ### F.2. Level-of-detail homogeneity Items must be at the same level of abstraction. Do not mix: Python, JavaScript, "databases", VS Code. ### F.3. Do not mix questions and statements All items in one modality: all statements or all questions. ### F.4. List punctuation start|case|ending|example after digit with period (1.)|upper|period|1. Подготовить документацию. after digit/letter with bracket 1) а)|lower|semicolon (last = period)|1) подготовить документацию; after bullet/dash|lower|semicolon (last = period)|-- подготовить документацию; item = full sentence|upper|period|-- Необходимо подготовить документацию. Period rule: period only if item is a full sentence (has subject and predicate). Fragments end with semicolon, last with period. --- ## G. Numbers in text ### G.1. Words vs digits situation|format|example 1-9 in narrative text|words|Прошло три дня. 10+|digits|Участвовало 15 человек. at sentence start|always words|Двадцать пять заявок поступило. adjacent numbers|one words, one digits|три 10-литровых канистры large round numbers|mixed|1,5 млн, 20 тыс. tables, formulas, statistics|digits|5, 12, 230 monetary amounts in documents|digits + words in parens|150 000 (сто пятьдесят тысяч) руб. Approximation exception -- row "10+" only, narrative text only. Do not flag the word form when both hold: the numeral is rounded to a ten, hundred or thousand, and an approximation marker attaches to that numeral -- the counted noun fronted in the genitive it governs (минут десять), or one of около, примерно, где-то, под, с лишним, с небольшим. - Approximate -- words are correct: занимает минут десять; из шестидесяти с лишним замечаний - Exact -- row "10+" stands: запись хранится тридцать -> 30 суток; в двенадцати -> в 12 километрах - Bounds are not approximations (до, от, за, более, свыше, не менее): до сорока -> до 40 секунд - Labels are not counts: пункт двадцать, версия двадцать -- row "10+" stands Never applies to large round numbers -- their row demands mixed form even under a marker (тысяч десять запросов -> 10 тыс. запросов) -- nor in tables, statistics or monetary amounts (last two rows), nor when the same value also stands in digits nearby -- there G.5 governs. ### G.2. Ordinal numerals Suffix via hyphen (not period): correct|wrong 1-й этаж|1. этаж, 1ый этаж 2-я попытка|2ая, 2-ая 3-е место|3ье, 3е 5-го числа|5ого Suffix rule: if letter before last ending letter is vowel -- one-letter suffix (1-й, 2-я, 3-е, 5-м). If consonant -- two letters (2-го, 5-му). When listing ordinals, suffix only on last: 1, 2 и 3-й этажи (not 1-й, 2-й и 3-й). ### G.3. Dates and time context|format|example in text|day digit, month word, year digit|15 марта 2026 года in tables/forms|numeric|15.03.2026 decades|with suffix|90-е годы (not 90-ые) centuries|Roman|XX век, XXI века time|colon|14:30, 09:00 date range|dash no spaces|2020--2025, январь--март year range with г./гг.|with period|2020--2025 гг., в 2024 г. ### G.4. Phone numbers Standard format: +7 (999) 123-45-67 1. Country code separated by space 2. City/operator code in parentheses 3. Number split by hyphens: 3+2+2 digits (7-digit) or 2+2+2 (6-digit) ### G.5. Uniformity rule Do not mix words and digits for same-type values within one sentence/paragraph. - Wrong: три менеджера, 5 инженеров и семь техников - Right: 3 менеджера, 5 инженеров и 7 техников --- ## H. Clean language principles (inspired by the anti-bureaucratic tradition, cf. N. Gal, M. Ilyakhov) ### H.1. Officialese (канцелярит) -- disease markers 1. Verbal nouns instead of verbs: "приняли решение" -> "решили"; "оказали помощь" -> "помогли" 2. Genitive chains: "план мероприятий по обеспечению выполнения решений" -- unreadable 3. Passive voice instead of active: "Доклад был заслушан" -> "Мы выслушали доклад" 4. Split predicates: "произвести уборку" -> "убрать"; "осуществить проверку" -> "проверить" 5. Stacked participial/gerundial phrases make sentence impassable ### H.2. Dead constructions -> live replacements Six of the entries below also stand in the stop-word catalogue of `info-style.md` §B — «в настоящее время», «вышеуказанный», «на сегодняшний день», «надлежащий», «нижеследующий», «принять решение». §B is their canonical home: it is the list a checker walks, and it is the block frozen by the corpus contract. Count such a fragment once, in **Ч — Clarity**, and do not report it twice because it appears in two files. The other thirty-six are here and nowhere else. Measured on 28.07.2026 with the same parser `check-frozen.sh` uses: 42 entries here, 92 in §B, 6 in both. A plan step that would have replaced this section with a pointer to §B was written on the assumption that it mostly duplicated the catalogue; it does not, and following it would have deleted thirty-six rules. dead|live произвести ремонт|отремонтировать осуществить доставку|доставить оказать содействие|помочь принять решение|решить провести мероприятие|организовать / устроить поставить в известность|сообщить / предупредить иметь место|случиться / произойти в данный момент времени|сейчас на сегодняшний день|сегодня в целях обеспечения|чтобы в адрес (кого-либо)|кому-либо является одним из...|один из... представляется возможным|можно в настоящее время|сейчас / теперь в случае если|если в связи с тем что|потому что / так как вышеуказанный|этот / упомянутый нижеследующий|следующий / такой надлежащий|нужный / подходящий осуществлять деятельность|работать производить оплату|оплатить / заплатить производить полив|поливать осуществлять контроль|контролировать принимать участие|участвовать оказывать влияние|влиять давать оценку|оценивать вести наблюдение|наблюдать проводить исследование|исследовать вести подготовку|готовить / готовиться совершать покупку|покупать делать выводы|заключать / считать приносить извинения|извиняться нести ответственность|отвечать (за) дать соответствующее указание|поручить / попросить задействовать ресурсы|использовать [что конкретно] был осуществлён выход|вышли находиться в состоянии усталости|устать является обязательным условием|обязательно на постоянной основе|постоянно / регулярно по причине того что|потому что с целью повышения|чтобы повысить вопрос решается в рабочем порядке|решим до [даты] ### H.3. Translation traps leaking into Russian 1. English passive -> Russian passive: "Было обнаружено, что..." -> "Выяснилось, что..." / "Мы обнаружили, что..." 2. Noun-heavy English -> genitive chains: "Процесс принятия решения" -> "Как мы решаем" 3. Redundant possessives: "Он положил свою руку в свой карман" -> "Он положил руку в карман" 4. Calques: "Имеет смысл", "играет роль" -- acceptable but often displace better Russian alternatives ### H.4. How officialese spreads 1. Media retelling official documents transfers their style to articles 2. Corporate correspondence infects work and personal writing 3. Bureaucratic replies teach people to write the same way 4. Desire to sound "weightier" -- long unclear phrase seems more "solid" than a simple word ### H.5. Clean text rules 1. Verb over noun: replace verbal nouns with verbs wherever possible 2. Short sentence over long: if it does not fit in one breath -- too long 3. Check genitive chains: more than two genitives in a row -- rewrite 4. Active voice by default: passive only when agent is unknown or irrelevant 5. Concrete over abstract: "в рамках мероприятия" -> "на встрече"; "в сфере образования" -> "в школах" 6. Use simple words: "сделать" not "реализовать"; "начать" not "приступить к осуществлению" 7. Read aloud: if you stumble -- rewrite the sentence ## I. Government (управление) Which case a preposition or a verb requires. §D covers agreement — subject with predicate, numeral with noun; this covers the other half, and until v2.0 the corpus had no rule for it at all. **Closed list, deliberately.** The open form of this check — verify the case after every preposition and every verb — is a detector of non-native Russian, and building one is forbidden here: it would punish an accent rather than an error. What follows is a list of specific pairs whose correct form is not in dispute. A construction that is not on the list is not flagged by this section, however wrong it may look. ### I.1. Prepositions and verbs that take a fixed case wrong|right|why согласно приказа|согласно приказу|«согласно» takes the dative благодаря поддержки|благодаря поддержке|dative вопреки ожиданий|вопреки ожиданиям|dative навстречу гостей|навстречу гостям|dative оплатить за проезд|оплатить проезд|«оплатить» takes the accusative without a preposition заплатить проезд|заплатить за проезд|paying FOR something is «заплатить за»; «заплатить долг» (repay) is also correct, so only this sense is listed заведующий отдела|заведующий отделом|instrumental командующий армии|командующий армией|instrumental преимущество над конкурентами|преимущество перед конкурентами|«перед», not «над» уверенность в победу|уверенность в победе|prepositional after «в» вера в победе|вера в победу|accusative after «в» — the mirror of the line above по приезду|по приезде|«по» in the sense of «after» takes the prepositional по окончанию школы|по окончании школы|same удивляться результату|удивляться результату|correct as written — listed so it is not «corrected» to the genitive рад встрече|рад встрече|correct — dative after «рад», not genitive I.1.1. Flag only a pair from this list. The list is the rule; there is no general principle behind it that a checker may extend by analogy. I.1.2. Some rows carry a CORRECT form, present so that a checker does not invent an error where none exists; the third column says which. Getting a right form flagged as wrong costs more trust than a miss. I.1.3. A pair whose norm is variable does not belong here, however common the error looks. «Скучать по вам» and «скучать по вас» were listed until the gate checked them: the first is the current norm and the row had them the wrong way round, and «превосходство перед» is attested with a dated mark rather than wrong. A closed list of undisputed pairs cannot hold a disputed one — the contradiction is with §I's own preamble, not with a source. I.1.4 (carve-out — whose grammar it is). Not flagged inside a quotation, a line of dialogue, or an interviewee's speech: the error belongs to the speaker, and reporting it charges the author for someone else's grammar. The same boundary AD-10.4 draws for declared sincerity, stated here because a rule read on its own must decide on its own. It governs §I, §J and §K. ### I.2. Different government under a shared dependent wrong|right организовать и руководить работой|организовать работу и руководить ею любить и заниматься спортом|любить спорт и заниматься им надеяться и верить в успех|надеяться на успех и верить в него контроль и управление процессом|контроль над процессом и управление им I.2.1. Two or more verbs (or verbal nouns) sharing one dependent, where they do not take the same case. One of them silently gets the wrong form. I.2.2. Rewrite by giving the first verb its own object and replacing the second with a pronoun; do not stack the cases. I.2.3. Not flagged when both words genuinely take the same case: «читать и перечитывать книгу», «собрать и отправить отчёт». ## J. Gerund phrases (деепричастные обороты) ### J.1. The doer of the gerund must be the subject of the sentence wrong|right Подъезжая к станции, у меня слетела шляпа.|Когда я подъезжал к станции, у меня слетела шляпа. Прочитав письмо, ему стало ясно.|Прочитав письмо, он всё понял. Открыв файл, была обнаружена ошибка.|Открыв файл, мы обнаружили ошибку. Возвращаясь домой, начался дождь.|Когда я возвращался домой, начался дождь. J.1.1. The test is mechanical and needs no judgement, but it is about DOERS, not about subjects: name who performs the gerund, and name who performs the main verb — or the infinitive, participle or second gerund the phrase attaches to. The same person: correct. Different: wrong. Stating it as «the grammatical subject» was an error of this corpus's own, caught at the gate: a one-member definite-personal sentence has no grammatical subject at all, and «Открыв файл, проверяем кодировку» is correct — the doer of both is «мы». J.1.2. Rewrite by making the doers agree, or by turning the gerund phrase into a subordinate clause with «когда», «если», «после того как». J.1.3 (carve-out — the doer of an infinitive). «Подъезжая к станции, следует смотреть в окно», «Готовя отчёт, нужно проверить цифры», «Просим клиентов, оплачивая счёт, указывать номер договора». The condition is not «the clause is impersonal» — it is that the doer of the gerund is the doer of the infinitive. That is why «Ознакомившись с резюме, кандидату было предложено пройти тест» stays wrong: the reader of the CV is not the one taking the test. J.1.4 (carve-out — the forms that became prepositions), and only where they really have. «Судя по отчёту», «исходя из данных», «несмотря на возражения», «начиная с понедельника», «включая расходы» — the test is whether the word can be dropped without loss: «приступить начиная с понедельника» → «приступить с понедельника», so «начиная» is a preposition here. Where the verbal meaning is alive it is a gerund again and J.1.1 applies: «Включая новые расходы в смету, бухгалтер пересчитал бюджет» — somebody is doing the including. J.1.5 (carve-out — the doer is implied by the form). A one-member sentence names no subject and needs none: the imperative «Открыв файл, проверьте кодировку», the inclusive «Открыв файл, давайте проверим кодировку», and the definite-personal «Открыв файл, проверяем кодировку» are all correct, because the verb ending says who acts. J.1.6 (carve-out — the ones that stopped being gerunds). «Молча», «нехотя», «стоя», «сидя», «лёжа», «не спеша», «шутя» work as adverbs of manner: they take no phrase, need no comma, and have no doer to compare. «Он читал молча» is not a gerund phrase and §J does not look at it. ## K. Contextual homophones Pairs a spellchecker cannot decide, because both spellings exist and only the meaning tells them apart. A closed list, for the same reason §I is one. wrong context|right|the deciding question в течении года|в течение года|a stretch of time → «в течение» (preposition) в течение реки|в течении реки|the noun «течение» in the prepositional: a current, and also the course of an illness, of time, or a movement in art or politics — «в течении болезни», «в течении споров» что бы сделать|чтобы сделать|«чтобы» when «бы» cannot be moved or dropped чтобы ни случилось|что бы ни случилось|two words when «бы» belongs to «что» так же как вчера|так же как вчера|correct: comparison, two words он также пришёл|он также пришёл|correct: «и он пришёл» → one word в виду плохой погоды|ввиду плохой погоды|«ввиду» = because of. Separate «в виду» is not only the fixed phrase: it also means «within sight of» — «эскадра шла в виду берега», where «ввиду» would read as «because of the shore» иметь ввиду|иметь в виду|the fixed phrase is three words не смотря на дождь|несмотря на дождь|«несмотря на» = although; «не смотря» = not looking вследствие ошибки|вследствие ошибки|correct: «из-за»; «в следствие» only about an investigation K.1. Decide by the question in the third column, not by frequency. Both forms of each pair are correct somewhere, which is why a spellchecker passes them and a reader trips. K.2. Correct rows are listed alongside wrong ones on purpose. A checker that has only seen the error learns to flag the pair on sight. ## Sources See [sources.md](sources.md) -
editorial-punctuation.md 8.2 KB
# Editorial: Punctuation ## Contents - [A. Punctuation in complex sentences](#a-punctuation-in-complex-sentences) - [B. Comma traps -- reference table](#b-comma-traps----reference-table) - [Sources](#sources) ## A. Punctuation in complex sentences ### A.1. Comma before subordinating conjunctions Subordinate clause is separated by comma. Conjunctions: **что, который, где, когда, если, чтобы, потому что, так как** mark the boundary. Base rule: comma before the conjunction starting the subordinate clause. A restrictive or intensifying particle standing in front of the conjunction takes the comma with it: the boundary moves left, it does not disappear. `вызывай ru-text только когда я прошу` -> `вызывай ru-text, только когда я прошу`. Particles: только, лишь, исключительно, как раз, даже, ведь, всё же. (ПАС §116–117; Розенталь §33.6.) The mistake is dropping the comma altogether because the particle looks like part of the main clause — it is not, and the clause it introduces is still subordinate. When comma before "что" is NOT needed: construction|comma?|rule compound conjunction stays whole|no|"потому что" is one unit; comma before "потому", not "что" negation + что|no|fixed expression: "не то что обидно" semantically whole phrase|no|"делай что хочешь" -- indivisible что = interrogative pronoun|no|"что случилось?" -- not a conjunction two conjunctions without "то"|no|no comma between "что" and "если" when "то" follows parallel subordinates with "и"|no|"я знаю, что он придёт и что поможет" -- no comma before second "что" Compound conjunctions -- where to place the comma: Compound subordinating conjunctions can be split: comma moves from start of subordinate to first part of conjunction when author emphasizes reason/condition. - Neutral: comma before whole conjunction ("потому что", "для того чтобы") - Emphatic: comma after first part ("потому, что"; "для того, чтобы") - Same pattern: несмотря на то(,) что; в связи с тем(,) что; ввиду того(,) что; благодаря тому(,) что ### A.2. Dash between subject and predicate Dash is placed when subject and predicate are the same part of speech without a linking verb. subject|predicate|dash? noun (nom.)|noun (nom.)|yes: Москва -- столица России infinitive|infinitive|yes: Жить -- Родине служить noun (nom.)|infinitive|yes: Наша задача -- закончить проект infinitive|noun (nom.)|yes: Читать -- большое удовольствие numeral|numeral|yes: Дважды два -- четыре noun (nom.)|это/вот/значит + noun|yes: Язык -- это инструмент мышления Dash is NOT placed: 1. "не" before predicate: Бедность не порок 2. Subject is personal pronoun: Он врач (but: Он -- это тот, кто поможет) 3. Parenthetical/adverb/conjunction/particle between: Собака тоже друг; Вода словно зеркало 4. Predicate before subject (inversion): Замечательный человек ваш отец 5. как/будто/словно between: Глаза как звёзды ### A.3. Colon 1. Generalizing word before enumeration: На столе: договор, акт, счёт-фактура 2. Asyndetic compound -- cause (= потому что): Я не пошёл: поднялась температура 3. Asyndetic -- clarification (= а именно): Погода была ужасная: дул ветер, шёл дождь 4. Asyndetic -- supplement (= что): Я чувствовал: что-то изменилось 5. Direct speech after author's words: Он сказал: "Я уже здесь" ### A.4. Semicolon 1. Extended parallel members with internal commas 2. Significantly extended parts of asyndetic compound sentence 3. Lowercase list items (see section F in editorial-grammar) ### A.5. Introductory words punctuation Introductory words/phrases: commas on both sides (mid-sentence) or one comma (start/end). NOT introductory (no commas): ведь, вот, именно, между тем (= тем временем), примерно — и другие частицы/наречия, ошибочно принимаемые за вводные (всё-таки, даже, как бы, поэтому, притом, причём, якобы и т. д.): полная таблица в §B ниже. --- ## B. Comma traps -- reference table Mnemonic: if the word can be removed without losing meaning or grammar -- it is introductory, comma needed. If it cannot -- it is a sentence member, no comma. construction|comma?|rule как будто|no|particle-conjunction, not introductory как правило|yes, both sides|introductory (indicates normality) в том числе|comma before|appositional, clarification кроме того|yes, after (start); both sides (mid)|introductory тем не менее|yes, both sides (usually)|concessive introductory; at start -- comma after однако (start)|no after|adversative conjunction (= но) однако (mid/end)|yes, both sides|introductory word наконец (итог перечисления)|yes|introductory: во-первых... наконец наконец (= наконец-то)|no|adverb, time circumstance значит (= следовательно)|yes, both sides|introductory значит (= означает)|no|predicate: Жить -- значит бороться таким образом (= итак)|yes|introductory, summing up таким образом (= таким способом)|no|manner adverbial во-первых, во-вторых|yes, after|introductory, argument order может быть / может|yes|introductory, assumption конечно|yes|introductory, certainty конечно (= безусловно, да)|no (in reply)|affirmative particle кстати|yes|introductory, incidental remark кстати (= к месту)|no|adverb: Замечание пришлось кстати правда (= действительно)|yes|introductory правда (= но, хотя)|no (comma before as before conjunction)|conjunction-caveat видимо|yes|introductory, assumption казалось бы|yes, both sides|introductory между прочим|yes|introductory, incidental remark например|yes|introductory; colon after if enumeration follows по-моему, по-твоему|yes|introductory, opinion marker действительно (start = да)|yes|introductory, confirmation действительно (= на самом деле, mid)|no|adverb-circumstance в частности|yes|introductory, specification с одной стороны... с другой стороны|yes, each part|introductory, paired construction прежде всего (= во-первых)|yes|introductory прежде всего (= в первую очередь)|no|circumstance в свою очередь (= между тем)|yes|introductory (in journalism) в свою очередь (= ответно)|no|circumstance к сожалению|yes|introductory, emotional evaluation к счастью|yes|introductory, emotional evaluation по крайней мере|yes (usually)|introductory, limitation впрочем|yes, after (start); both sides (mid)|introductory, caveat итак|yes, after|introductory, conclusion следовательно|yes|introductory, conclusion безусловно|yes|introductory, certainty несомненно|yes|introductory, certainty допустим|yes|introductory, assumption предположим|yes|introductory, assumption как бы|no|particle причём|no (comma before, not after)|appositional conjunction притом|no|appositional conjunction поэтому|no|adverb-conjunction буквально|no|adverb якобы|no|particle даже|no|particle всё-таки|no|particle вдруг|no|adverb авось|no|particle вряд ли|no|particle исключительно|no|adverb ## Sources See [sources.md](sources.md) -
info-style.md 35.1 KB
# Информационный стиль: методология ясного текста Справочник по информационному стилю для русского текста. Independent reference informed by: glvrd.ru, bureau.ru, maximilyahov.ru, leading newsroom editorial practices, Habr. Все формулировки авторские; книги и авторы -- источники идей, а не цитат. ## Contents - [A. Философия](#a-философия) - [B. Каталог стоп-слов](#b-каталог-стоп-слов) - [C. Усиление слабого текста](#c-усиление-слабого-текста) - [D. Структура текста](#d-структура-текста) - [E. Числа и факты](#e-числа-и-факты) - [F. Адаптация регистра](#f-адаптация-регистра) - [G. Newsroom editorial workflow principles](#g-newsroom-editorial-workflow-principles) - [Sources](#sources) ## A. Философия Базовые принципы, определяющие подход к тексту. 1. Текст для читателя, не для автора. Автор решает задачу: передать знание, помочь решить, сэкономить время. Предложение без пользы для читателя -- лишнее. 2. Каждое предложение отрабатывает место. Нет балласта. Слово без смысловой нагрузки -- убрать. Сокращение -- забота о читателе, не примитивизация. 3. Уважение к времени. Не лить воду, не повторяться, не заставлять продираться через мусор. Краткость -- форма уважения. 4. Факты вместо мнений, конкретика вместо обобщений. Опора на проверяемые факты, числа, примеры. Оценки без доказательств ничего не значат. Читатель сам делает выводы. 5. Полезное действие. У текста -- конкретный результат для читателя. Сформулировать до написания: что читатель сможет сделать/узнать/решить. Нет полезного действия -- текст не нужен. 6. Истории и примеры вместо деклараций. Абстракции не убеждают, конкретные сценарии -- убеждают. Текст создаёт картинку. Нет картинки после абзаца -- абзац слабый. 7. Честность и прозрачность. Нет манипуляций, недомолвок, скрытой рекламы. Рекламный текст -- явно рекламный. Не знаешь -- скажи прямо. ## B. Каталог стоп-слов Слова, удаляемые без потери смысла. Категории постоянны, конкретный список -- нет. ### Канцелярит (bureaucratic) слово|замена является|тире / перестроить осуществлять|делать, проводить, вести в настоящее время|сейчас на сегодняшний день|сейчас, сегодня данный|этот, тот вышеуказанный|этот; убрать если понятно нижеследующий|убрать; перестроить в связи с тем, что|потому что, так как ввиду|из-за, потому что в целях|чтобы, для в соответствии с|по, согласно надлежащий|нужный, правильный производить (работы)|делать, работать функционировать|работать задействовать|использовать обеспечить|указать конкретное действие имеет место быть|есть, происходит принять решение|решить оказывать содействие|помочь произвести оплату|оплатить, заплатить ### Вода (filler) слово|замена определённый|указать что именно соответствующий|назвать конкретно некоторый|указать количество или убрать достаточно|убрать или указать меру в целом|убрать; оговорку сделать конкретной как бы|убрать собственно говоря|убрать так сказать|убрать кстати|убрать или встроить в структуру между прочим|убрать или перестроить что касается|начать сразу с темы стоит отметить, что|убрать, начать с сути следует подчеркнуть|убрать, дать факт нельзя не отметить|убрать не секрет, что|убрать ### Усилители (amplifiers) слово|замена очень|точное слово или факт крайне|конкретизировать чрезвычайно|убрать или дать факт максимально|указать конкретную меру предельно|указать конкретную меру абсолютно|убрать или обосновать невероятно|заменить фактом буквально|убрать или использовать по назначению реально|убрать действительно|убрать; если важно -- доказательство по-настоящему|убрать **B.1 (carve-out -- amplifier at an admission, a binding or an apology).** The eleven amplifiers listed above are not flagged when all three hold: (1) the amplifier modifies the predicate of a clause in which the author admits a fault or shortfall of their own side, binds their own side to a named act, or apologises -- and not a word by which the author rates their own product, work, text or delivery, attributive or predicative alike; (2) the same sentence names that fault, loss or unfavourable branch in words the reader can point at; (3) the sentence gives no advantage of the author's as the cause of it or the excuse for it. In that configuration the amplifier carries the author's stance toward something that counts against them, and deleting it edits the social act -- an admission, a promise, an apology -- rather than the style. Compare AD-7.4 (`addenda.md`): the epistemic qualifier stays because it calibrates the claim; this one stays because it marks what the author is answerable for. The attachment decides, and one word decides both ways: «Мы действительно не успеваем и переносим сдачу на 12-е» -- not flagged; «Мы предлагаем действительно качественные решения» -- flagged, «действительно» sits on the quality of the author's own product. Likewise «один баг того же семейства у нас реально есть» is released and «реально классный инструмент» is not. The corpus already prints this outcome once: the AD-8 counter-example «Вы правы: в расчёте действительно ошибка» (`addenda.md`) keeps its amplifier -- an admitted fault of the author's own side, named in the same sentence. B.1 subtracts the §B charge and nothing else. One fragment can carry both faults: a declared-sincerity label in the same sentence -- «Честный ответ директору», «скажу честно» -- keeps its own charge under AD-10 or AD-7, those words are not in this catalogue, and B.1 never removes that charge along with the amplifier. Nor does it reach an amplifier on a self-statement that names nothing against the author: «Мы очень гордимся тем, что являемся одной из лучших компаний» stays flagged (§C, пример 10), and so does «Мы предельно честны с клиентом». None of the eleven False Intensifier entries in `anti-patterns.md` passes test (1) -- none of them is an admission, a binding or an apology -- so all eleven stay flagged as before. ### Оценки без доказательств (unproven claims) слово|замена лучший|по какому критерию, по чьим данным уникальный|описать конкретное отличие качественный|описать конкретные свойства эффективный|указать метрику (+40% к конверсии) инновационный|описать что именно нового высококлассный|привести факты, сертификаты, рейтинги оптимальный|назвать критерии передовой|что впереди и по какому параметру выгодный|показать числа надёжный|гарантийный срок, статистика отказов ### Штампы (cliches) слово|замена команда профессионалов|квалификации, опыт, число специалистов молодая динамично развивающаяся компания|факты: год основания, рост индивидуальный подход|конкретный процесс работы с клиентом широкий ассортимент|число позиций или категории выгодные цены|назвать цены или дать сравнение работы любой сложности|примеры выполненных работ гибкая система скидок|размер скидок и условия кратчайшие сроки|конкретный срок лидер рынка|доля рынка или рейтинг богатый опыт|количество лет, проектов, клиентов ### Паразиты времени (temporal parasites) слово|замена в настоящий момент|сейчас или убрать на данный момент|сейчас или убрать в наши дни|убрать; указать год если важно в современном мире|убрать или назвать контекст на протяжении долгих лет|указать количество лет испокон веков|убрать или дать дату в скором времени|указать срок в ближайшем будущем|назвать дату или месяц ### Вводные конструкции и междометия слово|замена конечно|убрать разумеется|убрать безусловно|убрать или обосновать впрочем|перестроить логику абзаца тем не менее|убрать или заменить на «но» допустим|убрать или сформулировать условие явно скажем|убрать ну|убрать ах, ох, ух|убрать ### Неопределённость и модальность слово|замена какой-то|указать конкретно что-то|назвать где-то|указать место или число как-то|убрать или уточнить можно|убрать: вместо «можно сделать» -- «сделайте» нужно / необходимо|переформулировать: кому нужно? зачем? следует|указать кто и почему мне бы хотелось|написать прямо: «я хочу», «я предлагаю» было бы неплохо|сформулировать прямо ## B.2. Оговорка о живом регистре — три записи, не больше > Номер B.2, а не B.1: имя B.1 в этом файле уже занято оговоркой об усилителе при > признании вины (§B выше), и на неё ссылается весь golden-случай 29. Два разных правила > под одним именем в одном документе делают любую ссылку двусмысленной. Три записи каталога **предписывают** снимать то, чем живая речь держится: `ну|убрать`, `кстати|убрать или встроить в структуру`, `как-то|убрать или уточнить`. Предписание дано без условий, и в живой речи оно неверно. Основание — буква каталога и слепое судейство, **не** статистика прогонов. На 20 парах живых текстов (17 122 слова) один прогон снял эти леммы шесть раз, и трое слепых судей независимо назвали такие срезы причиной, по которой вычитанный текст читается мертвее оригинала. Контрольный замер 11.08 показал, что тот же результат **не воспроизводится**: три прогона на трёх версиях корпуса, включая ту, что породила срезы, оставили частицы на месте — и два из трёх сделали это **вопреки** букве каталога, сославшись на §F по наитию. Это не оправдывает прежний текст, а обвиняет его: правильный исход зависел от того, ослушается ли модель корпуса. Оговорка чинит букву. Утверждать, что она меняет частоту срезов, оснований нет и здесь не утверждается. **Условие.** В **разговорном регистре** (шкала §F: соцсети, личные блоги, чат поддержки, переписка с коллегами) три названные записи не применяются. В остальных регистрах шкалы применяются как есть. **Единица оценки — отрезок, а не файл.** Один документ несёт разные регистры: реплика в чате, внутри которой лежит черновик письма клиенту, — обычный случай, а не редкость. Регистр отрезка определяется признаками самого текста, и они обязаны быть названы в замечании: обращение и подпись, адресат, канал, названный в тексте, разделитель между частями. Регистр, определённый без признаков в тексте, — догадка. **Попутность в условие НЕ входит, и это сказано в обе стороны.** В разговорном регистре освобождается и то «кстати», которое открывает центральный факт: в живой речи структура не существует отдельно от порядка мыслей, и «кстати» перед главным — смягчитель, а не ложь о важности. В публикуемых регистрах остаётся находкой и честно попутное «кстати»: предписание записи там — «встроить в структуру», то есть вынести в постскриптум или отдельное сообщение. **Тай-брейкер: кластер признаков машинного текста побеждает регистр.** Машинный текст умеет надевать разговорный вид. Если в отрезке есть **три и более различных признака** `addenda.md` (AD-1 … AD-18), оговорка не применяется и записи работают в полную силу. Иначе слоп предъявлял бы собственную улику как доказательство своей живости. **Чего оговорка не делает.** Она не расширяется на другие записи каталога: освобождены ровно три, поимённо. Она не отменяет §F.14 — фамильярность в деловой переписке остаётся ошибкой. Она не трогает AD-9.3, который отправляет уже каталогизированный зачин обратно в §B и считает его один раз. ⚠ **Пометки в самих строках каталога сознательно НЕ поставлены.** Байты §B заморожены контрактом с платным MCP (`tools/frozen.sha256`, `section_b_sha256`), и любая правка внутри секции его ломает. Первая редакция этой оговорки пометила три строки — и `check-frozen` отказал, правильно. Видимость у записей стоит отдельного, обдуманного обновления контракта, а не побочного эффекта правки правила. До тех пор оговорка стоит вплотную за §B и называет три леммы поимённо. ## C. Усиление слабого текста Три признака слабого текста: (1) можно убрать слова без потери смысла, (2) нет конкретики, (3) нет картинки в голове читателя. Три шага усиления: убрать мусор, добавить факты, перестроить структуру. ### Примеры трансформации 1. Удаление воды До: «Наша компания на протяжении долгих лет осуществляет деятельность в сфере предоставления консалтинговых услуг, являясь одним из лидеров рынка.» После: «Мы консультируем бизнес 12 лет. Среди клиентов -- 40 компаний из списка РБК-500.» 2. Оценка -> факт До: «Мы предлагаем качественную продукцию по выгодным ценам с быстрой доставкой.» После: «Доставляем мебель из массива берёзы от 15 000 руб. за 2 рабочих дня. Гарантия -- 5 лет.» 3. Пассив -> актив До: «Решение о выдаче кредита принимается банком в течение определённого периода времени после подачи заявки.» После: «Банк решает по кредиту за 2 часа после заявки.» 4. Абстракция -> сценарий До: «Наш сервис обеспечивает максимально эффективную оптимизацию бизнес-процессов.» После: «Бухгалтер тратил 3 дня на закрытие месяца. После внедрения -- 4 часа. Высвободившееся время ушло на аналитику.» 5. Штамп -> конкретика До: «Команда высококлассных профессионалов с богатым опытом работы решит задачи любой сложности.» После: «В команде 8 инженеров, у каждого 5--15 лет в проектировании мостов. Последний проект -- мост через Обь длиной 960 м.» 6. Перегруженное предложение -> несколько простых До: «В ходе проведения мероприятия, направленного на повышение квалификации сотрудников, которое было организовано отделом кадров при содействии внешних консультантов, был отмечен значительный рост вовлечённости участников.» После: «Отдел кадров провёл тренинг с внешними консультантами. Вовлечённость выросла: 90% выполнили все задания, в прошлом году -- 60%.» 7. Запугивание -> польза До: «Если вы не начнёте заботиться о своём здоровье прямо сейчас, последствия могут быть крайне печальными и необратимыми.» После: «30 минут ходьбы в день снижают риск инфаркта на 35% (данные ВОЗ, 2023).» 8. Навязывание оценки -> доказательство До: «Наш удивительный продукт поразит вас невероятным удобством и поможет вам по-настоящему улучшить вашу жизнь.» После: «Настройка -- 3 минуты. Через неделю пользователи экономят 40 мин/день на рутине (опрос 1200 клиентов).» 9. Длинный вводный абзац -> прямой заход До: «В современном мире, где технологии развиваются с невероятной скоростью, а конкуренция растёт с каждым днём, всё больше компаний задумываются о том, как автоматизировать свои процессы.» После: «Автоматизация рутины сокращает расходы на 20--40%. Вот как это работает.» 10. Самовосхваление -> факты До: «Мы очень гордимся тем, что являемся одной из лучших компаний в своей отрасли и предоставляем услуги безупречного качества.» После: «Рейтинг 4.9/5 на основе 3 400 отзывов. За год ни одной претензии по срокам доставки.» 11. Условные обороты -> прямое руководство До: «Было бы неплохо, если бы вы могли уделить некоторое время тому, чтобы ознакомиться с нашим новым каталогом.» После: «Посмотрите каталог -- там 120 новых позиций.» ## D. Структура текста Правила организации текста для максимальной читаемости. 1. Главная мысль -- в начале текста и в начале каждого раздела. 2. Детали, доказательства, контекст -- ниже главной мысли. 3. Читатель, бросивший текст на любом абзаце, уносит главное. 4. Лид -- один абзац с ключевым фактом или выводом. 5. Тело -- подробности, доказательства, цитаты, числа. 6. Хвост -- дополнительный контекст, который не жалко потерять. 7. Формула 5W для новостей/справок: кто, что, где, когда, почему -- все ответы в лиде. 8. Первое предложение абзаца = его тезис. 9. Читатель пробегает первые строки абзацев -- понимает структуру всего текста. 10. Первое предложение не сообщает тему абзаца -- абзац плохо структурирован. 11. Пример. Слабо: «В последнее время многие компании столкнулись с различными проблемами. Одна из них -- рост стоимости аренды.» Сильно: «Аренда офисов в Москве выросла на 20% за год. Это вынуждает переходить на удалёнку.» 12. Один абзац -- одна мысль. 13. Оптимальный размер абзаца: 3--5 предложений. 14. Абзац длиннее -- скорее всего, смешаны две мысли; разбить. 15. Переход причинно-следственный: «поэтому», «из-за этого». 16. Переход контрастный: «но», «однако». 17. Переход дополняющий: «кроме того», «ещё один фактор». 18. Переход хронологический: «после этого», «затем». 19. Переход не формулируется естественно -- сменить порядок абзацев. 20. Читатель в любой момент понимает: о чём этот текст, зачем он это читает и что будет дальше (непрерывная ориентация). 21. Заголовок сообщает тему и пользу, а не интригует. 22. Подзаголовки работают как оглавление: прочесть отдельно = получить скелет текста. 23. Списки используются для перечислений из 3+ однородных пунктов. 24. Лид сразу говорит, что получит читатель. 25. Заголовки содержат конкретику; заголовки -- информация, не декорация. 26. Подзаголовок и начало абзаца после него совпадают по теме. 27. Пример. Слабый заголовок: «Преимущества». Сильный: «Экономия 40% на отоплении за счёт утепления стен». 28. Пример. Слабый заголовок: «Немного о нас». Сильный: «12 лет строим мосты в Сибири». 29. Тест заголовка: если подходит к любому тексту на похожую тему -- он плохой. Хороший подходит только к этому тексту. ## E. Числа и факты Правила работы со статистикой, сравнениями и доказательствами. 1. Круглые числа вызывают подозрение. «+100%» -- не верится. «+97%» -- верится. 2. Большие числа нуждаются в масштабе. «2 ТБ» -> «2 ТБ = 500 000 фото или 400 фильмов в HD». 3. Источник обязателен. Число без источника -- мнение. 4. Указывать: кто исследовал, когда, на какой выборке. 5. Не только абсолютное, но и относительное. «Рост на 2 млн руб.» -- ни о чём. «С 8 до 10 млн, +25%» -- понятно. 6. Сравнение с привычным. «Экран 12.9" -- чуть больше листа A4». Незнакомую метрику переводить в повседневный опыт. 7. Временные сравнения. «Было 3 дня, стало 4 часа» -- масштаб улучшения очевиден. 8. Не выдёргивать числа из контекста. 9. Не сравнивать несравнимое (разные периоды, выборки). 10. Не использовать среднее там, где нужна медиана. 11. Не прятать негативные данные; честность укрепляет доверие. 12. Абсолютные числа рядом с процентами. «Рост на 200% с 1 до 3 клиентов» -- уже не впечатляет. 13. Тест утверждения: «Как это проверить?» Нет ответа -- подкрепить или убрать. 14. Иерархия доказательств, уровень 1 (сильнейший): независимое исследование с методологией. 15. Иерархия доказательств, уровень 2: публичная статистика (госорганы, отраслевые ассоциации). 16. Иерархия доказательств, уровень 3: внутренние данные компании (период + выборка). 17. Иерархия доказательств, уровень 4: экспертная оценка с указанием квалификации. 18. Иерархия доказательств, уровень 5 (слабейший): пользовательские отзывы. ## F. Адаптация регистра Выбор уровня формальности в зависимости от аудитории и канала. ### Шкала регистров уровень|когда|признаки Официальный|юрдокументы, госакты|термины, канцелярские обороты оправданы; пассив допустим Деловой|переписка, отчёты, КП|нейтральная лексика, прямой порядок слов, без сленга и канцелярщины Профессиональный|статьи для специалистов, техдоки|отраслевые термины без канцелярита; читатель -- коллега Нейтрально-публицистический|медиа, блоги компаний, объяснительные|простые слова, короткие предложения, примеры из жизни Разговорный|соцсети, личные блоги, чат поддержки|живая речь, допустим сленг и эмоции контролируемо 6. На любом уровне формальности текст остаётся ясным. 7. Формальность не оправдывает мутность. 8. Даже в юридическом документе стремиться к пониманию с первого прочтения. 9. Определить аудиторию: кто читатель, какой у него контекст. 10. Определить канал: где текст будет опубликован. 11. Определить цель: что должен сделать читатель после прочтения. 12. Выбрать регистр, в котором аудитория привыкла потреблять контент в этом канале. 13. Ошибка: канцелярит в маркетинге. «Компания осуществляет реализацию продукции» в рекламе -- отталкивает. 14. Ошибка: фамильярность в деловой переписке. «Ну чё, давайте созвонимся» -- подрывает доверие. 15. Ошибка: терминология без объяснений для широкой аудитории. «EBITDA выросла на 15%» для клиентов, не знающих термин -- бесполезно. 16. Ошибка: искусственная «живость». Восклицательные знаки и эмодзи не делают текст живым; живым делают детали и истории. ## G. Newsroom editorial workflow principles Systematic editorial practices pioneered by leading Russian newsrooms, turning info-style theory into a working production system. 1. Автор пишет только о пережитом лично или с доказуемой экспертизой. 2. Рерайт чужих источников и пересказ теории без практики не публикуются. 3. Если автор не пробовал то, о чём пишет, -- статья не выйдет. 4. Каждое утверждение подкреплено конкретным примером, числом или сценарием. 5. Абстрактные советы не допускаются: нужна конкретика -- сколько, как, при каких условиях. 6. Статьи проектируются для переопубликации через месяцы/годы. 7. Привязка к текущим событиям минимальна. 8. 5--6 раундов редактуры на статью. 9. Многоступенчатая редактура: автор -> шеф-редактор раздела -> главный редактор -> выпускающий отдел. 10. Каждый уровень проверяет свой аспект: факты, структуру, стиль, оформление. 11. Условия работы, оплата, требования опубликованы открыто. 12. Автор заранее знает: сколько итераций, какие стандарты, за что платят. 13. «Курс молодого бойца» из 8 частей: цель и тема, фокус, структура, содержание, стиль, исследование, процесс, публикация. 14. Полная редполитика осталась для шеф-редакторов. 15. Рекламный контент маркируется. 16. Партнёрские статьи проходят те же стандарты, но помечаются. Читатель всегда знает, что рекламное. 17. Оплата за результат: гонорар за опубликованную статью, не за время. 18. Отсев на входе: из 4--6 заявок/день одобряются 1--2. 19. Кодификация ошибок: повторяющаяся ошибка -> правило в редполитике. 20. Масштабирование через шефов: система шеф-редакторов по разделам вместо одного главреда. ## Sources See [sources.md](sources.md) -
scoring.md 14.3 KB
# Scoring: text quality assessment (0–10) Analytic rubric for evaluating Russian text quality across 5 dimensions. Context-aware LLM evaluation against a corpus of over 2,000 independently formulated linguistic atoms (informed by 16 published sources; see sources.md). ## Table of Contents - [Algorithm overview](#algorithm-overview) - [Dimensions](#dimensions) - [T — Typography](#t--typography-weight-015) - [Ч — Clarity](#ч--clarity-weight-025) - [Г — Grammar](#г--grammar-weight-020) - [С — Structure](#с--structure-weight-020) - [Ц — Reader precision](#ц--reader-precision-weight-020) - [Composite score](#composite-score) - [Non-compensatory rules](#non-compensatory-rules) - [Score interpretation](#score-interpretation) - [Output format](#output-format) - [Limitations](#limitations) ## Algorithm overview ### Step-by-step procedure 1. **Input.** Russian text of any length. 2. **Domain routing.** Determine text domain (article, UI, business email, general) to load domain-specific rules into the Reader Precision dimension. 3. **Dimension-by-dimension evaluation.** Score each of the 5 dimensions independently using the rubric anchors below. For each dimension, record 1–3 specific issues with the problematic text fragment quoted. 4. **Non-compensatory check.** Apply floor caps if any dimension falls below threshold. 5. **Composite score.** Weighted average of 5 dimensions, rounded to one decimal place. 6. **Diagnostic output.** Total + 5 dimensions + verbal label + specific issues per dimension. Every deducted point is explained. ### Why context-aware evaluation Formula-based tools (Glavred, Turgenev, Advego) count surface features: stop-words, sentence length, keyword density. Removing «очень» raises the score without improving the text. An SEO text scored 9.1 on Glavred without any real quality. This rubric evaluates text contextually against the whole corpus. «Очень» in quoted direct speech is not penalized. «Инновационный» without evidence is penalized. Five orthogonal dimensions cannot be optimized simultaneously without genuinely improving the text. The only way to raise the score is to write better. ### Research basis - Readability formulas are unreliable: different formulas diverge by 2–3 grade levels on the same text (Zhou, Jeong, Green 2017). Texts revised for formula scores showed worse reader comprehension (Duffy & Kabance; Olsen & Johnson). 7 reasons to avoid readability formulas (UXmatters 2019). - LLM-Rubric (ACL 2024): RMSE < 0.5; inter-rater reliability for Structure exceeded human judges (QWK 0.584 vs 0.541). - Hybrid penalty + bonus + non-compensatory floors: best architecture per analysis of sports judging (gymnastics, figure skating) and academic essay scoring systems. - Goodhart's Law — once a measure becomes the target, it stops working as a good measure (cf. Goodhart; Strathern's formulation). Five orthogonal dimensions are the primary defense. --- ## Dimensions ### T — Typography (weight 0.15) Type: hard (objective). Rule source: [typography.md](typography.md). | Score | Criteria | |---|---| | 9–10 | Guillemets for quotes, correct dash types (em/en/hyphen), NBSP after prepositions, special characters (№, ©, °, ×) correct, numbers formatted | | 7–8 | 1–2 minor issues: missing NBSP, one wrong dash type. Overall picture correct | | 5–6 | Several systematic errors: mixed dashes and hyphens, some straight quotes | | 3–4 | Pervasive errors: straight quotes throughout, hyphens instead of dashes, three dots instead of ellipsis glyph | | 1–2 | No typographic formatting at all: plain ASCII characters | ### Ч — Clarity (weight 0.25) Type: soft (expert). Rule sources: [info-style.md](info-style.md), [anti-patterns.md](anti-patterns.md). Primary signal from [addenda.md](addenda.md): AD-10 (declared sincerity — **Medium**: honesty predicated of the text itself. A label in a heading, or two instances in one text, lands this dimension in the 5–6 band or lower; a single instance in the body does not). Secondary signals (low weight): AD-3 (patronizing explanation), AD-5 (subject-predicate mismatch, with technical-context exception), AD-6 (manufactured antithesis), AD-7 (preemptive virtue qualifier), AD-8 (assistant-register meta-commentary), AD-11 (mandatory tricolon — a supporting signal here; its home is С, and a triple that praises the author's own delivery goes to AD-7, never to both — AD-11.5). | Score | Criteria | |---|---| | 9–10 | No stop-words, no bureaucratic language, no clichés. Active voice. Every word works. No false intensifiers or unsubstantiated claims. Honesty is demonstrated by what the text does with an inconvenient fact, never announced («честный разбор», «давайте будем честны») | | 7–8 | 1–3 minor stop-words or passive constructions. Overall tone is clean | | 5–6 | Noticeable stop-words (5+), several passive constructions, 1–2 clichés. Readable but loose | | 3–4 | Bureaucratic language dominates: deverbal nouns, genitive chains, split predicates | | 1–2 | Bureaucratic soup: «осуществление мероприятий по обеспечению надлежащего функционирования» | ### Г — Grammar (weight 0.20) Type: hard (objective). Rule sources: [editorial-grammar.md](editorial-grammar.md) — including §I government, §J gerund phrases and §K contextual homophones — and [editorial-punctuation.md](editorial-punctuation.md). | Score | Criteria | |---|---| | 9–10 | Punctuation flawless, agreement correct, no tautology or pleonasm, capitalization per rules | | 7–8 | 1–2 minor punctuation errors (missing comma with introductory word). Grammar correct | | 5–6 | Several punctuation errors, 1–2 agreement errors or tautology | | 3–4 | Systematic punctuation errors, agreement violations, pleonasms | | 1–2 | Grammatically illiterate: errors in every sentence | ### С — Structure (weight 0.20) Type: soft (expert). Rule sources: [info-style.md](info-style.md) (structure section), [addenda.md](addenda.md) — AD-1 (dash overuse); AD-6 (manufactured antithesis — **Medium**: the strongest machine-generation tell. A cluster of two or more manufactured pairs within ~150 words lands this dimension in the 5–6 band or lower; a single antecedent-backed pair does not move it); AD-14 (chat transcript as the artifact — **High**, and charged to the **document**, not to a fragment: a piece whose skeleton is a conversation cannot reach the upper bands, because no local edit repairs it), plus secondary signals (low weight): AD-2 (excessive parcellation), AD-4 (unprovoked rebuttal), AD-7 (preemptive virtue qualifier), AD-9 (hollow opener), AD-11 (mandatory tricolon), AD-16 (additive pseudo-pair). | Score | Criteria | |---|---| | 9–10 | Inverted pyramid (main point first). One paragraph = one idea. Logical transitions. Headings where needed. No monotonous dash rhythm. No manufactured antithesis («не X, а Y» / «не просто X, а Y» with no antecedent). No hollow openers. The piece is written rather than transcribed: its shape is an argument, not a sequence of exchanges | | 7–8 | Logical structure, but 1–2 overloaded paragraphs or implicit transitions; at most an isolated antecedent-backed antithesis | | 5–6 | Structure is guessable but ideas are mixed, uneven paragraphs; a cluster of manufactured antitheses (two or more within ~150 words) recurs — this band or lower. A document that is a chat transcript rather than a piece of writing (AD-14) belongs here at best, whatever the quality of the individual answers | | 3–4 | No structure: stream of consciousness without paragraph breaks | | 1–2 | Chaotic exposition, impossible to identify the main point | ### Ц — Reader precision (weight 0.20) Type: soft (expert). Rule sources: [info-style.md](info-style.md) (facts/evidence section), domain-specific file when applicable. From [addenda.md](addenda.md): AD-12 (hollowed mechanism — **Medium**: two or more clauses whose operative term is a placeholder land this dimension in the 5–6 band or lower), AD-13 (phantom attribution — **Medium**: a citation gesture with no identifiable source, which suppresses the reader's question instead of answering it), AD-15 (search-engine addressee — **High**, charged to the **document**: a piece written for the crawler cannot reach the upper bands, because the reader it names is not the reader it serves). Domain routing for this dimension: | Text type | Additional rules from | |---|---| | UI text, buttons, errors, microcopy | [ux-writing.md](ux-writing.md) | | Email, messenger, business | [business-writing.md](business-writing.md) | | General / article / documentation | info-style.md only | | Score | Criteria | |---|---| | 9–10 | Concrete facts and numbers. Clear reader benefit. Examples and evidence. No empty declarations. Actionable for the reader. Sources are named and checkable, never gestured at («исследования показывают»); mechanisms are named, never replaced by placeholders («различные факторы») | | 7–8 | Mostly concrete, but 1–2 claims without evidence or abstract phrases | | 5–6 | Mix of concrete and abstract. Some claims are unsubstantiated. Reader benefit unclear | | 3–4 | Declarations and promises dominate over facts. Text says nothing. Here too: a piece addressed to a search engine rather than a reader (AD-15), which answers the query and leaves the reader unable to act | | 1–2 | Fully abstract: «Мы предлагаем комплексные решения для вашего бизнеса» | --- ## Composite score ``` S = round₁(T × 0.15 + Ч × 0.25 + Г × 0.20 + С × 0.20 + Ц × 0.20) ``` Where `round₁` = round to one decimal place. Total weight: 0.15 + 0.25 + 0.20 + 0.20 + 0.20 = 1.00. ## Non-compensatory rules These caps prevent high scores in other dimensions from masking critical weaknesses. | Condition | Cap | Reason | |---|---|---| | Any dimension < 3.0 | Total ≤ 5.0 | Critical weakness is not compensable | | Typography < 4.0 | Total ≤ 7.0 | Basic typography is mandatory | | Grammar < 4.0 | Total ≤ 7.0 | Basic grammar is mandatory | Apply the most restrictive cap when multiple conditions trigger. **Severity in `addenda.md` does not add a cap.** Two rules there are graded High — AD-14 (chat transcript as the artifact) and AD-15 (search-engine addressee) — and both are charged to the document rather than to a fragment. High says how far the dimension moves and that no local edit repairs the defect; it does not mean a fourth row belongs in the table above. The caps stay where they were: two hard dimensions and the global floor. This is a deliberate choice and not an omission — a cap keyed to a soft, judgement-heavy dimension would put a hard ceiling on a score behind a call a reader could reasonably dispute, which is the failure mode the five orthogonal dimensions exist to avoid. **But the label has a floor, and it is not the same thing as a cap.** A document charged with AD-14 or AD-15 is never labelled «Эталонный» or «Хороший», whatever the arithmetic returns. Report the number as computed and the label as capped at «Средний», with one line saying which rule capped it. The number is not touched, so nothing about the five dimensions is overridden: this constrains only the word a reader takes away. It exists because the arithmetic can be right and the summary still false. Measured: a search-engine stub — grammatical, typographically clean, and of no use to anyone — scored 6.7 on Typography 9.5 and Grammar 9.5, because the two hard dimensions carry 0.35 of the weight and the whole harm sits in Reader precision, which was already at 3.0 with nowhere left to fall. A flawless chat transcript is the same shape and worse: with nothing wrong in any sentence it reaches 9.2, «Эталонный», for a genre that platforms remove on sight. No rule about words can lower either one, because neither has a defect in its words. ## Score interpretation | Score | Label (RU) | Label (EN) | Meaning | |---|---|---|---| | 9.0–10.0 | Эталонный | Benchmark | Ready to publish. Rare result — a reference point, not a target | | 7.0–8.9 | Хороший | Good | Minor improvements needed. Target range for working texts | | 5.0–6.9 | Средний | Average | Noticeable issues, editing needed | | 3.0–4.9 | Слабый | Weak | Significant issues, rewriting needed | | 0.0–2.9 | Критический | Critical | Full rewrite required | A score of 8+ is a strong result. 10.0 is a theoretical ideal, not a practical target. The two top labels have a floor above them: a document charged with AD-14 or AD-15 does not receive them (see «Non-compensatory rules»). Say so in one line — «ярлык ограничен: AD-15» — so the reader learns which rule capped it rather than wondering why the number and the word disagree. ## Output format ``` ## Оценка: X.X / 10 — [Label] | Измерение | Балл | Замечания | |---|---|---| | Типографика | X.X | [1–3 specific issues with quoted fragments] | | Чистота языка | X.X | [1–3 specific issues] | | Грамотность | X.X | [1–3 specific issues] | | Структура | X.X | [1–3 specific issues] | | Точность для читателя | X.X | [1–3 specific issues] | **Формула:** T×0.15 + Ч×0.25 + Г×0.20 + С×0.20 + Ц×0.20 = X.X [Non-compensatory cap note, if triggered] [Label floor note, if triggered: «Ярлык ограничен до «Средний»: AD-14» / «: AD-15»] ### Что оценка не измеряет [Limitations list] ``` For texts under 50 words, prepend: «Текст короткий — оценка менее надёжна. Для точной оценки рекомендуется текст от 50 слов.» ## Limitations The score does NOT measure: - **Factual accuracy** — numbers and dates may be false but beautifully formatted - **Audience tone fit** — appropriateness for the specific target audience - **Creativity and voice** — authorial style and originality - **Effectiveness** — conversion, engagement, persuasion outcomes - **Brief compliance** — whether the text meets the client's assignment These limitations are stated explicitly in every scoring output to prevent overreliance on the score (Goodhart's Law defense). -
sources.md 4.4 KB
# Sources and Attribution This plugin would not exist without the extraordinary work of the people listed below. Their books, articles, and tools have transformed the culture of Russian text on the internet, raising standards for millions of readers and writers. Thank you for your dedication and generosity in sharing knowledge. All formulations in this plugin are the author's own. No content is quoted verbatim. Listed authors and publishers have not endorsed, reviewed, or approved this plugin. References are provided for further study and as a tribute to the works that inspired this project. ## Branch 1 — Typography 1. **Артём Горбунов «Типографика и вёрстка»** (2017) — core typography rules: dashes, quotes, spacing, screen typography — [buy: bureau.ru/projects/book-typography/](https://bureau.ru/projects/book-typography/) 2. **Бюро Горбунова «Советы»** (2005–present, 4809+ tips) — practical micro-advice on typography, editing, design — [bureau.ru/soviet/](https://bureau.ru/soviet/) 3. **А. Э. Мильчин, Л. К. Чельцова «Справочник издателя и автора»** (2021, 6th ed.) — punctuation, abbreviations, number formatting, editorial conventions — [buy: store.artlebedev.com](https://store.artlebedev.com) 4. **Илья Бирман — Типографическая раскладка** (2007–present) — keyboard layout for typing correct typographic characters — [ilyabirman.ru/typography-layout/](https://ilyabirman.ru/typography-layout/) 5. **Type.today — Journal** (2016–present) — Cyrillic typeface design, font pairing, readability — [type.today](https://type.today) ## Branch 2 — Info-Style and Clear Writing 6. **Максим Ильяхов «Пиши, сокращай»** (2017, updated 2025) — foundation of info-style: removing filler, fighting канцелярит, reader-first writing — [buy: book.glvrd.ru](https://book.glvrd.ru) 7. **Максим Ильяхов «Ясно, понятно»** (2019) — advanced info-style: text structure, persuasion, visual-textual integration — [buy: book.glvrd.ru](https://book.glvrd.ru) 8. **Редполитика Т–Ж** (2017–present, 56+ pages) — tone of voice, formatting, numbers, business writing standards — [journal.tinkoff.ru/manual/](https://journal.tinkoff.ru/manual/) 9. **Контур — Гайды** (2020–present) — UX writing for B2B software: interface text, errors, onboarding — [guides.kontur.ru](https://guides.kontur.ru) 10. **Yandex — Gravity UI** (2023–present) — design system with content guidelines for Russian UI text — [gravity-ui.com](https://gravity-ui.com) ## Support — Writing and Language 11. **Максим Ильяхов, Людмила Сарычева «Новые правила деловой переписки»** (2018) — email structure, respectful tone, messenger etiquette — [buy: book.glvrd.ru](https://book.glvrd.ru) 12. **Нора Галь «Слово живое и мёртвое»** (1972, reprints) — original critique of канцелярит, nominalization abuse, passive voice — [lib.ru/TRANSLATORS/NORA_GAL/slowo.txt](http://lib.ru/TRANSLATORS/NORA_GAL/slowo.txt) 13. **Д. Э. Розенталь — Справочники по правописанию** (1960s–2000s) — authoritative Russian grammar, punctuation, orthography baseline — buy: widely available 14. **Артемий Лебедев «Ководство»** (1998–present) — screen typography, dashes and quotes, design-text readability — [artlebedev.ru/kovodstvo](https://www.artlebedev.ru/kovodstvo/) 15. **Ozon — UX Writing Practices** (2021–present) — UX writing at scale: buttons, notifications, errors, product copy — [habr.com](https://habr.com) 16. **ГОСТ Р 7.0.12-2011, ГОСТ 7.12-93** (Росстандарт) — official standards for bibliographic abbreviations in Russian — ГОСТ databases ## Online Tools - **Главред** ([glvrd.ru](https://glvrd.ru)) — checks text for info-style quality, highlights filler and канцелярит, scores 0–10 - **Типограф Лебедева** ([typograf.artlebedev.ru](https://www.artlebedev.ru/typograf/)) — auto-fixes typography: quotes, dashes, non-breaking spaces - **Орфограммка** ([orfogrammka.ru](https://orfogrammka.ru)) — grammar, spelling, punctuation checker beyond basic spellcheck -
typography.md 23.6 KB
# Правила русской типографики для цифровых текстов ## Contents - [A. Кавычки](#a-кавычки) - [B. Тире и дефис](#b-тире-и-дефис) - [C. Пробелы](#c-пробелы) - [D. Многоточие (ellipsis)](#d-многоточие-ellipsis) - [E. Числа и даты](#e-числа-и-даты) - [F. Сокращения](#f-сокращения) - [G. Специальные символы](#g-специальные-символы) - [Принципы наращения порядковых числительных](#принципы-наращения-порядковых-числительных) - [Sources](#sources) ## A. Кавычки ### A.1. Основные -- «ёлочки» R1. Основные кавычки в русском тексте -- `« »` (U+00AB, U+00BB). `"Война и мир"` -> `«Война и мир»` R2. Английские фигурные `" "` недопустимы в русском тексте. `"Правда"` -> `«Правда»` R3. Даже в коротких фразах -- ёлочки. `Он сказал: "Идём"` -> `Он сказал: «Идём»` ### A.2. Вложенные -- „лапки" R4. Внутренние кавычки -- „лапки" `„ "` (U+201E, U+201C). `«Роман «Онегин»»` -> `«Роман „Онегин"»` R5. Третий уровень вложенности -- одинарные ёлочки `‹ ›` или повторные „лапки". Пример: `«Бахтин писал: „Тришатов: ‹Любите вы музыку?›"»` ### A.3. Запрещённые виды кавычек R6|`"..."`|прямые (dumb quotes)|допустимы только в коде, CLI, конфигах R7|`"..."`|английские фигурные|только в англоязычных цитатах R8|`'...'`|одинарные английские|только в англоязычных цитатах ### A.4. Технические контексты R9. В блоках кода (`code`, `<pre>`) -- прямые кавычки `"` и `'` (часть синтаксиса). R10. В именах файлов, URL, командах терминала -- прямые кавычки. R11. В UI (названия кнопок, пунктов меню) -- ёлочки: нажмите «Сохранить». ### A.5. Пробелы и кавычки R12. Кавычки без пробелов от текста. `« Текст »` -> `«Текст»` (в отличие от французской традиции с тонкими пробелами). --- ## B. Тире и дефис Сводная таблица знаков-штрихов: знак|unicode|html|название|применение `-`|U+002D|`-`|дефис (hyphen-minus)|составные слова, переносы `–`|U+2013|`–`|короткое тире (en dash)|диапазоны: 2020–2025 `—`|U+2014|`—`|длинное тире (em dash)|пунктуация в предложениях `−`|U+2212|`−`|минус (minus sign)|математика: −5, a − b ### B.1. Длинное тире (em dash, U+2014) R13. Длинное тире `—` обрамляется пробелами. `Москва-столица` -> `Москва — столица` R14. Два дефиса -- не замена тире. `Москва--столица` -> `Москва — столица` R15. Дефис с пробелами вместо тире -- ошибка. `Он пришёл - и все замолчали` -> `Он пришёл — и все замолчали` R16. Пробел перед тире -- неразрывный (иначе тире на новой строке читается как прямая речь). Применение длинного тире: R17. Между подлежащим и сказуемым без связки: *Жизнь — борьба* R18. Пауза, разделение частей: *Я хотел позвонить — но передумал* R19. Прямая речь: *— Добрый день! — сказал он* R20. Вводные конструкции: *Этот город — как я уже говорил — очень красив* ### B.2. Короткое тире (en dash, U+2013) R21. Короткое тире для числовых/временных диапазонов, без пробелов. `2020-2025` -> `2020–2025` R22. Диапазоны страниц: `с. 10-15` -> `с. 10–15` R23. Составные наименования с именами собственными: `Алёхин-Капабланка` -> `Алёхин–Капабланка` R24. Века: `XI-XIII века` -> `XI–XIII века` R25. Маршруты: `Москва-Петербург` -> `Москва–Петербург` R26. Временные интервалы: `10:00-18:00` -> `10:00–18:00` ### B.3. Дефис (hyphen, U+002D) R27. Дефис только для составных слов, приставок/суффиксов, переносов: кое-что, по-русски, генерал-лейтенант, из-за, кто-нибудь, Ростов-на-Дону. ### B.4. Минус (minus sign, U+2212) R28. В математике -- специальный знак минуса `−`, не дефис и не тире. `-5 °C` -> `−5 °C` R29. Минус по ширине совпадает с `+` и `=`: `10 − 3 = 7`, `a − b`. --- ## C. Пробелы ### C.1. Неразрывный пробел после однобуквенных слов R30. После в, к, с, о, у, и, а, я -- неразрывный пробел (U+00A0), чтобы они не оказывались на конце строки. `в<nbsp>Москве`, `к<nbsp>сожалению`, `я<nbsp>думаю` ⚠ Заголовок говорил «предлогов/союзов», а список включает «я» -- местоимение. Верен список: Ководство § 62 запрещает оставлять на строке «одно-, двух- и некоторую часть трехбуквенных слов», а не только служебные. Обе редакции родились в одном коммите и дожили до v1.4.0; три сокращённые выжимки, где «я» потерялось, повторяли ту же узкую формулировку -- что они списаны с заголовка, не показано. ### C.2. Неразрывный пробел в инициалах R31. Инициалы и фамилия связываются nbsp: `А.<nbsp>С.<nbsp>Пушкин` (не `А. С.<перенос>Пушкин`). ### C.3. Тонкий неразрывный пробел в числах R32. Группы по 3 цифры разделяются тонким nbsp (U+202F) или обычным nbsp. `1,000,000` -> `1 000 000` R33. Точка как разделитель -- немецкий стандарт, недопустим. `1.000.000` -> `1 000 000` R34. Числа от 10 000 разделяются. `25400` -> `25 400` R35. Четырёхзначные (1000–9999) допустимо без разделителя, но при наличии крупных чисел -- единообразно разделять все. ### C.4. Неразрывный пробел перед единицами измерения > Регистр и приоритет: ru-text ориентирован на общий и веб-текст, поэтому в типографике опирается прежде всего на нормы экранной и веб-типографики -- «Ководство» А. Лебедева (ведущий ориентир для веб-текста), а также «Типографику и вёрстку» и «Советы» Бюро Горбунова. Где эти источники дают норму для общего и веб-текста, она имеет приоритет. Печатно-редакторские справочники -- «Справочник издателя и автора» Мильчина и Чельцовой, справочники Розенталя -- применяются для редакторско-издательских конвенций и там, где веб-ориентированные источники вопрос не покрывают. Метрологический стандарт (ГОСТ 8.417-2024) -- только как контекстный вариант для научно-технических документов. Приоритет здесь -- редакторский выбор ru-text по регистру, а не одобрение со стороны авторов. Ниже это затрагивает знак процента (R37); провенанс слитного написания остаётся за Шульмейстером и Гиленсоном и де-факто нормой Рунета. R36. Число и единица связываются nbsp: `5кг` -> `5<nbsp>кг` R37. Процент пишется слитно с числом: `100 %` -> `100%`. Исключение из R36: в общем и веб-тексте доминирует слитное написание (традиция ручного набора -- М. Шульмейстер, П. Гиленсон; де-факто норма Рунета). Пробел `100<nbsp>%` -- контекстный вариант для научно-технических документов по ГОСТ 8.417-2024 (заменил ред. 2002). R38. Температура: `20°C` -> `20<nbsp>°C` R39. Площадь, время: `50<nbsp>м²`, `3<nbsp>ч 20<nbsp>мин` ### C.5. Пробелы и знаки препинания R40. Нет пробела ПЕРЕД: `.` `,` `:` `;` `!` `?` -- `Привет !` -> `Привет!` R41. Пробел ПОСЛЕ: `.` `,` `:` `;` `!` `?` -- `Привет!Как дела?` -> `Привет! Как дела?` R42. Нет пробела перед закрывающей скобкой/кавычкой: `(текст )` -> `(текст)` R43. Нет пробела после открывающей скобки/кавычки: `( текст)` -> `(текст)` ### C.6. Неразрывный пробел перед тире R44. Пробел перед длинным тире -- неразрывный, чтобы тире не переносилось на новую строку. --- ## D. Многоточие (ellipsis) ### D.1. Символ многоточия R45. Единый символ `…` (U+2026), не три точки. `Ну что ж...` -> `Ну что ж…` R46. Две точки -- тоже ошибка. `Может быть..` -> `Может быть…` ### D.2. Пробелы и многоточие R47. В конце предложения -- без пробела перед: `Он ушёл…` R48. В начале (продолжение) -- без пробела после: `…и тогда он вернулся` R49. В середине (пропуск) -- без пробелов вокруг: `Он… впрочем, неважно` R50. После многоточия новое предложение -- пробел перед заглавной: `Он ушёл… Она осталась` ⚠ R49 и R50 смотрят на ОДНО И ТО ЖЕ место с разных сторон, и порядок между ними задаёт регистр справа. Строчная буква или цифра — предложение продолжается, пробелы вокруг многоточия убираются (R49). Заглавная — начинается новое предложение, и пробел, наоборот, нужен (R50). Без этого разделения правила съедали бы правки друг друга: одно ставит пробел, другое его убирает, и текст не сходится ни к какому виду. ⚠ Три случая, где пробел вокруг многоточия остаётся, хотя правило будто требует обратного: - **Диапазон.** `А…Я`, `10…20 °C` — слева не слово, а одиночный индекс или цифра. Вставленный пробел разорвал бы диапазон надвое. - **Реплика диалога.** `— Я думал … — Не думал, — отрезал он.` Справа от многоточия тире, а не буква. Съесть пробел перед репликным тире значит произвести ошибку там, где была неровность. - **Пустое поле бланка.** `Фамилия … Имя … Отчество …` Многоточие здесь — место под заполнение, а не обрыв фразы; склейка превратила бы бланк в оборванный текст. ⚠ R47 и R48 остаются НЕ реализованными машинно, и причина в них самих: чтобы снять пробел перед многоточием в конце предложения, надо отличить конец предложения от пропуска в цитате, где пробел уместен. Механического признака этого различия корпус не даёт — правило держит читатель. ### D.3. Многоточие с ?/! R51. После `?` или `!` -- две точки, а не три: `Неужели?...` -> `Неужели?..` R52. Аналогично: `Как же так!...` -> `Как же так!..` --- ## E. Числа и даты ### E.1. Разделитель разрядов R53. Разряды разделяются пробелами (тонкими неразрывными). Запятые и точки не используются. `1,000,000` -> `1 000 000` ⚠ Одну запятую снимать нельзя, и это не осторожность, а соседнее правило: R54 требует запятую как ДЕСЯТИЧНЫЙ разделитель. Поэтому `1,500` законен сразу по двум чтениям — «полторы тысячи» по R53 и «одна целая пятьсот тысячных» по R54, — и различить их нечем ни контекстом, ни числом цифр. Неоднозначность снимают две и более групп: десятичная запятая в числе ровно одна. `1,500,000` -> `1 500 000`, а `1,500` остаётся как есть. ### E.2. Десятичный разделитель R54. Десятичный разделитель -- запятая: `3.14` -> `3,14`; `0.5` -> `0,5`; `99.9%` -> `99,9%` ### E.3. Порядковые числительные R55. К цифре через дефис -- падежное окончание: `1й` -> `1-й этаж` R56. Если предпоследняя буква числительного -- согласная, окончание в одну букву: 5-й, 5-я, 5-е, 5-м. `2-ая` -> `2-я линия` R57. Если предпоследняя буква -- гласная, окончание в две буквы: 2-го, 2-му. `10-ом` -> `10-м` R58. К римским цифрам наращение не добавляется: `XXI-й век` -> `XXI век` ### E.4. Даты R59. Полная дата в тексте: `15 марта 2026 года`. Короткая для таблиц/форм: `15.03.2026`. Исключение -- дата в порядке год-месяц-день (`2026-07-13`, с любым дефисом) в ячейке таблицы остаётся как есть: R59 выбирает между двумя русскими формами и третьей не касается. Вне ячейки форма разрешения не даёт: `совещание состоится 2026-09-15` -> `совещание состоится 15 сентября 2026 года`. R60. Не смешивать форматы: `15.03.2026 года` -- ошибка. R61. Слеш -- не разделитель дат: `15/03/2026` -> `15.03.2026` R62. Диапазон лет -- короткое тире: `2025-2026 гг.` -> `2025–2026 гг.` R63. Десятилетия -- краткое наращение: `90-ые годы` -> `90-е годы` ### E.5. Время R64. Разделитель -- двоеточие: `14.30` -> `14:30` R65. Ноль перед минутами: `9:5` -> `9:05` R66. Полный формат для расписаний: `с 10 до 18` -> `с 10:00 до 18:00` ### E.6. Телефонные номера R67. Формат: `+7 (999) 123-45-67`. Не `+79991234567`, не `8-999-123-45-67`. Для 8-800: `8 800 123-45-67`. ### E.7. Денежные суммы R68. Знак рубля после числа через nbsp: `₽1 500` -> `1 500 ₽` R69. Пробел перед словесным сокращением: `1 500руб.` -> `1 500 руб.` R70. Запятая как десятичный разделитель в суммах: `99.90 ₽` -> `99,90 ₽` R71. Доллар -- символ перед числом: `100$` -> `$100` R72. Евро -- после числа с пробелом: `100€` -> `100 €` --- ## F. Сокращения ### F.1–F.4. Сводная таблица сокращений **С точками (части через nbsp):** сокр.|полная форма|прим. т. д.|так далее|и т. д. т. п.|тому подобное|и т. п. т. е.|то есть| т. к.|так как| т. н.|так называемый| и др.|и другие| и пр.|и прочие| н. э.|нашей эры|до н. э. R73. Между частями сокращений с точками -- неразрывный пробел: `и т.д.` -> `и т. д.` **Единицы измерения (без точек):** R74. Единицы измерения пишутся без точки: кг, м, км, с, мин, ч, л, га. `кг.` -> `кг` ⚠ Точка снимается не всегда, и оговорка тут несущая: та же точка закрывает предложение. Снимать её можно только когда предложение ПРОДОЛЖАЕТСЯ — то есть справа стоит строчная буква: `Вес 5 кг. брутто` -> `Вес 5 кг брутто`, но `Вес 5 кг. Брутто указано` остаётся как есть. Конец текста тоже не продолжение: `Вес 5 кг.` не трогаем. ⚠ И только многобуквенные единицы — `кг`, `км`, `мин`, `га`. Однобуквенные `с`, `м`, `л`, `ч` из списка выше с точкой означают другое: `с.` страница, `л.` лист, `ч.` часть. Буквы `г` в списке R74 нет вовсе, и это удача: `г.` — год и город, а `в 2020 г` уже другой текст. Удаление необратимо для смысла, поэтому список сужен, а не расширен. **Академические и профессиональные:** сокр.|полная форма д-р|доктор проф.|профессор канд.|кандидат акад.|академик доц.|доцент гл.|глава ред.|редактор изд.|издание R75. Академические сокращения с точкой (кроме дефисных): проф., канд., акад., доц., гл., ред., изд.; но: д-р. **Географические и адресные:** сокр.|полная форма|пример г.|город|г. Москва ул.|улица|ул. Ленина д.|дом|д. 5 кв.|квартира|кв. 12 пр. / пр-т|проспект|пр. Мира пер.|переулок|пер. Сивцев Вражек обл.|область|Московская обл. R76. Географические сокращения с точкой: г., ул., д., кв., пр., пер., обл. ### F.5. Сокращения в заголовках R77. В заголовках и подзаголовках сокращения раскрывать полностью: `Канд. наук и его роль` -> `Кандидат наук и его роль` --- ## G. Специальные символы Сводная таблица спецсимволов: символ|unicode|html|название «|U+00AB|`«`|открывающая ёлочка »|U+00BB|`»`|закрывающая ёлочка „|U+201E|`„`|открывающая лапка "|U+201C|`“`|закрывающая лапка —|U+2014|`—`|длинное тире –|U+2013|`–`|короткое тире −|U+2212|`−`|минус (nbsp)|U+00A0|` `|неразрывный пробел (nnbsp)|U+202F|--|тонкий неразрывный пробел …|U+2026|`…`|многоточие '|U+2019|`’`|апостроф °|U+00B0|`°`|градус ×|U+00D7|`×`|знак умножения №|U+2116|`№`|знак номера ©|U+00A9|`©`|copyright ™|U+2122|`™`|trademark ®|U+00AE|`®`|registered •|U+2022|`•`|маркер списка (bullet) ### G.1. Апостроф R78. Правильный апостроф -- `'` (U+2019), не машинописный `'` (U+0027): `О'Генри` -> `О'Генри`, `д'Артаньян` -> `д'Артаньян` ### G.2. Знак градуса R79. Градус -- `°` (U+00B0). Не `^o`, не `0`. R80. Число + градус + шкала -- nbsp от числа: `20°C` -> `20 °C` R81. Угол -- без пробела: `360°`, `90°` ### G.3. Знак умножения R82. Знак умножения `×` (U+00D7), не латинская `x`: `5 x 3` -> `5 × 3` R83. Разрешение экрана: `1920x1080` -> `1920 × 1080` R84. Не звёздочка: `3 * 4 м` -> `3 × 4 м` ### G.4. Знак номера R85. В русском -- `№` (U+2116), не `N` и не `#`: `#5` -> `№ 5`, `N 5` -> `№ 5` R86. После `№` -- неразрывный пробел перед цифрой: `дом №12` -> `дом № 12` ### G.5. Знаки авторского права и торговых марок R87. Copyright: `©` (U+00A9). `(С) 2026` -> `© 2026` R88. Trademark: `™` (U+2122). Пример: `Бренд™` R89. Registered: `®` (U+00AE). Пример: `Марка®` ### G.6. Маркер списка R90. Для маркированных списков -- символ `•` (U+2022), не дефис и не звёздочка. R91. В Markdown и plain text `-` или `*` допустимы (часть синтаксиса разметки). --- ## Принципы наращения порядковых числительных R92. Наращение через дефис: `5-й`, `2-го`. R93. После согласной предпоследней буквы -- одна буква: 5-й, 5-я, 5-е, 5-м. R94. После гласной предпоследней буквы -- две буквы: 2-го, 2-му. R95. Римские цифры без наращения: XXI век. R96. Десятилетия -- краткое наращение: 90-е годы, не 90-ые. ## Sources See [sources.md](sources.md) -
ux-writing.md 29.8 KB
# UX-writing на русском языке Справочник по написанию интерфейсных текстов на русском языке. ## Contents - [A. Основные принципы UX-writing на русском](#a-основные-принципы-ux-writing-на-русском) - [B. Кнопки (Button labels)](#b-кнопки-button-labels) - [C. Сообщения об ошибках (Error messages)](#c-сообщения-об-ошибках-error-messages) - [D. Пустые состояния (Empty states)](#d-пустые-состояния-empty-states) - [E. Подсказки и тултипы (Tooltips and hints)](#e-подсказки-и-тултипы-tooltips-and-hints) - [F. Уведомления и тосты (Notifications and toasts)](#f-уведомления-и-тосты-notifications-and-toasts) - [G. Элементы форм (Form elements)](#g-элементы-форм-form-elements) - [H. Загрузка и прогресс (Loading and progress)](#h-загрузка-и-прогресс-loading-and-progress) - [I. Диалоги подтверждения (Confirmation dialogs)](#i-диалоги-подтверждения-confirmation-dialogs) - [J. Единообразие терминов (Terminology consistency)](#j-единообразие-терминов-terminology-consistency) - [K. Особенности UX-writing на русском языке](#k-особенности-ux-writing-на-русском-языке) - [L. Типографика](#l-типографика) - [M. Краткая памятка для самопроверки](#m-краткая-памятка-для-самопроверки) - [Sources](#sources) --- ## A. Основные принципы UX-writing на русском 1. **Текст — элемент дизайна, а не украшение.** Если текст можно убрать без потери смысла — его быть не должно. Если нельзя — он заслуживает такого же внимания, как визуальная композиция экрана. 2. **За текст отвечает вся продуктовая команда.** Формулировки закладываются одновременно с проектированием сценария, не «на потом». Дизайнер, редактор и разработчик работают над текстом совместно. 3. **Говорите на языке пользователя.** Общеупотребительные слова приоритетнее технических терминов. Профессиональный жаргон аудитории допустим, внутренний жаргон компании — нет. 4. **Активный залог и первое лицо.** «Сохранить изменения» лучше «Изменения будут сохранены». Допустимо: «Мои заказы», «Мой профиль». 5. **Единообразие терминов.** Одно понятие — одно название на всех экранах, во всех состояниях, во всех каналах. 6. **Каждое слово работает.** Важное — в начало фразы. Убирайте слова без нового смысла. Не минимальная длина — максимальная ясность. 7. **Превращайте негатив в нейтральное/позитивное.** «Информация доступна ещё 5 дней» вместо «Информация исчезнет через 5 дней». Без искажения смысла. 8. **Информируйте, зачем.** Запрашиваете данные — объясните, для чего. Ограничиваете действие — назовите причину. --- ## B. Кнопки (Button labels) ### Общие правила 1. Текст на кнопке — решение пользователя, глагол в инфинитиве: **Сохранить**, **Отправить**, **Удалить**. 2. Проверка: «Ок, [текст кнопки]» — если звучит естественно, формулировка верная. 3. Кнопка-подтверждение (интерфейс информирует) может быть наречием: **Понятно**, **Хорошо**. 4. Заголовок экрана и кнопка связаны по смыслу. Допустимо повторять ключевое слово. 5. Пара «действие / отмена»: действие конкретно, отмена — всегда **Отмена** (не «Нет», не «Отменить»). 6. Деструктивные действия: указывайте объект — **Удалить проект**, не просто **Удалить**. ### Справочная таблица кнопок | en|ru | |---|---| | Save|Сохранить | | Save as|Сохранить как | | Cancel|Отмена (НЕ «Отменить» — это undo) | | Undo|Отменить (возврат к предыдущему состоянию) | | Redo|Повторить (вернуть отменённое) | | Delete|Удалить (уточняйте объект: «Удалить файл») | | Create|Создать | | Add|Добавить («в корзину», «участника») | | Edit|Редактировать (или «Изменить» — одно на весь продукт) | | Change|Изменить (не путать с «Редактировать») | | Send / Submit|Отправить | | Download|Скачать (НЕ «Загрузить» — двусмысленно) | | Upload|Загрузить (на сервер) | | Copy|Копировать | | Paste|Вставить | | Move|Переместить | | Rename|Переименовать | | Share|Поделиться | | Open|Открыть | | Close|Закрыть | | Sign in|Войти (НЕ «Аутентифицироваться») | | Sign out|Выйти | | Sign up|Зарегистрироваться (или «Создать аккаунт») | | Continue|Продолжить | | Back|Назад | | Next|Далее | | Done|Готово (завершение многошагового процесса) | | Apply|Применить (фильтры, настройки) | | Reset|Сбросить («Сбросить фильтры») | | Refresh / Update|Обновить | | Search / Find|Найти | | Subscribe|Подписаться | | Unsubscribe|Отписаться | | Expand|Развернуть | | Collapse|Свернуть | | Confirm|Подтвердить | | Retry|Попробовать снова (или «Повторить попытку») | | Skip|Пропустить | | Buy|Купить | | Pay|Оплатить | | Checkout|Оформить заказ | | Restore|Восстановить | | Block|Заблокировать | | Unblock|Разблокировать | | Configure|Настроить | | Select|Выбрать | | Accept|Принять (приглашения, условия) | | Decline|Отклонить | | Learn more|Подробнее (ссылка, не кнопка основного действия) | | Got it|Понятно (подтверждение информационного сообщения) | | Archive|Архивировать (не удалять, а скрыть из активных) | | Favorite / Unfavorite|В избранное / Убрать из избранного | | Mute / Unmute|Без звука / Со звуком (уведомления, чат) | | Report|Пожаловаться (на контент, пользователя) | | Add to cart|В корзину | | Add to wishlist|В список желаний | | Filter|Фильтровать (или «Применить фильтры») | | React|Отреагировать (эмодзи-реакции — без текста кнопки, только иконки) | --- ## C. Сообщения об ошибках (Error messages) ### Структура: 1) что произошло, 2) почему (если полезно), 3) что делать. ### Принципы 1. Нейтральный тон: не обвиняйте пользователя («Вы ввели неправильно» → «Неверный формат»). 2. Конкретика: называйте ограничения, форматы, допустимые значения. 3. Заголовки разных ошибок должны отличаться. Одинаковые «Не удалось…» — пользователь перестаёт различать, поддержка не может идентифицировать. 4. Экран ошибки — разновидность пустого состояния: помогите двинуться дальше. ### Формулировки: плохо|хорошо|почему | bad|good|why | |---|---|---| | Ошибка|Не удалось сохранить файл. Проверьте подключение|причина+действие | | Неверный формат|Загрузите JPG, PNG или WebP|называет решение | | Произошла ошибка. Попробуйте позже|Сервер не отвечает. Попробуйте через пару минут или в поддержку|ориентир+план | | Ошибка загрузки|Файл слишком большой. Максимум — 25 МБ|ограничение | | Неверный пароль|Неверный пароль. Сбросьте по ссылке|предлагает выход | | Ошибка ввода|Телефон: +7, 11 цифр|ожидаемый формат | | Недопустимые символы|Имя: буквы, дефис, пробел|допустимое | | Поле обязательно|Укажите email|конкретное поле | | Ошибка оплаты|Проверьте баланс или попробуйте другой способ|два варианта | | Что-то пошло не так|Не загрузилась страница. Обновите или вернитесь позже|действие+запас | | Ошибка авторизации|Не удалось войти. Проверьте логин и пароль|что проверить | | Данные не сохранены|Потеря соединения. Мы сохранили черновик|причина+автодействие | | Нет доступа|Нет доступа. Обратитесь к администратору|кто поможет | | Неверная дата|Дата — не раньше сегодняшнего дня|ограничение | | Превышен лимит|Максимум 10 участников. Удалите кого-то|лимит+выход | | Ошибка сети|Нет интернета. Проверьте Wi-Fi или мобильную сеть|действия | | Письмо не отправлено|Проверьте адрес получателя|вероятная причина | | Ошибка 404|Страница не найдена. Удалена или адрес с ошибкой|человеческий 404 | | Ошибка 500|Сбой на нашей стороне. Разбираемся, попробуйте позже|честность | --- ## D. Пустые состояния (Empty states) ### Принципы 1. Объясните, что здесь будет, когда появятся данные. 2. Предложите первое действие — кнопку или ссылку. 3. Тон ободряющий, не заискивающий. Без восклицательных знаков, смайлов, нарочитой «дружелюбности». 4. Пустое состояние — точка входа, а не тупик. ### Примеры - **Пустой список:** «Нет новых уведомлений» + «Здесь появятся уведомления о заказах, доставке и акциях» - **Пустой поиск:** «Ничего не нашлось по запросу «[запрос]»» + «Измените запрос или проверьте написание» + [Сбросить фильтры] - **Новый аккаунт:** «У вас пока нет проектов» + [Создать проект] - **Нет данных за период:** «Нет данных за выбранный период» + «Выберите другой диапазон» - **Пустая корзина:** «Корзина пуста» + [Перейти в каталог] - **Пустое избранное:** «В избранном пока пусто» + «Нажмите на сердечко у товара» --- ## E. Подсказки и тултипы (Tooltips and hints) ### Правила 1. Максимум 1–2 предложения. Больше — справочная статья. 2. Объясняйте «зачем», а не «что»: пользователь видит элемент, но может не понимать назначение. 3. Не дублируйте написанное на экране. Тултип «Кнопка сохранения» к кнопке «Сохранить» — бесполезен. 4. Нельзя прятать в тултип критически важную информацию: пользователь может его не увидеть. ### Типы подсказок | Тип|Триггер|Когда | |---|---|---| | Тултип|hover|Пояснение к иконке, сокращению, настройке | | Хинт|постоянно виден|Формат ввода, ограничения, пояснение к полю | | Инлайн-подсказка|всегда видна|Важные предупреждения, нельзя пропустить | | Обучающий тултип|первое посещение/обновление|Знакомство с новой функцией | ### Примеры - Тултип к замку: «Данные передаются по защищённому соединению» - Хинт под ИНН: «10 цифр для организации, 12 — для ИП» - Тултип к переключателю: «Если включено, уведомления будут приходить и по ночам» ### Пунктуация Правило точки в тултипах и подписях — см. §L «Типографика». --- ## F. Уведомления и тосты (Notifications and toasts) ### Типы 1. **Успех:** кратко, конкретно, без пафоса. «Файл сохранён», не «Операция выполнена успешно». Если действие очевидно — уведомление может не требоваться. 2. **Ошибка:** обязательно содержит действие или подсказку к решению. 3. **Инфо:** только если пользователь должен это знать прямо сейчас. Избыток вызывает «уведомительную слепоту». 4. **Предупреждение:** сообщите о риске и как его избежать. ### Формат 5. Тост: текст читается за 3–5 секунд. 6. Не блокируйте действия, тост не перекрывает важный контент. 7. Нужны подробности — ссылка «Подробнее», не длинный текст. ### Примеры | Тип|Плохо|Хорошо | |---|---|---| | Успех|Операция выполнена успешно|Изменения сохранены | | Успех|Действие завершено|Письмо отправлено | | Ошибка|Ошибка|Не удалось удалить файл. Попробуйте ещё раз | | Инфо|Внимание! Важная информация!|Завтра в 03:00 планируются технические работы | | Предупреждение|Осторожно!|Осталось 3 дня до окончания подписки. [Продлить] | --- ## G. Элементы форм (Form elements) ### Плейсхолдер 1. Показывает **пример** заполнения, не инструкцию. Хорошо: `Иван Петров`. Плохо: `Введите имя`. 2. Исчезает при вводе — не размещайте критически важную информацию. ### Лейбл 3. Существительное или короткая именная группа: «Электронная почта», «Дата рождения». 4. Не команда: «Электронная почта», а не «Введите электронную почту». 5. Обязательные поля не помечайте, если обязательны почти все. Помечайте необязательные. ### Валидация 6. Мгновенная, не по отправке формы. 7. Сообщение рядом с полем, не в общем блоке наверху. 8. Называйте формат: «email в формате name@example.com». 9. Не показывайте ошибку до начала ввода, но и не ждите завершения. ### Подпись к полю (help text) 10. Под полем. Объясняет «зачем» или формат. 11. Видна одновременно с полем, не по запросу. ### Примеры полей | Элемент|Лейбл|Плейсхолдер|Подпись | |---|---|---|---| | Email|Электронная почта|name@example.com|На эту почту придёт подтверждение | | Телефон|Телефон|+7 900 123-45-67| | | Пароль|Пароль| |Минимум 8 символов, хотя бы одна цифра | | ИНН|ИНН|7707083893|10 цифр для юрлица, 12 для ИП | | Дата|Дата рождения|15.03.1990| | | Комментарий|Комментарий к заказу (необязательно)|Домофон не работает, позвоните| | --- ## H. Загрузка и прогресс (Loading and progress) ### Принципы 1. Сообщайте, какой процесс идёт — пользователь не должен гадать. 2. Больше 2–3 секунд — текстовое пояснение. 3. Можно показать прогресс (процент, шаги) — показывайте. 4. Длительные операции: укажите типичное время. ### Формулировки | Ситуация|Плохо|Хорошо | |---|---|---| | Загрузка данных|*(спиннер)*|Загружаем документы… | | Отправка формы|Загрузка…|Отправляем заявку… | | Генерация отчёта|Подождите|Формируем отчёт. Обычно 1–2 минуты | | Импорт|Обработка…|Импортируем данные: 45 из 120 записей | | Экспорт|Подождите|Готовим файл для скачивания… | | Длительная операция|*(ничего)*|Проверяем данные. До 5 минут, можно закрыть — пришлём уведомление | ### Пошаговый прогресс 5. Если несколько этапов — показывайте шаг: «Шаг 2 из 4: Проверяем реквизиты…» --- ## I. Диалоги подтверждения (Confirmation dialogs) ### Структура 1. **Заголовок:** что произойдёт — вопрос: «Удалить проект?», «Отменить подписку?». 2. **Тело:** последствия. Конкретика: что именно затронуто. 3. **Кнопки:** конкретное действие + Отмена. **Никогда** «Да / Нет». ### Когда подтверждения не нужны 4. Действие обратимо — дайте undo после выполнения, не подтверждение до. 5. Действие частое/серийное — подтверждение раздражает и замедляет. ### Усиление подтверждения 6. Особо опасные действия: покажите конкретику — список удаляемого, количество записей, имена получателей. ### Примеры **Удаление (необратимое):** > **Удалить проект «Альфа»?** > Будут удалены все файлы и история (12 файлов, 47 версий). Нельзя отменить. > [Удалить проект] [Отмена] **Отмена подписки:** > **Отменить подписку?** > Активна до 15 апреля. После — доступ к платным функциям прекратится. > [Отменить подписку] [Оставить подписку] **Выход без сохранения:** > **Выйти без сохранения?** > Несохранённые изменения будут потеряны. > [Выйти] [Вернуться к редактированию] **Массовое действие:** > **Отправить рассылку 1 240 получателям?** > Отменить рассылку после отправки невозможно. > [Отправить] [Отмена] --- ## J. Единообразие терминов (Terminology consistency) ### Принцип «одно понятие — одно слово» 1. Назвали «проект» — он «проект» везде: навигация, заголовки, ошибки, уведомления, письма. Не чередуйте с синонимами. В интерфейсе повторяемость — достоинство. ### Глоссарий продукта 2. Ведите глоссарий. Минимум: термин, определение, где используется в UI, что НЕ использовать. ### Локализация vs транслитерация 3. **Русское слово** — если не длиннее англицизма более чем в 1,5 раза, привычно аудитории, однозначно. 4. **Транслитерация** — если русский значительно длиннее, термин прочно вошёл в язык, русский вариант неестественен. 5. **Проверяйте** частотность по словарям и поисковикам. «Лендинг» — устоявшееся; «лэндинг» — менее частотное. ### Частые проблемные пары | Ситуация|Рекомендация | |---|---| | Авторизация vs аутентификация|В UI: «Вход». Техразличия не нужны пользователю | | Загрузить (upload) vs загрузить (download)|**загрузить** (на сервер) и **скачать** (на устройство) | | Логин vs имя пользователя|Одно на весь продукт | | Аккаунт vs учётная запись|«Аккаунт» — потребительские; «Учётная запись» — корпоративные | | Нотификация vs уведомление|«Уведомление» — общеупотребительное | | Баг vs ошибка|Для пользователя — «ошибка» или «сбой» | | Дашборд vs панель|«Дашборд» прижился в продуктовых интерфейсах; «панель»/«сводка» — допустимая альтернатива по контексту | | Паттерн vs шаблон|«Шаблон» — для пользовательского интерфейса | --- ## K. Особенности UX-writing на русском языке ### Обращение: «вы» или «ты» | Критерий|«Ты»|«Вы» | |---|---|---| | Аудитория|Молодая, неформальная|Широкая, разновозрастная, профессиональная | | Тон|Дружеский|Нейтральный, деловой | | Примеры|Telegram, VK, игры|Банки, госуслуги, B2B | 1. Выберите форму один раз — без исключений на всех экранах. Смешение разрушает единый голос. 2. Оба варианта со строчной буквы, если не личное обращение в письме. ### Гендер в интерфейсных текстах 3. **Безличные конструкции** (самый универсальный): «Заказ оформлен» вместо «Вы оформили заказ». 4. **Инфинитив:** «Для продолжения необходимо подтвердить email». 5. **Множественное число:** «Вы вошли в систему» (не «вошёл/вошла»). 6. Пол из профиля — допустимо согласование, но требует технической реализации. ### Длина слов: русский на ~30% длиннее английского 7. **Кнопки:** «Зарегистрироваться» (18) vs «Sign up» (7) — закладывайте запас ширины. 8. **Навигация:** пункты меню могут не влезать. 9. **Мобильные экраны:** критично для маленьких разрешений. 10. **Таблицы:** заголовки столбцов на русском занимают больше. 11. Решения: сокращайте формулировки, используйте общепринятые сокращения, тестируйте с реальным русским текстом, не Lorem ipsum. ### Типичные проблемы при локализации с английского 12. **Калькирование:** «Это действие не может быть отменено» → «Это действие нельзя отменить». 13. **Артикли:** «the file» → «файл», не «этот файл» или «данный файл» (канцелярит). 14. **Порядок слов:** русский свободный — ставьте важное в начало. 15. **Множественное число:** 3 формы (1 файл, 2 файла, 5 файлов) — не забывайте о плюрализации в шаблонах. ### Ложные друзья переводчика | English|Неправильно|Правильно | |---|---|---| | Accurate|Аккуратный|Точный | | Actually|Актуально|На самом деле | | Application|Аппликация|Приложение / Заявка | | Data|Дата|Данные | | Magazine|Магазин|Журнал | | Replica|Реплика|Копия / Точная копия | --- ## L. Типографика Полные правила русской типографики см. в [typography.md](typography.md). UX-специфичные дополнения ниже: 1. В заголовках точка не ставится. 2. В подписях (тосты, хинты, тултипы): точка только между предложениями, не в конце. Исключение — полноценный текст из 2+ абзацев: обычные правила пунктуации. 3. Решение об использовании Ё принимается на уровне продукта и фиксируется в редполитике. 4. Обязательно ставьте Ё, когда возможны разночтения (всё vs все, передохнём vs передохнем). 5. Обязательно ставьте Ё в именах собственных. 6. Используйте символ ₽, не «руб.» или «р.». Знак после числа через пробел: 1 500 ₽. --- ## M. Краткая памятка для самопроверки - [ ] Текст понятен с первого прочтения без дополнительного контекста? - [ ] Важное стоит в начале фразы? - [ ] Нет слов, которые можно убрать без потери смысла? - [ ] Термины совпадают с глоссарием продукта? - [ ] Кнопки содержат глагол (или наречие для подтверждения)? - [ ] Ошибки содержат действие — что делать дальше? - [ ] Пустые состояния предлагают первый шаг? - [ ] Заголовок и кнопка связаны по смыслу? - [ ] Текст уместится на всех экранах, включая мобильные? - [ ] Не используются «Да / Нет» в диалогах подтверждения? - [ ] Плейсхолдер содержит пример, а не инструкцию? - [ ] Форма обращения («вы» / «ты») единообразна? ## Sources See [sources.md](sources.md)
-
-
SKILL.md 4.2 KB
--- name: ru-text description: > Russian text quality. Triggers: вычитай, проверь текст, поправь, отредактируй, причеши, ru-text. Typography silently on any Russian output; deeper editing on request. Info-style, editorial, UX writing, business correspondence, AI-text cleanup. metadata: openclaw: always: true emoji: "📝" homepage: "https://ru-text.org" --- # ru-text — Russian Text Quality Independent Russian text quality reference by Arseniy Kamyshev. With gratitude to the authors whose work shaped modern Russian text standards. Credits and recommended reading: `references/sources.md` **Style priority**: if the user explicitly requests a specific style (casual, academic, SEO, literary, etc.), their prompt overrides these default rules where they conflict. These rules are defaults, not mandates. **Reviewing vs. rewriting**: when *checking* or proofreading existing text or a file, return the corrected version plus a list of changes — do not silently overwrite the source file. Rewrite a file in place only when the user explicitly asks. **Someone else's words stay theirs**: quoted material, code blocks and third-party text inside the user's document are reproduced as-is. Report an issue you see in them if it matters; never rewrite them. ## Always-On: Typography Apply to ALL Russian text output — silently: fix, don't announce. | Rule | Wrong | Correct | |---|---|---| | Primary quotes: guillemets | "текст" | «текст» | | Nested quotes: lapki | «"вложенные"» | «„вложенные“» | | Em dash, NBSP before it | слово - слово | слово — слово | | En dash for ranges, no spaces | 10-15 дней | 10–15 дней | | NBSP after single-letter words | в начале (breakable) | в\u00A0начале | | Ellipsis: single character | ... | … | | Digit groups with thin spaces | 1000000 | 1 000 000 | | Decimal comma (not dot) | 3.14 | 3,14 | | Ordinal with hyphen | 1ый, 2ой | 1-й, 2-й | | Numero sign | No. 5, #5 | № 5 | | Abbreviations with NBSP | т.д., т.е. | т. д., т. е. | | Ruble sign after number, NBSP | 1500₽ | 1 500 ₽ | Full typography reference: `references/typography.md` `/ru-text:ru-score` — text quality score (0–10, 5 dimensions). ## Top Stop-Words (when writing or editing on request) | Stop-word | Replace with | |---|---| | является | — (dash) or restructure | | осуществлять | делать, проводить | | в настоящее время | сейчас | | данный | этот | | определённый | (name the specific thing) | | произвести оплату | оплатить | | высококачественный | (name the specific quality) | | был осуществлён | (active voice + actor) | | на сегодняшний день | сегодня | | в целях | чтобы | Full stop-word catalog (92 entries): `references/info-style.md` ## When to Load Reference Files Reference files (paths are relative to this SKILL.md): `references/<filename>` If the path is not resolved, search: `Glob("**/ru-text/references/scoring.md")` and use the parent directory. | Task | File | |---|---| | Writing/editing articles, blog posts, SEO, content | info-style.md | | Interface text, buttons, errors, hints, microcopy | ux-writing.md | | Emails, messenger, business correspondence | business-writing.md | | Punctuation review, comma placement | editorial-punctuation.md | | Grammar, capitalization, agreement, pleonasms | editorial-grammar.md | | Finding and fixing text problems, diagnostics | anti-patterns.md | | Text scoring, quality assessment | scoring.md | | Credits, source attribution | sources.md | | Experience-based rules (dash overuse, etc.) | addenda.md | ## Quality Checklist Before delivering Russian text: - [ ] Quotes: «» primary, „“ nested - [ ] Dashes: — in text (NBSP before it), – in ranges, - only in compounds; max 1–2 per paragraph (a parallel row counts as one, dialogue dashes as none); trim to the limit, not to zero; edit a row whole or not at all - [ ] NBSP after в, к, с, о, у, и, а, я - [ ] Ellipsis: … (single char) - [ ] Abbreviations: т. д., т. п. (with NBSP) - [ ] No double spaces, no space before punctuation
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.