Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/igosuki-dispatch
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/dispatch
Tools it pre-approves 7
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Bash(${CLAUDE_PLUGIN_ROOT}/scripts/settings.sh*),Bash(${CLAUDE_PLUGIN_ROOT}/scripts/workers.pyBash(${CLAUDE_PLUGIN_ROOT}/scripts/next-tasks.pyBash(${CLAUDE_PLUGIN_ROOT}/scripts/supervise.pyBash(bd*)
What's inside
- Skill name
dispatch- Description
- Supervise the implementation of beads tasks. Confirms what's about to happen, then starts a supervisor script that dispatches ready tasks in work order, within the parallel limit, to worker sessions that each implement, merge and close one task in its own worktree; this session is woken only when a person is needed or new work appears. Takes any mix of task, parent task and epic ids, or all dispatchable work when given none. Use when tasks from sdlc:split are ready to implement, or after a restart to pick up dispatched work.
- License
- MIT
- Allowed tools
- Bash(${CLAUDE_PLUGIN_ROOT}/scripts/settings.sh, *),, Bash(${CLAUDE_PLUGIN_ROOT}/scripts/workers.py, *),, Bash(${CLAUDE_PLUGIN_ROOT}/scripts/next-tasks.py, *),, Bash(${CLAUDE_PLUGIN_ROOT}/scripts/supervise.py, *),, Bash(bd, *)
- Instructions
- 49 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (1)
- SKILL.md
SKILL.md (first lines)
# Dispatch
Arguments: $ARGUMENTS
Settings:
!`${CLAUDE_PLUGIN_ROOT}/scripts/settings.sh`
Supervisor:
!`${CLAUDE_PLUGIN_ROOT}/scripts/supervise.py --running 2>&1 || true`
Workers:
!`${CLAUDE_PLUGIN_ROOT}/scripts/workers.py 2>&1 || true`
Dispatch queue:
!`${CLAUDE_PLUGIN_ROOT}/scripts/next-tasks.py 2>&1 || true`
Each task is carried by a worker: a Claude session in the task's own worktree that implements the task, merges it and closes it. The supervisor is the script `${CLAUDE_PLUGIN_ROOT}/scripts/supervise.py`, run by this session in the background; you don't implement, merge or follow workers yourself.
The arguments are any mix of task, parent task and epic ids, in any order, or none for all dispatchable work. Each named id becomes a `--under <id>` for the supervisor: its scope is those beads and their descendants. When the arguments give a parallel limit, it's the one this session passes to `supervise.py` as `--parallel`.
## 1. Check what's named
For each named id, `bd show <id> --json` and look at its `dependencies` where `dependency_type` is `blocks` and `status` isn't `closed`. If there are any, the bead isn't ready: tell the user what it's waiting for (their ids and titles). Whether to add those blockers to the dispatch is a question for the one AskUserQuestion call in step 2, not a call of its own — asking twice in a row parks the second question. If they agree, add the blockers' ids to the set of ids being dispatched.
## 2. Confirm
The workers and dispatch queue above are what's about to happen. Confirm with one AskUserQuestion call, carrying step 1's blocker question too if there was one: the tasks that will start, the parallel limit, the integration mode and the target branch (from the settings above). In epic-merge and epic-pr modes, say that the first task dispatched creates the epic branch and an integration task that waits for the rest of the epic. If the Supervisor line above shows one running, say that dispatching replaces it — it may belong to another session. Skip this if `sdlc:build` invoked this command after its own plan already covered dispatching — it doesn't need a second approval. If AskUserQuestion isn't available (headless session), go ahead without asking. Never ask in plain text and stop.
## 3. Start the supervisor
Run `${CLAUDE_PLUGIN_ROOT}/scripts/supervise.py`, with `--under <id>` for each id from the arguments and step 1, `--parallel N` if the arguments gave one, and `--generation <unix timestamp of now>`, using the Bash tool with `run_in_background: true`, so this session stays free while it runs. Remember this full argument list and this generation for the rest of the session. Say nothing more than that it's running.
## 4. Act on what it exits with
`supervise.py` runs until a person is needed, new work appears, or a supervisor with a higher generation already holds the lock, then prints lines and exits. When that background command finishes, read its output.
**`supervisor <generation> already running`, and nothing else:** another session's supervisor already covers this work. Say so in one sentence and stop — don't start it again.
**Anything else:** start `supervise.py` again first, with the same arguments and the same generation remembered in step 3, so dispatching goes on while you deal with what follows. Then go through each line:
- `blocked <task> awaiting-review: <gate>` — suggest `/sdlc:review <task>`.
- `blocked <task> stopped: <comment>` or `blocked <task> failed: <comment>` — give the comment, suggest `/sdlc:recover <task>`.
- `blocked <task> pr-opened: <url>` — give the URL, for a person to review and merge.
- `blocked <task> not started: <reason>` — relay the reason.
- `new-work <id> <id>...` — ask with AskUserQuestion whether to dispatch those too. If they agree, start `supervise.py` again with those ids added as `--under` and a fresh, higher generation, and remember that argument list and generation in place of the old ones for the rest of the session. If AskUserQuestion isn't available (headless session), just relay the ids. Work labelled `auto` is started without asking and never appears here.
- `taken over` — needs no reply; the restart above already covers it.
**A non-zero exit with no lines:** relay stderr. Don't start it again.From Igosuki/agentic-sdlc, MIT.
More from Igosuki/agentic-sdlc
- 0.570score
setup
Igosuki
Check this machine for what sdlc needs (Claude Code, beads, worktrunk, git, jq, python3 and a few system tools), offer to install what is missing, and…
SkillAFreshness: AClaude Code +9 - 0.570score
split
Igosuki
Split work into a beads task graph, with acceptance criteria, scope and a verify command on each task.
SkillAFreshness: AClaude Code +9 - 0.567score
decompose
Igosuki
Split a plan into parallel agent tasks and dispatch them.
SkillAFreshness: AClaude Code +9 - 0.565score
review
Igosuki
Review a task, parent task, epic or pull request against its acceptance criteria.
SkillAFreshness: AClaude Code +9 - 0.565score
create-task
Igosuki
Create one beads task that sdlc:dispatch can run, with acceptance criteria, scope, a verify command that exercises the behaviour and complexity, and…
SkillAFreshness: AClaude Code +9 - 0.565score
design
Igosuki
State a design for a product or feature request in the session, removing ambiguity and fixing the contracts that separate pieces of work must agree on…
SkillAFreshness: AClaude Code +9 - 0.529score
init
Igosuki
Prepare the current project for sdlc.
SkillBFreshness: BClaude Code +9 - 0.524score
prior-art
Igosuki
Find what already settles part of a topic, in the docs sources the project configured, the repository, its beads, and (with the user's permission) other…
SkillBFreshness: BClaude Code +9 - 0.524score
build
Igosuki
Take a request from idea to integrated code: design in plan mode for the user's approval, then apply the doc edits and commit them if anything changed, split…
SkillBFreshness: BClaude Code +9 - 0.524score
stop
Igosuki
Stop running workers — a task's own, every worker under an epic, or every running worker when given neither.
SkillBFreshness: BClaude Code +9 - 0.524score
hooks
Igosuki
Read the project (manifests, lock files, CI, task runners, git hook managers) and suggest optional wt hooks for what sdlc triggers, such as installing…
SkillBFreshness: BClaude Code +9 - 0.521score
status
Igosuki
Show dispatched work at a glance, read-only.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 6, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/Igosuki/agentic-sdlc
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Igosuki
- 0.570score
split
Igosuki
Split work into a beads task graph, with acceptance criteria, scope and a verify command on each task.
SkillAFreshness: AClaude Code +9 - 0.570score
setup
Igosuki
Check this machine for what sdlc needs (Claude Code, beads, worktrunk, git, jq, python3 and a few system tools), offer to install what is missing, and…
SkillAFreshness: AClaude Code +9 - 0.567score
decompose
Igosuki
Split a plan into parallel agent tasks and dispatch them.
SkillAFreshness: AClaude Code +9 - 0.565score
review
Igosuki
Review a task, parent task, epic or pull request against its acceptance criteria.
SkillAFreshness: AClaude Code +9 - 0.565score
design
Igosuki
State a design for a product or feature request in the session, removing ambiguity and fixing the contracts that separate pieces of work must agree on…
SkillAFreshness: AClaude Code +9 - 0.565score
create-task
Igosuki
Create one beads task that sdlc:dispatch can run, with acceptance criteria, scope, a verify command that exercises the behaviour and complexity, and…
SkillAFreshness: AClaude Code +9
Cite this page
dispatch skill. Agent Mart. https://agentmart.dev/skills/igosuki-dispatch (last updated 2026-10-24)