ИИ-подхалим в Claude Code: чем быстрее агент отвечает, тем выше шанс отката 8 коммитов
Claude Code в обычном режиме снёс мне половину auth-модуля за один промпт. Попросил поправить magic-link - получил дифф на 14 файлов и 8 коммитов отката. С тех пор любая нетривиальная задача идёт через 4-шаговый цикл, который блокирует ИИ-подхалима.
ИИ-подхалим - не баг, а архитектурная черта современных моделей. Anthropic в апреле 2026 опубликовала разбор: на миллионе реальных разговоров с Claude нашли, что в разговорах про отношения модель подстраивается под пользователя в 25% случаев, в разговорах про духовность - в 38%. В кодинге процент ниже, но механика та же: модель хочет быстро дать ответ, который выглядит правдоподобным, и старается понравиться. В обычном чате это раздражает. В Claude Code это превращается в 14 файлов диффа и неработающую авторизацию.
Решение придумали не я и не Anthropic. Boris Cherny, создатель Claude Code, сформулировал в одной фразе: вкладывай энергию в план, чтобы Claude мог реализовать его с одного захода. Дальше я расскажу, как этот принцип превращается в работающий 4-шаговый цикл и почему просто включить Plan Mode недостаточно.
Что такое ИИ-подхалим в кодинге
В психологии для этого термин был давно - сикофантия. Подлиза, который говорит то, что хочешь услышать, лишь бы не сорвать ритм разговора. С появлением больших языковых моделей термин перекочевал в AI-research, и Anthropic в своём анализе показала: модель регулярно жертвует точностью ради быстрого согласия с пользователем.
В кодинге это выглядит так. Ты пишешь Claude Code: «почини вот эту ошибку в authMiddleware, у меня перестали проходить magic-link». ИИ-подхалим не задаст уточняющих вопросов. Не попросит лог. Не уточнит, какая версия библиотеки. Он сразу даст решение - потому что натренирован быть полезным быстро. И решение будет выглядеть правильно. В нём будут импорты, обработка ошибок, комментарии. Но это будет решение чужой задачи, придуманной из контекста, который Claude собрал по обрывкам.
У меня этот сценарий повторялся раз пятнадцать в первый месяц вайб-кодинга. Каждый раз цикл одинаковый: задал вопрос - получил решение - применил - стало хуже - откатил - задал тот же вопрос иначе - снова получил решение - снова стало хуже. На третьей итерации обычно я закрывал ноутбук и шёл пить кофе.
Причина не в Claude. Причина в формулировке запроса. Когда ты спрашиваешь «как починить?», ты уже допустил, что починка возможна. ИИ-подхалим подхватит эту рамку и выдаст «починку», даже если на самом деле проблема в архитектуре, в версии библиотеки или в том, что симптом, который ты описал, - не корневая ошибка, а её следствие.
Есть простой тест, который я применяю к себе перед каждой сложной задачей в Claude Code. Если на вопрос «что именно сломано?» я не могу ответить в три предложения - значит, я не дозрел до решения. Значит, мне нужен диагноз, а не починка. И именно с этого места начинается 4-шаговый цикл против ИИ-подхалима.
Самый простой способ проверить, не находишься ли ты в режиме подхалимского запроса прямо сейчас, - перефразировать промпт. Вместо «как починить X» написать:
Если Claude после этого промпта выдаёт три абзаца наблюдений и список из 4-6 вопросов к тебе - значит, до момента подхалимского ответа оставалось одно «approve» от тебя. Этот промпт работает как одноразовая прививка: чувствуешь сопротивление модели, проверяешь себя, переходишь к настоящему диагнозу.
8 коммитов отката за один вечер: личный кейс
Конкретный случай. Я работал над магик-линк авторизацией в src/lib/auth/. Симптом: токены валидируются, но сессия не сохраняется. Юзер кликает по ссылке из письма, попадает на сайт, через пять секунд опять выкидывает на /login.
Открыл Claude Code, набрал: «не сохраняется сессия после magic-link, посмотри в src/lib/auth/ и почини». Claude задал три уточняющих вопроса, потом сразу выдал план. В плане было: «обновлю обработчик callback, перепишу сериализатор JWT, добавлю явное сохранение в Redis, исправлю race condition в middleware». Звучало правдоподобно. Я нажал approve.
Через 18 минут получил дифф на 14 файлов. Магик-линк по-прежнему не работал. Зато перестал работать рефреш-токен, развалился логин через пароль, и появился странный 500 на роуте оплаты. Тесты падали. Я начал откатывать.
Откатил 8 коммитов через git reset --hard origin/main. Час работы в трубу.
Сел разбираться по-человечески. Открыл src/lib/auth/magic-link.ts:42, прочитал руками, открыл логи, проверил Redis. Через 20 минут нашёл. Проблема была в одной строке - в set-cookie отсутствовал атрибут SameSite=lax, и Safari резал куку при редиректе с домена письма обратно на сайт. Никакого JWT, никакого Redis, никакого middleware. Одна строчка кода.
Claude, когда я попросил его починить, никогда не заглядывал в логи браузера. У него не было контекста про Safari. Он построил гипотезу из паттерна «не сохраняется сессия = проблема с сериализацией», потому что это самый частый ответ в обучающих данных. ИИ-подхалим выдал решение, которое статистически правдоподобно, но к моей задаче не имело отношения.
Вывод я выписал себе в правила: никогда не задавать ИИ вопрос «как починить?», всегда «установи факты». Дальше осталось формализовать это в воркфлоу.
4 шага, которые блокируют подхалима
Воркфлоу, который я выработал на ровно таких сценариях, состоит из четырёх обязательных шагов. Все четыре выполняются внутри одной сессии Plan Mode в Claude Code. Каждый шаг - отдельный промпт со своей задачей. Промпты ниже копируешь, подставляешь свои детали, отправляешь по очереди.
Шаг 1. Установить факты без решения
Самый важный шаг. Здесь блокируется первый порыв ИИ - «вот решение». Промпт:
Что это даёт. Claude, получив явный запрет на решения, не может срезать угол. Он вынужден заполнить четыре слота: что вижу, как повторить, что знаю, чего не знаю. Последний слот - «чего не знаю» - самый ценный. Часто там оказывается: «не знаю версию библиотеки, не знаю что в логах, не знаю работает ли симптом в проде». Это и есть рычаг для следующего шага.
Шаг 2. Найти прецеденты в интернете
Здесь блокируется второй порыв ИИ - «выдумать решение из головы». Промпт:
Что это даёт. Claude уходит во внешний мир и приносит верифицируемые подходы. Появляются ссылки на GitHub issues, Stack Overflow, документацию. Если Claude не находит прецедентов - это сигнал, что задача редкая или симптом сформулирован неправильно. Возвращаешься к Шагу 1.
Подводный камень. Claude может процитировать ссылку, которой не существует. Это галлюцинация в стиле «вот issue номер 4291 в репозитории X», а issue 4291 на самом деле про что-то другое. Лечится явным правилом в CLAUDE.md: «всегда открывай ссылку через WebFetch перед тем, как процитировать». Подробнее - в гайде про настройку CLAUDE.md.
Шаг 3. Детальный план с рисками
Здесь Plan Mode уже работает как задумывался. Промпт:
Что это даёт. План становится артефактом, а не временной заметкой в чате. Его можно прочитать через две недели, передать другому агенту, использовать в качестве goal-условия для /goal. План в файле живёт дольше, чем диалог в Claude Code.
Ключевая часть - риски на 2-3 шага вперёд. Это блокирует ещё один паттерн ИИ-подхалима - оптимистичный план без побочных эффектов. Когда заставляешь Claude явно перечислить риски, он находит вещи, которые молча проглотил бы в обычном плане.
Шаг 4. Самопроверка плана
Финальный фильтр. Промпт:
Что это даёт. Claude вынужден перепроверить собственное мышление. На моей выборке из ~50 циклов минимум 2-3 пункта плана правятся именно на Шаге 4. Это места, где ИИ-подхалим в Шаге 3 пытался проскочить, и Шаг 4 его ловил.
После четырёх шагов план готов к одобрению. На реализацию переходишь без напряга «а вдруг откатывать 8 коммитов».
Почему ровно 4 шага, а не 2 и не 7
Соблазн спросить: зачем такие сложности? Можно же просто включить Plan Mode и попросить план. Можно. Будет средний результат.
Объяснение в логике, которой Anthropic ведёт Claude в их каноничной методологии. В Anthropic Engineering blog описан Explore-Plan-Implement-Commit как четыре фазы работы в Claude Code. Эти четыре фазы решают разные задачи: исследование, планирование, реализация, фиксация. Если ты выкидываешь любую из них, на её месте появляется проблема.
Мой 4-шаговый цикл - это специализация фазы Plan для борьбы с подхалимом. Из 4 фаз Anthropic я разворачиваю одну в 4 микро-шага: запрет решений, прецеденты, план, самопроверка. Это глубокий план, который потом скармливается фазам Implement и Commit.
Что ломается, если пропустить любой из четырёх шагов:
- Шаг 1 (факты) - Решение чужой задачи: Claude угадал симптом из паттерна и поехал не туда
- Шаг 2 (прецеденты) - Выдуманное решение из «общих знаний»: работает в эталонном случае, ломается в реальном
- Шаг 3 (план) - Реализация без рисков: тесты упадут, рефреш-токен сломается, потом узнаешь о пользователей
- Шаг 4 (самопроверка) - План с 2-3 потолочными допущениями: библиотека, которой нет, переменная, которая не задана
Из этой таблицы видно: каждый шаг блокирует свой класс ошибок ИИ-подхалима. Все четыре нужны, потому что каждый ловит свою категорию. Если кажется, что задача мелкая и хватит двух - значит, задача правда мелкая, и тогда вообще не нужен Plan Mode.
Когда 4-шаговый цикл избыточен
Это важная часть, без которой методология превращается в карго-культ. 4 шага - тяжёлая артиллерия. Тратить 15 минут на установку фактов, поиск прецедентов и самопроверку, чтобы поправить опечатку в README, - бессмысленно.
Anthropic в той же документации даёт прямое правило: планирование полезнее всего, когда ты не уверен в подходе, когда изменение трогает несколько файлов или когда область кода тебе незнакома. Если diff можно описать одной фразой - пропусти план.
Простое правило для разделения. Перед задачей задай себе вопрос: могу ли я прямо сейчас перечислить 3-5 файлов, которые точно будут затронуты, и в каждом сказать, что меняется?
- Да, могу перечислить файлы и изменения - Делай напрямую, без Plan Mode
- Нет, не уверен в файлах, но знаю что менять - Plan Mode без 4-шагового цикла
- Не уверен ни в файлах, ни в подходе - 4-шаговый цикл обязателен
- Симптом непонятный, не знаю с какой стороны подойти - 4-шаговый цикл + дополнительный нулевой шаг с reproducible example
Конкретные примеры. Поправить копи в письме приветствия - делай напрямую. Добавить новую кнопку CTA на лендинг - Plan Mode без цикла. Перевести проект с MySQL на Postgres - 4-шаговый цикл обязателен. Странный 500 на проде, который не воспроизводится локально - 4-шаговый цикл с дополнительным «нулевым» шагом «давай сначала соберём минимальный воспроизводимый пример».
Главная ошибка новичков, которую я наблюдаю в чате практикума, - применять 4-шаговый цикл к мелочам. Это убивает скорость и быстро отбивает желание пользоваться методологией. Цикл нужен ровно там, где стоимость ошибки выше стоимости 15 минут планирования.
Связка с папкой plans и /goal
4-шаговый цикл не существует в вакууме. Он работает внутри системы, где у тебя:
- Включён Plan Mode (двойной Shift+Tab в Claude Code);
- Есть папка plans/ в репозитории для сохранения планов;
- Опционально - команда /goal для autonomous-реализации длинных планов.
Plan Mode даёт режим. Папка plans/ даёт долговечность. /goal даёт автоматизацию реализации. Без любого из этих слоёв 4-шаговый цикл теряет половину пользы.
Конкретно для папки plans/. После Шага 3 ты получаешь файл plans/2026-05-27-fix-magic-link.md с фазами и чек-боксами. Этот файл - артефакт. Через неделю откроешь и вспомнишь, почему именно так. Через три месяца - найдёшь похожую задачу и переиспользуешь подход. Через полгода - покажешь новому коллеге и сэкономишь ему две недели погружения.
Для /goal. После того как 4 шага выполнены и план одобрен, ты можешь выйти из Plan Mode и поставить:
Закрываешь ноутбук на час. Возвращаешься - либо «✓ goal completed», либо «◎ stopped after 30 turns» с подробной историей. Без 4-шагового цикла /goal сжигает токены на бесполезные итерации. С 4-шаговым циклом /goal доводит готовый план до зелёных тестов.
Эта связка - не моё изобретение. Boris Cherny публично пишет: don't push through when things go wrong, go back to plan mode and replan. В живой речи: если что-то пошло не так посреди реализации, не дожимай. Возвращайся в Plan Mode, переписывай план. Это в 10 раз дешевле, чем потом откатывать 40 коммитов.
Эта связка - не моё изобретение. Boris Cherny публично пишет в одной из своих заметок: don't push through when things go wrong, go back to plan mode and replan. В живой речи: если что-то пошло не так посреди реализации, не дожимай. Возвращайся в Plan Mode, переписывай план. Это в 10 раз дешевле, чем потом откатывать 40 коммитов.
Возвращаться обратно в Plan Mode - тоже навык. У меня уходит примерно две недели работы с инструментом, чтобы переключиться с инстинкта «допишу руками» на инстинкт «вернусь в Plan Mode». Эти две недели окупаются за один сэкономленный вечер без отката коммитов.
Что делать с этого момента
Конкретные действия в порядке возрастания сложности.
Если ты только начинаешь работу с Claude Code, попробуй 4-шаговый цикл на ближайшей нетривиальной задаче. Не на опечатке. На чём-то, что затрагивает 3+ файла или связано с поведением, которое ты не до конца понимаешь. Возьми промпты выше, скопируй, подставь свои детали. Заметишь, как изменится скорость отката.
Если ты уже пользуешься Plan Mode, добавь папку plans/ в репозиторий. Договорись с собой о формате имён: YYYY-MM-DD-feature-name.md. Через месяц у тебя будет 20-30 файлов. Через полгода - больше сотни. Это второй мозг проекта в виде живой истории решений.
Если уже есть и Plan Mode, и plans/, попробуй /goal на одной автономной задаче. Возьми задачу, которую обычно делаешь руками 30-40 минут. Прогони через 4 шага, сохрани план, поставь goal, закрой ноутбук на час. Это самое странное ощущение в современном кодинге - вернуться через час и увидеть готовую работу.
Полная схема, которую я отдаю на практикуме за 3 эфира, состоит из трёх частей: ИИ-клон (CLAUDE.md как зафиксированные правила мышления), Второй мозг (папка plans/ как живой архив решений), контекст-инжиниринг (Plan Mode и 4-шаговый цикл как инструменты управления контекстом до промпта). Эти три части собираются в систему, которая превращает Claude из «помощника с галлюцинациями» в надёжный инструмент.
Если хочется собрать самому без участия в практикуме - все три части доступны как методология в моих публикациях. Если хочется в живом формате с разбором конкретных проектов - три эфира покрывают эту связку целиком за вечер.