Claude Code skill that strips the LLM smell out of prose (EN + RU). Kills AI word-tells, rule-of-three, em-dashes, performative honesty.
SaferSkills independently audited anti-ai-slop (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Отчет о работе в чат команды - исключение наоборот: он короткий, но у него свои жесткие правила, см. раздел 15.
Поверхность - это только верхний слой. По данным StoryScope (Russell et al., 2026: 61 608 историй, человек + 5 топовых LLM) классификатор ловит AI-прозу по одной только структуре повествования на 93% F1. Если убрать поверхностный слоп (словечки, ритм), точность падает всего с 95.5% до 93.9% - почти не помогает. Палит архитектура текста, а не слова.
Отсюда три слоя, сверху вниз по глубине:
Для постов, писем, README, разборов работают слои 2 и 3 (разделы 1-15 + "Слой 2 - discourse flow"). Для историй, сценариев, худлита - подключай слой 1.
Ключевой принцип (из sepia): калибруйся под живых людей, а не инвертируй ИИ. Люди сидят на средних значениях. Выкрутишь все правила на максимум - получишь новый узнаваемый штамп "humanizer". Бери 3-5 приемов на текст и оставляй слабину. Подробнее - в разделе "Калибровка".
Обязательный минимум для любого текста. Порядок внутри - примерно по частоте срабатывания, а не по глубине: самое глубокое лежит в слоях 1-2 ниже.
Английский (мгновенные маркеры, встречаются в 10-50x чаще, чем у людей):
| Запрещено | Замена |
|---|---|
| delve into | look at, dig into |
| utilize | use |
| leverage | use |
| harness | use |
| streamline | simplify |
| underscore | show, prove |
| tapestry | - (просто удали) |
| landscape | scene, world (или удали) |
| realm | area, field |
| multifaceted | complex, has many sides |
| robust | strong, solid |
| comprehensive | full, complete |
| pivotal | key |
| seamless | smooth |
| furthermore / moreover | and, also, или удали |
| it's important to note | - (удали полностью) |
| in conclusion | - (удали полностью) |
| in today's fast-paced world | - (удали полностью) |
Русский (кальки и клише):
| Запрещено | Замена |
|---|---|
| стоит отметить, что | - (удали) |
| важно понимать | - (удали) |
| следует учитывать | - (удали) |
| в современном мире | - (удали) |
| играет ключевую роль | важен, нужен |
| является неотъемлемой частью | часть |
| погрузимся в | разберем, посмотрим на |
| многогранный | сложный, разный |
| комплексный подход | - (конкретизируй) |
| бесшовный | плавный, без швов |
| оптимизировать | ускорить, улучшить (по смыслу) |
| осуществлять | делать |
| в заключение | - (удали) |
| таким образом | значит, и |
Правило - перед публикацией прогнать текст через линтер (см. "Механическая проверка" в конце файла). Он знает обе таблицы и покажет строку с попаданием. Что нашлось - переписать.
Принцип под таблицами (ловит и то, чего в списке нет): при равном смысле бери слово короче и проще. В английском - германский корень вместо латинского (use, не utilize; help, не facilitate; end, не terminate; show, не demonstrate). В русском - живое слово вместо канцелярита (делать, не осуществлять; начать, не приступить к реализации; из-за, не в связи с; чтобы, не с целью). Длинное латинское или канцелярское слово почти всегда значит, что фразу писали не для человека, а для отчета.
LLM выдает пилу одинаковых средних фраз - 15-25 слов каждая. Человек чередует длину.
Плохо (AI-ритм):
Эта функция выполняет важную задачу обработки данных. Она получает входные параметры и возвращает результат. Это обеспечивает надежность всей системы.
Хорошо:
Функция парсит вход и возвращает результат. И все. Никакой магии - поэтому система не падает.
Цель: чередуй длинное-длинное-короткое. Одно слово как предложение - норма. Так.
Детекторы ловят машину по двум числам: перплексия (насколько предсказуемо следующее слово) и burstiness (разброс длины предложений). У LLM оба низкие - слова банальные, фразы под одну гребенку. Лечится одинаково: неожиданное слово там, где ждешь штамп, и рваная длина.
И проверь, чем начинаются предложения. Модель гонит подряд "Это...", "Функция...", "Кроме того...", "It's...", "The...". Живой текст стартует по-разному: с глагола, с вопроса, с союза, с обстоятельства. Три одинаковых зачина подряд - переписать хотя бы один.
После em-dash это самый частый структурный маркер. LLM пакует все в тройки - прилагательные, примеры, пункты: "быстрый, надежный и удобный", "brilliant, brave, and bold", "clarity, confidence, and cash". Хуже всего восходящий триколон, где три элемента идут от короткого к длинному: "impersonal, authoritative, and homogenized". Звучит гладко - и сразу пахнет машиной.
Сам по себе прием классический и хороший. Проблема не в нем, а в том, что модель лепит его в каждый абзац, на автомате, без чувства меры. Один триколон на страницу - красиво. Три подряд - провал.
Лечение - ломай длину перечислений. Где-то два пункта, где-то один, где-то пять. И спрашивай себя: эти три вещи правда параллельны и важны, или я просто добил до трех ради ритма? Если добил - выкинь лишнее или раскрой один пункт подробно вместо трех по верхам.
Плохо: Инструмент даст тебе шаблоны, примеры и поддержку. Лучше: Инструмент даст шаблоны. И живого человека в поддержке, который отвечает за полчаса, а не за три дня.
Любимый ход модели - прицепить к концу предложения причастный оборот, который изображает анализ, а на деле пустой. Английский: "...highlighting its importance", "...reflecting broader trends", "...underscoring the need for change", "...contributing to the overall growth". Русский: "...подчеркивая его важность", "...отражая общую тенденцию", "...что говорит о растущем интересе", "...тем самым внося вклад в развитие".
Хвост приклеивает значимость к банальному факту, чтобы фраза звучала весомее. Удали его - факт остается, воды меньше. Если мысль в хвосте настоящая - вынеси ее в отдельное предложение и доскажи до конца, а не намекай причастием.
Плохо: Команда выпустила релиз в марте, что подчеркивает важность регулярных обновлений. Лучше: Команда выпустила релиз в марте. Предыдущий был полтора года назад. Какая уж тут регулярность.
ChatGPT сует списки везде, живые авторы - редко. Перед тем как написать список, спроси: "можно ли это прозой?" Если да - пиши прозой. Списки оправданы для:
Не оправданы для: "вот три причины...", где это просто три абзаца.
Скелет LLM - furthermore -> moreover -> additionally -> on the other hand -> in conclusion. На русском - более того -> кроме того -> таким образом -> однако -> в заключение.
Половину просто удали - соседнее предложение донесет мысль само. Остальное замени разговорными связками: "и еще", "а", "но", "зато", "правда", "только".
don't, it's, you'll - не do not, it is.ИИ компенсирует отсутствие чувств штампами:
Безжалостно удалять. Если поворот сюжета реален - он будет работать без объявления о нем.
Самый коварный слой слопа - он маскируется под живость. ИИ объявляет, что сейчас будет честным и прямым, - и сам этот анонс и есть тычок пальцем "писала нейронка". Живой человек не предупреждает "сейчас по-честному". Он просто говорит конкретную вещь. Настоящая прямота - это факт, цифра, неудобная деталь. Показная - это анонс прямоты без самой прямоты.
Пример из жизни: в тексте проскочило "Now the honest trade-off" перед абзацем. Абзац и так был честный - фраза-анонс только добавила запаха. Убираешь ее - смысл целый, слопа меньше. Любой оборот вида "the honest X" / "честный X" как объявление - в топку.
Сюда же показные "озарения": конструкция "это не просто X, это Y" и "не X - а Y" (negative parallelism). По данным каталога tropes.fyi это вообще самый частый одиночный маркер ИИ-текста. Звучит как откровение, несет банальность.
Английский - выжигать (топ ~20):
<!-- slop-lint: off -->
Русский - выжигать (топ ~20):
<!-- slop-lint: on -->
Правило: нашел анонс честности или прямоты - удали анонс, оставь содержание. Если после удаления абзац опустел, значит честности там и не было - дописывай конкретику, а не лепи обертку.
Выкинь. Если факт не точный - уточни конкретно или не пиши.
ёЛичное предпочтение автора, применять везде в русских и английских текстах:
— (em dash) автоматически - это один из самых очевидных маркеров AI-текста в 2025-2026. Меняй на обычный - с пробелами вокруг, как в этом самом файле.е (даже там, где орфографически нужна ё - "еще", "все", "темный", "черный", "елка", "идет"). Это сознательный стилистический выбор автора.Это house style автора, а не свойство хорошего текста. Форкаешь скилл под себя - меняй этот раздел на свои привычки или выкидывай целиком, остальные правила от него не зависят.
Проверяется машинно, а не глазами - см. "Механическая проверка" в конце файла.
Кода это не касается - в строках, идентификаторах и командах ничего не меняем.
Шаблон LLM: введение -> 3-5 H2 секций с одинаковой длиной -> заключение. Это структура учебного пособия, а не статьи. Реальные тексты бывают:
Англицизм посреди русской фразы выдает кальку и звучит чужеродно - особенно в тексте для людей не из ИТ (инвесторы, юристы, клиенты, руководство). Если есть живой русский эквивалент - пиши его. Английский термин в скобках оставляй, только когда без него реально не поймут (узкий профжаргон), и то один раз при первом упоминании.
| Англицизм | Замена |
|---|---|
| due diligence | проверка, аудит перед сделкой |
| service desk | служба поддержки, учет обращений |
| roadmap | план, дорожная карта |
| performance | производительность, скорость |
| deadline | срок |
| feature | функция, возможность |
| issue / bug | проблема, сбой, ошибка |
| backup | резервная копия |
| downtime | простой |
| scope | объем (работ), границы |
| timeline | сроки, график |
| stakeholder | заинтересованная сторона, причастные |
Правило не про пуризм - оно про адресата. README для разработчиков терпит pull request и merge. Письмо в инвестфонд или клиенту - нет. Смотри, кто читает, и подбирай слово под него.
"Что сделал за день" в чат команды, итоги смены, список закрытых задач - отдельный жанр. Читатель уже в контексте. Ему нужен глагол результата, а не рассказ о том, как ты к нему шел.
Реальный случай. После разбора инцидента я написал в итогах:
2. Сертификат прода. Тут повезло, что вообще полез. Через неделю HTTPS отвалился бы у половины поддоменов - автообновление лежало мертвым почти месяц и об этом молчало. Причем показывало зеленый статус. Починил.
Владелец продукта переписал по-своему:
2) починил автообновление ссл серта
Шесть слов против пятидесяти. И его версия правильная.
Что делать:
Поправка к правилу 7. Требование "конкретика, цифры, имена" написано для статей и объяснений, где цифра работает доказательством. В логе работ она превращается в шум и тормозит чтение. Смотри на жанр: доказываешь - давай цифру, отчитываешься - давай глагол.
Только для художки. Для постов и README пропускай. Данные - StoryScope, проценты человек vs ИИ. Не выкручивай все семь - выбери 3-5.
1. Тема - не разжевывай. ИИ прямо проговаривает мораль (нарратор обобщает "вот так устроены люди") - 77% против 52% у людей. Не подводи итог, не объясняй символ. События сами несут смысл. Диалог спорит о конкретном (аренда, кто кому должен), а не "о природе горя".
2. Сюжет - ослабь единый трек. ИИ дает один причинно-гладкий сюжет без побочных линий (79% без подсюжета против 57%). Разорви цепь один раз: событие из ниоткуда, последствие из-за кадра. Оставь одну деталь, которая ничем не выстрелит - люди бросают хвосты, ИИ все подбирает.
3. Финал - убери триаду "вырос + принял + понял". Это сильнейший отпечаток ИИ. Развязка через выбор героя - 69% против 46%, через внутреннее принятие - 47% против 27%. Половину историй пусть решает случай, другие люди, обстоятельства. Финал может быть открытым, частичным, катастрофическим. Кончай на одну сцену раньше, чем кажется полным.
4. Время - линейность это выбор. ИИ рассказывает от причины к следствию по порядку. Открой со следствия, придержи причину. Лучший твист перекрашивает ранние сцены (цель - умеренно, не puzzle-box). Самое крупное открытие - ближе к концу.
5. Эмоции - сломай "показывай, не рассказывай". ИИ гонит эмоцию через телесное почти всегда: страх это сжатие в груди, холодный пот (81% против 38%). Люди мешают четыре режима и опираются на два простых - поведение и прямое называние ("Она испугалась" - живая фраза, модель так почти не пишет). Телесное - только на один-два пика. Запах - завязывай, это стал "фирменный" сенсор машинной прозы.
6. Персонажи и сеть. Вводи героя в реплике или в действии, не через описание внешности (в диалоге - сильнейший человеческий маркер). Держи граф связей разреженным: кто-то ни разу не встречается. Сумма отношений около нейтральной - в живом составе есть неприязнь без связи с сюжетом. У антагониста своя сеть, союзники, трещины - не одинокий злодей.
7. Внешний мир и читатель. Называй реальное - конкретный роман на полке, реальную группу, ту самую трассу (только настоящее и точное). ИИ жмется к "один известный поэт", люди прямо называют (47% против 24%). Изредка признай, что читатель есть ("знаешь, из таких домов") - изредка, не метапроза.
Один редкий ход. Человеческие истории структурно реже машинных. Сверх калиброванных правил сделай ровно одну структурно нетипичную для премисы вещь - неожиданная дистанция нарратора, редкий для жанра финал. Ровно одну. Больше - читается как игра на публику.
Работает и для нон-фикшн. Это то, что переживает перестановку слов.
QUD-проверка (какой вопрос закрывает каждый абзац). Выпиши по одному неявному вопросу на абзац. Флаги:
Тест первых строк. Выдерни первое предложение каждого абзаца, прочитай списком. Если складывается в чистое саммари - структура машинная. У человека список с провалами, прыжками, фразами, которые вне контекста непонятны.
Середина - слабое место. Детекторы и люди опознают ИИ по телу текста, не по концам - модель хорошо копирует шаблонные начало и финал и палится в длинной середине. В средней трети: дай событие, которого начало не предсказывало; меняй фактуру между соседними абзацами (плотный -> быстрый); дай одной линии затормозить, а не разрешиться по расписанию.
Позиции на странице (переживают перефраз лучше, чем слова):
| Палево | Машина | Человек |
|---|---|---|
| Длина абзацев | одинаковая | рваная, есть абзац в одну строку |
| Цитаты, ключевые фразы | всегда в конце абзаца | где угодно, в том числе в середине |
| Списки качеств/причин | ровно три пункта | два, четыре, один |
| Переходы между секциями | одна и та же связка | разные: жесткая склейка, скачок |
| Акцент | размазан ровно | собран там, где важно, в остальном пусто |
Начала. Машинное: время + место + погода, потом заход через общий контекст. Открывай внутри ситуации - посреди проблемы, спора, факта. Одна рабочая деталь вместо панорамы.
Эти шаблоны в 2-5 раз чаще у LLM, профредакторы их массово вырезают. Пропорция правок: 74% замена / 18% удаление / 8% вставка - сомневаешься, режь.
Английский:
| Шаблон | Примеры | Правка |
|---|---|---|
| a/the [абстр. сущ.] of [сущ.] | a mix of pride and fear, a sense of wonder, the weight of expectation | назови конкретное или убери обертку |
| the [прил.] [сущ.] of [притяж.] | the intricate tapestry of its, the unspoken plea in her | переписать с нуля |
| причастный оборот (хвост/голова) | "…, evading his blows", "Stuffing his mouth, Joe ran" | разбить на отдельное предложение с личным глаголом (до 5x чаще человека) |
| номинализация | realization, determination, transformation как подлежащее | вернуть в глагол (2x чаще человека) |
| парные абстракции "X and Y" | desperation and resolve, curiosity and caution | оставь одно |
| filter words | felt, seemed, realized, noticed, watched as | убрать фильтр, показать напрямую |
Русский - то же по духу: "чувство X", "ощущение Y", "в глубине души", "волна чего-то" - назвать конкретное. Отглагольные существительные ("осознание", "принятие решения", "трансформация") как подлежащее - вернуть в глагол. Слова-фильтры ("почувствовала", "казалось", "она поняла, что", "заметила, как") - выкинуть, показать саму вещь.
Инструкт-модели душат это (используют на 13-80% от человеческой нормы). Возвращай в меру жанра - посыпать, не залить:
Пере-исправление это тоже отпечаток. Не выжигай в ноль - целься в человеческую середину, не в противоположную крайность.
Белый список - НЕ трогать (иначе сам создашь палево):
Тест "прочитай вслух": грамматически верно, но невозможно произнести - отдельный вид слопа. Если так не скажет и не напишет в письме ни один живой человек - переделай в речевую фразу.
Каждая топ-модель отклоняется от других ИИ по своим приметам. Знаешь автора - дави на его дефолты дополнительно.
Быстрая рубрика на базе StoryScope. Не приговор об авторстве - эвристика.
Пять групп:
Отдельно помечай пере-исправление (дискретность 5/5, тематика 1/5) - это не человечность, а провал humanizer'а.
После того как написал черновик и перед отправкой - мысленно прогони:
Если бы это попало в твиттер с подписью "явно нейронка писала", какие три слова/фразы первыми ткнут пальцем? Перепиши их.
Если таких слов нет, длинных тире нет, ё нет - текст готов.
Стоп-слова, анонсы честности, длинные тире, ё и эмодзи проверяются скриптом, а не глазами. Пиши черновик во временный файл и прогоняй:
python3 ~/.claude/skills/anti-ai-slop/scripts/slop-lint.py ЧЕРНОВИК.mdРаботает и из репозитория скилла - там путь просто scripts/slop-lint.py. Текст можно скормить и в stdin через -. Флаг --house-style off выключает личные правила автора (тире, ё, эмодзи), если пишешь не для него.
Скрипт пропускает блоки кода, таблицы, ссылки и все, что стоит в кавычках: цитата держит свою фактуру. Заглушить остальное - <!-- slop-lint: ignore --> на строку или <!-- slop-lint: off --> / on вокруг блока. Код возврата 1 при находках, так что он ложится в pre-commit.
Чего он не умеет: ритм, триколоны, discourse flow, позицию автора. Регуляркой это не берется - остается вычитка по чек-листу.
Слои 1-2 и цифры человек-vs-ИИ - из исследований, собранных в скилле sepia (MIT, Nanako0129):
Слой 3 (разделы 1-14) - собственная практика автора + каталог tropes.fyi.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.