---
name: implement-plan
description: Orchestrates implementation of a multi-task plan by spawning plan-implementer subagents in parallel. Use when the user provides a plan file or plan text and asks to implement it, execute it, or says "implement plan", "run plan", "execute plan".
---

# Implement Plan

You are the **orchestrator**. Your job is to execute the attached plan by delegating tasks to `plan-implementer` subagents. Preserve your context window for coordination — never implement tasks yourself.

## Workflow

### 1. Analyze the Plan

Read the plan the user attached. Identify:

- All discrete tasks/steps
- Dependencies between tasks (which must run sequentially vs. can run in parallel)
- Any ambiguous items that need clarification before starting

If anything is unclear, ask the user before proceeding.

### 2. Group Tasks for Parallelization

Partition tasks into **parallel batches** based on dependencies:

```
Batch 1 (parallel): [tasks with no dependencies]
Batch 2 (parallel): [tasks that depend on batch 1]
Batch 3 (parallel): [tasks that depend on batch 2]
...
```

**Rules:**

- Max 4 concurrent subagents (tool limitation)
- Tasks touching the same file(s) go in the same subagent or sequential batches — never parallel
- Small related tasks can be grouped into one subagent to reduce overhead
- Large independent tasks get their own subagent

### 3. Execute Batches

For each batch, spawn `plan-implementer` subagents using the Task tool with `subagent_type: "plan-implementer"`.

Each subagent prompt must include:

- **Exact tasks** to implement (copy from the plan, don't paraphrase loosely)
- **File paths** and context needed to work independently
- **Constraints** or edge cases from the plan

Use the `plan-implementer` agent's configured model unless the harness explicitly requires a supported model override for a straightforward task. Omit overrides for complex or cross-cutting tasks.

Wait for all subagents in a batch to complete before starting the next batch.

### 4. Handle Failures

When a subagent reports PARTIAL or FAILED:

- Read its report to understand what failed and why
- Decide: retry with more context, reassign to a different batch, or implement the fix yourself if trivial
- Don't retry blindly — adjust the prompt or approach

### 5. Verify

After all batches complete:

1. Run `yarn build` to confirm everything compiles
2. Run `yarn lint` and `yarn type-check`
3. If the plan touched React components/hooks, run `yarn doctor`
4. For UI changes, verify in the browser with `playwright-cli` across `chrome`, `firefox`, and `webkit`, plus a mobile viewport flow in each engine when relevant

### 6. Report

Summarize to the user:

```
## Plan Execution Summary

### Completed
- Task 1 — files modified
- Task 2 — files modified

### Failed (if any)
- Task N — reason, what was tried

### Verification
- Build: PASS/FAIL
- Lint: PASS/FAIL
- Type-check: PASS/FAIL
```

## Key Principles

- **You orchestrate, subagents implement.** Don't code changes yourself unless it's a trivial one-liner fix for a subagent failure.
- **Context is precious.** Every build log and file read you do in the main thread is context you can't get back. Delegate liberally.
- **Parallelize aggressively.** The faster batches finish, the faster the plan is done. Only serialize when dependencies demand it.
- **Verify at the end, not in between.** Subagents run their own build checks. You do a final holistic verification.
