orchestrator-pi-workflows
Installation
SKILL.md
Orchestrator (Pi Workflows)
Turn a multi-agent mission into one deterministic workflow run. The workflow owns scheduling and persistence; the parent Pi session owns routing, approval boundaries, and final judgment.
Use this only when the pi-extensible-workflows extension is installed and its workflow tools are available. For ordinary single-agent work, invoke the matching project skill directly.
Non-Negotiables
- Inventory the actual available skills before routing. Use
ask-mattas the map when present, but never launch it as a worker. - Give each agent one primary skill and copy its concrete workflow, constraints, inputs, and done criteria into the prompt.
- Model dependencies structurally. Put only independent jobs in the same
parallel()block; await their results before dependent work. - Keep operation names and object keys stable. Persisted retry and resume depend on those structural keys.
- Use
prompt()when inserting agent results into another prompt. Await bare agent results before interpolation or serialization. - Treat agent output as a claim. A separate verification or synthesis step must inspect artifacts and evidence before the mission passes.
- Use named
withWorktree()scopes for modifying agents. Never let independent writers share a worktree or edit the launch checkout concurrently. - Use
shell()mainly for bounded verification. External side effects are not guaranteed exactly once if the host fails before journaling. - Set a budget when fan-out is open-ended or expensive. Do not bypass exhaustion by retrying ordinary agent calls.
- Use the exact recovery action for the persisted state:
workflow_retryforfailed,workflow_resumeforbudget_exhausted, and neither for completed or stopped runs. - When Pi delegates execution to Herdr, use two sequential Pi agents: one planner and one Herdr orchestrator. Herdr owns the worker fan-out; Pi must not duplicate it.