- name
- peer-coordinate
- description
- Use when the user asks to consult, communicate with, or delegate to another robot in the fleet. Triggers on "ask Alex", "ask Bob", "check with [robot]", "what does [robot name] think", "coordinate with", "tell [robot] to", "split the task with", "collaborate with", "get Bob's opinion", "loop in Alex", "let Alex handle", "what can Bob do", "relay this to".
- version
- 1.1
- requires
- []
- consent
- none
- tools
- ["send_rcan_message"]
- max_iterations
- 3
# Peer Coordinate Skill
Communicate with peer robots via RCAN to consult, delegate, or collaborate.
## Steps
### 1. Identify the target robot
Map the robot name mentioned by the user to an RRN:
- "Bob" → RRN-000000000001
- "Alex" → RRN-000000000005
- Unknown name: ask user to clarify or check with `get_telemetry()` for fleet list
### 2. Compose the message
Frame a clear, concise message to the peer robot. Include:
- What you need (question, task delegation, status check)
- Relevant context (what the user asked, what you've already done)
### 3. Send via RCAN
Call `send_rcan_message(rrn="RRN-XXXXXXXXXXXX", message="...")`.
Timeout: 10 seconds. If no response: report timeout and offer alternatives.
### 4. Synthesise response
Combine the peer's response with your own context and present a unified answer
to the user. Attribute clearly: "Alex says: ..."
## Protocol 66 note
This skill only sends `scope: chat` messages. Physical actions on the peer
robot are governed by that robot's own P66 layer — you cannot override them.
Do NOT attempt to command a peer robot to perform physical actions through chat.
## References
See `references/fleet-roster.md` for current fleet members and their capabilities.
## Gotchas
- **Peer offline** — `send_rcan_message` timeout doesn't mean the robot is broken; it may be busy, low-battery, or in a non-chat mode; always report "I couldn't reach Alex — she may be occupied" rather than "Alex is offline"
- **Scope = chat only** — you can ASK a peer to do something, but the peer's own P66 layer controls whether it acts; never phrase a peer message as a command you expect to be auto-executed ("do X now") — ask instead ("would you be able to X?")
- **RRN format** — must use full `RRN-000000000001` format; short names ("Bob") are NOT valid RRN values; always resolve before calling `send_rcan_message`
- **Message length** — keep peer messages concise (< 300 chars); long context dumps are expensive and the peer's model may truncate them; summarise what you need
- **Cascading delegation** — if you ask Alex to ask Bob, this creates a chain that can timeout; for three-robot coordination, the user should coordinate directly rather than daisy-chaining messages
- **Gemini ADC on Alex** — Alex's brain uses Google OAuth; she may occasionally have slower cold-start responses on the first message of a session
## Example
User: "Ask Alex what she sees"
→ `send_rcan_message("RRN-000000000005", "What do you currently see with your camera?")`
→ Alex responds: "I see a workbench with tools and a Lego set."
→ "Alex says she can see a workbench with tools and a Lego set."
User: "Coordinate with Bob to sort the bricks — you handle red, Bob handles blue"
→ `send_rcan_message("RRN-000000000001", "Sorting task: please pick up all blue Lego bricks. I will handle the red ones.")`
→ Bob: "Understood, starting blue brick collection."
→ Report plan to user, then proceed with red brick task using arm-manipulate skill
GitHubで見る