
Dispatch
Orchestrate how work gets routed across agent steps or workers so solo builders do not manually fan out parallel implementation tasks.
Overview
dispatch is an agent skill most often used in Build agent-tooling (also Ship testing, Operate iterate) that structures task routing and handoffs across multi-step agent workflows.
Install
npx skills add https://github.com/bassimeledath/dispatch --skill dispatchWhat is this skill?
- Workflow-oriented skill for routing tasks through a defined dispatch graph rather than one-shot chat
- SVG-forward documentation suggests visual pipeline/architecture for stages, keys, and grouped nodes
- Fits indie multi-agent setups where one coordinator assigns subtasks to specialized agents
- Pairs with procedural agent skills when you need explicit handoffs instead of ad-hoc prompts
- Intended for builders automating repeated build-and-ship loops across repositories or services
Adoption & trust: 694 installs on skills.sh; 401 GitHub stars; 0/3 security scanners passed (skills.sh audits).
What problem does it solve?
You run several agent roles in one repo but work stalls because nobody owns routing the next task after a step finishes.
Who is it for?
Advanced solo builders experimenting with multi-agent orchestration, parallel implementation lanes, or visual pipeline discipline.
Skip if: Simple single-agent features with an approved spec already executing via one writing-plans stack, or teams wanting a hosted job queue product instead of an agent skill.
When should I use this skill?
You need structured multi-agent or multi-step task routing rather than a single monolithic agent prompt—for example when parallelizing implementation or review lanes.
What do I get? / Deliverables
You adopt a dispatch workflow graph so the coordinator agent assigns, tracks, and hands off subtasks instead of free-form chat delegation.
- Documented dispatch graph or stage routing the coordinator agent follows
- Assigned subtasks with explicit handoffs between agent roles
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Dispatch-style orchestration is configured while you are building multi-agent or multi-step automation—the canonical shelf is agent-tooling even when you reuse it during ship review loops. Named dispatch skills typically define routing graphs and handoffs between agent roles, which belongs with other agent runtime and workflow tooling.
Where it fits
Define which agent implements API changes versus frontend after a spec split.
Route connector setup and validation steps to different tool-enabled agents in one session.
Dispatch test matrix shards to worker agents while a coordinator aggregates failures.
Re-dispatch hotfix tasks from monitoring triage without restarting the whole planning thread.
How it compares
Agent workflow orchestration skill—not a CI runner, not an MCP task server, and not a language-server setup guide.
Common Questions / FAQ
Who is dispatch for?
Solo and indie builders running multiple agent personas or parallel workstreams who need explicit routing instead of improvised prompt chaining.
When should I use dispatch?
During Build agent-tooling setup for multi-agent repos; during Ship when fanning out tests or reviews; during Operate when re-dispatching fix tasks after incidents.
Is dispatch safe to install?
Orchestration skills may encourage shell or repo-wide changes—review the Security Audits panel on this Prism page and read upstream SKILL.md before granting broad permissions.
SKILL.md
READMESKILL.md - Dispatch
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1182.41 316" width="1182.41" height="316" style="--bg:#0d1117;--fg:#e6edf3;--line:#58a6ff;--accent:#58a6ff;--muted:#8b949e;--surface:#161b22;--border:#30363d;background:var(--bg)"> <style> @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); text { font-family: 'Inter', system-ui, sans-serif; } svg { /* Derived from --bg and --fg (overridable via --line, --accent, etc.) */ --_text: var(--fg); --_text-sec: var(--muted, color-mix(in srgb, var(--fg) 60%, var(--bg))); --_text-muted: var(--muted, color-mix(in srgb, var(--fg) 40%, var(--bg))); --_text-faint: color-mix(in srgb, var(--fg) 25%, var(--bg)); --_line: var(--line, color-mix(in srgb, var(--fg) 30%, var(--bg))); --_arrow: var(--accent, color-mix(in srgb, var(--fg) 50%, var(--bg))); --_node-fill: var(--surface, color-mix(in srgb, var(--fg) 3%, var(--bg))); --_node-stroke: var(--border, color-mix(in srgb, var(--fg) 20%, var(--bg))); --_group-fill: var(--bg); --_group-hdr: color-mix(in srgb, var(--fg) 5%, var(--bg)); --_inner-stroke: color-mix(in srgb, var(--fg) 12%, var(--bg)); --_key-badge: color-mix(in srgb, var(--fg) 10%, var(--bg)); } </style> <defs> <marker id="arrowhead" markerWidth="8" markerHeight="4.8" refX="8" refY="2.4" orient="auto"> <polygon points="0 0, 8 2.4, 0 4.8" fill="var(--_arrow)" /> </marker> <marker id="arrowhead-start" markerWidth="8" markerHeight="4.8" refX="0" refY="2.4" orient="auto-start-reverse"> <polygon points="8 0, 0 2.4, 8 4.8" fill="var(--_arrow)" /> </marker> </defs> <rect x="768.8199999999999" y="40" width="114.89999999999998" height="236" rx="0" ry="0" fill="var(--_group-fill)" stroke="var(--_node-stroke)" stroke-width="1" /> <rect x="768.8199999999999" y="40" width="114.89999999999998" height="28" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" /> <text x="780.8199999999999" y="54" dy="0.35em" font-size="12" font-weight="600" fill="var(--_text-sec)">Background Workers</text> <polyline points="100,176 290.92,176" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="387.27000000000004,176 572.47,176" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="668.8199999999999,176 688.82,176 688.82,116 788.82,116" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="668.8199999999999,176 796.2700000000001,176" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="668.8199999999999,176 688.82,176 688.82,236 788.82,236" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="863.7200000000001,116 1101.385,116 1101.385,158" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="856.2700000000001,176 1060.36,176" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <polyline points="863.7200000000001,236 1101.385,236 1101.385,194" fill="none" stroke="var(--_line)" stroke-width="0.75" marker-end="url(#arrowhead)" /> <rect x="156" y="162.5" width="78.92" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" /> <text x="195.46" y="176" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">one command</text> <rect x="443.27000000000004" y="162.5" width="73.2" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" /> <text x="479.87000000000006" y="176" text-anchor="middle" dy="0.35em" font-size="11" font-weight="400" fill="var(--_text-muted)">plans task</text> <rect x="919.72" y="102.5" width="84.64" height="27" rx="4" ry="4" fill="var(--bg)" stroke="var(