Help us improve
Share bugs, ideas, or general feedback.
From coliseum-from-grain
Dispatches composed assignment envelopes to domain-expert subagents in parallel as Phase 3 of coliseum orchestration, with a no-pingpong gate check before dispatch.
npx claudepluginhub a-organvm/a-i--skills --plugin coliseum-from-grainHow this skill is triggered — by the user, by Claude, or both
Slash command
/coliseum-from-grain:coliseum-dispatch <path to phase-2-assignments.md><path to phase-2-assignments.md>This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are firing the assignment envelopes at their target subagents — in parallel, in a single message, with one Agent tool call per envelope. This is where the force-multiplication happens. Sequential dispatch is a failure mode here.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Analyzes provided content for SEO quality, E-E-A-T signals, readability, keywords, and structure. Scores and recommends improvements based on best practices.
Share bugs, ideas, or general feedback.
You are firing the assignment envelopes at their target subagents — in parallel, in a single message, with one Agent tool call per envelope. This is where the force-multiplication happens. Sequential dispatch is a failure mode here.
Parallel by default. Use a single message with multiple Agent tool calls. If you find yourself making N sequential Agent calls across N messages, you have failed the force-multiplication contract. The only acceptable reason for sequential dispatch is a real dependency between envelopes — and if real dependency exists, that envelope should have been demoted to a Phase-4 follow-up during Phase 2, not dispatched here.
Before any dispatch:
pingpong-detector agent with phase-2-assignments.md as the input.Possible verdicts:
The gate is non-optional. A dispatched ping-pong-prone envelope wastes both the subagent's tokens and the user's. Catching it here is cheap.
For each envelope, confirm:
returns/ under the working directory).In a SINGLE message, issue ONE Agent tool call per envelope. Each call:
description: short, e.g., "Assignment-NNN-<dim-slug>".subagent_type: from envelope's "Recommended subagent type" section (or substituted type).prompt: the full envelope content, self-contained, including the handoff block. The recipient subagent must read only this prompt — no implicit reference to conversation context.The prompt must end with the explicit instruction:
Write your return artifact to
<absolute path from envelope>. Use the structure required by the envelope's Return format section. If you reach an unresolvable blocker, write aBLOCKEDblock in the return artifact rather than coming back to ask. Continue with any remaining executable portion of the assignment.
Two modes for the parallel dispatch:
run_in_background: true): use when subagent work is long-running and the orchestrator has independent work to do meanwhile. The harness notifies on completion.For the standard grain-to-coliseum flow, foreground is correct — reconciliation can't begin until returns are in.
Immediately after the dispatch message goes out (not after returns arrive), write phase-3-dispatch-log.md:
# Phase 3 — Dispatch log
## Grain (verbatim)
> <quoted grain>
## Dispatch summary
- Total envelopes dispatched: <N>
- Dispatch mode: foreground | background
- Dispatch timestamp: <ISO 8601>
- No-pingpong gate verdict: PASS | PARTIAL (notes…) | (would not be FAIL — we'd have returned to Phase 2)
## Dispatch table
| Assignment ID | Dimension | Subagent type | Substitution? | Return path |
|---|---|---|---|---|
| assignment-001-… | … | … | none | returns/assignment-001-…-return.md |
| assignment-002-… | … | … | (general-purpose substituted for absent specialist X) | returns/… |
## Returns expected
- <list each return-path with checkbox for arrival status>
## Substitutions and rationale
<for each substitution made in Step 2, one paragraph>
After the dispatch message, the orchestrator's next action is to wait for returns (foreground) or to be notified (background). When each return arrives, update the dispatch log's "Returns expected" checklist.
If any return arrives with a BLOCKED block, that is a signal — not a failure. The reconciliation phase handles blockers explicitly.
When all returns are in (or all returns + recorded blockers), invoke the coliseum-reconciliation skill with the working directory as argument.
Before composing the parallel dispatch message, verify:
Sequential dispatch dressed up as parallel. It is easy to write a single message containing multiple Agent calls but secretly intend them to run in sequence (e.g., one waits on another's return). The Agent tool does not enforce that — if you call N agents in one message, they all start at roughly the same time. If you've baked in a sequence by way of envelope content (e.g., assignment-002's prompt references assignment-001's return artifact), you've collapsed the coliseum into a series. Refactor before dispatch.
references/handoff-envelope-spec.md — what the dispatched prompt must containreferences/parallel-dimensions.md — what makes dimensions truly parallel