# Swarm (Ephemeral Worker View)

> **Note**: "Swarm" is an ephemeral concept, not a persistent entity.
> For tracking work, see [Convoys](convoy.md).

## What is a Swarm?

A **swarm** is simply "the workers currently assigned to a convoy's issues."
It has no separate ID and no persistent state - it's just a view of active workers.

| Concept | Persistent? | ID | Description |
|---------|-------------|-----|-------------|
| **Convoy** | Yes | hq-* | The tracking unit. What you create and track. |
| **Swarm** | No | None | The workers. Ephemeral view of who's working. |

## The Relationship

```
Convoy hq-abc ─────────tracks───────────► Issues
                                            │
                                            │ assigned to
                                            ▼
                                         Polecats
                                            │
                                    ────────┴────────
                                    "the swarm"
                                    (ephemeral)
```

When you say "kick off a swarm," you're really:
1. Creating a convoy (persistent tracking)
2. Assigning polecats to the convoy's issues
3. The swarm = those polecats while they work

When the work completes, the convoy lands and the swarm dissolves.

## Viewing the Swarm

The swarm appears in convoy status:

```bash
gt convoy status hq-abc
```

```
Convoy: hq-abc (Deploy v2.0)
════════════════════════════

Progress: 2/3 complete

Issues
  ✓ gt-xyz: Update API              closed
  → bd-ghi: Update docs             in_progress  @beads/amber
  ○ gt-jkl: Final review            open

Workers (the swarm)          ← this is the swarm
  beads/amber     bd-ghi     running 12m
```

## Historical Note

Earlier Gas Town development used "swarm" as if it were a persistent entity
with its own lifecycle. The `gt swarm` commands were built on this model.

The correct model is:
- **Convoy** = the persistent tracking unit (what `gt swarm` was trying to be)
- **Swarm** = ephemeral workers (no separate tracking needed)

The `gt swarm` command is being deprecated in favor of `gt convoy`.

## See Also

- [Convoys](convoy.md) - The persistent tracking unit
- [Propulsion Principle](propulsion-principle.md) - Worker execution model
