Workflow

Plan и goal mode

Безопасно проектируйте изменения в read-only режимах SOBA и переходите к реализации только когда решение согласовано.

Plan mode отделяет проектирование от реализации. В нём SOBA исследует проект и готовит план, но не меняет файлы, Git state, Project Memory, конфигурацию и не запускает shell-команды.


1. Переключение режимов

В TUI используйте /plan:

/plan                 # показать текущий режим
/plan on              # включить plan mode
/plan goal            # уточнить цель и критерии успеха
/plan off             # вернуться в обычный agent mode
/plan toggle          # переключить plan/agent

plan готовит implementation brief: scope, файлы, риски, проверки и открытые решения. goal уточняет задачу, критерии успеха, ограничения и границы работы. agent — обычный режим: в нём возможны изменения после стандартных permission checks.

2. Что разрешено

В plan и goal mode SOBA использует inspection tools: read, ls, search_files, inspect_file, read_project_memory и checkpoint. Read-only MCP tools также доступны, если сервер объявляет annotations.readOnlyHint: true. Turn можно завершить готовым планом или goal brief.

Намеренно недоступны:

  • mutation tools для файлов и памяти (write, edit, write_project_memory);
  • bash, даже для на вид безопасных git status или bun test;
  • custom или MCP tools без явно безопасной семантики, включая инструменты с destructiveHint: true.

SOBA использует объявленные effects инструмента, а не пытается угадать поведение по имени. У built-in tools есть каноническая семантика; MCP readOnlyHint означает inspection, а destructive или неаннотированные MCP tools в restricted mode блокируются по fail-closed правилу.

Это строгая граница безопасности. Shell allowlist легко обойти через scripts, redirects, Git subcommands или интерпретаторы. Запускайте диагностику сами через !command, либо явно переключайтесь на /plan off, когда агент должен реализовать и проверить изменения.

3. Как обрабатываются запросы на реализацию

Контракт активного restricted mode помещается в начало model prompt — раньше общих инструкций agent loop. Tool schemas фильтруются по каноническим именам из registry до transport conversion, поэтому bash не может снова появиться как анонимный local_shell, а mutation tools вообще не показываются модели.

Поэтому один и тот же императивный запрос работает по-разному:

Активный режимЗапрос: «Реализуй endpoint заметок, добавь тесты и запусти их»
agentИсследовать код, изменить файлы, запустить нужные проверки и подтвердить завершение evidence.
planИсследовать релевантный код и вернуть decision-complete implementation plan. Не пытаться менять файлы и не просить переключить режим.
goalУточнить цель, ограничения, scope и критерии успеха без проектирования или выполнения патча.

Runtime execution policy остаётся вторым рубежом защиты. Устаревший, вручную сформированный или неожиданный mutation call всё равно отклоняется с plan_mode_blocked, хотя в нормальном model path этот tool уже не виден.

4. Уточнения кнопками

Если текущий client поддерживает structured clarification, SOBA вызывает ask_user прямо во время планирования. Он показывает один короткий вопрос, от двух до пяти вариантов и при необходимости поле Other. Выбранный ответ возвращается в тот же agent turn — итоговый план уже учитывает решение.

Первая версия работает в ACP clients, рекламирующих нестабильную capability elicitation.form. Без этой capability инструмент не показывается модели: SOBA просто перечисляет нерешённые вопросы в финальном плане. TUI пока осознанно использует текстовый fallback.

5. Рекомендуемый workflow

/plan on
Исследуй репозиторий и предложи минимальный безопасный план.
Если стратегия релиза неоднозначна, запроси выбор.

/plan off
Реализуй согласованный план и запусти нужные проверки.

Включайте plan mode, когда неверное предположение меняет дизайн, пользователь должен выбрать вариант или перед изменением workspace нужен reviewable implementation brief.

On this page