con un clic
cao-supervisor-protocols
// Supervisor-side orchestration patterns for assign, handoff, and idle inbox delivery in CAO
// Supervisor-side orchestration patterns for assign, handoff, and idle inbox delivery in CAO
Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions, check status, send follow-up instructions, unblock stuck terminals, or shut down sessions. Use when working with CAO sessions in any capacity.
Interact with CAO (CLI Agent Orchestrator) — launch multi-agent sessions, check status, send follow-up instructions, unblock stuck terminals, or shut down sessions. Use when working with CAO sessions in any capacity.
Create a new CAO (CLI Agent Orchestrator) plugin. Use this skill whenever the user wants to add a plugin that reacts to CAO lifecycle or messaging events, scaffold a plugin package, understand plugin requirements, or integrate an external system (Discord, Slack, dashboards, logging, metrics) with CAO. Also use when the user asks what plugin events are available, how plugin discovery works, or how to install a plugin into a CAO environment.
Worker-side callback and completion rules for assigned and handed-off tasks in CAO
Create a new CLI agent provider for CAO (CLI Agent Orchestrator). Use this skill whenever the user wants to add support for a new CLI-based AI agent (e.g., a new coding assistant CLI), integrate a new provider, or scaffold a provider implementation. Also use when the user asks about the provider architecture, what files to modify, or how providers work in CAO.
| name | cao-supervisor-protocols |
| description | Supervisor-side orchestration patterns for assign, handoff, and idle inbox delivery in CAO |
Use this skill when supervising worker agents through CLI Agent Orchestrator.
This skill covers how supervisors should dispatch work, decide between assign and handoff, and receive worker results without blocking inbox delivery.
From cao-mcp-server, supervisors orchestrate work with:
assign(agent_profile, message) for asynchronous work that returns immediatelyhandoff(agent_profile, message) for synchronous work that blocks until the worker finishessend_message(receiver_id, message) for direct messages to an existing terminalYour own terminal ID is available in the CAO_TERMINAL_ID environment variable. Use it when you need workers to send results back to you.
Use assign when the worker should continue independently and report back later. This is the normal pattern for fan-out work or parallel execution.
Use handoff when the next step is blocked on the worker result. The orchestrator waits for completion, captures the worker output, and returns it directly to the supervisor.
Typical pattern:
assign for analysis, research, or code changes that can run in parallel.handoff for report generation, blocking review steps, or any task where you need the result before you can continue.Assigned workers usually return results through send_message. Those inbox messages are delivered to the supervisor automatically when the supervisor terminal becomes idle.
This means supervisors should:
Do not keep the terminal busy with sleep, echo, or similar commands while waiting. A busy terminal delays inbox delivery.
If you need multiple worker results, dispatch them all first, then end the turn. Do not poll manually in a loop.
When you use assign, include the callback terminal ID in the task message. Tell the worker exactly which terminal should receive the result and instruct the worker to use send_message.
Example pattern:
Analyze dataset A. Send results back to terminal abc123 using send_message.
Some CAO deployments also append an automatic callback suffix to assigned messages. Treat that appended context as helpful reinforcement, but still write task messages that are explicit and self-contained.
Use send_message when you need to contact an existing terminal directly rather than spawning a new worker.
Examples:
When sending direct messages, include enough context that the receiver can act without re-reading the full original task.
assign and include callback instructions.handoff only for steps that must finish before you can continue.