AICodingLab
Claude Code лайфхаки · Урок 10 из 35

EnterPlanMode: автоматическое планирование перед кодом

🎯 Цель урока: Научиться использовать EnterPlanMode для планирования реализации перед написанием кода, понять, когда планирование необходимо, а когда можно действовать сразу.

📖 Теория

Что такое EnterPlanMode?

EnterPlanMode — это инструмент Claude Code для входа в режим планирования. В этом режиме Claude исследует кодовую базу, анализирует архитектуру и составляет детальный план реализации, который вы утверждаете перед началом работы.

Зачем нужно планирование?

  • Предотвращает переделки — план утверждается до написания кода
  • Снижает риски — находит проблемы на этапе дизайна
  • Согласование подхода — вы видите, что будет сделано
  • Экономия токенов — меньше итераций "написал-переделал"

Когда использовать EnterPlanMode?

Claude автоматически предлагает войти в режим планирования при:

  • Новых фичах — добавление функциональности
  • Нескольких подходах — когда решение неоднозначно
  • Изменениях кода — рефакторинг, изменение архитектуры
  • Многофайловых изменениях — затронет 3+ файла
  • Неясных требованиях — нужно исследование

Когда НЕ нужно планирование?

  • Исправление опечаток
  • Простые багфиксы (1-5 строк)
  • Добавление одной функции с ясными требованиями
  • Детальные инструкции от пользователя

Как работает режим планирования?

  1. Вход в режим — Claude вызывает EnterPlanMode
  2. Исследование — читает код, ищет паттерны, анализирует структуру
  3. Составление плана — пишет план в файл (обычно в .claude/plans/)
  4. Выход из режима — Claude вызывает ExitPlanMode, вы утверждаете план
  5. Реализация — следует плану и делает изменения

🛠 Практика

Пример 1: Простая задача (планирование не нужно)

Вы говорите Claude:

Добавь функцию calculate_sum(a, b) в utils.py, которая возвращает сумму двух чисел.

Claude сразу создаёт функцию — планирование избыточно.

Пример 2: Фича с планированием

Вы говорите Claude:

Добавь пагинацию в API /users. Должна работать с query-параметрами page и page_size, возвращать meta с total и current_page.

Claude отвечает:

Это изменение затронет несколько файлов (роут, модель, тесты). Предлагаю войти в режим планирования, чтобы проработать архитектуру.

Вы соглашаетесь. Claude:

  1. Вызывает EnterPlanMode
  2. Читает существующие роуты, модели, тесты
  3. Составляет план в файле .claude/plans/add-pagination-20260910.md
  4. Вызывает 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 прочитает план и выполнит его.

📝 Домашнее задание

  1. Попросите Claude добавить простую функцию — наблюдайте, что он НЕ входит в режим планирования.
  2. Попросите Claude добавить сложную фичу (например, аутентификацию) — наблюдайте EnterPlanMode.
  3. Прочитайте созданный план в .claude/plans/ — поймите структуру.
  4. Попросите Claude изменить план (добавить шаг, убрать шаг) и утвердите снова.
  5. Изучите файлы в .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: автоматическое планирование перед кодом» — наставник ответит, опираясь на его содержание. Он помогает понять, но не делает домашку за вас.

Привет! Я наставник по этому уроку. Спросите что угодно по теме — объясню простыми словами. 🙂
Ответы генерирует ИИ и может ошибаться — сверяйтесь с уроком.
ИИ-консультант
Помогу выбрать курс