User: "Add user authentication to the app"
│
▼
┌─────────────────────────────────────┐
│ Agent reads codebase, writes plan │
│ to ~/.mux/plans/<id>.md │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Agent calls propose_plan │
│ (plan displayed in chat) │
└─────────────────────────────────────┘
│
├─────────────────────────────────┐
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────────┐
│ User provides │ │ User clicks "Edit" │
│ feedback in chat │ │ → edits in nvim/vscode │
└─────────────────────┘ └─────────────────────────┘
│ │
│ │ (external edits)
│ ▼
│ ┌─────────────────────────┐
│ │ User sends message │
│ │ → mux detects changes │
│ │ → diff injected │
│ └─────────────────────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────────────┐
│ Agent revises plan based on feedback │
│ (cycles back to propose_plan) │
└─────────────────────────────────────────────────────────┘
│
│ (when satisfied)
▼
┌─────────────────────────────────────┐
│ User switches to Exec mode │
│ (Cmd+Shift+M) │
└─────────────────────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Agent implements the plan │
└─────────────────────────────────────┘