| name | living-text-style |
| description | Invoke at ФАЗА 0 of any article-skill BEFORE drafting (habr-article, vcru-article, dzen-article, pikabu-article, tenchat-article, telegraph-article, telegram-article, telegram-announcement). Injects 13 hard don'ts + Voice & Soul techniques + канцелярит replacement table into the author's context so the draft comes out living instead of AI-stamped. Mirror of `ai-text-checker` detective rules, cross-referenced via ↔ A{X} tags. |
Living Text Style — Preventive Layer
This skill is the preventive companion to ai-text-checker (detective). The
detective catalogs AI-writing patterns and cleans drafts after the fact.
This skill teaches the author to avoid the worst 13 patterns up-front and to
write with voice instead of producing a sterile, easy-to-scrub text.
When to invoke
ФАЗА 0 of habr-article, vcru-article, dzen-article, pikabu-article,
tenchat-article, telegraph-article, telegram-article,
telegram-announcement. BEFORE writing.
Do not skip. Skipping degrades draft quality and inflates ФАЗА 3 cleanup cost.
Hard don'ts (top 13 — самые ядовитые AI-маркеры)
| # | Не делай | Почему | ↔ Detector |
|---|
| 1 | «не просто X, а Y» / «не только X, но и Y» | AI-параллелизм | ↔ A9 |
| 2 | «является ключевым/важным», «представляет собой» | inflated significance | ↔ A1, ↔ A8 |
| 3 | «стоит отметить», «важно подчеркнуть», «необходимо учитывать» | filler-frame | ↔ A26, ↔ A7 |
| 4 | «подчёркивая», «демонстрируя», «способствуя» (деепричастия в хвосте) | participle cliché | ↔ A3 |
| 5 | «в современном мире», «в эпоху цифровизации», «в мире/сфере/области X» | template intro | ↔ A27, Layer B |
| 6 | «ключевой / важнейший / решающий / поворотный / знаковый» | AI vocabulary | ↔ A7 |
| 7 | «будущее выглядит ярко», «впереди захватывающие времена» | template positive ending | ↔ A24 |
| 8 | «отличный вопрос», «вы абсолютно правы» | sycophancy | ↔ A21, ↔ A19 |
| 9 | «надеюсь, это поможет», «дайте знать», «конечно!» | chatbot artifact | ↔ A19 |
| 10 | Title Case В Каждом Слове Заголовка | English-style heading | ↔ A16 |
| 11 | Bold на каждом ключевом слове | bold overuse | ↔ A14 |
| 12 | Подряд эмодзи как буллет-маркеры (🚀💡✅) | emoji decoration | ↔ A17 |
| 13 | «честно», «честно говоря», «если честно», «честная оговорка» + само-очевидные «я не стал выдумывать цифры», «вынес за скобки, а не придумал» | перформативная честность / пустой само-референс | ↔ A33 |
Voice & Soul (как добавить голос)
A clean text without voice is still obviously AI. After avoiding the 12 don'ts
above, apply these techniques so the result sounds like a living person:
- Have opinions — react to facts, don't just report them. «Честно, не знаю,
как к этому относиться» reads more human than a neutral list of pros and cons.
- Vary rhythm — короткие резкие предложения. Потом длинные, неторопливые.
Чередуй.
- Acknowledge complexity — «впечатляет, но и тревожит» лучше просто
«впечатляет». Mixed feelings are human.
- Use «я» где уместно — first person is honest, not unprofessional.
«Меня не отпускает мысль…», «Вот что меня цепляет…»
- Leave some mess — perfect structure feels algorithmic. Asides, inserts,
half-finished thoughts are human.
- Be specific in feelings — not «вызывает беспокойство», but «что-то
тревожное в агентах, работающих в три ночи».
Example (До → После)
До (sterile, clean but AI):
Эксперимент показал интересные результаты. Агенты сгенерировали 3 миллиона
строк кода. Некоторые разработчики впечатлены, другие настроены скептически.
После (alive):
Честно, не знаю, как к этому относиться. 3 миллиона строк кода — пока люди,
видимо, спали. Половина сообщества в восторге, половина объясняет, почему это
не считается. Правда, наверное, где-то посередине.
Канцелярит → живой язык (таблица замен)
| Канцелярит | Живой язык |
|---|
| проводить работу | работать |
| осуществлять контроль | контролировать |
| оказывать помощь | помогать |
| принимать участие | участвовать |
| является эффективным | работает / эффективен |
| представляет собой | это |
| выступает в роли | работает как |
| было принято решение | решили |
| для того чтобы | чтобы |
| в связи с тем, что | из-за того, что / из-за |
| в случае если | если |
| данный (= этот) | этот |
| осуществлять | делать / проводить |
| в рамках (нелитерально) | (удалить или упростить) |
| на данный момент | сейчас |
| в целях X | чтобы X |
Pre-draft self-check (что держим в уме при написании)
- Звучит ли текст естественно вслух?
- Разнообразен ли ритм предложений (короткие + длинные)?
- Есть ли конкретика вместо абстракций (цифры, имена, даты)?
- Есть ли голос (мнение, реакция, ритм, «я»)?
- Кавычки «ёлочки» (не "лапки")?
- Заголовки с маленькой буквы (кроме первого слова)?
Platform reminders (короткие)
Platform-specific tightening (anglicisms, em-dash density, rhetorical questions)
lives in ai-text-checker Layer C. The preventive layer is platform-agnostic:
the 12 don'ts above apply everywhere.
Maintenance contract
When adding/removing a don't here, update the matching pattern in
.claude/agents/content/workers/ai-text-checker.md (Layer A) and bump the
↔ Detector reference column. Drift between preventive and detective layers
degrades the system.
Note: the ↔ Detector column may also reference non-numeric anchors like
Layer B (project-specific stamps). The drift check below only covers numeric
A{X} tags. Verify non-numeric anchors manually when reorganizing
ai-text-checker.md.
Drift check after edits:
grep -oE '↔ A[0-9]+' .claude/skills/living-text-style/SKILL.md \
| sort -u | while read ref; do
id=${ref#↔ }
grep -q "^\*\*${id}\." .claude/agents/content/workers/ai-text-checker.md \
|| echo "MISSING: $ref"
done
Every ↔ A{X} tag here must resolve to an existing pattern ID in ai-text-checker.md.