Install any skill in seconds. Free to start, no credit card required.
Get Started Free →awslabs/cao-worker-protocols
Worker-side callback and completion rules for assigned and handed-off tasks in CAO
Passed 22 of 22 test cases with the skill, and 13 of 22 without it.
and 9 more in the full report
9 fixed13 passed either way0 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 9 test cases the skill fixed. Same model, same prompt, with and without the skill.
In CLI Agent Orchestrator, when send_message is called without specifying receiver_id, which terminal receives the transmission?
| Checked | Without skill | With skill |
|---|---|---|
| Explains that omitting receiver_id targets the terminal that assigned the task. | Missed | Passed |
The instructions your model reads when the skill loads.
Use this skill when acting as a worker agent inside CLI Agent Orchestrator.
This skill explains how workers should interpret assigned versus handed-off work, when to call send_message, and how to report results back cleanly.
Workers receive tasks through one of two orchestration modes:
handoff: blocking work where the orchestrator captures your final output automaticallyassign: non-blocking work where you must actively return results to the requesting terminalDepending on provider and CAO behavior, a handoff may be made explicit in the task text. For example, Codex workers currently receive a [CAO Handoff] prefix for blocking handoffs. Other providers may rely on the task wording and orchestration context instead.
When the task is a blocking handoff, complete the work and present the result in your normal response. The orchestrator captures that response automatically.
Do not call send_message for ordinary handoff completion unless the task explicitly asks for additional side-channel communication.
When the task came through assign, send your results back after you finish the work:
send_message(message=...) — omitting receiver_id routes the result to the terminal that assigned the task (the recorded caller). This is the reliable default.[Assigned by terminal ...]), pass that ID as receiver_id instead.Do not stop after writing a normal response if the assignment explicitly requires a callback. The requesting terminal depends on send_message to receive the result.
Your own CAO_TERMINAL_ID identifies your terminal, not the callback target. Never pass it as receiver_id.
Return results that are easy for the supervisor to merge into a larger workflow:
test cases passed, vs 13 / 22 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.