v3.16.0 — Формулы 2026 и два гейта честности
Каталог вырос до 58 паттернов (13 категорий, новая M), плюс два CI-гейта,
которые проверяют не чужой текст, а наш собственный.
- Категория M «Формулы и артефакты 2026» (паттерны 55-58). Источники:
обновления проекта Wikipedia AI Cleanup и его русского аналога за 2026 год.- 55. Неодушевлённый субъект действия. «Исследование подчёркивает
важность», «Платформа обеспечивает удобство»: подлежащим становится
предмет, а автор решения исчезает. Английские источники описывают то же
как смену AI-словаря на emphasizing / highlighting / showcasing. - 56. Заголовки в Title Case. «Ранняя Жизнь и Образование»: в русском
так не пишут, это калька интерфейса. Считается структурно, имена
собственные и брендовые написания исключены через словарь pymorphy3. - 57. Обрыв на полуслове. Текст кончается посреди предложения: модель
упёрлась в лимит токенов, а человек скопировал как есть. - 58. Триада-отрицание. Формула 2026 года «No X. No Y. Just Z» в русском
изводе: «Без пафоса. Без воды. Просто факты».
- 55. Неодушевлённый субъект действия. «Исследование подчёркивает
- Движок. Две новые лексические категории сканера (#55, #58) и две
структурные метрики вstructure.py(#56, #57) с выводом вscan.py.
Ложных срабатываний на человеческом корпусе ноль, regression-гейт eval
зелёный. На нашем AI-корпусе новые маркеры пока не срабатывают: корпус
старше этих формул, валидация ждёт свежих текстов. - Артефакты копипасты 2026. Добавлены
:::writing{variant=...}(замечен с
июня 2026),[cite: N]и[span_N](start_span)у Gemini,
grok_render_citation_card_json. - Гейт честности примеров (
scripts/check_examples.py). В паре «До/После»
половина «После» не может содержать числа, даты, имени или названия, которых
нет в исходнике: пример учит модель сильнее инструкции. Пять собственных
примеров нарушали Факт-замок. Четыре помечены явной меткой
После (факты автора):, один переписан. - Self-scan витрины (
scripts/self_scan.py). README, страницы сайта,
SKILL.md и команды прогоняются через собственные 20 HARD BANS. Нашлось два
нарушения: открывающая строка SKILL.md была построена по бану «не просто X,
а Y», в README жило «важно понимать». Оба переписаны. scripts/test_gates.py. 26 проверок на то, что оба гейта ловят заведомо
плохой материал и молчат на чистом.- Жанровый фильтр, и он измерен. Прогон каталога по внешнему размеченному
корпусу AINL-Eval 2025 (35 158 русских научных аннотаций, разметка human /
gpt-4-turbo / gemma-2-27b / llama-3.3-70b) показал, что на научном тексте
строгий режим не разделяет классы вообще: бан оставался в 35,9% человеческих
документов против 26,1-35,8% машинных. «Является» срабатывало на 8,0%
человеческих аннотаций и 0,1-3,0% машинных, длинное тире на 4,8% и 0-0,9%.
Теперьscan.py --genre academic|legal|fictionснимает маркеры, законные для
регистра, и на том же корпусе человеческие срабатывания падают до 4,2%.
Фильтр учитывается и в score, и в вердикте по тире. Умолчание не изменилось:
без флага режим прежний, строгий, под маркетинг и блоги. - То же правило поднято в скилл. В таблице классификации появилась строка
«Научный / академический», в разделе про ложные срабатывания жёсткое правило
с цифрами вместо мягкой оговорки. eval/ainl_calibration.pyиeval/AINL-CALIBRATION.md. Скрипт качает
корпус во временную папку и считает ложные срабатывания по каждому маркеру.
Машинные агрегаты ложатся в gitignoredeval/out/, в репозиторий едет только
человекочитаемый отчёт с числами. В CI не гоняется: внешний источник и
48 МБ трафика.