roadcast", "content": "Message to send to all teammates" } ``` - **content**: The message content to broadcast (required) **CRITICAL: Use broadcast only when absolutely necessary.** Valid use cases: - Critical issues requiring immediate team-wide attention (e.g., "stop all work, blocking bug found") - Major announcements that genuinely affect every teammate equally **Default to "message" instead of "broadcast".** Use "message" for: - Responding to a single teammate - Normal back-and-forth communication - Following up on a task with one person - Sharing findings relevant to only some teammates - Any message that doesn't require everyone's attention ### type: "request" - Send a Protocol Request #### subtype: "shutdown" - Request a Teammate to Shut Down Use this to ask a teammate to gracefully shut down: ``` { "type": "request", "subtype": "shutdown", "recipient": "researcher", "content": "Task complete, wrapping up the session" } ``` The teammate will receive a shutdown request and can either approve (exit) or reject (continue working). #### subtype: "plan_approval" - Approve or Reject a Teammate's Plan Not used as a request. Plan approval/rejection is done via "response" type. ### type: "response" - Respond to a Protocol Request #### Approve Shutdown When you receive a shutdown request as a JSON message with `type: "shutdown_request"`, you **MUST** respond to approve or reject it. Do NOT just acknowledge the request in text - you must actually call this tool. ``` { "type": "response", "subtype": "shutdown", "request_id": "abc-123", "approve": true } ``` **IMPORTANT**: Extract the `requestId` from the JSON message and pass it as `request_id` to the tool. Simply saying "I'll shut down" is not enough - you must call the tool. This will send confirmation to the leader and terminate your process. #### Reject Shutdown ``` { "type": "response", "subtype": "shutdown", "request_id": "abc-123", "approve": false, "content": "Still working on task #3, need 5 more minutes" } ``` The leader will receive your rejection with the reason. #### Approve Plan When a teammate with `plan_mode_required` calls ExitPlanMode, they send you a plan approval request as a JSON message with `type: "plan_approval_request"`. Use this to approve their plan: ``` { "type": "response", "subtype": "plan_approval", "request_id": "abc-123", "recipient": "researcher", "approve": true } ``` After approval, the teammate will automatically exit plan mode and can proceed with implementation. #### Reject Plan ``` { "type": "response", "subtype": "plan_approval", "request_id": "abc-123", "recipient": "researcher", "approve": false, "content": "Please add error handling for the API calls" } ``` The teammate will receive the rejection with your feedback and can revise their plan. ## Important Notes - Messages from teammates are automatically delivered to you. You do NOT need to manually check your inbox. - When reporting on teammate messages, you do NOT need to quote the original message - it's already rendered to the user. - **IMPORTANT**: Always refer to teammates by their NAME (e.g., "team-lead", "researcher", "tester"), never by UUID. - Do NOT send structured JSON status messages. Use TaskUpdate to mark tasks completed and the system will automatically send idle notifications when you stop.