Измерение неряшливости кода: метрики многословности и эрозии
LLM стали очень хорошо справляться с генерацией кода, проходящего тесты. Но корректный код всё ещё может быть неряшливым: полным дублирующихся строк, ненужных абстракций и плохих проектных решений. Как отмечает автор, «то, что код формально корректен, не означает, что он не вводит ненужные абстракции, не создаёт дубликаты или просто не принимает плохие решения в целом». Результат — взрывной рост строк кода (LOC), за которым людям трудно успевать, и — вопреки некоторым утверждениям — агенты тоже не могут справиться с этим хаосом.
Почему LLM-as-judge не работает
В статье отвергается распространённый отраслевой подход использовать ИИ для оценки качества кода. Просьба к модели оценить код по шкале от 1 до 10 — «по сути эквивалентна генератору случайных чисел». Попарные сравнения (A против B) нестабильны: простое переименование решений может изменить предпочтение модели. Рубрики и тесты, написанные LLM, помогают, но «всё ещё далеки от того, чтобы действительно избавиться от хаоса».
Простейшая метрика: изменение LOC
Удивительно эффективно: просто отслеживание изменения количества строк кода. Автор отмечает иронию: «если мы начнём оптимизировать именно под неё, она перестанет быть значимой мерой».
Verbosity (многословность)
Измеряет дублирующиеся и излишне многословные строки. Это доля строк, отмеченных AST-Grep или помеченных как клоны, делённая на общее количество LOC:
Verbosity = |строки, отмеченные AST-Grep ∪ строки-клоны| / LOC
Erosion (эрозия)
Измеряет, насколько масса кодовой базы сосредоточена в нескольких крупных, сложных функциях. Сначала определим массу функции:
mass(f) = CC(f) * sqrt(SLOC(f))
Где CC(f) — цикломатическая сложность, а SLOC(f) — исходные строки кода. Тогда эрозия — это доля общей массы, приходящаяся на функции с цикломатической сложностью больше 10:
Erosion = ∑_{f: CC(f) > 10} mass(f) / ∑_f mass(f)Эти две метрики — представленные в статье SlopCodeBench — в тестах автора довольно хорошо отделяли легаси-кодовые базы от слопа, сгенерированного LLM.
Выводы
- LLM-судьи ненадёжны для оценки качества кода; предпочтения меняются при переименовании.
- Изменение LOC — удивительно сильный сигнал неряшливости, но ломается при прямой оптимизации.
- Verbosity объединяет флаги AST-Grep и обнаружение клонов по отношению к LOC.
- Erosion отражает массу сложности в функциях с CC > 10.
Для команд, выпускающих сгенерированный LLM код в больших объёмах, эти метрики предлагают количественную альтернативу оценке на основе ощущений.
📖 Читать полный источник: HN LLM Tools
👀 Смотрите также
Claude Code v2.1.210: исправлена изоляция рабочих деревьев, добровольное участие в Ultracode и десятки ошибок
Основные исправления: изоляция рабочих деревьев подагентов, опция ultracode, липкие маркеры вставки, сбои сессий и другое.

Claude Code v2.1.86: Заголовки сессий, исправления памяти и оптимизация токенов
Claude Code v2.1.86 добавляет заголовки X-Claude-Code-Session-Id для агрегации прокси, исправляет рост потребления памяти в длинных сессиях и снижает накладные расходы на токены при упоминании файлов с помощью @. В выпуске устранены 18 конкретных проблем, включая повреждение конфигурации в Windows и копирование URL OAuth.

Частые критические изменения в OpenClaw: Процедуры обновления и текущие проблемы
OpenClaw выпустил 13 минорных версий только в марте 2026 года, при этом критические изменения происходят каждые 2-3 недели. В источнике приводятся конкретные процедуры обновления и описаны текущие проблемы в версии 3.28, включая изменения в аутентификации localhost и регрессионные ошибки.

MiniMax выпускает MaxClaw: облачного ИИ-агента на основе OpenClaw.
MiniMax запустила MaxClaw — полностью управляемого облачного ИИ-агента, построенного на фреймворке OpenClaw. Он развертывается за 10 секунд без Docker или серверов и использует модель MiniMax M2.5 с 229 миллиардами параметров, контекстом от 200 тыс. до 1 млн токенов и скоростью вывода до 100 токенов в секунду.