Звёзды Humanizer и слепой бенчмарк: что измерять после правки агента

Звёзды репозитория Humanizer на GitHub и слепой счёт фактов после правки файла на месте отвечают на разные вопросы. В замере Efe Genc на двенадцати публичных задачах детерминированный linter обгоняет популярные Claude Code skills на public set, но не на каждой задаче и не на отложенном наборе; это один harness, а не рейтинг инструментов «в целом».
Звёзды GitHub и ось «файл после агента»
Efe Genc оценивает репозиторий Humanizer (blader/humanizer) примерно в 60 000 звёзд на GitHub по API на 24 октября 2026 года; цифра совпадает с заголовком его публикации, отдельного независимого замера здесь нет. Звёзды показывают заметность в экосистеме, но не отвечают, сохранил ли агент версию, ссылку или число в release note после переписывания.
Контраст он строит на плагине ai-slop-linter: не skill для сглаживания стиля, а детерминированный CLI без вызова модели. Рядом в том же цикле skills Humanizer, unslop, everwrite, slopless, avoid-ai-writing и slop-cop борются с «AI slop» в прозе; linter предлагает иной фильтр, сравнение «до» и «после» по фактам, а не по слогу.
Слепая оценка: двенадцать задач и одиннадцать вариантов
Бенчмарк: 12 публичных задач на in-place правку реальных файлов (launch note, README, описание PR, release notes, mixed-language guide, настройка репозитория и другие типы из harness). Агент меняет файл на месте; баллы только за содержимое после правки, не за рассуждения в чате.
В задачах заложены хрупкие факты: числа, имена, фрагменты кода, ссылки. Часть критериев проверяют скрипты; субъективное оценивает слепой грейдер: выходы перемешаны и анонимизированы, оценщик сначала пишет reason, затем вердикт; 5 голосов на ячейку. Из 99 слепых ячеек 92 совпали единогласно. Протокол зафиксирован в репозитории до первого прогона.
Технически это 11 arms: плагин ai-slop-linter, шесть конкурирующих Claude Code skills с заявленной «деhumanization» прозы, плюс Claude без плагина. Три skills (Humanizer, unslop, everwrite) гонялись дважды: обычный вызов и вариант, где промпт называет skill по имени. Каждый arm × каждая задача: три прогона на Sonnet 5.5; linter упакован как Claude Code plugin. Вывод ограничен этими задачами и не ранжирует инструменты «в целом».
Публичный и отложенный набор: где линтер впереди
На публичном наборе (максимум 60 баллов суммарно, до 5 на задачу) ai-slop-linter набрал 58,67 с интервалом [57,67; 59,67]. Лучший другой arm, Humanizer called by name, 56,00 [54,67; 57,33]. Разница 2,67; bootstrap 95% для разрыва [1,00; 4,33], нижняя граница > 0, на этом сете отрыв статистически осмыслен.
Вариант без плагина: 48,67 [47,00; 50,00]. Обычный вызов Humanizer без имени в промпте: 54,67.
Linter не выиграл каждую задачу: на h11, h15 у соперника 5,00 против 4,67; на h18 ничья 4,67. По «строгому правилу B» бенчмарк не проходит на этих трёх задачах, что спорит с заголовочным «победил везде». Сниппет ленты сжимает картину до «58,67 из 60 против 56»; полная таблица честнее про проигрыши на отдельных id.
Отложенный набор: 6 задач, максимум 30 баллов. Задачи написал агент Sonnet, не видевший код репозитория; исполнитель измерения не читал их заранее. Здесь четыре arms ≥ 29,67 из 30; unslop: 30,00; ai-slop-linter: 29,67, на 0,33 ниже unslop (интервал разницы [-1,00; 0,00]). На ho1 у linter 4,67 против 5,00 у лучшего. Baseline без плагина: 28,67.
Лидерство linter на public set здесь не повторяется: на held-out он в пределах 0,33 от лучшего из 11 arms. Efe Genc связывает потолок с тем, что задачи оказались слишком лёгкими и не разделили arms, а не с деградацией инструментов.
Сверка фактов без модели в Claude Code
ai-slop-linter: CLI без модели и без зависимостей; правила детерминированы. Режим --compare сравнивает два текста по фактам (числа, версии, даты, ссылки, цитаты, code span, имена), не по стилю; exit code 1 при потере факта; отчёт фиксирует пропавшие квалификаторы у чисел и лишние first-person / claim-слова. В skill плагина --compare после каждого rewrite; failing comparison блокирует проход.
Установка в Claude Code:
/plugin marketplace add Bubblegunn/ai-slop-linter
/plugin install ai-slop-linter@ai-slop-linter
Локально: npx ai-slop-linter README.md, npx ai-slop-linter --compare before.md after.md. Репозиторий Bubblegunn/ai-slop-linter, на npm указана версия 0.2.0. Harness и критерии лежат в bench/head-to-head/; воспроизведение в REPRODUCE.md: Claude Code 2.1.308, Node 24, порядка 9 часов.
На public set arm с linter стоил 2,43× baseline без плагина по list price (пример: 0,125 USD против 0,051 USD за cell; вся серия порядка 91 USD по list price, фактически subscription). Прогоны Haiku 5.5 и Opus 5.5 описательные, без слепого грейдинга; максимум scripted criteria 57 на public.
Skills вроде Humanizer оптимизируют восприятие «не-робота», а правка документации агентом ломается там, где исчезает версия, ссылка или число. Слепая оценка на 12 публичных задачах сдвигает фокус с звёзд GitHub к содержимому файла после правки.
Для связки Claude Code + skills: не подменять проверку фактов одним только «очеловечиванием»; имеет смысл встроить детерминированную сверку после переписывания, как в плагине Efe Genc, и принять цену: 2,43× по list price на их public set и часы на воспроизведение.
Часть public set могла быть знакома при разработке (возможная доля 2,67 от familiarity); сбои измерения (лимиты сессии, параллельные коммиты harness, сбой blind-grader loop) задокументированы; evidence folder round 8 опубликован. Cursor и MCP в источнике не фигурируют; переносить вывод на другие IDE без отдельного замера нельзя.
Источники
- Efe Genc, «Humanizer has about 60,000 stars. On 12 public tasks my linter plugin scored 2.67 higher», Dev.to (дата доступа: 2026-10-24)
- Репозиторий
Bubblegunn/ai-slop-linter: установка и CLI описаны в публикации Efe Genc по ссылке выше (дата доступа: 2026-10-24) - Репозиторий
blader/humanizer: упоминание и оценка звёзд в той же публикации (дата доступа: 2026-10-24)