Plan Mode

Goa's /plan command brings structured, event-sourced work planning to the terminal. Plans are persisted, reviewable, and sequentially executable.

Quick start

/plan:new:objective=Refactor the authentication module

This creates a plan and starts the planner agent. The planner explores the codebase and drafts plan items. When ready, it calls submit_review to open the annotation pager.

Pager keys

Key Action
↑/↓ Navigate lines
n / p Jump to next / previous item
c Add comment on current line
e / d Edit / delete comment
s Submit annotations to the planner
a Approve the plan
q / Esc Close without submitting

Commands

Command Description
/plan Interactive action list
/plan:new:objective=... Create a plan + start planner
/plan:review:id= Open the plan pager
/plan:approve:id= Approve and start execution
/plan:status:id= Open plan-status overlay
/plan:replan:id= Re-enter planning phase
/plan:list List all plans
/plan:delete:id=,confirm=true Delete a plan

How it works

Plans are stored under .goa/plans/<plan-id>/ as an event-sourced log (events.jsonl) with a JSON snapshot (plan.json). The planner agent uses the plan tool to add, update, remove, and reorder items. On approval, the execution orchestrator dispatches items one at a time to worker agents with limited context windows. Workers report results via the task_outcome tool.

Retention

Terminal-state plans (done, blocked, failed) are automatically cleaned up after the configured retention period (default: 7 days). Configure via:

plan:
  retention:
    enabled: true
    days: 7  # 0 = keep forever