Help us improve
Share bugs, ideas, or general feedback.
From coliseum-from-grain
Expands a dense prompt (grain) into parallel autonomous assignments, dispatches them to subagents, and reconciles returns into a composed whole. Use for large-scope work implied by a small prompt.
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-orchestrator <the grain — the dense prompt to expand><the grain — the dense prompt to expand>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 running the grain-to-coliseum transformation. A grain — minimal surface, dense implication — becomes a coliseum: a set of parallel autonomous assignments, each self-contained, dispatched to domain-expert subagents who never have to come back asking what you meant.
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 running the grain-to-coliseum transformation. A grain — minimal surface, dense implication — becomes a coliseum: a set of parallel autonomous assignments, each self-contained, dispatched to domain-expert subagents who never have to come back asking what you meant.
The user has named a unit of work that is not any of the following:
The unit IS an autonomous work assignment: scope + parameters + success criteria + handoff envelope, carrying enough context that the recipient executes independently. A coliseum is a set of these, fanned out in parallel across the domain dimensions implicit in the originating grain.
Default behavior: read the grain yourself. Do not ask the user clarifying questions to begin. The grain was issued; the user's framing is "grain → coliseum: do it." Reinstating a five-question intake at the front gate defeats the entire premise of the protocol.
Read the grain three times. Internally infer:
grain-context.md. Never paraphrase the grain itself.Write these into grain-context.md as your autonomous read. The user is welcome to correct them after the protocol completes; do not ask first.
Before proceeding to Phase 1, run a single check on the grain:
Does this grain have at least 3 genuinely independent dimensions, where "independent" means a subagent on dimension A can execute without waiting on dimension B?
If NO — decline the protocol. Write a short note explaining what the grain is shaped like (a single task, a sequence, a narrative, a one-pass interpretive job) and recommend the user invoke a single direct ask instead. Do not run Phases 1–4 on a grain that is not fan-out shaped. This is the most important refusal in the plugin.
If YES — proceed.
Default anchor without asking: <cwd>/coliseum-runs/<grain-slug>-YYYY-MM-DD/. If the cwd is unwritable or otherwise blocked, fall back to ~/coliseum-runs/<grain-slug>-YYYY-MM-DD/. Only escalate to the user if both fail.
Create the directory and write grain-context.md with the verbatim grain, the five autonomously-inferred elements (marked as inference), the slug, the working-directory path, and the date the protocol was started. Every downstream phase reads from this file.
A single legitimate question is allowed only when the grain contains an actual irreducible ambiguity — a literal multi-interpretation in the surface text that the user is the only party who can disambiguate. "I'm not sure what you mean" is not such a case. "The grain says 'the spec' but two specs exist at known paths and the choice changes which subagents to dispatch" is. Escalations of this kind are rare; default to autonomy.
Invoke each phase by calling its skill explicitly. After each phase produces its artifact, decide whether to gate. The no-pingpong gate (run via the pingpong-detector agent) is mandatory between phases 2 and 3 — no dispatch happens until envelopes pass.
| Phase | Skill | Output artifact | Gate criteria summary |
|---|---|---|---|
| 1 | dimension-surfacing | phase-1-dimensions.md | Each dimension is independently executable; no dimension is a paraphrase of another; the dimension set covers the grain's implied scope |
| 2 | assignment-composition | phase-2-assignments.md | Each assignment has: scope, parameters, success criteria, allowed tools, return format, handoff envelope |
| 3 | coliseum-dispatch | phase-3-dispatch-log.md | Assignments dispatched in parallel (single message, multiple Agent tool calls); subagent types named; dispatch timestamp recorded |
| 4 | coliseum-reconciliation | phase-4-composed-whole.md | Returns merged into a single coherent artifact; tensions between returns explicitly resolved; no return discarded silently |
The pingpong-detector agent gates the transition from Phase 2 → Phase 3. Invoke it after Phase 2 with the artifact path. If it returns FAIL, recompose the failing envelopes — but cap recomposition attempts at 2. On the third failed gate-pass for the same envelope, dispatch it with the gate's annotated risk explicitly attached in the dispatch log; the alternative is infinite loop. PARTIAL verdicts proceed without user escalation — log the partial in the dispatch log and continue.
This cap exists because the gate's checks can compound against each other (e.g., grain inlining vs envelope length) in ways no envelope can satisfy. The cure is shipping known-imperfect envelopes annotated, not stalling forever.
After Phase 0 you have:
coliseum-runs/<grain-slug>-YYYY-MM-DD/
└── grain-context.md
After all four phases:
coliseum-runs/<grain-slug>-YYYY-MM-DD/
├── grain-context.md
├── phase-1-dimensions.md
├── phase-2-assignments.md
├── phase-3-dispatch-log.md
├── phase-4-composed-whole.md
└── returns/
├── assignment-001-<dim>-return.md
├── assignment-002-<dim>-return.md
└── ...
dimension-surfacing when the user wants only the dimensional analysis, not a dispatched coliseum.assignment-composition when the dimensions are already named and you only need self-contained envelopes.coliseum-dispatch when assignments are already composed and you only need parallel execution.coliseum-reconciliation when returns are already collected and you only need the merge.For deeper specification of each piece:
references/assignment-anatomy.md — full anatomy of the assignment primitivereferences/why-not-task-series-stream.md — what distinguishes assignment from neighboring unitsreferences/parallel-dimensions.md — how to read multi-axis structure in a grainreferences/handoff-envelope-spec.md — the chunk-self-containment standardAlways read these when uncertain about envelope sufficiency or dimensional independence.