Orchestration
Task distribution
Automatic and manual dispatch, and lead delegation.
TaskDispatcherService and SkillMatcherService route work. Matching uses a task’s required_proficiency and skills against member and agent-session skills.
-
1
Plan active
Dispatchable tasks become available.
-
2
Skill scoring
SkillMatcher scores tasks against member/session skills + proficiency.
-
3
Run created
status=dispatchedDispatcher creates an AgentRun.
-
4
Session picks up
POST /agent-sessions/{uuid}/runA connected machine polls pending runs and starts.
-
5
Execution begins
Task → in_progress, TaskStartedBroadcast emitted.
- Loops back until the verdict is approved
-
1
Assign on the board
A lead/architect assigns a task in kanban/list/timeline.
-
2
Member notified
Server sets `assignee_id` and notifies.
-
3
Developer accepts
maestro task acceptCLI accepts and the run starts.
-
4
Lead delegation (variant)
POST /agent-sessions/{uuid}/delegateA lead sends a subtask packet straight to a worker.
- Loops back until the verdict is approved
Dispatch is pause-aware — a paused plan dispatches nothing. A lead connecting polls GET /api/v1/agent-sessions/{uuid}/spawn-queue (the orphan/dispatched-run broker), re-emits orphaned runs, and is bounded by an in-flight spawn cap so a single lead cannot fan out unboundedly. See Pause & recovery.