plan-dispatcher
Use when executing or resuming an agreed dependency graph with one main dispatcher and parallel native workers: claim ready steps, preserve launch state…
Skill by whichguy
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/whichguy-plan-dispatcher
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
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
- Runs as
- Node.js package
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/plan-dispatcher
What's inside
- Skill name
plan-dispatcher- Description
- Use when executing or resuming an agreed dependency graph with one main dispatcher and parallel native workers: claim ready steps, preserve launch state, collect result evidence, verify outcomes, and identify successors. Planning belongs to Backchain or the caller; this skill executes the plan.
- License
- MIT
- Instructions
- 425 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Files (6)
- SKILL.md
- host-matrix.md · references/
- protocol.md · references/
- dispatch.js · scripts/
- planning-context.js · scripts/
- state.js · scripts/
SKILL.md (first lines)
# Plan dispatcher
The main conversation is the sole dispatcher. Native workers perform bounded
tasks and report evidence; only the dispatcher accepts results and schedules
successors. Use the available ask-agent skill for fresh native contexts. An
explicitly serial caller may instead execute one task in its current main context
through the durable `main-context` identity described below; the caller enforces
capacity one. If neither path is available, report that boundary; do not
substitute a model subprocess.
Without the exact compact profile marker, every Ask-Agent delegation selects a
compatible package before execution. Bind
its selected absolute `SKILL.md` and helper, run `capabilities --skill-card ABS`,
and accept only its declared `shiploop-chain-ask-agent-managed-worktree/v1`
schema with the full current capability set: `helper-managed-worktree`,
`prepared-inspection`, `returned-commit-delivery`, `fingerprint-bound-close`
and `ignored-output-report`. The capability set is the gate, not a version
number; do not infer compatibility from a version, frontmatter or prose. Then use the existing `identity --skill-card ABS` binding and
preserve that selected-card/helper identity. For every Git task, explicitly select
Ask Agent's helper-managed route (it is not Ask Agent's default) and use that
selected managed-worktree helper before freezing dispatcher context. Non-Git delegation
uses the same compatible selected package but retains its generic context without
managed workspace preparation. The dispatcher is Ask-Agent's parent for Git
preparation, integration ordering and acceptance; it may delegate integration
execution.
The exact graph marker `source.agent_harness` equal to
`{"schema":"agent-harness/v1","ask_agent_interface":"compact"}` selects the
compact standalone Ask-Agent task interface for this new Dispatcher run. The
coordinator owns the run from `init`; the plan initiator is not a second owner.
This profile does not take over ShipLoop callbacks or reuse an existing
ShipLoop run. For each claim, prepare one compact task packet with the selected
Ask-Agent task package,
retain its path and both hashes, and use the emitted prompt and workspace
unchanged. The worker runs the packet-pinned `worker-start` and `worker-finish`
commands. After native collection, the coordinator runs the retained
`verify-return` command, then writes and publishes the Dispatcher report. Do not
repeat task preparation, run the legacy capability/workspace-helper preparation
path, or ask the worker to publish the Dispatcher report. Dispatcher actions,
ownership, verification, settlement, and dependency release remain authoritative.
Graphs without the exact marker keep the full-capability path described above.
For read-only assignments, start with `context.read_only: true` and
`context.write_scope: []`; otherwise omit `read_only` and provide a nonempty
write scope. Active attempts may share a workspace only when both explicitly
declare read-only and their canonical workspace paths are identical. Resource
collisions remain reserved.
Every run-scoped helper response includes an `instruction`. A `next` response's
`actions` are the graph-navigation authority. For dispatcher-scoped responses,
the dispatcher executes that prompt and the returned exact `next_argv`; do not
derive successors, recovery work, or a parallel schedule from the graph or this
document. In the default profile, the task-facing `report` response ends the
bounded task phase: the task returns it, including its `next_argv`, to the
dispatcher. In the exact compact profile, the coordinator publishes the report
after native collection and follows that response's `next_argv`. This skill
explains the response fields and fallbacks, but it is not another scheduler.
For a fresh native `launch` in the default profile, the parent assembles the complete returned worker
packet unchanged beside a compact **Current learnings** block with a Markdown
heading and short labeled bullets from the current conversation. State explicitly
when no learnings are relevant. Keep essential
facts and rationale inline, with evidence locators for detail; the block cannot
broaden the frozen task contract. Retain the effective assignment and launch
identity in the existing parent record or retained handoff, durably outside the
worker workspace, before recording the confirmed native handle. Parent launch,
status, collection, and waiting directions stay in parent
responses. The already-started worker receives its bounded task role, workspace,
scope-authorized facilities, checks, handoff, and report-return obligations.
For user-facing status, use the returned `progress` rather than reconstructing
task categories from conversation history. `next` computes it from the current
durable state and observed receipts; initialization, claim, start, launch
confirmation, settlement, retry and takeover also return it. The parent refreshes
it through the existing `next_argv` at the normal continuation boundary, after
executing the current instruction. A worker returns its exact report response
to the parent; it does not run the refresh itself.
`progress` accounts for every required task exactly once in `completed`, `active`,
`awaiting_verification`, `pending`, `blocked`, or `failed`, with a task description,
state, reason and unmet dependencies. `counts.remaining` includes all five
non-completed groups. `pending` includes tasks waiting on dependencies as well as
dependency-ready work; its `dependency_ready` flag never authorizes a launch.
`active` includes claimed and unconfirmed launching work, so read the row's state
instead of assuming the worker is running. A receipt remains awaiting verification
until settlement accepts it. `actions` still determines what the parent may do
next. These internal categories are facts to explain, not a required display
template. See [the status projection contract](references/protocol.md#categorical-progress)
for classification and observation limits.
At every native-agent boundary, status is mandatory. Write meaningful status
changes in clear, thoughtfully formatted Markdown, choosing the structure and
detail that fit the facts instead of following a fixed template or mechanically
dumping packet fields. Explain what happened, what has been accomplished, and
the immediate next work or remaining condition; emphasize significant findings,
blockers, or required user action. Ground the update in returned facts and
observed evidence. For each affected task, include a natural account of its
assignment, accepted or completed work, and any active, pending, or blocked
condition that determines the next work; choose useful wording and layout rather
than mechanically copying field names. Preserve pending dependencies and any gap between a worker result and
parent acceptance. Do not invent unreported work, future steps, percentages, or
an ETA.
Immediately before every native-agent call that starts or continues work,
including an initial launch, retry, or follow-up turn, identify the assignment and
say that it is launch intent until the native tool confirms it. On every native
return, including failed, blocked, or cancelled work, promptly describe the
reported outcome and state that it is not acceptance. A worker report remains a
claim about task work and checks until the parent independently accepts it; only
then may task work be described as accepted or completed. Describe whole-run
completion only when the script reports it. The parent dispatcher incorporates
worker results without duplicate overall updates, keeps protocol IDs and callbacks
internal unless they explain a problem, and preserves the required exact
launch/return notices and handoffs. Cadence, a native UI, or notification does not
replace either boundary update. Reporting does not change control flow: follow the
current authorized action or returned stop/handoff. A worker report or handoff
returns control to the parent; it does not end the run. If a dispatcher-scoped
response stops, describe prerequisites for future work without starting a wait or
retry.
Bind `scripts/dispatch.js` to the absolute directory containing this loadedFrom whichguy/skill-craft, MIT.
More from whichguy/skill-craft
- 0.592score
improve
whichguy
Use when a repository candidate needs a deliberate review-and-improvement loop: use recent Git history, make warranted changes, run meaningful checks, and…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rubric-eval
whichguy
Evaluate a prompt change against a rubric over a scenario catalog: run arms on a subject model (Grok by default), grade blind with one evidence-first judge…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
review-coverage
whichguy
Add a post-ship improve-to-exhaustion directive to a plan, or run that directive after implementation.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
adversarial-review
whichguy
Have an independent model try to break a proposed change and return its findings as testable hypotheses, each with the smallest experiment that would refute it.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
in-parallel
whichguy
Use for "in parallel" or when one goal should be divided among independent native agents and returned as one verified aggregate.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
ask-agent
whichguy
A delegation skill, not an agent type.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
shiploop-e2e-audit
whichguy
Run the ShipLoop test harness and audit its retained graph, review, test, product and incremental-change evidence.
SkillAFreshness: A★ 1Claude Code +9 - 0.588score
backchain
whichguy
Use when an implementation task needs a dependency-aware plan before coding: backward planner / backchain / precondition-first planning, dependency DAGs…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
architect
whichguy
Design system architecture and make technology decisions.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
improve-agent
whichguy
Use when Improve should run in a fresh native agent instead of this conversation: start one agent that runs /improve in its own context, keep useful parent…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
plan-test
whichguy
Generate comprehensive tests for code.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
improve-system-prompt
whichguy
Benchmark and compare system prompt variants (V2/V2a/V2b/V2c) for Sheets Chat by running test scenarios through the real GAS-side ClaudeConversation pipeline.
SkillAFreshness: A★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 12, 2026 (18 days ago)
- Last release
- Aug 15, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/whichguy/skill-craft
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from whichguy
- 0.592score
review-coverage
whichguy
Add a post-ship improve-to-exhaustion directive to a plan, or run that directive after implementation.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
rubric-eval
whichguy
Evaluate a prompt change against a rubric over a scenario catalog: run arms on a subject model (Grok by default), grade blind with one evidence-first judge…
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
adversarial-review
whichguy
Have an independent model try to break a proposed change and return its findings as testable hypotheses, each with the smallest experiment that would refute it.
SkillAFreshness: A★ 1Claude Code +9 - 0.592score
improve
whichguy
Use when a repository candidate needs a deliberate review-and-improvement loop: use recent Git history, make warranted changes, run meaningful checks, and…
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
ask-agent
whichguy
A delegation skill, not an agent type.
SkillAFreshness: A★ 1Claude Code +9 - 0.589score
in-parallel
whichguy
Use for "in parallel" or when one goal should be divided among independent native agents and returned as one verified aggregate.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
plan-dispatcher skill. Agent Mart. https://agentmart.dev/skills/whichguy-plan-dispatcher (last updated 2026-10-24)