stop-slop-ru и write-ru
Два скилла для Claude Code и других агентов на LLM. Первый проверяет готовый русский текст на следы нейросети и слабое письмо. Второй пишет русский текст так, чтобы этих следов не было.
Подрядчик присылает текст для сайта. Ошибок нет, читается гладко, а через минуту вы понимаете, что не запомнили ни одной фразы. Скиллы разбирают такой текст на конкретные маркеры: показывают каждый с цитатой, весом и готовой заменой, считают их плотность и объясняют, из чего сложился вывод.
stop-slop-ru: ревьюер
Работает по шагам.
- Определяет домен текста и говорит вслух, в каком режиме проверяет. Лендинг и научную статью нельзя мерить одной линейкой.
- Запускает
scripts/check.py. Скрипт находит фразы из каталога, считает плотность на тысячу знаков, распределение находок по абзацам и контрпризнаки. - Дочитывает глазами то, чего скрипт не видит: нанизывание родительных падежей, спрятанного деятеля, воду, финальный абзац-пересказ.
- Выписывает утверждения, которые из текста не проверишь: круглые числа, безымянные исследования, ссылки без выходных данных.
- Отдаёт отчёт и останавливается. Правит после отдельной команды «правь» и сохраняет голос автора.
Останавливается он не из вредности. Если переписать молча, автор получит чистый текст и не научится замечать свои повторяющиеся ходы.
Вердикт и пороги
Плотность считается по находкам среднего и высокого веса на тысячу знаков.
| Вердикт | Когда |
|---|---|
| Похоже на машину | Есть находка высокого веса. Либо плотность выше 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.
No comments yet
Be the first to share your take.