Скилл сам находит рабочий сканер
- Если
scan.pyпадает безrazdelиpymorphy3, аuvустановлен, агент запускаетuvx ru-humanizerс теми же аргументами и получает балл, вместо того чтобы править вслепую (#129, спасибо @vdovikovva).
Сканер видит современный слоп
- Две новые категории, «Почерк модели» и «Обвязка чата». Каталог сканера собирался на старом слопе («в современном мире», «играет ключевую роль»), и пост свежей модели получал 89-98 «чисто». Новые обороты добыты сравнением 2 110 машинных текстов (GPT-4o, o3, GigaChat-Max, YandexGPT-5, Qwen2.5, DeepSeek-R1, Llama-3.3, Gemma, Claude) с 1 900 человеческими: «подчёркивает», «свидетельствует о», «это не просто», «что делает его», «X — это Y» и ещё 17. Обвязка чата: «Хотите, чтобы я…», «[Ваше имя]», «Вариант 1», эмодзи вместо маркеров списка, подзаголовки Markdown.
- Штраф по числу разных оборотов, а не по плотности. Один оборот бывает и у человека и стоит 3 балла, каждый следующий 10 (потолок 24); след чата 10 (потолок 20). В жанрах news, academic, legal и fiction почерк модели не считается.
- Итог на корпусе: пойманного слопа 53% → 67%, у Claude на отложенной выборке 28% → 85%, у GPT-5.6 30% → 55%; ложных тревог на людях +1 процентный пункт. Замер и отложенная выборка:
eval/MODERN-SLOP.md, корпус собираетсяeval/gen_modern_slop.py. - Сайт, расширение и
scan.pyсчитают одинаково: правила уходят в браузер экспортом, паритет 66/66. Тест паритета больше не даёт ложный разрыв, когда питоновский счёт зажат в ноль. - Лексическое разнообразие: штраф, когда слова почти не повторяются. MATTR по словоформам (окно 40, первые 200 кириллических слов, текст от 100 слов): у людей 0,90 ± 0,04, выше 0,955 балл за каждую тысячную, потолок 15. Ловит GigaChat-Max (пропуск «чисто» 34% → 23%) и o3 (47% → 34%); GPT-5.6 не сдвигает, его тексты внутри человеческого разброса. Ложных тревог на Пикабу +0,7 п.п., на людях LLMTrace без изменений. В жанрах news, academic и legal не считается. Токенизация повторена в браузере бит в бит, паритет MATTR проверяется точным равенством. Замер:
eval/MODERN-SLOP.md. - Гейт на современном слопе в CI.
scripts/test_modern_slop.pyгоняет фикстуруeval/corpus/modern: 30 наших генераций Claude Haiku, Sonnet, GPT-5.6, Gemma3 27B и Qwen2.5 7B на обычные задания. Сборка падает, если не «чисто» меньше 60% фикстуры (сейчас 73%, прежний сканер 33%), медиана score выше 80 (сейчас 73, было 91,5) или Википедия и литературная стилизация в своём жанре перестают быть «чисто». Раньше в гейтах стоял только карикатурныйeval/corpus/raw, и ослепший сканер проходил зелёным. - Браузер считает ритм как razdel. Делитель предложений и счёт слов в
docs/scan.jsперенесены из razdel правило в правило. Прежний упрощённый делитель на свежих текстах моделей принимал «НДФЛ.» за инициал, резал пункт «2.» в отдельное предложение, считал URL в ссылке одним словом, и в 5 прогонах из 90 сайт показывал другую полосу, чемscan.py. Фикстураeval/corpus/modernвошла в тест паритета, ритм теперь сверяется точно: 56 текстов × 3 жанра, разрыв score 0.
Скилл по итогам проверки на современном слопе
- Новые категории дошли до SKILL.md. Модель не открыла каталог ни в одном из 25 прогонов, поэтому обвязка чата («Вот вариант:», «Вариант 1», предложение доработки, советы после текста) теперь в группе A таблицы приоритетов, частые обороты почерка модели в группе C. Плейсхолдер «[Имя]» не заполняется, а перечисляется пользователю.
- Оговорки мнения и оговорки факта разведены. «Может показаться» снимается, «может быть», «обычно», «примерно», «от 5000», «не обязательно» стоят под факт-замком: три из четырёх смысловых ошибок прошлого прогона были снятой оговоркой при факте. Одной строки в промпте не хватило (5 снятых оговорок до и после), поэтому
scan.py --beforeтеперь печатает пропавшую оговорку в списке потерь: на 25 ответах прошлого прогона она находится в 6, «может показаться» не считается. - Тире в определении перестраивается глаголом («Антитела относятся к белкам»), а не запятой и не голым «это»: оценщики сочли «Антитела это белки» пунктуационной ошибкой. Дефис с пробелами в роли тире снимается так же. У «Вариант 1/2» снимается метка, а не варианты.
- Сканер первым вызовом, отчёт после текста. Служебные заметки о файлах и сканере в ответ не идут; если пользователь просил только текст, строки «Чистота» нет. Для постов и писем подзаголовки «##» и строки целиком жирным становятся обычными строками.
- Сканер: факт-замок больше не принимает первое слово пункта списка, строки после «**» и эмодзи-буллета за имя (срабатываний на 25 ответах 19 → 7). Замер:
eval/MODERN-SKILL-CHECK.md, раздел «После правок».