Режим планирования
Режим планирования — это место, где агент думает, прежде чем что-то трогать. Он исследует проект только на чтение, пишет план и отдаёт его вам в интерфейсе ревью. Вы комментируете, он правит, вы одобряете — и только после этого начинается реализация.
С чего начать
/plan # enter plan mode
/plan add rate limiting # enter plan mode and plan that taskИли нажимайте shift+tab, пока в баннере не появится plan, или запустите с cmd --plan.
В режиме планирования агент может читать файлы, искать и рассуждать. Он не может редактировать файлы, выполнять shell-команды и применять патчи. Завершив работу, он записывает план в ~/.commandcode/plans/<name>.md и открывает ревью плана — просмотрщик в стиле GitHub, где одна строка всегда выделена, вы оставляете построчные комментарии и завершаете ревью одним из действий:
| Клавиша | Действие |
|---|---|
ctrl+r | Submit review: отправить ваши комментарии обратно; агент правит план |
ctrl+a | Approve: начать реализацию |
esc | Cancel: план остаётся сохранённым; откройте его снова через /plans |
Режимы разрешений
Режим планирования — одна из ступеней цикла режимов разрешений. shift+tab переключает между ними: default → accept-edits → plan → yolo → и снова default.
| Режим | Правки файлов | Shell-команды | Когда использовать |
|---|---|---|---|
| plan | Запрещены | Запрещены | Исследование, проектирование, ревью чувствительных сценариев |
| default | Запрос подтверждения | Запрос подтверждения | Контролируемые итерации, повседневный режим |
| accept edits | Применяются сразу | Выполняются сразу | Подход понятен, вы быстро итерируете |
dont-ask стоит вне цикла. Он выбирается в настройках или через --permission-mode dont-ask, а shift+tab из него переводит в accept-edits и возвращает в обычный цикл. yolo (обход разрешений) — четвёртая ступень, после plan; --yolo (или --dangerously-skip-permissions) тоже запускает сессию сразу в нём.
Чтобы перейти сразу в нужный режим, не перебирая их по кругу, используйте /mode или его сокращения: /mode:default, /mode:accept-edits, /mode:plan.
Полное руководство: Режимы разрешений
Режимы — это только база. Полное руководство описывает синтаксис правил allow/ask/deny, лестницу решений, которую проходит каждый вызов инструмента, правила безопасности и полную таблицу решений по режимам и операциям.
WARNING
Yolo (обход разрешений) намеренно недоступен через /mode. Слэш-команды может вызывать сам агент, поэтому маршрут в него из середины сессии позволил бы модели отключить собственные запросы разрешений.
Command Code создаёт чекпоинт перед изменением файлов в любом режиме, поэтому запуск в accept edits всегда можно откатить.
Выбор режима
| Ситуация | Режим |
|---|---|
| Новая функциональность с неясным объёмом | Plan |
| Отладка сложной проблемы | Plan |
| Рефакторинг с изменением многих файлов | Plan |
| Ревью безопасности | Plan |
| Небольшое исправление бага | Accept Edits |
| Рутинный рефакторинг | Accept Edits |
| Запуск тестов и их правка | Accept Edits |
| Быстрое исправление опечатки | Accept Edits |
Обычный цикл: начать в plan, исследовать и согласовать подход, одобрить план, дать ему выполниться в accept edits, откатиться через чекпоинты, если что-то пошло не так.
Модель для каждой фазы
Планирование и реализация требуют разного: сильного рассуждающего, чтобы исследовать и проектировать, и быстрого дешёвого кодера, чтобы продраться через правки. Задайте модели planning и implementation, и Command Code будет переключаться между ними за вас:
- Planning работает, пока сессия находится в режиме планирования: исследует кодовую базу и пишет план.
- Implementation подключается в момент одобрения плана — посреди запуска, на следующем же ходу.
{
"featureModels": {
"planning": "zai-org/glm-5.3",
"implementation": "deepseek/deepseek-v4-pro"
}
}Укажите это в ~/.commandcode/config.json или в любом слое settings.json, либо выберите в /config → Feature models → Planning / Implementation. Обе настройки необязательны; если модель не задана, используется модель сессии.
Строка статуса показывает текущую фазу: planning: GLM-5.3, затем implementing: DeepSeek V4 Pro (latest), а при одобрении выводится Plan handoff — now implementing with deepseek-v4-pro. Выход из режима планирования без одобрения (shift+tab, /mode:default или /mode:accept-edits) оставляет вас на модели сессии, а выбор чего-либо через /model снимает обе полосы до следующего раунда планирования.
Полное руководство: Модели планирования и реализации
Когда применяется каждая полоса, как она взаимодействует с /model, /effort и субагентами и что происходит, если модели нет в вашем тарифе.
Ревью планов
Ревью плана превращает план в полноценный постоянный артефакт, который можно читать, комментировать, править и одобрять, вместо блока текста, который уезжает вверх по экрану.
- Один режим: REVIEW. Читайте построчно, комментируйте любую строку, завершайте действие-глаголом. Отдельного «режима редактирования» нет: правки плана идут через ваш
$EDITOR. - Планы сохраняются. Каждый план записывается в
~/.commandcode/plans/как markdown и индексируется, поэтому отмена ревью никогда не выбрасывает план. - Комментарии — это артефакты ревью, а не текст плана. Они живут в отдельном сайдкаре и попадают к агенту только внутри промпта; в документ плана они никогда не записываются.
- Раунды ревью. Когда агент правит план, следующий раунд сравнивается с предыдущим: изменённые строки подсвечиваются зелёным, так что вы перечитываете только то, что реально изменилось.
- Детерминированность. Страховка на уровне харнесса гарантирует, что ревью будет предложено, даже если слабая модель написала план и просто остановилась.
Как это работает
you: "plan a rate limiter"
│
▼
┌─────────────────────┐
│ PLAN MODE │ read-only
│ explore · design │ writes <name>.md
└──────────┬──────────┘
│ exit_plan_mode
▼
┌─────────────────────┐
│ PLAN REVIEW │ ◀───────┐
│ read · comment │ │
└──┬───────────────┬──┘ │
│ │ │
│ ctrl+r │ ctrl+a │
│ submit │ approve │
▼ ▼ │
┌────────────┐ ┌───────────┐ │
│ agent │ │ IMPLEMENT │ │
│ revises │ └───────────┘ │
└──────┬─────┘ │
└── another round ───────┘
esc → plan saved, not-implemented
reopen any time with /plansВнутри просмотрщика одна строка всегда выделена, комментарии прикрепляются прямо под своей строкой, а нижняя панель содержит действия ревью:
┌ Plan review · rate-limiter.md · v2 ─┐
│ │
│ 5 ● 1. Add a token-bucket mw. │
│ ↳ why not a sliding window? │
│ 6 2. Store buckets in Redis. │
│ 7 3. Return 429 + Retry-After. │
│ │
│ ───────────────────────────────── │
│ REVIEW 1 pending · round 2 │
│ Submit review (1) ctrl+r │
│ Approve ctrl+a │
│ Cancel esc │
└─────────────────────────────────────┘● помечает прокомментированную строку, а ↳ — ваш комментарий, прикреплённый под ней. В пересмотренном раунде изменённые строки подсвечиваются зелёным. Строка подсказок в самом низу содержит остальное: печатайте и нажмите Enter, чтобы оставить комментарий, ctrl+n/ctrl+p — чтобы переходить между изменениями, ? x ! — для быстрых комментариев, ctrl+g — чтобы отредактировать план.
Четыре способа попасть в ревью
Все они открывают одну и ту же поверхность, привязанную к плану, написанному в текущей сессии.
- Завершение режима планирования. Агент пишет план и вызывает
exit_plan_mode, что открывает ревью плана как поверхность одобрения: план и есть запрос на одобрение. Одобрение здесь может ещё и переключить вас в режим accept edits, чтобы реализация пошла без дополнительных подтверждений. - Явный запрос. Вне режима планирования скажите «review plan» / «open plan review». Агент вызывает инструмент
plan_review, который открывает панель для последнего файла плана, вместо того чтобы вываливать план обратно стеной текста. /plan-review. Сразу переходит к ревью последнего плана этой сессии./plans. Открывает полноэкранный браузер планов: все планы этой и прошлых сессий, со значками статуса, количеством комментариев и поиском./plans <name>сразу открывает план по имени.
Автоматическая страховка. Некоторые модели пишут файл плана и останавливаются, так и не показав его. Когда запуск естественно завершается с планом, который был написан, но не прошёл ревью (в режиме default или plan), харнесс сам показывает панель ревью. Одобрение продолжает запуск с инструкцией реализовать план; отказ позволяет запуску завершиться, чтобы вы могли скорректировать курс. Режимы, означающие «не прерывай меня» (accept edits, yolo и dont-ask), страховку пропускают.
Чтение и комментирование
Просмотрщик рендерит план как документ: заголовки, код, цитаты и таблицы стилизуются построчно. Длинные строки переносятся по комфортной для чтения ширине (80 колонок, когда есть место, иначе 60), а не обрезаются.
Навигация:
| Клавиша | Действие |
|---|---|
↑ / ↓ | Перейти на одну строку; после последней строки курсор попадает на действия ревью |
PgUp / PgDn (Fn+↑/↓ на Mac) | Прокрутить на экран вверх/вниз, как в less |
Home / End (Fn+←/→ на Mac) | Перейти к первой/последней строке |
ctrl+n / ctrl+p | Переходить между помеченными строками: вашими комментариями и изменёнными строками в пересмотренном плане |
Комментирование — в стиле Figma: начните печатать на строке, и черновик откроется прямо под ней, ровно там, где он окажется после закрепления.
| Клавиша | Действие |
|---|---|
ввод + Enter | Открыть черновик на выбранной строке, затем закрепить его |
Enter на прокомментированной строке | Открыть комментарий для правки |
пусто + Enter | Удалить комментарий |
? | Быстрый комментарий: «Why? Explain the reasoning behind this.» |
x | Быстрый комментарий: «Cut this — remove it from the plan.» |
! | Быстрый комментарий: «Risky — double-check this before implementing.» |
esc (во время набора) | Отменить черновик |
Закреплённые комментарии показывают маркер ● на полях и строку ↳ comment под строкой. Они сохраняются на диск вместе с планом, поэтому переживают закрытие просмотрщика и даже завершение сессии.
Редактирование плана происходит в вашем редакторе: ctrl+g передаёт файл плана в $EDITOR (или $VISUAL), а просмотрщик перезагружается, когда вы его закрываете.
Завершение ревью
Действие можно вызвать аккордом из любого места или перейти на него стрелками и нажать Enter.
| Действие | Аккорд | Что делает |
|---|---|---|
| Submit review | ctrl+r | Агент берёт ваши ожидающие комментарии, правит план и снова показывает его на новый раунд. Показывается, только когда есть ожидающие комментарии. |
| Approve (поверхность одобрения) | ctrl+a | Выполняет план и начинает реализацию — на вашей модели реализации, если она задана. |
| Execute plan (поверхность браузера) | ctrl+e | Выполняет план как есть; в браузере /plans это и есть одобрение. |
| Cancel / Back | esc | Завершает ревью. В режиме планирования план остаётся сохранённым, и вы продолжаете его дорабатывать; из браузера возвращает к списку. |
Если вы нажимаете Approve, когда комментарии ещё ожидают, Command Code спрашивает, а не угадывает:
Approve (•) with N comments as notes ( ) original plan · discard commentsWith comments as notes отправляет их отдельным ходом пользователя: неблокирующие заметки, по которым агент реализует план. Original plan одобряет план начисто и отбрасывает комментарии. ←/→ переключает, Enter подтверждает, esc возвращает назад.
Раунды ревью и версионирование
Каждый раз, когда вы нажимаете Submit review, Command Code:
- Сохраняет снимок текущего плана в
~/.commandcode/plans/versions/<name>-v<N>.md. - Увеличивает версию плана и очищает ожидающие комментарии (все они были переданы агенту одним промптом).
- Даёт агенту переписать план, перезаписывая живой файл.
Когда пересмотренный план возвращается (версия > 1), просмотрщик сравнивает его со снимком предыдущего раунда. Изменённые строки подсвечиваются зелёным, а строка значка сообщает round N · M lines changed, так что второе ревью означает перечитывание только того, что реально изменилось. ctrl+n/ctrl+p переходят между этими изменёнными строками.
Где живут планы
~/.commandcode/plans/<descriptive-name>.md ← the plan markdown (written by the agent)
~/.commandcode/plans/plans-index.json ← titles, status, comments, versions
~/.commandcode/plans/versions/<name>-v<N>.md ← prior review-round snapshotsКаждый план несёт статус:
- pending: написан, но ещё не прошёл ревью.
- approved: вы одобрили план и перешли к реализации.
- not-implemented: вы отменили ревью; план сохранён для чтения, комментирования и правок позже.
Поскольку отменённый план записывается, а не выбрасывается, планирование никогда не ощущается одноразовым: откройте его снова в любой момент через /plans. Запись в ~/.commandcode/plans/*.md никогда не запрашивает разрешение ни в одном режиме, и это исключение действует только для .md-файлов в этом каталоге, так что каталог планов не может служить заменой скретчпаду.
Справочник
Слэш-команды
| Команда | Описание |
|---|---|
/plan [task] | Войти в режим планирования; /plan <task> планирует эту задачу |
/plans [name] | Просматривать, ревьюить и аннотировать сохранённые планы; /plans без аргументов открывает браузер |
/plan-review | Ревью последнего плана этой сессии |
/mode [default|accept-edits|plan] | Показать или переключить режим разрешений |
/mode:plan | Переключиться в режим планирования (только чтение, без побочных эффектов) |
/mode:accept-edits | Переключиться в режим accept edits |
/mode:default | Переключиться в режим default |
Флаги CLI
| Флаг | Описание |
|---|---|
--plan | Запуск в режиме планирования |
--accept-edits | Запуск в режиме accept edits |
--permission-mode <mode> | default, plan, accept-edits, yolo или dont-ask (auto-accept, bypass и устаревший standard принимаются как алиасы) |
--yolo | Обойти все запросы разрешений (запустить сессию в режиме yolo) |
Инструменты
| Инструмент | Описание |
|---|---|
enter_plan_mode | Переключает в режим планирования (с вашим подтверждением) для исследования только на чтение |
exit_plan_mode | Показывает план на одобрение при выходе из режима планирования. Допустим только в режиме планирования |
plan_review | Открывает панель ревью по запросу вне режима планирования. В ленте отображается как PLAN(review) |
См. также
- Режимы разрешений: синтаксис правил и модель решений, лежащие в основе каждого режима.
- Чекпоинты: откат после того, как одобренный план реализован.
- Модели планирования и реализации: полные правила для моделей каждой фазы.
- Инструменты и слэш-команды: полные справочники.
Источник
Сверено с оригиналом 13 ноября 2026.