Skip to content
Development
Skill

/parallel-dispatch

Dispatches concurrent agents for independent tasks. Use when 2 or more tasks can proceed without shared state or sequential dependencies, such as multiple test files that fail with different root causes or multiple subsystems that are broken independently. Applies when tasks

From plugin
shipyard
6725 skills20 agents25 commands4 hooks

Claude Code

$ npx -y skills add lgbarn/shipyard --skill parallel-dispatch --agent claude-code

SKILL.md

parallel-dispatch.SKILL.md
name: parallel-dispatch
description: Dispatches concurrent agents for independent tasks. Use when 2 or more tasks can proceed without shared state or sequential dependencies, such as multiple test files that fail with different root causes or multiple subsystems that are broken independently. Applies when tasks touch different files and do not share state.

<!-- TOKEN BUDGET: 220 lines / ~660 tokens -->

Dispatching Parallel Agents

Overview

When you have multiple unrelated failures (different test files, different subsystems, different bugs), investigating them sequentially wastes time. Each investigation is independent and can happen in parallel.

**Core principle:** Dispatch one agent per independent problem domain. Let them work concurrently.

<activation>

When to Use

  • 2+ independent tasks that can be worked on without shared state or sequential dependencies
  • 3+ test files failing with different root causes
  • Multiple subsystems broken independently
  • Each problem can be understood without context from others
  • Multiple independent plan tasks can run concurrently

When NOT to Use

  • Failures are related (fix one might fix others) -- investigate together first
  • Need to understand full system state before acting
  • Agents would interfere with each other (editing same files, using same resources)
  • Exploratory debugging where you don't know what's broken yet

Teams vs Subagents

When Claude Code Agent Teams is enabled (`SHIPYARD_TEAMS_ENABLED=true`):

  • **Teammates** are independent Claude Code instances with their own context windows. They share a task list and mailbox but NOT your conversation history.
  • **Subagents** (Task tool) are spawned within your session. They share your working directory but have fresh context.

Shipyard Dispatch Pattern

Shipyard multi-agent commands (`build`, `plan`, `map`, `ship`) use a standardized detect/ask/branch flow when dispatching agents:

1. **Detect:** Check `SHIPYARD_TEAMS_ENABLED` env var (set when `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1`) 2. **Ask:** If enabled, prompt the user via `AskUserQuestion`: "Team mode (parallel teammates)" vs "Agent mode (subagents)" 3. **Branch:** Store the choice as `dispatch_mode` (`team` or `agent`) and use it at every dispatch point 4. **Silent fallback:** If teams are not enabled, silently use agent mode with no prompt

**Team mode lifecycle (per wave):**

  • `TeamCreate` with name `shipyard-{command}-phase-{N}-wave-{W}`
  • `TaskCreate` for each unit of work + `TaskUpdate` to pre-assign owners
  • `Task(team_name, name, subagent_type)` to spawn teammates
  • Monitor via `TaskList` until all tasks reach terminal state
  • `SendMessage(shutdown_request)` + `TeamDelete` for cleanup

**Key rules:**

  • Single-agent steps (verifier, auditor, simplifier, documenter) always use Task dispatch regardless of mode
  • Team mode provides real value only for parallel steps (multiple builders per wave, multiple reviewers per wave, multiple mappers)
  • Team cleanup (shutdown + delete) is mandatory, even on error
  • Pre-assign tasks before spawning to avoid race conditions

**When to choose each mode:**

  • **Use team mode when:** Multiple agents work in parallel on independent tasks within the same wave (build plans, map focus areas). Each takes significant time (>5 min) and isolation prevents cross-contamination.
  • **Use agent mode when:** Tasks are sequential, single-agent, or need results fed back into your current context. Also preferred when coordination is tight (same files, dependent changes).
  • **When teams are NOT enabled:** This entire section has no effect — use subagents as normal.

Natural Language Triggers

  • "run in parallel", "do these at the same time", "parallel tasks", "concurrent agents"

</activation>

Decision Flow

digraph when_to_use {
    "Multiple failures?" [shape=diamond];
    "Are they independent?" [shape=diamond];
    "Single agent investigates all" [shape=box];
    "One agent per problem domain" [shape=box];
    "Can they work in parallel?" [shape=diamond];
    "Sequential agents" [shape=box];
    "Parallel dispatch" [shape=box];

    "Multiple failures?" -> "Are they independent?" [label="yes"];
    "Are they independent?" -> "Single agent investigates all" [label="no - related"];
    "Are they independent?" -> "Can they work in parallel?" [label="yes"];
    "Can they work in parallel?" -> "Parallel dispatch" [label="yes"];
    "Can they work in parallel?" -> "Sequential agents" [label="no - shared state"];
}

<instructions>

The Pattern

1. Identify Independent Domains

Group failures by what's broken:

  • File A tests: Tool approval flow
  • File B tests: Batch completion behavior
  • File C tests: Abort functionality

Each domain is independent -- fixing tool approval doesn't affect abort tests.

2. Create Focused Agent Tasks

Each agent gets:

  • **Specific scope:** One test file or subsystem
  • **Clear goal:** Make these tests pass
  • **Constraints:** Don't change other code
  • **Expected output:** Summary of what you found and fixed

3. Dispatch in Parallel

// Claude Code — all three dispatched in the same message
Task(subagent_type: "general-purpose", prompt: "Fix agent-tool-abort.test.ts failures...")
Task(subagent_type: "general-purpose", prompt: "Fix batch-completion-behavior.test.ts failures...")
Task(subagent_type: "general-purpose", prompt: "Fix tool-approval-race-conditions.test.ts failures...")
// All three run concurrently

4. Review and Integrate

When agents return:

  • Read each summary
  • Verify fixes don't conflict
  • Run full test suite
  • Integrate all changes

Agent Prompt Structure

Good agent prompts are: 1. **Focused** -- One clear problem domain 2. **Self-contained** -- All context needed to understand the problem 3. **Specific about output** -- What should the agent return?

Fix the 3 failing tests in src/agents/agent-tool-abort.test.ts:

1. "should abort tool with partial output capture" - expects 'interru
Read more
@lgbarn
Ships withshipyard

A Claude Code plugin for structured project execution. Plan work in phases, build with parallel agents and TDD, review with security audits and quality gates, and ship with confidence.

6725 skills20 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
67
Star history of lgbarn/shipyard on GitHub, a chart by star-history.com

Other skills on shipyard.

code-simplification

code-simplification

Finds and removes duplication, dead code, over-engineering, and AI-generated bloat such as verbose error handling and redundant…

@lgbarn@lgbarnInstall Skill
documentation

documentation

Generates and updates code docs, README files, API docs, and architecture documentation. Use when a feature with public…

@lgbarn@lgbarnInstall Skill
git-workflow

git-workflow

Manages branches, worktrees, atomic commits, and branch completion by merge, PR, preserve, or discard. Use when starting feature…

@lgbarn@lgbarnInstall Skill
import-spec-file

import-spec-file

Imports a handwritten spec document into Shipyard in place of brainstorming. Use when a freeform spec, requirements, or design…

@lgbarn@lgbarnInstall Skill
import-spec

import-spec

Imports a spec-kit feature spec into Shipyard in place of brainstorming. Use when a spec-kit feature directory with spec.md…

@lgbarn@lgbarnInstall Skill
infrastructure-validation

infrastructure-validat…

Validates infrastructure-as-code with tool chains and checks for common mistakes. Use when working with Terraform (.tf, .tfvars),…

@lgbarn@lgbarnInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills13d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react4d252k
@facebook@facebookInstall Skill

Questions about parallel-dispatch.

Which coding agents can use parallel-dispatch?
parallel-dispatch installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.