You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Convoys are currently created and kicked off atomically ���¢ gt_sling_batch creates the convoy bead, all tracked beads, hooks agents, and dispatches immediately. There's no way to plan a convoy (define the beads, review the decomposition, iterate on titles/descriptions/ordering) before committing to execution. The Mayor decomposes a request and fires immediately, with no human review step.
For complex work, users want to:
Ask the Mayor to plan a convoy
Review the plan (bead list, descriptions, rig assignments, ordering)
Iterate ("split that bead into two", "add a test bead", "change the priority on the auth bead")
Approve and kick off only when satisfied
Solution
Add a staged status to convoys. A staged convoy has all its beads defined but no agents hooked or dispatched. The user reviews and edits, then explicitly starts it.
Convoy lifecycle with staging
staged �¢ open �¢ ready_to_land �¢ closed
staged: Beads exist but are in open status with no assigned agents. The convoy is a plan, not active work.
open: The convoy has been started ���¢ agents are hooked and dispatching begins.
Mayor tools
Tool
What it does
gt_sling_batch (updated)
Add a staged: boolean parameter (default false). When true, creates the convoy and beads but does not hook agents or dispatch.
gt_convoy_start (new)
Transitions a staged convoy to open: hooks agents to all tracked beads and triggers dispatch on the next alarm tick.
gt_convoy_edit (new, or extend #996's gt_bead_update)
Edit beads within a staged convoy ���¢ add beads, remove beads, change titles/descriptions/priorities/rig assignments, reorder.
Dashboard UI
Staged convoy view: Shows the planned beads as a list/board in a "draft" visual state (muted colors, dashed borders, "STAGED" badge). Each bead is editable inline.
Start button: Prominent "Start Convoy" button that transitions to open and begins dispatch.
Mayor integration: The Mayor chat could show a staged convoy as a rich card: "Here's my plan for the auth refactor convoy: [interactive bead list]. Review and edit, then tell me to start it."
Mayor prompt update
## Staged Convoys
When the user asks you to plan or prepare work (but not start it immediately),
use gt_sling_batch with staged=true. This creates the convoy and beads without
dispatching agents. Tell the user the plan is ready for review and they can:
- Edit individual beads (titles, descriptions, priorities)
- Add or remove beads
- Tell you to start it when ready
If the user says "go", "start it", "kick it off", or similar, call gt_convoy_start
to begin execution.
Acceptance Criteria
staged status added to convoy beads (or a staged boolean on convoy metadata)
gt_sling_batch accepts staged: boolean parameter
Staged convoys have beads but no hooked agents or dispatched work
gt_convoy_start tool transitions staged �¢ open and triggers agent hookup + dispatch
Beads within a staged convoy are editable (title, body, priority, rig assignment)
Beads can be added to or removed from a staged convoy before starting
Dashboard renders staged convoys distinctly from active ones
Mayor system prompt includes staged convoy guidance
Notes
No data migration needed
Staging is optional ���¢ gt_sling_batch with staged=false (the default) behaves exactly as it does today
Staged convoys should not appear in hasActiveWork() or trigger the active alarm interval
Consider whether the Mayor should auto-stage for large convoys (>5 beads) and auto-start for small ones. This is a prompt guidance decision, not a code decision.
Parent
Part of #204 (Phase 4: Hardening)
Problem
Convoys are currently created and kicked off atomically ���¢
gt_sling_batchcreates the convoy bead, all tracked beads, hooks agents, and dispatches immediately. There's no way to plan a convoy (define the beads, review the decomposition, iterate on titles/descriptions/ordering) before committing to execution. The Mayor decomposes a request and fires immediately, with no human review step.For complex work, users want to:
Solution
Add a
stagedstatus to convoys. A staged convoy has all its beads defined but no agents hooked or dispatched. The user reviews and edits, then explicitly starts it.Convoy lifecycle with staging
staged: Beads exist but are inopenstatus with no assigned agents. The convoy is a plan, not active work.open: The convoy has been started ���¢ agents are hooked and dispatching begins.Mayor tools
gt_sling_batch(updated)staged: booleanparameter (defaultfalse). Whentrue, creates the convoy and beads but does not hook agents or dispatch.gt_convoy_start(new)open: hooks agents to all tracked beads and triggers dispatch on the next alarm tick.gt_convoy_edit(new, or extend #996'sgt_bead_update)Dashboard UI
openand begins dispatch.Mayor prompt update
Acceptance Criteria
stagedstatus added to convoy beads (or astagedboolean on convoy metadata)gt_sling_batchacceptsstaged: booleanparametergt_convoy_starttool transitions staged �¢ open and triggers agent hookup + dispatchNotes
gt_sling_batchwithstaged=false(the default) behaves exactly as it does todayhasActiveWork()or trigger the active alarm intervalgt_bead_updatefrom that issue can be used on staged beads