12k
All articles

Plan Mode в Claude Code для сложных задач

Plan Mode в Claude Code: как работает, 4 способа включения, ограничения только для чтения, рабочий процесс и когда его пропустить для простых правок.

OpenReplay Team
OpenReplay Team
Plan Mode в Claude Code для сложных задач

Plan Mode — это режим разрешений только для чтения в Claude Code: Claude может читать файлы, выполнять поиск по кодовой базе, запускать shell-команды только для чтения, использовать веб-поиск и задавать уточняющие вопросы, однако не может вносить изменения в исходный код или выполнять команды, изменяющие состояние системы, до тех пор, пока вы не одобрите его план.

Большинство разработчиков сталкиваются с этой проблемой на собственном опыте. Вы просите внести одно изменение, отвлекаетесь на минуту — и возвращаетесь, чтобы обнаружить, что агент молча переписал полдюжины файлов, опираясь на допущения, которые вы так и не успели проверить. Plan Mode делает паузу между «вот что я хочу» и первой правкой, которая попадает на диск, — именно в этот момент чаще всего всё идёт не так. В этой статье рассматривается, что такое Plan Mode, четыре способа его активации, реальная граница режима «только для чтения» (обеспечиваемая инструкцией в промпте и системой разрешений, а не жёсткой изоляцией), рабочий процесс для рефакторинга с затрагиванием нескольких файлов, а также ситуации, когда составление плана — лишняя трата времени.

Ключевые выводы

  • Plan Mode — это режим разрешений только для чтения: Claude исследует кодовую базу и предлагает изменения, но не редактирует исходный код до тех пор, пока вы не одобрите план.
  • Существует четыре способа войти в него: нажать Shift+Tab для переключения в режим плана, добавить к промпту префикс /plan, запустить с флагом claude --permission-mode plan или задать значение plan для параметра permissions.defaultMode в файле settings.json.
  • Граница обеспечивается внедрённой системной инструкцией и системой разрешений, а не жёсткой изоляцией. Именно поэтому сам план записывается в редактируемый markdown-файл, а не блокируется как операция записи.
  • Одобрение плана завершает Plan Mode, поэтому, если выполнение отклоняется от согласованных шагов, нажмите Shift+Tab, чтобы вернуться в Plan Mode и заново спланировать оставшуюся работу.
  • Используйте Plan Mode, когда изменение затрагивает примерно три файла и более, включает рефакторинг, миграцию схемы или работу с чувствительными к безопасности компонентами, либо когда задачу нельзя описать одним предложением; пропускайте его для однострочных правок и механических изменений.

Что такое Plan Mode в Claude Code?

Plan Mode — один из режимов разрешений Claude Code, наряду с acceptEdits, auto, dontAsk и bypassPermissions, а не отдельная функциональная поверхность. В этом режиме Claude исследует кодовую базу и составляет предложение, тогда как редактирование исходного кода остаётся заблокированным до тех пор, пока вы не одобрите это предложение. Shell-команды обрабатываются отдельно: там, где в процессе планирования доступен режим auto, классификатор проверяет каждую команду, не прерывая вас, а всё, что выходит за пределы встроенного набора команд только для чтения Claude Code, останавливается для вашего подтверждения.

Ценность режима — в возможности проверки до выполнения. Рецепт Claude Code для планирования перед редактированием ориентирован именно на такие случаи: изменения, которые вы хотите проверить до того, как что-либо попадёт на диск. Это блокирует проблему накопления ошибок: при изменении с множеством точек принятия решений каждое неверное предположение на раннем этапе искажает всё последующее, а план позволяет исправить эти предположения на бумаге, а не в диффе.

Как включить Plan Mode?

Существует четыре способа войти в Plan Mode, и они различаются по области действия. Выберите тот, который соответствует тому, как долго вы хотите, чтобы режим оставался активным.

МетодКоманда / сочетание клавишОбласть действияКогда использовать
ПереключениеShift+Tab (циклически: defaultacceptEditsplan)Текущая сессияВы находитесь в середине сессии и хотите переключиться
Префикс/planТолько следующий промптРазовое планирование без смены режима
Флагclaude --permission-mode planВся сессия с момента запускаВы заранее знаете, что задача требует планирования
Настройка"defaultMode": "plan" в разделе permissions файла settings.jsonПроект или пользовательские настройки по умолчаниюВы хотите сделать подход «сначала план» постоянным правилом

Официальная документация подтверждает порядок цикла: Shift+Tab перемещает defaultacceptEditsplan, поэтому два нажатия из начального режима переводят вас в Plan Mode, а текущий режим отображается в строке состояния. Обратите внимание на обозначение: режим default теперь отображается как Manual в CLI и расширениях IDE, хотя его значение в конфигурации по-прежнему default. Для настройки по умолчанию на уровне проекта ключ является вложенным. Задайте его в .claude/settings.json в разделе "permissions": { "defaultMode": "plan" }, а не на верхнем уровне.

Что Plan Mode может и чего не может

В Plan Mode Claude сохраняет инструменты чтения и исследования (Read, Grep, Glob, Task/subagents, WebSearch и WebFetch), тогда как инструменты Write, Edit и Bash для внесения изменений удерживаются до вашего одобрения. Инструменты MCP, изменяющие состояние системы, удерживаются аналогичным образом. Точный набор инструментов определяется оболочкой и меняется от версии к версии, поэтому воспринимайте это как общий перечень, а не исчерпывающий контракт.

Граница обеспечивается внедрённой системной инструкцией и системой разрешений Claude Code, а не жёсткой изоляцией — именно поэтому сам план записывается в редактируемый markdown-файл, а не блокируется как операция «записи». В разборе реализации plan mode Армин Ронахер обнаружил, что инструменты записи по-прежнему присутствуют, а вход в plan mode внедряет промпт, сообщающий модели о режиме только для чтения; именно инструмент edit Claude использует для создания собственного файла плана. Документация подтверждает, что это уровень разрешений, а не удаление инструментов: в стандартной сессии записи в защищённые пути по-прежнему проходят через систему промптов, а не отбрасываются молча. На практике это означает, что план — это обычный текстовый контракт, который вы можете редактировать. Нажмите Ctrl+G, чтобы открыть предложенный план в текстовом редакторе, добавьте аннотации или удалите шаги — и Claude учтёт ваши изменения перед тем, как начнёт писать код.

Рабочий процесс Plan Mode для сложных задач

Для изменений, затрагивающих несколько файлов, цикл выглядит так: описать → уточнить → спланировать → отредактировать → выполнить:

  1. Опишите задачу в Plan Mode и укажите Claude на соответствующие файлы. Сформулируйте цель и ограничения в первом промпте.
  2. Дайте Claude прочитать и задать вопросы. Он прослеживает импорты, а затем выявляет действительно неоднозначные решения (глубина архитектуры, что делать с мёртвым кодом, какой тестовый фреймворк использовать) до того, как зафиксирует подход. Слабый признак — план, в котором упоминаются только файлы, но не конкретные функции.
  3. Проверьте пронумерованный план. Убедитесь, что шаги упорядочены по зависимостям и что тесты перемежаются с реализацией, а не добавлены в конце.
  4. Отредактируйте и одобрите. Используйте Ctrl+G для добавления аннотаций или изменения порядка, затем одобрите план, когда контракт будет выглядеть корректно.
  5. Выполняйте и следите за отклонениями. Claude работает пошагово в соответствии с одобренным планом.

Одобрение плана завершает Plan Mode, поэтому, если выполнение отклоняется (Claude редактирует файл, не упомянутый в текущем шаге, или молча принимает решение, которое план оставил открытым), нажмите Shift+Tab, чтобы вернуться в Plan Mode, и попросите Claude заново спланировать оставшуюся работу с учётом текущего состояния файлов. Перепланирование в середине задачи — нормальная практика при реальных рефакторингах, а не признак неудачи. Для работы, слишком объёмной для одной сессии, разбейте её на последовательные планы, а не создавайте один разросшийся документ.

Разделение планирования и выполнения между моделями

Для сложной работы используйте наиболее мощную модель с развитыми способностями к рассуждению для составления плана, а более быструю и экономичную — для его выполнения: качество планирования определяет результат, тогда как выполнение носит преимущественно механический характер, если план составлен правильно. Claude Code реализует это через псевдоним модели, а не через переключатель. Выбор opusplan запускает модель opus в режиме планирования и переключается на sonnet в момент начала выполнения.

В Anthropic API псевдоним opus соответствует Claude Opus 5, а sonnetClaude Sonnet 5, поэтому opusplan обеспечивает Opus 5 для планирования и Sonnet 5 для выполнения. Opus 5 требует Claude Code v2.1.219 или более поздней версии; в более ранних релизах псевдоним opus по-прежнему указывает на Opus 4.8. Псевдонимы отслеживают рекомендуемую версию для вашего провайдера и обновляются по мере выхода новых моделей, поэтому указывайте полное название модели, например claude-opus-5, когда вам нужна фиксированная версия. Opus — не вершина линейки: в обзоре моделей Claude Fable 5 стоит выше уровня Opus как наиболее мощная широко доступная модель Anthropic, и Claude Code предоставляет к ней доступ через псевдоним fable для задач, выходящих за рамки одной сессии.

Когда использовать Plan Mode, а когда пропустить

Используйте Plan Mode, когда изменение затрагивает примерно три файла и более, включает рефакторинг, миграцию схемы или работу с чувствительными к безопасности компонентами, либо когда задачу нельзя описать одним предложением; пропускайте его для однострочных правок и механических изменений, где составление плана — лишняя трата времени. Три файла — это примерно та точка, с которой начинают накапливаться ошибки из-за взаимозависимых решений. Исправление опечаток, изолированные правки функций и переименование в пределах одного файла выполняются быстрее без этапа планирования. Всё, в чём вы не уверены относительно того, как кодовая база обрабатывает конкретный случай, или где преждевременное редактирование было бы дорогостоящим для отката, стоит сначала спланировать.

Правило одного предложения — самый быстрый фильтр: если вы можете сформулировать всё изменение в одном предложении, просто сделайте его; в противном случае — планируйте. Переходите к более масштабному подходу только тогда, когда план действительно выходит за рамки одного контекста выполнения — в этом случае экспериментальная функция Agent Teams в Claude Code распределяет работу между экземплярами, причём ведущий агент проверяет и одобряет план каждого участника перед началом записи.

Воспользуйтесь Plan Mode при следующем изменении, затрагивающем несколько файлов, отредактируйте план с помощью Ctrl+G перед предоставлением доступа на запись и возвращайтесь к нему через Shift+Tab в момент, когда выполнение начинает отклоняться. Механика часто меняется, поэтому перед тем, как полагаться на специфику конкретных версий, сверяйтесь с официальной документацией Claude Code.

Часто задаваемые вопросы

Действительно ли Plan Mode предотвращает редактирование файлов Claude, или он всё равно может записывать данные?

Plan Mode блокирует редактирование вашего исходного кода, но не является жёсткой изоляцией. Граница только для чтения обеспечивается внедрённой системной инструкцией и системой разрешений Claude Code, а не удалением инструментов записи. Инструмент edit по-прежнему присутствует — именно с его помощью Claude создаёт собственный файл плана, — а любая попытка записи в ваш код по-прежнему проходит через запрос разрешения, а не разрешается молча.

В чём разница между использованием Shift+Tab, префикса /plan и флага --permission-mode plan?

Они различаются по области действия. Нажатие Shift+Tab переключает режим для текущей сессии и сохраняется до следующего переключения. Префикс /plan применяется только к следующему промпту, не изменяя текущий режим. Запуск с флагом claude --permission-mode plan переводит всю сессию в plan mode с момента запуска. Для постоянного значения по умолчанию задайте permissions.defaultMode равным plan в файле settings.json, чтобы это применялось к каждой сессии в рамках проекта или пользовательских настроек.

Как сделать Plan Mode режимом по умолчанию для проекта?

Задайте defaultMode равным plan внутри объекта permissions в файле .claude/settings.json, записав это как permissions, содержащий defaultMode со значением plan. Ключ является вложенным в permissions, а не размещается на верхнем уровне файла. После настройки каждая сессия, запущенная в этом проекте, автоматически начинается в Plan Mode. Используйте вместо этого файл настроек на уровне пользователя, если хотите применить подход «сначала план» ко всем своим проектам, а не только к одному репозиторию.

Что происходит после одобрения плана и как заставить Claude перепланировать задачу в середине выполнения?

Одобрение плана завершает фазу планирования и переводит сессию в режим разрешений, соответствующий выбранному вами варианту одобрения, — Claude сразу приступает к работе. Если выполнение отклоняется от согласованных шагов, нажмите Shift+Tab, чтобы вернуться в Plan Mode, или добавьте к следующему промпту префикс /plan и попросите Claude заново спланировать оставшуюся работу с учётом текущего состояния файлов. Перепланирование в середине задачи — ожидаемая практика при реальных рефакторингах, а не признак неудачи.

Какая модель должна составлять план, а какая — выполнять его?

Используйте наиболее мощную стабильную модель с развитыми способностями к рассуждению для составления плана и более быструю, экономичную модель для его выполнения, поскольку качество планирования определяет результат, тогда как выполнение носит преимущественно механический характер. Claude Code автоматизирует передачу управления через псевдоним модели opusplan, который использует Opus в режиме планирования и переключается на Sonnet для выполнения. В Anthropic API эти псевдонимы соответствуют Claude Opus 5 и Claude Sonnet 5 соответственно. Псевдонимы обновляются по мере выхода новых моделей, поэтому указывайте полное название модели, когда вам нужна фиксированная версия.

DevTools for the frontend

Gain Debugging Superpowers

Unleash the power of session replay to reproduce bugs, track slowdowns and uncover frustrations in your app. Get complete visibility into your frontend with OpenReplay — the most advanced open-source session replay tool for developers.

Star on GitHub12k

We use cookies to improve your experience. By using our site, you accept cookies.