wshobson/agents

team-communication-protocols

Structured messaging protocols for agent team communication including message type selection, plan approval, shutdown procedures, and anti-patterns to avoid. Use this skill when establishing communication norms for a newly spawned team, when deciding whether to send a direct message or a broadcast, when a team-lead needs to review and approve an implementer's plan before work begins, when orchestrating a graceful team shutdown after all tasks are complete, or when debugging why teammates are not

93Collecting
See how to use itView GitHub source
npx skills add https://github.com/wshobson/agents --skill "plugins/agent-teams/skills/team-communication-protocols"
Automated source guideReview and auditDeep source

Source checked Jul 28, 2026·Refresh due Oct 26, 2026

Reorganized from the pinned upstream SKILL.md

Source-grounded review guide: team-communication-protocols

Protocols for effective communication between agent teammates, including message type selection, plan approval workflows, shutdown procedures, and common anti-patterns to avoid.

npx skills add https://github.com/wshobson/agents --skill "plugins/agent-teams/skills/team-communication-protocols"
Check the pinned source

The pinned source contains enough sections and task detail for a source-grounded deep guide; automated content is still not an independent test.

784 source words · 13 usable sections

Best fit

  • Establishing communication norms for a new team
  • Choosing between message types (message, broadcast, shutdownrequest)
  • Handling plan approval workflows

Review workflow

Read team-communication-protocols through these 5 source sections

Sections are extracted automatically from the pinned SKILL.md and link back to the source.

01

Plan Approval Workflow

When a teammate is spawned with planmoderequired:

SKILL.md · Plan Approval Workflow
Teammate creates a plan using read-only exploration toolsTeammate calls ExitPlanMode which sends a planapprovalrequest to the leadLead reviews the plan
02

When to Use This Skill

Establishing communication norms for a new team

SKILL.md · When to Use This Skill
Establishing communication norms for a new teamChoosing between message types (message, broadcast, shutdownrequest)Handling plan approval workflows
03

Message Type Selection

Send to a single specific teammate:

SKILL.md · Message Type Selection
Send to a single specific teammate:Use for: Task updates, coordination, questions, integration notifications.Send to ALL teammates simultaneously:
05

broadcast — Use Sparingly

Send to ALL teammates simultaneously:

SKILL.md · broadcast — Use Sparingly
Send to ALL teammates simultaneously:Use ONLY for: Critical blockers affecting everyone, major changes to shared resources.Why sparingly?: Each broadcast sends N separate messages (one per teammate), consuming API resources proportional to team size.

SkillSignal prompt templates

Provide the task, context, and acceptance criteria

These prompts were written by SkillSignal from the source structure; they are not upstream text.

Source-grounded prompt

Use for a review or audit task while explicitly checking the source sections.

Use team-communication-protocols for this review or audit task: [task]. Inputs and constraints: [details]. Work through these pinned SKILL.md sections: “Plan Approval Workflow”, “When to Use This Skill”, “Message Type Selection”, “message (Direct Message) — Default Choice”, “broadcast — Use Sparingly”. Cite the concrete requirements that shape each step, do not invent capabilities absent from the source, and verify the result against: [acceptance criteria].

Review checklist

Verify each item before delivery

The source section “Plan Approval Workflow” has been checked.

The source section “When to Use This Skill” has been checked.

The source section “Message Type Selection” has been checked.

The source section “message (Direct Message) — Default Choice” has been checked.

Choose a different workflow

When another Skill is the better fit

medchem

Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

A separate implementation from K-Dense-AI/scientific-agent-skills; compare its source, maintenance signals, and permission requirements.

Open source detail

emails

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out

A separate implementation from coreyhaines31/marketingskills; compare its source, maintenance signals, and permission requirements.

Open source detail

free-tool-strategy

Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut

A separate implementation from MoizIbnYousaf/marketing-cli; compare its source, maintenance signals, and permission requirements.

Open source detail

FAQ

What does the team-communication-protocols source document cover?

Protocols for effective communication between agent teammates, including message type selection, plan approval workflows, shutdown procedures, and common anti-patterns to avoid.

How do I install team-communication-protocols?

The source record exposes this install command: npx skills add https://github.com/wshobson/agents --skill "plugins/agent-teams/skills/team-communication-protocols". Inspect the command and pinned source before running it.

Repository stars
38,313
Repository forks
4,098
Quality
93/100
Source repository last pushed

Quality breakdown

Based on traceable docs and repository signals; stars are not treated as quality.

93/100
Documentation28/30
Specificity25/25
Maintenance20/20
Trust signals20/25

Compare before choosing

Related Agent Skills and source variants

These links are selected from shared tasks, functions, stacks, platforms, and same-name variants. Compare the source owner, documentation, permissions, and maintenance signals.

medchem by k-dense-ai

Medicinal chemistry filters for compound triage. Apply drug-likeness rules (Lipinski, Veber, CNS), structural alert catalogs (PAINS, NIBR, ChEMBL), complexity metrics, and the medchem query language for library filtering.

emails by coreyhaines31

When the user wants to create or optimize an email sequence, drip campaign, automated email flow, or lifecycle email program. Also use when the user mentions "email sequence," "drip campaign," "nurture sequence," "onboarding emails," "welcome sequence," "re-engagement emails," "email automation," "lifecycle emails," "trigger-based emails," "email funnel," "email workflow," "what emails should I send," "welcome series," or "email cadence." Use this for any multi-email automated flow. For cold out

free-tool-strategy by MoizIbnYousaf

Plans free tools, calculators, generators, and interactive widgets that attract target audience through search and social sharing. Engineering as marketing — build something useful, capture leads. Use when someone wants to build a free tool for marketing, says 'free tool', 'calculator', 'generator', 'engineering as marketing', 'side project marketing', 'interactive widget', 'lead generation tool', 'SEO tool', 'growth hack', 'build something to attract users', or wants to attract users through ut

lead-generation by MoizIbnYousaf

Generate enriched ICP-based lead lists with Exa Agent, including structured scoring and CSV output. Use when generating leads, building prospect lists, finding companies to sell to, outbound research, or ICP-based company discovery. Triggers on leads, lead gen, prospect list, find companies, ICP, outbound list. Distinct from lead-magnet (content asset that captures emails).

revops by coreyhaines31

When the user wants help with revenue operations, lead lifecycle management, or marketing-to-sales handoff processes. Also use when the user mentions 'RevOps,' 'revenue operations,' 'lead scoring,' 'lead routing,' 'MQL,' 'SQL,' 'pipeline stages,' 'deal desk,' 'CRM automation,' 'marketing-to-sales handoff,' 'data hygiene,' 'leads aren't getting to sales,' 'pipeline management,' 'lead qualification,' or 'when should marketing hand off to sales.' Use this for anything involving the systems and proc

View original Skill.mdThis page is parsed directly from the repository SKILL.md without editorial rewriting. Collected: Jul 28, 2026 · about 4 min

Team Communication Protocols

Protocols for effective communication between agent teammates, including message type selection, plan approval workflows, shutdown procedures, and common anti-patterns to avoid.

When to Use This Skill

  • Establishing communication norms for a new team
  • Choosing between message types (message, broadcast, shutdown_request)
  • Handling plan approval workflows
  • Managing graceful team shutdown
  • Discovering teammate identities and capabilities

Message Type Selection

message (Direct Message) — Default Choice

Send to a single specific teammate:

{
  "type": "message",
  "recipient": "implementer-1",
  "content": "Your API endpoint is ready. You can now build the frontend form.",
  "summary": "API endpoint ready for frontend"
}

Use for: Task updates, coordination, questions, integration notifications.

broadcast — Use Sparingly

Send to ALL teammates simultaneously:

{
  "type": "broadcast",
  "content": "Critical: shared types file has been updated. Pull latest before continuing.",
  "summary": "Shared types updated"
}

Use ONLY for: Critical blockers affecting everyone, major changes to shared resources.

Why sparingly?: Each broadcast sends N separate messages (one per teammate), consuming API resources proportional to team size.

shutdown_request — Graceful Termination

Request a teammate to shut down:

{
  "type": "shutdown_request",
  "recipient": "reviewer-1",
  "content": "Review complete, shutting down team."
}

The teammate responds with shutdown_response (approve or reject with reason).

Communication Anti-Patterns

Anti-PatternProblemBetter Approach
Broadcasting routine updatesWastes resources, noiseDirect message to affected teammate
Sending JSON status messagesNot designed for structured dataUse TaskUpdate to update task status
Not communicating at integration pointsTeammates build against stale interfacesMessage when your interface is ready
Micromanaging via messagesOverwhelms teammates, slows workCheck in at milestones, not every step
Using UUIDs instead of namesHard to read, error-proneAlways use teammate names
Ignoring idle teammatesWasted capacityAssign new work or shut down

Plan Approval Workflow

When a teammate is spawned with plan_mode_required:

  1. Teammate creates a plan using read-only exploration tools
  2. Teammate calls ExitPlanMode which sends a plan_approval_request to the lead
  3. Lead reviews the plan
  4. Lead responds with plan_approval_response:

Approve:

{
  "type": "plan_approval_response",
  "request_id": "abc-123",
  "recipient": "implementer-1",
  "approve": true
}

Reject with feedback:

{
  "type": "plan_approval_response",
  "request_id": "abc-123",
  "recipient": "implementer-1",
  "approve": false,
  "content": "Please add error handling for the API calls"
}

Shutdown Protocol

Graceful Shutdown Sequence

  1. Lead sends shutdown_request to each teammate
  2. Teammate receives request as a JSON message with type: "shutdown_request"
  3. Teammate responds with shutdown_response:
    • approve: true — Teammate saves state and exits
    • approve: false + reason — Teammate continues working
  4. Lead handles rejections — Wait for teammate to finish, then retry
  5. After all teammates shut down — Call TeamDelete to remove team resources

Handling Rejections

If a teammate rejects shutdown:

  • Check their reason (usually "still working on task")
  • Wait for their current task to complete
  • Retry shutdown request
  • If urgent, user can force shutdown

Teammate Discovery

Find team members by reading the config file:

Location: ~/.claude/teams/{team-name}/config.json

Structure:

{
  "members": [
    {
      "name": "security-reviewer",
      "agentId": "uuid-here",
      "agentType": "team-reviewer"
    },
    {
      "name": "perf-reviewer",
      "agentId": "uuid-here",
      "agentType": "team-reviewer"
    }
  ]
}

Always use name for messaging and task assignment. Never use agentId, role names, or unsuffixed aliases directly. If a teammate was spawned as team-lead-2, send to team-lead-2, not team-lead.

Troubleshooting

A teammate is not responding to messages. Check the teammate's task status. If it is idle, it may have completed its task and is waiting to be assigned new work or shut down. If it is still active, it may be mid-execution and will process messages once the current operation finishes.

A teammate says it cannot see SendMessage. Check the teammate agent's tools: frontmatter. Agent Teams communication tools such as SendMessage, TaskList, TaskGet, and TaskUpdate must be listed explicitly when an agent uses a restricted tool allowlist.

The lead is sending broadcasts for every status update. This is a common anti-pattern. Broadcasts are expensive — each one sends N messages. Use direct messages (type: "message") for point-to-point updates. Reserve broadcasts for critical shared-resource changes like an updated interface contract.

A teammate rejected a shutdown request unexpectedly. The teammate is still working. Check the rejection reason in the shutdown_response content field, wait for the work to finish, then retry. Never force-terminate a teammate that has unsaved work.

A plan_approval_request arrived but the request_id is missing. The teammate called ExitPlanMode without the required request context. Have the teammate re-enter plan mode, complete exploration, and call ExitPlanMode again. The request_id is generated automatically by the plan mode system.

Two teammates are waiting on each other and neither is making progress. This is a deadlock: both are blocked waiting for the other to finish first. The lead should send a direct message to one teammate with a stub or partial result so it can unblock and proceed.

Related Skills

Source repo
wshobson/agents
Skill path
plugins/agent-teams/skills/team-communication-protocols/SKILL.md
Commit SHA
c4b82b0ad771
Repository license
MIT
Data collected