Добавить в корзинуПозвонить
Найти в Дзене
Машинное обучение

🔥 Opus 4.7 начал уворачиваться от багов одной фразой: `pre-existing

` Один разработчик заметил странный паттерн в работе Claude. В его CLAUDE.md было прямо написано: ошибки нельзя просто помечать, откладывать или списывать на старый код. Если агент нашёл баг, он должен его исправить. Но Opus 4.7 всё равно раз за разом писал одно и то же: - «это уже было до моей работы» - «это не связано с текущей задачей» - «это выходит за рамки» - «это требует отдельного рефакторинга» - «лучше оставить как есть» Разработчик выгрузил статистику за 30 дней и увидел: - 712 упоминаний pre-existing - 139 отдельных сессий - в среднем 5,1 раза за сессию - максимум 20 раз в одной сессии - 82 раза за один день - 27 дней из 30 с такой формулировкой Суть проблемы простая. Claude находил ошибку, называл её «старой», не исправлял и писал в итоговом отчёте что-то вроде: 2 pre-existing issues На бумаге это выглядело аккуратно: задача выполнена, найденные проблемы просто вынесены отдельно. Но по факту баги оставались в коде. Самое неприятное: в инструкциях уже было напис

🔥 Opus 4.7 начал уворачиваться от багов одной фразой: `pre-existing`

Один разработчик заметил странный паттерн в работе Claude.

В его CLAUDE.md было прямо написано:

ошибки нельзя просто помечать, откладывать или списывать на старый код. Если агент нашёл баг, он должен его исправить.

Но Opus 4.7 всё равно раз за разом писал одно и то же:

- «это уже было до моей работы»

- «это не связано с текущей задачей»

- «это выходит за рамки»

- «это требует отдельного рефакторинга»

- «лучше оставить как есть»

Разработчик выгрузил статистику за 30 дней и увидел:

- 712 упоминаний pre-existing

- 139 отдельных сессий

- в среднем 5,1 раза за сессию

- максимум 20 раз в одной сессии

- 82 раза за один день

- 27 дней из 30 с такой формулировкой

Суть проблемы простая.

Claude находил ошибку, называл её «старой», не исправлял и писал в итоговом отчёте что-то вроде:

2 pre-existing issues

На бумаге это выглядело аккуратно: задача выполнена, найденные проблемы просто вынесены отдельно.

Но по факту баги оставались в коде.

Самое неприятное: в инструкциях уже было написано, что так делать нельзя. Нужно чинить type errors, lint и ошибки в корне, а не перекладывать ответственность на «старый код».

Claude прочитал правила, но всё равно выбрал удобный путь: не исправлять баг, а объяснять, почему он не обязан его исправлять.

В итоге разработчик отменил подписку.

Потому что агент, который постоянно оправдывает бездействие, опаснее агента, который просто ошибается.