Чистый код не делает Claude Code умнее — но режет токены и треть блужданий по файлам. 660 прогонов от SonarSource
Спор «агентам плевать на качество твоего кода» против «чистый код теперь нужнее, чем когда-либо» до сих пор шёл на анекдотах из твиттера. SonarSource, компания за SonarQube, выложила первое контролируемое исследование вопроса, и вчера оно поднялось в топ Hacker News. Ответ раздвоился: для успеха задач чистота не важна, для счёта за токены — очень даже.
TL;DR: 660 прогонов Claude Code на парах «чистый/грязный» репозиториев: pass rate одинаковый, но на чистом коде агент тратит на 7-8% меньше токенов и на 34% реже возвращается в уже прочитанные файлы. Чистота кода — не про качество решений агента, а про их цену и скорость.
Как измерили влияние чистоты кода?
Через minimal pairs: шесть пар репозиториев, идентичных по архитектуре, зависимостям и внешнему поведению, но различающихся нарушениями статического анализа и когнитивной сложностью. Пары строили в обе стороны: агентские пайплайны либо портили чистый репозиторий, либо вычищали грязный, чтобы направление трансформации не искажало картину. Поверх пар — 33 задачи со скрытыми тестами через публичный API приложения. Итого 660 прогонов Claude Code. Авторы — Priyansh Trivedi и Olivier Schmitt из SonarSource.
Такой дизайн закрывает главную дыру прошлых попыток: раньше сравнивали разные кодобазы и мерили заодно разницу самих проектов, а не чистоты.
Что показали 660 прогонов?
Pass rate не сдвинулся. Claude Code решает задачи в замусоренном коде с тем же успехом, что и в чистом: способность агента дойти до работающего решения от чистоты не зависит.
Зато операционный след отличается заметно: на чистом коде агент потратил на 7-8% меньше токенов и на 34% сократил повторные заходы в файлы. Грязный код заставляет модель перечитывать одни и те же места, чтобы восстановить, что здесь вообще происходит.
Почему -34% блужданий важнее, чем -8% токенов?
Потому что повторные чтения файлов забивают контекстное окно, а деградация агента при заполнении контекста — задокументированная беда, мы разбирали context rot отдельно. Меньше блужданий — длиннее полезная сессия до auto-compact и меньше эффекта «Claude внезапно отупел» на середине рефакторинга. На долгих агентских сессиях это ощущается сильнее, чем проценты на счёте.
Вывод авторов сформулирован аккуратно: чистота кода встаёт в один ряд с выбором модели, харнесом и промптингом как фактор, который измеримо влияет на поведение агента. Старые принципы maintainability не умерли с приходом агентов, они конвертировались из «удобно людям» в «дёшево машинам».
Подводные камни
- Тестировали только Claude Code. Про Cursor, Codex и остальных — экстраполяция. Харнесы по-разному ходят по коду: у кого-то семантический индекс, у кого-то голый grep, перенос результата не гарантирован.
- Конфликт интересов на поверхности. SonarSource продаёт статанализ, исследование — про пользу статанализа. Правда, честный нулевой результат по pass rate их маркетингу скорее мешает: «чистый код не влияет на успех агента» в рекламу SonarQube не вставишь. Это добавляет работе доверия.
- Эффект скромный, а чистка не бесплатная. Рефакторинг агентом сам стоит токенов. На репозитории, который трогают редко, экономия в 7-8% может не окупить вложенное никогда.
- Масштаб: 6 пар, 33 задачи, тесты только на публичной поверхности. Внутренние регрессии и качество самого сгенерированного кода остались за кадром.
Альтернативы: на что ещё влиять
- CLAUDE.md и контекст-инжиниринг — приёмы, которые дают сопоставимый или больший выигрыш без единого рефакторинга.
- SonarQube MCP — практический контур той же идеи: агент пишет, сканирует и правит до чистоты в одном цикле, гайд лежит у SonarSource.
- Выбор модели и харнеса — по-прежнему рычаги первого порядка; чистота кода теперь официально третий, зато с числами.
Вердикт
Легаси, в которое собираешься надолго запустить агентов, стоит прогнать через линтер и срезать когнитивную сложность хотспотов: вернётся токенами и скоростью итераций. Ждать от чистки роста качества решений не стоит, pass rate не сдвинется. И держи планку скепсиса: одно исследование, один агент, вендор со своим интересом.
Как попробовать
- Прочитай препринт: arxiv.org/abs/2605.20049
- Сними базовый расход токенов через ccusage на текущих сессиях.
- Найди хотспоты когнитивной сложности (SonarQube, ESLint-правило
complexity,radonдля Python) и почисти их тем же агентом. - Прогони те же задачи после чистки и сравни расход и количество перечитываний файлов.