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.
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 = truerequire_approval_before_execute = trueHow it works
Section titled “How it works”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
- Agent receives your request and enters plan phase
- Agent produces a structured plan (no writes allowed)
- You review the plan in the TUI
- Type
/approveto advance to execute phase — agent carries out the plan - Or type
/planto 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).
Turn intent vs staged phases
Section titled “Turn intent vs staged phases”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"]
Agent and operator surfaces
Section titled “Agent and operator surfaces”| Surface | Inspect | Advance to execute |
|---|---|---|
| TUI | Plan panel, status bar, /staged-workflow | /approve |
| Agent tools | get_workflow_phase, get_staged_workflow_status | approve_plan |
| CLI | bmo config show-staged-workflow | — |
| HTTP / MCP | GET /v1/sessions/{id}/staged-workflow/status | session policy via coordinator; bound HTTP callers reuse the trusted session |
See Tools Reference for the full staged-workflow tool family.
Options
Section titled “Options”| Option | Default | Description |
|---|---|---|
enabled | false | Enable staged workflow |
require_approval_before_execute | true | Block execution until /approve is typed |
Slash commands
Section titled “Slash commands”| Command | Description |
|---|---|
/approve | Approve the current plan and advance to execute |
/plan | Return to plan phase to revise |
/staged-workflow | Read-only staged-workflow posture for the session |
When to use
Section titled “When to use”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
Architect / editor mode
Section titled “Architect / editor mode”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.
