Skip to content
Back to skills

Swarm

ASecurity

Parallel dispatch to all Project Directors in the agency — one-shot status, blocker, or priority check across the entire portfolio without loading PD context into the parent session. Spawns each PD in a fully isolated subagent that reads only their heartbeat file and responds in one line. Trigger when: the user says "/swarm", "/swarm-blocker", "/swarm-continue", or "/swarm-all"; you need a portfolio-wide status across all active projects at once; the user asks "what is everyone working on" or...

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 29, 2026
ai-agents

Works with

  • cli

Security analysis

A100/100

Scanned September 29, 2026

npx -y skills add Tekkiiiii/the-agency --skill swarm --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Swarm?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Swarm
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tekkiiiii-swarm/badge)](https://www.skillsdirectory.com/skills/tekkiiiii-swarm)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: swarm
description: >
  Parallel dispatch to all Project Directors in the agency — one-shot status, blocker, or priority check across the entire portfolio without loading PD context into the parent session. Spawns each PD in a fully isolated subagent that reads only their heartbeat file and responds in one line. Trigger when: the user says "/swarm", "/swarm-blocker", "/swarm-continue", or "/swarm-all"; you need a portfolio-wide status across all active projects at once; the user asks "what is everyone working on" or "any blockers across the portfolio?"; doing a weekly check-in sweep; before a planning session to surface conflicts. Key capabilities: reads the agency-council team config to discover all PDs dynamically; dispatches all agents in parallel (not sequentially); handles silent PDs with one automatic respawn; formats a clean digest table per PD with their project and one-line response. Also for: cross-project priority conflicts, surfacing work that can continue without a blocked PD, getting a fast portfolio health snapshot before a client call. Parent session holds zero PD context until responses arrive — fast and cheap.
---

# /swarm — Portfolio-Wide PD Dispatch

**What it does:** Spawns all active PDs in parallel, each in an isolated subagent context. The parent session only holds the digest — not the full PD briefs. Fast and cheap.

## Command Variants

| Command | Question sent to each PD |
|---|---|
| `/swarm` | What are you currently working on? Any blockers? ETA for next deliverable? |
| `/swarm-blocker` | What is your current blocker? Who owns it? What's the workaround or path to resolution? |
| `/swarm-continue` | What can continue without you? Any pre-reqs you need from others? |
| `/swarm-priority` | What are your top 3 priorities right now? Any priority conflicts with other PDs? |
| `/swarm-all` | Full status dump — current work, blockers, wins, decisions pending, next steps. |

## How It Works

### Step 1 — Discover PDs

Read `~/.claude/teams/agency-council/config.json`. Extract member names that end in `-pd` (Project Directors). These are the inbox names for SendMessage.

For each PD, derive their project directory:
```
~/.claude/projects/{project-name}/   (most PDs)
~/Projects/{project-name}/memory/     (ltv)
~/projects/{project-name}/memory/     (website-pitch, sightsee)
```

If a PD has no known project, skip them.

### Step 2 — Dispatch All PDs in Parallel

Spawn one pd-coordinator subagent per PD. Each agent:
- Sets `team_name: agency-council` (so it can send back via SendMessage)
- Sets `run_in_background: true`
- Receives only: their inbox name, project directory, and the question
- Does NOT load the full PD-BRIEFING — only reads `heartbeat.md` and the question
- Responds directly to `team-lead` via SendMessage with a one-line status

**Agent prompt for each PD:**
```
You are checking in on {project-name} as a swarm dispatch from /swarm.

Do NOT load PD-BRIEFING.md or any other briefing files.
Read only: {project-dir}/memory/heartbeat.md

Answer this question in ONE LINE (under 80 chars for status/blocker, up to 2 lines for continue):
{question}

Include your PD name at the start of your response.
Send your response via SendMessage to "team-lead".

Example response format:
examplecrm-pd: BLOCKED — Railway auth needed from the operator; workaround is local dev
```

**Subagent config:**
- `subagent_type`: Explore
- `model`: sonnet

### Step 3 — Wait for Responses

Wait for all spawned agents to complete (they send back via SendMessage).

### Step 4 — Handle Silent PDs

If a PD does not respond within the agent's reasonable run time:
1. Note: `⚠️ {pd-name} silent — respawned`
2. Re-spawn the same PD agent once
3. If still silent after respawn: note `❌ {pd-name} did not respond after respawn`

### Step 5 — Present Digest

Format the digest as:

```
## /swarm — {command-variant} — {timestamp}

### Responding ({n})
| PD | Project | Response |
|----|---------|----------|
| {pd-name} | {project} | {one-line status} |

### Silent / Respawned ({n})
| PD | Project | Status |
|----|---------|--------|
| {pd-name} | {project} | silent → respawned / no response |

### Portfolio Summary
{1-2 sentence synthesis}
```

## Dispatch Isolation

Each PD agent runs in a completely isolated context:
- Only reads `heartbeat.md` (not the full CLAUDE.md/PROJECT.md/PROJECT-BRIEFING)
- No shared state between agents
- No mutual blocking between agents
- Parent session holds zero PD context until responses arrive

## PD Standard Protocol — Also Applies Here

Even for one-shot /swarm dispatches, PDs that receive work items must:
1. **Decompose** tasks into smallest independent sub-tasks
2. **Parallelize** — spawn one subagent per sub-task simultaneously
3. **Report** every sub-task completion to "team-lead" via SendMessage immediately

If a PD receives a task during a swarm check-in (not just a status query), apply the full
PD Standard Protocol from `/pd-resume`.

## PD Directory Map

| PD | Project Directory |
|---|---|
| my-app-pd | `~/.claude/projects/my-app/` |
| example-crm-pd | `~/.claude/projects/example-crm/` |
| landing-site-pd | `~/projects/landing-site/` |

If a project directory doesn't exist, skip that PD silently.

## Anti-Patterns

- DO NOT load all PD-BRIEFING files into the parent session before spawning
- DO NOT run PDs sequentially — that defeats the purpose
- DO NOT aggregate in the parent session — let each PD speak for themselves
- DO NOT include CLAUDE.md or PROJECT.md content in the digest — heartbeat only
- DO NOT chase silent PDs more than once — note and move on

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…