раздел 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.
Сценарий: миграция авторизации
Допустим, в проекте есть кастомная авторизация на сессиях в 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 "по привычке" в середине обсуждения - и внезапно получить применённые изменения.
Полезные ссылки
- Permission modes - все режимы разрешений
- Связано: Режимы мышления - extended thinking
- Slash-команды - переключения через слэш