Skip to content

Staged Workflow

Staged workflow separates planning from execution. The agent first produces a plan artifact and waits. No file writes are permitted until the plan is approved.

Staged workflow plan review in BMO
Plan phase with a stored artifact, approval-gated tools, and the current Plan panel title before execute unlocks.

The agent stores the plan with set_plan_artifact. There is no submit_plan tool. In the TUI, the plan appears in the upper Plan panel (Plan — /approve to run) and the status bar (Plan pending — /approve to run).

[options.staged_workflow]
enabled = true
require_approval_before_execute = true
stateDiagram-v2
    [*] --> Plan: request (Plan or Execute intent)
    Plan --> Plan: set_plan_artifact
    Plan --> Execute: /approve or approve_plan
    Plan --> Plan: /plan to revise
    Execute --> [*]: mutation tools unlocked
  1. Agent receives your request and enters plan phase
  2. Agent produces a structured plan (no writes allowed)
  3. You review the plan in the TUI
  4. Type /approve to advance to execute phase — agent carries out the plan
  5. Or type /plan to send the agent back to revise

With require_approval_before_execute: false, the agent moves to execute automatically once a plan exists (useful for headless/autopilot runs).

Before each TUI submit, BMO classifies the turn as Discuss, Plan, or Execute. Discuss turns stay read-only and skip staged plan-prompt injection for that run. Plan and Execute turns honor the staged gate when it is enabled.

flowchart TD
    submit["Operator submit"] --> classify{"Turn intent?"}
    classify -->|"Discuss"| discuss["Chat / read-only — no plan injection"]
    classify -->|"Plan or Execute"| staged["Staged workflow active"]
    staged --> planPhase["Plan phase — set_plan_artifact"]
    planPhase --> review["Review in TUI"]
    review --> approve["/approve or approve_plan"]
    review --> revise["/plan to revise"]
    approve --> execute["Execute phase"]
SurfaceInspectAdvance to execute
TUIPlan panel, status bar, /staged-workflow/approve
Agent toolsget_workflow_phase, get_staged_workflow_statusapprove_plan
CLIbmo config show-staged-workflow
HTTP / MCPGET /v1/sessions/{id}/staged-workflow/statussession policy via coordinator; bound HTTP callers reuse the trusted session

See Tools Reference for the full staged-workflow tool family.

OptionDefaultDescription
enabledfalseEnable staged workflow
require_approval_before_executetrueBlock execution until /approve is typed
CommandDescription
/approveApprove the current plan and advance to execute
/planReturn to plan phase to revise
/staged-workflowRead-only staged-workflow posture for the session

Use staged workflow when you want to review what the agent intends to do before it touches any files. Good for:

  • Large refactors
  • Multi-file feature additions
  • Any task where reviewing intent upfront saves debugging later

For different models for plan vs execute (similar to other tools’ “architect mode”), enable Phase model routing alongside staged workflow: [options.phase_model] sets planning_model and execution_model. Copy-paste preset: Architect / editor preset.