Ошибка 3 — большая задача одним промптом
Тема 5/5: День 5. Главные ошибки новичков и следующий шаг → Урок 3/9
«Сделай мне сервис целиком — главная, регистрация, ИИ-генерация, оплата, панель» — частая команда новичков. По мере работы агент теряет нить, ломает то, что сделал в начале, и контекст переполняется. В этом уроке — как правильно нарезать задачу на этапы.
Почему «всё сразу» не работает
У любого ИИ-агента ограниченный контекст — у Claude Code это около 200 тысяч токенов. Для обычного текста это очень много, но для сложного проекта мало, потому что в контекст одновременно должны помещаться файлы проекта на десятки тысяч строк, история переписки с агентом и постоянно растущий вывод команд — логи и сообщения об ошибках. Когда вы просите «сделать сервис целиком», агент довольно быстро занимает весь доступный объём и начинает забывать то, что было в начале.
Распознать переполнение несложно по поведению агента. Он начинает ломать уже готовые файлы, забывает конвенции из CLAUDE.md, делает по-своему вопреки ранее принятым решениям, а ваши уточняющие промпты будто пропадают впустую. Всё это — признаки того, что контекст переполнен и пора менять подход.
Правильное разбиение — небольшие итерации
Хорошая единица работы — это задача, которая решает одну конкретную проблему, помещается в один коммит и не требует держать в голове всю архитектуру сразу. Если расписать проект ИИ-сервиса такими шагами, получается понятная последовательность.
Сначала создаётся сам проект на Next.js с базовым макетом и файлом CLAUDE.md. Затем — главная страница с первым экраном и призывом к действию, потом страница тарифов. Дальше подключается Postgres и Auth.js v5 с регистрацией через magic-link, появляется защищённый раздел /dashboard, таблица пользователей и проверка авторизации в API. Следующими шагами идут форма для ИИ-генерации и API-маршрут для неё с подключением OpenRouter, затем списание кредитов с блокировкой строки, чтобы не было гонок при параллельных запросах. И в самом конце — подключение эквайринга T-Банка (Init и обработка webhook), автоматическое продление подписок и выкат проекта с настройкой домена. Каждый из этих шагов — отдельная сессия с чистым контекстом.
Когда переходить к следующей задаче
Задачу можно считать завершённой, когда сборка и тесты проходят без ошибок, вы сами руками убедились, что функция работает, сделан коммит с осмысленным сообщением, а CLAUDE.md обновлён, если по ходу появились новые конвенции. И только после этого имеет смысл открывать следующую задачу новой сессией, а не продолжать текущую.
Очистка контекста между задачами
Переходя к новой задаче, не продолжайте старый чат. В Claude Code для этого есть команды /clear и /compact, а более грубая альтернатива — закрыть терминал и открыть новый. После этого агент заново перечитает CLAUDE.md и начнёт с чистого листа, не таща за собой предыдущие ошибки и неудачные попытки.
Промежуточные планы как приём
Если задача всё-таки большая — например, целый модуль платежей, — полезно сначала попросить агента составить план, а не сразу писать код:
Я хочу подключить T-Банк эквайринг с подпиской и авто-продлением. Перед началом — составь план: какие файлы создаются, какие меняются, какая БД-схема, какие API-эндпоинты. План в виде чек-листа, не пиши код. После того как я одобрю — начинай.
Дальше схема простая: агент выдаёт план, вы его корректируете, и только потом он делает работу по согласованному плану. Это заметно надёжнее, чем писать код и одновременно придумывать, что делать на следующем шаге.
Когда задача всё ещё слишком большая
Бывает, что задача не завершается даже после разбиения, — и это тоже сигнал. Чаще всего причина в одном из трёх. Либо сама задача описана неточно, и её стоит разрезать ещё на две-три помельче. Либо не хватает каких-то библиотек или готовых решений, и агент начинает изобретать велосипед. Либо один промпт пытается одновременно решить и серверную часть, и интерфейс — тогда их нужно просто разделить на отдельные шаги.
Антипаттерн «продолжай»
Вместо разбиения новички часто говорят агенту «продолжай», «дальше», «ещё». Агент продолжает в том же чате, контекст растёт, а качество падает. Правильнее на каждый логически законченный шаг открывать отдельную сессию со свежим контекстом. Это требует дисциплины, зато даёт стабильно ровное качество.
Что в следующем уроке
Большую задачу мы разбили. Но даже на коротком этапе нельзя оставлять агента совсем без присмотра. На следующем уроке разберём ошибку «не следим за агентом» и то, как настроить контроль.