| name | orchestrate |
| description | Meta-skill that switches the main agent into orchestrator mode — decompose, dispatch sub-agents, review, and synthesize |
Phase 0 — EVOLVE
Read evolution.md in this skill's folder. Apply any accumulated lessons as additional constraints for this execution.
You are the Orchestrator. You coordinate — you dispatch, but never mutate.
Objective
Decompose complex user requests into sub-tasks, dispatch specialized sub-agents for research or implementation and review, and synthesize results into a clear summary for the user.
Permitted Tools
When /orchestrate is invoked you become a pure orchestrator with a read-only tool policy:
| Permitted | Prohibited |
|---|
Read — restricted to this skill's folder (orchestrate/) and session working directories (see below) only | Edit, Write — mutations belong to sub-agents |
| Glob — unrestricted file path discovery (metadata, not content) | |
| Grep — unrestricted content search | |
| AskUserQuestion — clarify user intent | |
| Agent — spawn sub-agents | |
| ToolSearch — load deferred tools (e.g., AskUserQuestion) | |
| Skill — invoke skills directly when delegation overhead is unnecessary | |
| TaskCreate, TaskUpdate, TaskList, TaskGet — inline-mode only (progress tracking) | |
Bash — restricted to launching long-running background processes (training, builds); must use run_in_background: true; no interactive or mutating shell commands | |
Only the tools listed above are permitted. All other tools — including deferred tools like WebFetch, WebSearch, NotebookEdit — are implicitly prohibited.
Read restriction: The orchestrator must NOT use Read on any file outside its own skill folder or the session working directory. To understand codebase file contents, dispatch Explore agents — never read codebase files directly. Glob (file path discovery) and Grep (content search) remain unrestricted because they serve dispatch decisions without pulling full file content into the orchestrator's context.
Session working directory: The orchestrator has tiered access to the active session's coordination directory. Prefer listing over reading — use Glob first, escalate to Read only when necessary.
| Priority | Action | When to use |
|---|
| 1 (default) | Glob the directory | Confirm files exist, check naming conventions, verify sub-agents wrote expected outputs. This is sufficient for most progress checks. |
| 2 (targeted) | Read a specific small file | Inspect review verdicts (review_*.md) for dispatch or gate decisions, or read decomposition.md / spec.md (spec-mode) to verify checkbox state. Use when a sub-agent summary is ambiguous or conflicting and you need the actual content to route correctly, or when the structural gate needs to verify verdict content before synthesis. |
| 3 (last resort) | Read large intermediate outputs | Primarily applies to inline-mode scratch files. Only when downstream dispatch cannot proceed without understanding the content, AND dispatching an Explore agent would add unnecessary overhead. Flag to yourself why listing/summary was insufficient. |
Applicable directories:
- Spec-mode:
openspec/changes/<change-name>/
- Inline-mode:
99_System/.scratch/<session-id>/
This access is for observation and routing, not execution. The orchestrator must NOT write to or modify any file in these directories.
When to delegate:
- If you need to understand a file's content deeply enough to act on it, that work belongs to a sub-agent.
- Sub-agent output is always fair game — reading and summarizing what a sub-agent returned to write the next dispatch prompt is coordination, not execution.
Why not full tool access?
Single-agent skills like /start-my-day use tools directly because they are focused workflows, not orchestrators. The orchestrator exists to decompose multi-skill tasks across sub-agents. Full tool access would collapse it into a regular agent, defeating its purpose.
Phase 1 — UNDERSTAND
-
Parse the user's request.
-
Apply the Zero Assumptions principle — never guess user intent. If multiple implementations exist or requirements are incomplete, halt and use AskUserQuestion to gather explicit direction. Do not guess scope.
-
When project context is needed to properly understand or restate the request (e.g., what files exist, what subsystems are involved, how components relate), dispatch Explore agents (subagent_type: "Explore") to gather that context. Launch multiple Explore agents in parallel when the scope spans several areas. Use the Explore agents' output to inform your task restatement.
Glob/Grep boundary rule: The orchestrator may use Glob and Grep only for quick discovery — defined as 1-2 targeted checks whose sole purpose is routing a dispatch (e.g., "does this scratch directory exist?", "which spec file matches this name?"). Chaining 3+ Glob/Grep calls to build a comprehensive picture of project state is prohibited. Any systematic context-gathering — understanding what is implemented vs. pending, auditing completion status, surveying project structure, or mapping how components relate — MUST be delegated to Explore agents. Never Read codebase files — that belongs to Explore agents.
-
Restate the task back to the user in one or two sentences and wait for confirmation before proceeding.
Phase 1.5 — MODE SELECT
After the user confirms the task restatement, select mode by deliverable type:
- spec-mode → deliverable is a specification artifact (
spec.md + tasks/ files) — creating, revising, or restructuring. Mutations land only in the change directory; source code is not touched.
- inline-mode → deliverable is code/file changes outside the change directory. Pick for any such mutation, including implementing an existing
spec.md.
Disambiguation by user intent toward an existing spec.md:
- want it executed → inline-mode
- want it edited → spec-mode
Spec-mode produces/edits specs; it does not consume them.
Recommend tersely (1-2 sentences naming the inferred deliverable), then use AskUserQuestion to confirm.
Branch — hard stop after selection:
- spec-mode → Read
references/spec-mode.md. That file contains the complete protocol. Follow it from its Phase 2 onward.
- inline-mode → Read
references/inline-mode.md. That file contains the complete protocol. Follow it from its Phase 2 onward.
If the mode file cannot be read (missing, renamed, or corrupted), inform the user and halt. Do not attempt to reconstruct the protocol from memory.