EnterPlanMode: автоматическое планирование перед кодом
📖 Теория
Что такое EnterPlanMode?
EnterPlanMode — это инструмент Claude Code для входа в режим планирования. В этом режиме Claude исследует кодовую базу, анализирует архитектуру и составляет детальный план реализации, который вы утверждаете перед началом работы.
Зачем нужно планирование?
- Предотвращает переделки — план утверждается до написания кода
- Снижает риски — находит проблемы на этапе дизайна
- Согласование подхода — вы видите, что будет сделано
- Экономия токенов — меньше итераций "написал-переделал"
Когда использовать EnterPlanMode?
Claude автоматически предлагает войти в режим планирования при:
- Новых фичах — добавление функциональности
- Нескольких подходах — когда решение неоднозначно
- Изменениях кода — рефакторинг, изменение архитектуры
- Многофайловых изменениях — затронет 3+ файла
- Неясных требованиях — нужно исследование
Когда НЕ нужно планирование?
- Исправление опечаток
- Простые багфиксы (1-5 строк)
- Добавление одной функции с ясными требованиями
- Детальные инструкции от пользователя
Как работает режим планирования?
- Вход в режим — Claude вызывает EnterPlanMode
- Исследование — читает код, ищет паттерны, анализирует структуру
- Составление плана — пишет план в файл (обычно в
.claude/plans/) - Выход из режима — Claude вызывает ExitPlanMode, вы утверждаете план
- Реализация — следует плану и делает изменения
🛠 Практика
Пример 1: Простая задача (планирование не нужно)
Вы говорите Claude:
Добавь функцию calculate_sum(a, b) в utils.py, которая возвращает сумму двух чисел.
Claude сразу создаёт функцию — планирование избыточно.
Пример 2: Фича с планированием
Вы говорите Claude:
Добавь пагинацию в API /users. Должна работать с query-параметрами page и page_size, возвращать meta с total и current_page.
Claude отвечает:
Это изменение затронет несколько файлов (роут, модель, тесты). Предлагаю войти в режим планирования, чтобы проработать архитектуру.
Вы соглашаетесь. Claude:
- Вызывает
EnterPlanMode - Читает существующие роуты, модели, тесты
- Составляет план в файле
.claude/plans/add-pagination-20260910.md - Вызывает
ExitPlanModeи показывает план
Вы видите план:
## План: добавление пагинации в /users
### Шаг 1: Обновить модель User
- Добавить метод User.paginate(page, page_size)
- Возвращает dict с data и meta
### Шаг 2: Обновить роут /users
- Добавить query-параметры page (default=1) и page_size (default=10)
- Вызвать User.paginate() вместо User.query.all()
### Шаг 3: Обновить тесты
- test_users_pagination_first_page()
- test_users_pagination_last_page()
- test_users_pagination_invalid_page()
### Шаг 4: Обновить документацию
- API.md — добавить описание пагинации
Вы утверждаете план, и Claude приступает к реализации.
Пример 3: Принудительный вход в режим планирования
Если вы хотите сначала увидеть план даже для простой задачи:
Сначала составь план, как добавить логирование во все API роуты.
Claude автоматически войдёт в EnterPlanMode.
Пример 4: Работа с существующим планом
Если план уже есть в .claude/plans/, вы можете сказать:
Реализуй план из .claude/plans/add-pagination-20260910.md
Claude прочитает план и выполнит его.
📝 Домашнее задание
- Попросите Claude добавить простую функцию — наблюдайте, что он НЕ входит в режим планирования.
- Попросите Claude добавить сложную фичу (например, аутентификацию) — наблюдайте EnterPlanMode.
- Прочитайте созданный план в
.claude/plans/— поймите структуру. - Попросите Claude изменить план (добавить шаг, убрать шаг) и утвердите снова.
- Изучите файлы в
.claude/plans/после нескольких задач — как они организованы?
🎓 После урока вы умеете
- Понимать, когда Claude предложит войти в режим планирования
- Читать и утверждать планы перед реализацией
- Принудительно запрашивать планирование для сложных задач
- Работать с сохранёнными планами в
.claude/plans/ - Отличать задачи, требующие планирования, от простых
⚠️ Что изменилось с версии 2.0
Удалена команда /plan:
- В версии 2.0 была команда
/plan - В версии 2.1+ команда удалена
- Теперь Claude автоматически использует инструмент EnterPlanMode
- Вы не вызываете его вручную — Claude решает сам, когда нужен план
Современный подход:
- Просто опишите задачу Claude
- Если задача сложная — Claude автоматически войдёт в EnterPlanMode
- Вы утвердите план через ExitPlanMode
- Claude выполнит план
🔗 Связанные инструменты
- ExitPlanMode — выход из режима планирования с утверждением плана
- AskUserQuestion — уточнение деталей перед планированием
- Agent — можно запустить субагента в plan-режиме для параллельного планирования
Рекомендуемые курсы
Продолжите обучение по смежным темам
ИИ-наставник по этому уроку
Задайте вопрос по теме урока «EnterPlanMode: автоматическое планирование перед кодом» — наставник ответит, опираясь на его содержание. Он помогает понять, но не делает домашку за вас.