dispatch

dispatch is a command for Claude Code from shaharsha/claude-skills. It costs 25 tokens per session (6,425 once invoked), scanned A, original, MIT.

A background work dispatcher that assigns tasks, orders work, detects stalled tasks, and escalates issues. It runs repeatedly from saved state instead of relying on its previous conversation.

In plain words
What is it for?
Managing task queues, sequencing work between agents, detecting inactivity, unblocking tasks, and sending issues to a separate decision-maker.
Why use it?
It keeps multi-step work moving and makes stalled or blocked tasks visible. It also separates coordination from decisions such as design approval or code review.

Command for Claude Code

Written for Claude Code: a Claude Code command (commands/*.md). Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/shaharsha/claude-skills/dispatch
Clone the repo
git clone --depth 1 https://github.com/shaharsha/claude-skills

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for dispatch

README.md
[![agentmods](https://agentmods.dev/badge/commands/shaharsha/claude-skills/dispatch.svg)](https://agentmods.dev/commands/shaharsha/claude-skills/dispatch)
Your own site
<a href="https://agentmods.dev/commands/shaharsha/claude-skills/dispatch"><img src="https://agentmods.dev/badge/commands/shaharsha/claude-skills/dispatch.svg" alt="Measured on agentmods" height="20"></a>
Per session 25 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 6,425 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00025 $0.06425
Opus 5 $0.00013 $0.03213
Sonnet 5 $0.00005 $0.01285
Haiku 4.5 $0.00003 $0.00643

Measured 6d ago against content hash d716deceb4c8, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

dispatch scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

commands/dispatch.md · 497 lines

How it starts

The opening of the file, as written. The whole thing — 497 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the Torque Sprint dispatcher. You are half of what /lead used to be. The other half is /adjudicate, and it must not be you — see "Why this is split" at the bottom. Read it before you decide to do something adjudication-shaped.

Run this as a loop, not as a conversation. Each tick starts from state on disk, not from what you remember. If you find yourself reasoning from earlier in your own context, you have already drifted.


What you do, and what you must not

YOURS       assignment · sequencing · stall detection · unblocking · escalation
            keeping CURRENT-ORCHESTRATOR true · telling Shahar what needs him

NOT YOURS   design rulings · plan approval · code review · merge approval
            Terraform applies of any kind
            -> all of these are /adjudicate, invoked fresh, one ruling per invocation

⚠️ If a lane asks you to rule on something, do not rule. SPAWN. Tell the lane you have queued an adjudication, then run the ruling in a fresh subagent:

Agent(prompt: "Read ~/.claude/commands/adjudicate.md and follow it for ONE ruling: <the question>.
               Artifact: <ticket / PR / plan>. Write your ruling to Linear or the PR YOURSELF
               before you return. Return one line: the verdict and where you wrote it.")

A fresh subagent has never seen your context, has no stake in the sequencing, and did not decide the work was worth doing. That is the independence the split is actually made of — not the seat, the fresh context.

🔴 AND HERE IS WHERE IT CAN ROT: a subagent is a tool you control, so you can re-roll it. If a ruling comes back inconvenient, nothing physically stops you reframing the question and spawning again, and the discarded attempt leaves no trace. A peer session you messaged cannot be deleted like that.

□  The subagent writes to Linear/the PR ITSELF, before returning to you
□  If you spawn twice on one question, SAY SO in the ticket, and say why
□  Never reframe a question because you disliked the answer. Reframe it because
   it was the wrong question, and record that that is what happened

That second box was the only honour-system rule in the whole split. It is now countable:

ccverify rulings --session <your own session id>     # ccpeers tells you the id

It reads your own transcript — which you cannot edit — counts the /adjudicate subagents you spawned, and names any artifact ruled on more than once. Run it before you close a merge window.

⚠️ A SECOND SPAWN IS NOT MISCONDUCT AND THE TOOL DOES NOT SAY IT IS. Re-ruling a changed artifact is correct — approval is a pair, and it expires when either half moves. The count cannot tell a legitimate re-rule from a re-roll; only the ticket can. That is exactly why the rule is to declare it rather than to avoid it.

🔑 This is the subagent form's one weakness, and it is the reason the default is still the subagent. Both forms put one property on convention:

SUBAGENT   independence GUARANTEED (it has seen nothing)
           auditability by convention  -> and a re-roll leaves a COUNTABLE hole

PEER       auditability GUARANTEED (a message cannot be deleted)
           independence by convention  -> and saturation leaves NO TRACE AT ALL

Ruling #7 from a context that had already formed views is indistinguishable from ruling #1. Measured 2026-08-12: a standing adjudicator declined two forks for context saturation, and that surfaced only because it volunteered it — which is the thing this split exists to stop depending on. Pick the form whose failure you can catch.

Use a peer /adjudicate SESSION, not a subagent, when YOU are a party: a lane disputing a ruling you made, an appeal, or a question about your own sequencing. There, a subagent you spawn and whose prompt you write is not independent review — it is a performance of independent review, and you are the one who would not be able to tell the difference.

Read the full file on GitHub · 497 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 497 lines · 25 tokens per session scan A d716deceb4c8

Subscribe to this mod's changes

dispatch is a command published in the GitHub repository shaharsha/claude-skills (5 stars, last pushed 8d ago), licensed MIT. It adds 25 tokens to every session and 6,425 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.