раздел 10 · подстраница 2

Plan mode (Shift+Tab)

Plan mode - это read-only режим, в котором Claude может всё читать и анализировать, но не может ничего менять. Идеален, когда нужно сначала спроектировать решение, апрувнуть его, а уже потом писать код.

Концепция

В обычном режиме Claude может править файлы, запускать команды, ставить пакеты. В plan mode эти инструменты отключены - доступны только Read, Grep, Glob и подобные read-only.

Когда Claude закончит размышлять, он вызовет специальную команду ExitPlanMode и предложит апрувнуть план. Вы можете:

  • апрувнуть - Claude переходит в нормальный режим и реализует план
  • отменить - план остаётся, Claude ждёт правок

Как переключаться

В TUI Claude Code:

Shift+Tab циклически переключает режимы:

default → accept-edits → plan → bypass-permissions → default → ...

Когда вы в plan mode - в нижней строке status bar появится надпись plan mode.

скриншот
Переключение режимов через Shift+Tab. Plan mode помечен в правом нижнем углу.
Где взять: docs.claude.com

Сценарий: миграция авторизации

Допустим, в проекте есть кастомная авторизация на сессиях в Postgres, и вы хотите переехать на NextAuth с JWT.

Шаг 1. Включаем plan mode

Shift+Tab один-два раза, пока не появится plan mode.

Шаг 2. Промпт

> Спланируй миграцию с кастомной авторизации (сессии в Postgres,
  src/auth/*.ts) на NextAuth с JWT-стратегией.

  Учти:
  - Сохранить текущих залогиненных пользователей
    (не ломать их сессии в момент деплоя)
  - Эндпоинты /api/auth/* должны остаться с теми же URL,
    чтобы фронт не переписывать
  - Тесты в tests/auth/ должны быть зелёные
  - Миграция в БД - отдельным шагом, безопасным для отката

  Разбей на этапы. Каждый этап должен быть отдельным коммитом,
  который можно зарелизить независимо.

Шаг 3. Claude отвечает планом

Через минуту-две вы увидите детальный план - что-то вроде:

План миграции на NextAuth:

Этап 1. Установка зависимостей
  - npm install next-auth @auth/prisma-adapter
  - обновить tsconfig

Этап 2. Параллельная реализация NextAuth
  - создать src/auth-next/ - параллельно со старой auth
  - подключить через feature flag NEXT_AUTH_ENABLED

Этап 3. Миграция БД
  - migration: добавить таблицу accounts (NextAuth schema)
  - сохранить старые sessions

Этап 4. Перевод фронта на новый клиент
  - заменить useSession из старой auth на NextAuth

Этап 5. Удаление старого кода
  - после 1-2 дней в проде, проверки логов

Хочешь, я начну с этапа 1?

И в конце вы видите кнопку ExitPlanMode - approve plan.

Шаг 4. Апрув

Нажимаете апрув - режим переключается обратно на normal, Claude начинает реализацию.

Если план не нравится - просто пишете "переделай вот это и вот это", Claude правит план, оставаясь в plan mode.

Когда обязательно использовать plan mode

  • Любая миграция (БД, фреймворка, библиотеки)
  • Большой рефакторинг (50+ файлов)
  • Изменения в публичном API
  • Удаление кода (особенно с зависимостями)
  • Изменения в инфраструктуре (Docker, CI/CD)

Когда не нужно

  • Мелкие правки (1-3 файла)
  • Bug fix в локальной функции
  • Добавление нового файла "с нуля"

Антипаттерны

  • Использовать plan mode для всего подряд. Каждый раз апрувать план через UI - медленно.
  • Не читать план перед апрувом. Plan mode даёт защиту, только если вы реально проверяете предложенное.
  • Уходить из plan mode "по привычке" в середине обсуждения - и внезапно получить применённые изменения.

Полезные ссылки