stop-slop-ru и write-ru

Два скилла для Claude Code и других агентов на LLM. Первый проверяет готовый русский текст на следы нейросети и слабое письмо. Второй пишет русский текст так, чтобы этих следов не было.

Подрядчик присылает текст для сайта. Ошибок нет, читается гладко, а через минуту вы понимаете, что не запомнили ни одной фразы. Скиллы разбирают такой текст на конкретные маркеры: показывают каждый с цитатой, весом и готовой заменой, считают их плотность и объясняют, из чего сложился вывод.

stop-slop-ru: ревьюер

Работает по шагам.

  1. Определяет домен текста и говорит вслух, в каком режиме проверяет. Лендинг и научную статью нельзя мерить одной линейкой.
  2. Запускает scripts/check.py. Скрипт находит фразы из каталога, считает плотность на тысячу знаков, распределение находок по абзацам и контрпризнаки.
  3. Дочитывает глазами то, чего скрипт не видит: нанизывание родительных падежей, спрятанного деятеля, воду, финальный абзац-пересказ.
  4. Выписывает утверждения, которые из текста не проверишь: круглые числа, безымянные исследования, ссылки без выходных данных.
  5. Отдаёт отчёт и останавливается. Правит после отдельной команды «правь» и сохраняет голос автора.

Останавливается он не из вредности. Если переписать молча, автор получит чистый текст и не научится замечать свои повторяющиеся ходы.

Вердикт и пороги

Плотность считается по находкам среднего и высокого веса на тысячу знаков.

Вердикт Когда
Похоже на машину Есть находка высокого веса. Либо плотность выше 6 при ровном распределении и без контрпризнаков
Спорно Плотность от 3 до 6. Либо выше 6, но распределение неровное или есть контрпризнаки
Похоже на человека Плотность ниже 3, высокого веса нет

Одна находка ничего не доказывает: у живого человека где-нибудь да вылезет «в рамках». Машину выдаёт ровность. Поэтому вердикт смотрит ещё на две вещи. Распределение: у человека один абзац забит канцеляритом, а соседний чистый. Контрпризнаки: частицы «же» и «вот», идиомы, номер кабинета, обращение к коллеге по имени, брошенная на полдороге мысль.

Пороги откалиброваны на текстах из stop-slop-ru/evals/files/.

Текст Плотность по скрипту Вердикт
Лендинг, сгенерированный целиком, вместе с репликами чат-бота 23,9 машина
Гладкая статья для блога, ни одной частицы на 1700 знаков 7,6 машина
Служебное письмо с тяжёлым канцеляритом, живой автор 6,1 спорно
Пост про ремонт велосипеда, живой автор 2,7 человек

Письмо начальника и есть тот случай, ради которого в вердикт добавлено распределение. Порог 6 оно перешло, как и статья строкой выше. Но находки распределены неровно: в одном абзаце их шесть, в трёх по одной, а последний, про ремонт столовой, чистый совсем. Каждый абзац при этом кончается по-своему, и в середине стоит «я же предупреждал ещё в феврале». Это слабое письмо, генерации тут нет.

Риск искажения смысла

В юридических и медицинских текстах у каждой находки стоит своя колонка: нет, возможен, высокий. При высоком риске ревьюер показывает замену, но не применяет её даже по команде «правь».

«Вправе» и «обязан» несут разный объём обязательства. «Может вызывать» и «вызывает» это разные утверждения о вероятности. Числа, сроки, дозировки, названия препаратов и норм не трогаются вообще.

write-ru: писатель

Главное правило: без фактуры не пишет. Если в брифе нет ни числа, ни имени, ни срока, ни описания того, что продукт делает, скилл не выдаёт текст. Он задаёт максимум три вопроса и ждёт ответа.

Дальше он строит фразу вокруг деятеля и глагола: кто-то что-то делает. Канцелярит, пассив и отглагольные существительные это разные способы спрятать деятеля, потому и режутся все трое. Оценку скилл меняет на факт. «Быстрая доставка» это мнение, «привозим за два часа» проверяемое утверждение, и быстро ли это, читатель решит сам.

Ещё две вещи касаются звучания. Ритм держится неровным: абзац в строку рядом с абзацем в шесть строк, потому что ровная длина фразы выдаёт машину сильнее, чем отдельное плохое слово. И частицы. «Же», «ведь», «вот», «-то» теряются при переводе с английского, а в машинном русском их почти нет, и текст без них звучит как перевод.

Чего нет в брифе, того нет в тексте. Выдуманное число плохо, но правдоподобная деталь хуже: её никто не пойдёт проверять. Если без детали фраза не строится, писатель ставит [уточнить: что именно] и собирает пометки списком после текста. Больше трёх пометок значит, что фактуры мало, и тогда он останавливается и спрашивает.

Домены

Одно и то же правило меняет знак в зависимости от текста. «Убей пассив» верно для лендинга и вредно для научной статьи.

Домен Режим Что меняется
Лендинги, кейсы, коммерческие предложения полный Оценочные слова без факта вредят сильнее всего
Статьи, блог, соцсети, рассылки полный Поправка на площадку
Деловая переписка полный Канцелярит главный враг, формулы вежливости не трогаются
Техническая документация с поправками Списки, повторы и единообразный ритм разрешены, термины неприкосновенны
Научные и аналитические тексты с поправками Пассив нормативен, отглагольные в терминах тоже
Юридические и медицинские тексты с поправками Колонка риска у каждой находки
Художественная проза не применять Оба скилла отказываются и объясняют почему

Проза выключена не для галочки. Метод убирает повтор, рубку, неровный ритм и метафору, то есть ровно те приёмы, ради которых художественный текст и пишется.

Установка

Скопируйте нужную папку в ~/.claude/skills/ или в .claude/skills/ проекта:

~/.claude/skills/stop-slop-ru/
~/.claude/skills/write-ru/

Папки независимы, можно поставить одну. Стоп-слова в них продублированы намеренно, чтобы каждая работала сама по себе.

Для Claude Projects загрузите SKILL.md и файлы из references/ в базу знаний. Для API вставьте SKILL.md в системный промпт, справочники подгружайте по необходимости. Скрипт в этих двух режимах не запустится, и скиллы это учитывают: без Python модель считает по каталогу руками и пишет об этом в отчёте.

Скрипт

python stop-slop-ru/scripts/check.py текст.md --domain full
python write-ru/scripts/check.py черновик.md

Только стандартная библиотека. Профили: full, post, tech, science, legal. Флаг --json даёт машинный вывод.

Каталог скрипт читает из references/, поэтому новая фраза в каталоге сразу попадает в подсчёт. Сейчас там 233 фразы у ревьюера и 183 у писателя.

Что скрипт считает: фразы из каталога с номером абзаца, плотность, распределение, частицы и числа, заголовки С Больших Букв, эмодзи вместо маркеров списка, разделы «Заключение», бинарные контрасты, три предложения подряд одной длины.

Чего он не видит: нанизывание падежей, спрятанного деятеля, воду, повтор сказанного, выдумку. Это остаётся модели, и в отчёте видно, что добавила она.

Тесты

В evals/ обеих папок лежат задания и ожидания к ним. У ревьюера шесть текстов: сгенерированный лендинг, письмо бюрократа, живой пост, договор с инструкцией к препарату, гладкая статья для блога, отрывок прозы. У писателя три брифа: пустой, где скилл обязан отказаться и задать вопросы, лендинг с цифрами и раздел документации.

Поправили каталог или пороги? Прогоните задание через скилл и сверьте ответ с expectations в evals.json.

Чем отличается от английского оригинала

Stop Slop Русская версия
Длинное тире запрещено целиком Грамматическое тире остаётся. Для русского пунктуация слабый признак генерации
Запрет всех наречий на -ly Режутся усилители и хеджи, наречие с фактом остаётся
Запрет пассива Плюс отглагольные существительные и нанизывание родительных падежей, которых в английском нет
Общий список фраз Каталог разложен по весу находки: артефакты чат-бота отдельно от канцелярита
Шкала из ощущений Плотность считает скрипт, вердикт смотрит на распределение и контрпризнаки
Без доменов Семь профилей с разными правилами

Это не перевод. Каталог маркеров собран заново под русский язык.

Источники метода

  • Нора Галь, «Слово живое и мёртвое». Механика канцелярита: глагол вытесняется существительным, нанизываются родительные падежи, актив заменяется пассивом.
  • Максим Ильяхов и «Главред». Стоп-слова, работа с фактурой, и его же предупреждение о том, что инфостиль сам стал штампом.
  • Русская Википедия, «Признаки сгенерированности текста». Живой реестр маркеров: слова-отпечатки, рекламный слой, артефакты диалога, типографика.
  • Работы по детекции сгенерированного текста на русском, AINL-Eval 2025 и DependencyAI. Оттуда вывод, что пунктуация для русского работает слабо, а работают синтаксические связи.
  • Stop Slop Хардика Пандьи. Английский оригинал, от которого взят каркас.

Лицензия

MIT.