About swarm
swarm is an agent skill for framing multi-worker tasks, delegating work, aggregating results, and reporting outcomes. It defines phases, worker-brief requirements, and rules for handling results and gaps.
Key features
- 01Four-phase task process
- 02Task framing and partitioning
- 03Worker model selection
- 04Parallel delegation guidance
- 05Result aggregation and gap tracking
Use cases
- 01Splitting a task across worker agents
- 02Running a declared worker race
- 03Reviewing worker results for coverage
- 04Reporting gaps after worker dropouts
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ mariusflorescu/ pstack-t3 --skill swarmAfter installing, type/swarmin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMESwarm
A skill named in bold or in backticks, or run as /<name>, is the file ../<name>/SKILL.md beside this skill's directory, and a principle named without its prefix is ../principle-<name>/SKILL.md. Read the file and follow it. Most pstack skills are user-only, so your skill tool cannot load them. Every delegate_task call follows the defaults in the Subagents section of ../poteto-mode/SKILL.md.
Start
Open a task list (your harness's task tool, or a checklist file at ~/.local/state/pstack/checklists/<repo>-<branch>.md when it has none) with one entry per phase before launching anything.
- Frame
- Fan out
- Aggregate
- Report
Phase A: Frame
- State the done predicate and the artifact or report the swarm must return.
- Choose the shape. Partition into slices, race N workers on identical briefs, or mix both. For a race or mixed shape, declare
first pass,rank all, orbest-ofbefore spawning. - Pick the worker model from the
swarm workersline in~/.config/pstack/pstack-models.md. An entry<providerInstanceId>/<model> (<effort>)becomestarget: {"providerInstanceId": ..., "model": ..., "options": {"<effort option id>": "<effort>"}}, with the effort option idorchestrator_capabilitieslists for that model. Forautoorinherit-parent, or when the file or that line is missing, omittargetso the workers run on the parent model. With no file, say so and suggest/setup-pstack. Ifdelegate_taskrejects an entry, use the closest model of the same provider thatorchestrator_capabilitieslists and say so. For a model race, name each arm's model up front. Pick each subagent's reasoning level and fast or standard speed for the job, per the Subagents section of the poteto-mode skill. - Give each worker its own writable output when it writes. When workers verify or measure commits, each brief names the exact SHAs. A measurement brief also names the method (sample count, what one sample is, order). The worker records both in its result.
Phase B: Fan out
Spawn all N workers in one turn as delegate_task children with mode: "async", a title naming the slice or race arm, and the step 4 target, left unset for auto or inherit-parent. Children share your checkout, so parallel writers there own disjoint files and run no git commands. A worker that needs its own tree or branch is a t3_thread_launch thread with workspaceStrategy: {"type":"worktree","baseRef":"<commit or branch>","branch":"<new branch>","startFromOrigin":false}, modelSelection: {"instanceId": ..., "model": ..., "options": ...} from step 4, and the brief in message. Commit first, because uncommitted edits do not reach a new worktree. One writer per worktree or branch.
When a worker must start from a non-default branch, launch it as a t3_thread_launch thread with that branch as baseRef.
Every brief stands alone. Include the goal, scope, exact slice or race arm, how to verify, and what to report. Reports use PASS, ISSUES, or BLOCKED with evidence. A worker that can prove a defect reports ISSUES and lists every issue it can prove, not only the first.
End the turn after spawning. Each child's completion notification wakes you. Use task_status only when you need a result mid-turn, and t3_thread_wait for a launched thread. If a worker drops out, proceed with N-1 and note it.
Phase C: Aggregate
Read the terminal results. Drop a result that does not record the SHAs and method its brief names, and respawn that worker once. After a second miss, record a gap. A gap does not count as a pass. For coverage, every required slice needs a result. For a race, apply the selection rule declared up front. Use first pass, rank all, or best-of. Do not paste raw worker dumps.
Phase D: Report
Return one consolidated in-chat report with the table, issue one-liners, gaps or dropouts, and the race rule when used.