| name | pi-subagents |
| description | Pi subagent orchestration: delegate to builtin/custom agents; run single, parallel, chain, async/background, forked-context, acceptance, worktree, intercom, status/control, or agent-management workflows. Do not use for Agent Skill maintenance, spawned child prompts, or non-Pi delegation. |
Pi Subagents
Parent-orchestrator skill for launching focused child Pi sessions. Parent owns orchestration, decisions, review synthesis, and final user-facing status. Do not inject or follow this skill inside ordinary spawned child subagents. For Agent Skill file maintenance (SKILL.md, evals, trigger descriptions), use agent-skill-engineering instead.
Hard constraints
- If
subagent is not active, call load_subagent first; it exposes the full orchestration schema on the next turn.
- Before executing subagents in a session, call
subagent({ action: "list" }) unless the executable agent/chain is already known; treat its descriptions as the current role/model policy.
- Treat child output as evidence to inspect, not automatic truth.
- Keep writes single-threaded unless writers are isolated with
worktree: true.
- Use fresh-context reviewers for adversarial review; use forked
oracle for inherited-decision/drift review.
- Do not let child subagents launch more subagents. Keep all delegation and fanout in the parent session.
- A reviewer timeout is not sign-off. Foreground reviewer budgets are raised to a safe floor; planner/researcher budgets are raised only from local history. Rerun, resume, or split timed-out work.
- Subagent execution defaults to async/background. Launch a small bounded fanout as separate single-agent runs so each completion wakes the parent, with at most one writer. Continue useful parent work while children run; if none remains, end the turn and wait for completion instead of polling. Use one
tasks call for non-review fanout when all child results are required together, when shared concurrency/task limits are needed, or when multiple writers require ; the parent receives one aggregate completion. Check status only when the user asks or the run may be blocked or stale.