MCP Task Orchestrator · Field guidePlate 8 of 9
The Claude Code plugin turns one request into a plan, a tree of gated items, a set of dispatched agents and a verified result. How much of that process runs depends on the size of the work.
The orchestration context classifies every request into a tier before anything else, using the orchestrate skill. Describe a request and see the process it gets. This is a simplified reading of those rules.
| Kind of task | Model |
|---|---|
| Bulk item operations, materialization, simple queries | haiku |
| Reading code, implementation, writing tests | sonnet |
| Architecture, hard trade-offs, synthesis across many files | opus |
The model table is the style's default, flagged as a project convention. A schema's dispatch block overrides it per phase or per seat (plates 4 and 6). The orchestrator always names the model on a dispatch.
advance_item(start) once, fills its notes and returns.Items in work, with actors on every transition and note.Columns: the step, what drives it, what happens, and what the server holds afterwards.
The approved plan is already written. Retyping it into notes would cost tokens and invite drift. So create_work_tree can point at the stored plan document and name which heading feeds which note.
After materializing, the plugin hands off to run-wave only if at least two leaf items are unblocked, a project root resolves, their queue notes are filled, and the three protocol rules are served. Otherwise it dispatches by hand and says which condition failed.
That each commit exists and stays inside the files its seat owns, that every note carries the actor of the seat that should have written it, and that the orchestrator's own notes are filled. Items that fail are left out of the batch advance.
The planner verifies the plan against source and cannot edit files. The implementer builds. The test author writes tests without opening the production files. The reviewer reports findings and never advances the item.
A rule is a short piece of operating text stored per project and served verbatim by query_rules. Agents fetch a rule by key when they need it, so a dispatch prompt can name a rule and leave the text out.
| Bundled rule | What it tells an agent |
|---|---|
protocol.entry-seat | Enter the phase once with start. Never complete. Stop on a real failure. |
protocol.in-phase-seat | Never enter or advance. Fill only your own seat's notes. |
protocol.read-only-agent | Never transition. Put findings in your own note. |
commit-discipline | Commit only your own paths, by path, and check the file list. |
review-scoping | Review the diff of the files an agent owns. Edits outside them are a breach. |
Your own rules live in .taskorchestrator/rules/<key>.md. The plugin ships the five on the left. Both are synced to the server at session start, and a workspace file with the same key wins.
A bundled rule overwrites the server copy only when that copy matches a version the plugin shipped before. A copy someone customized is left alone and reported.
query_rules(operation="get", rootId, key="commit-discipline") query_rules(operation="get", itemId, noteKey="test-manifest") query_rules(operation="list", rootId)
run-wave | ralph | |
|---|---|---|
| Where it runs | In your interactive session | A detached script that starts a fresh headless Claude process and worktree per item |
| How work is chosen | A frontier of ready items under a feature | Each iteration claims one item from the queue with claim_item |
| Planning | A run plan of seat stages | None. The claimed item's schema is the contract. |
| Agents | One per seat, dispatched by the orchestrator | No sub-agents. One process does the item. |
| How it stops | The frontier is done, or a human checkpoint | The queue is empty, or a limit trips |
Defaults: 10 iterations, 5 US dollars per iteration, a 30-minute claim. The loop stops after 3 gate failures in a row, 2 errors in a row or 3 idle results.
One outcome line: terminal, gate-blocked, error, skip, idle or no-item. The loop reads it to decide whether to continue.
Iterations run with permission prompts bypassed, each in its own temporary worktree. The budget and the claim expiry are the hard stops.
| Channel | Behaviour |
|---|---|
| Orchestration context | A session-start hook delivers the orchestration core, including after a compact. Plans, delegates, tracks and reports. |
| Orchestrate skill | On-demand tier table, delegation table and phase-owner dispatch rules. |
| Ralph iteration prompt | The terse single-item rules each headless iteration runs under, appended to its system prompt. |
orchestration.mode: workflow | The default. Tier-aware, with a model policy. Small fixes are done inline. |
orchestration.mode: schema | No tiers and no model policy. The item's schema alone sets the process. |
orchestration.mode: off | The orchestration hooks stay silent. |
| Workflow script | Purpose |
|---|---|
implement-wave | Schedules queue and work seats across a wave, with per-file locks and safe replay. |
review-wave | Independent review lanes over items in review, combined into one verdict. |
audit | A read-only code audit in quick, standard or full size that ends in a findings proposal. |
retro-analysis | Matches retrospective findings against known trends. Read-only. |