code-simplification
Use after implementing features, before claiming a phase is complete, when reviewing AI-generated code, or when code feels overly complex. Also use when you…
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Also use when multiple test files fail with different root causes, multiple subsystems are broken independently, or you want agents to work concurrently on separate
$ npx -y skills add lgbarn/shipyard --skill parallel-dispatch --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/parallel-dispatchContext preview
The summary Claude sees to decide when to auto-load this skill.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Also use when multiple test files fail with different root causes, multiple subsystems are broken independently, or you want agents to work concurrently on separate
name: parallel-dispatch description: Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies. Also use when multiple test files fail with different root causes, multiple subsystems are broken independently, or you want agents to work concurrently on separate problem domains. If tasks touch different files and don't share state, this skill applies.
<!-- TOKEN BUDGET: 220 lines / ~660 tokens -->
<activation>
When Claude Code Agent Teams is enabled (`SHIPYARD_TEAMS_ENABLED=true`):
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):**
**Key rules:**
**When to choose each mode:**
</activation>
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.
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>
Group failures by what's broken:
Each domain is independent -- fixing tool approval doesn't affect abort tests.
Each agent gets:
// 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
When agents return:
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
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.
Repo: lgbarn/shipyard
Use after implementing features, before claiming a phase is complete, when reviewing AI-generated code, or when code feels overly complex. Also use when you…
Use when shipping features with public interfaces that lack docs, generating documentation, updating README files, writing API docs, creating architecture…
Use when starting feature work that needs a branch, creating worktrees for isolation, making atomic commits during development, or completing a development…
Import a handwritten spec document into Shipyard, replacing brainstorming. Use when a freeform spec, requirements, or design document exists.
Import a spec-kit feature spec into Shipyard, replacing brainstorming. Use when a spec-kit feature directory exists with spec.md.
Use when working with Terraform (.tf, .tfvars), Ansible (playbooks, roles, inventory), Docker (Dockerfile, docker-compose.yml), Kubernetes (manifests, Helm…