From dispatch-kit
Use when you want to hand work to autonomous Claude workers instead of doing it inline — files an issue and spawns a worker in an isolated git worktree, then tracks and reaps it. The runtime tail of the SDD pipeline. Commands - /dispatch /adopt /status /reap /pool.
How this skill is triggered — by the user, by Claude, or both
Slash command
/dispatch-kit:dispatch-kitThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn "here are issues" into "here are running workers." From inside a session you
Turn "here are issues" into "here are running workers." From inside a session you
file an issue and dispatch a separate, durable Claude Code worker that
implements it in an isolated git worktree, opens one PR, and stops. You review and
merge. This is the execution-dispatch layer the SDD pipeline stops short of —
to-prd/to-issues produce the spec; dispatch-kit runs it.
$ISSUES_REPO (the current repo by default).../<repo>-wt-<id>, parked on
wt/<id>. All slots share one .git object store, so a single fetch updates
origin/<default> for every slot.task/<N> off the
default branch, renders the worker prompt, and spawns a worker via the configured
dispatcher./reap
to park the freed slot.It's opt-in via the commands; normal direct work in the repo is unaffected.
| Want to… | Use |
|---|---|
| Start a task from a one-liner | /dispatch "<text>" |
| Start a worker on an existing issue | /adopt <issue#> |
| See pool + PRs + issues | /status |
| Free slots for closed issues | /reap |
| Add/remove slots | /pool list | add <N> | remove <id> |
# Optional config (else sensible defaults; ISSUES_REPO falls back to the gh origin):
mkdir -p .claude/brain && cp "${CLAUDE_PLUGIN_ROOT}/templates/config.sh.example" .claude/brain/config.sh
"${CLAUDE_PLUGIN_ROOT}/scripts/init-pool.sh" 3 # create 3 worktree slots
"${CLAUDE_PLUGIN_ROOT}/scripts/status.sh" # inspect
state/ under .claude/brain is auto-gitignored; config.sh is committable.
DISPATCHER (env or config.sh) selects what spawns the durable worker workspace:
cmux (default) — a watchable cmux workspace per worker.tmux — a detached tmux session (tmux attach -t <name>). Portable fallback.plain — a backgrounded claude via nohup, PID + log in the slot's .claude/.Each is a small file under scripts/dispatchers/ defining dispatcher_require,
dispatcher_spawn, and dispatcher_close — add your own backend by dropping in
another file.
WORKER_EFFORT (default max) encodes a real CLI trade-off:
max — top raw reasoning, but multi-agent Workflow orchestration is OFF (the
CLI gates orchestration on resolved-effort xhigh, and --effort wins the resolver).ultracode — expands to --effort xhigh --settings '{"ultracode":true}':
orchestration ON, slightly lower raw effort.--effort <value>..claude/brain/config.sh, all env-overridable)ISSUES_REPO, WT_PREFIX, WT_BASE, WORKER_MODEL, WORKER_EFFORT,
GREEN_LIGHT_CMD, DISPATCHER. Use : "${VAR:=value}" form so env still wins.
to-prd → to-issues; for trivial
work, draft inline from templates/issue.md.scripts/dispatch.sh --create-issue --title "<t>" --body-file <f> (or --adopt <issue#>).If dispatch reports "no idle slots", offer /pool add <N>.
state/pool.json (gitignored) — slot allocation./reap reconciles the two by closing-issue.Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub ravnhq/sasso-hq --plugin dispatch-kit