126 lines
5.1 KiB
Markdown
126 lines
5.1 KiB
Markdown
---
|
|
name: subagent-implement
|
|
description: "Full implementation pipeline: scout → plan → review → code → build verify → review → fix. Use when the user invokes /implement."
|
|
---
|
|
|
|
# /implement — Standard Implementation Pipeline
|
|
|
|
## Agent Roster
|
|
|
|
| Agent | Role |
|
|
|-------|------|
|
|
| scout | Fast codebase recon |
|
|
| planner | Detailed implementation plans |
|
|
| plan-reviewer | Reviews plans for correctness and risk |
|
|
| coder | Primary implementation |
|
|
| reviewer | Cross-family code review |
|
|
| fixer | Applies review feedback precisely |
|
|
|
|
## Phase 1: Scout → Plan → Review (chain)
|
|
|
|
```js
|
|
await subagent({ chain: [
|
|
{ agent: "scout", task: "Explore the codebase for: {task}" },
|
|
{ agent: "planner", task: "Create a detailed implementation plan for: {task}" },
|
|
{ agent: "plan-reviewer", task: "Review the plan for correctness, completeness, and risk." }
|
|
]})
|
|
```
|
|
|
|
The chain creates `scout.md`, `plan.md`, `plan-review.md` in the chain artifact dir.
|
|
|
|
Read `plan-review.md` from the artifact dir. If **NEEDS_REVISION** or **REJECTED**, loop: tell the planner what to fix, re-run the reviewer. If **APPROVED**, proceed to Phase 2.
|
|
|
|
## Phase 2: Implement
|
|
|
|
```js
|
|
await subagent({ agent: "coder", task: `Read and implement the plan at <chain_dir>/plan.md` })
|
|
```
|
|
|
|
Use the chain dir path from Phase 1's result.
|
|
|
|
## Phase 3: Build Verification
|
|
|
|
After the coder finishes, independently verify the build — don't trust the coder's report:
|
|
|
|
```bash
|
|
# Run a full build, not just type-check. Shaders, linkers, and bundlers may fail.
|
|
# Adapt to project: cargo build, npm run build, etc.
|
|
```
|
|
|
|
## Phase 4: Review → Fix
|
|
|
|
```js
|
|
await subagent({ agent: "reviewer", output: `${chainDir}/review.md`, task: "Review all changes made" })
|
|
```
|
|
|
|
Read `review.md`. If issues found:
|
|
|
|
```js
|
|
await subagent({ agent: "fixer", task: `Read and apply the review feedback in ${chainDir}/review.md` })
|
|
```
|
|
|
|
## Phase 5: Next Steps & Workflow Summary
|
|
|
|
After all phases complete, give the user a brief summary of what is next to take use of the implementation and an honoest evaluation of the workflow:
|
|
|
|
- **What needs wiring and where**: Point to where the user can take the implementation into use
|
|
- **What happened**: which phases ran, any plan review loops, whether fixes were needed
|
|
- **Issues**: any agent silent failures, fallbacks used, build errors, or unexpected behavior
|
|
- **Agent quality**: did any agent misinterpret the task, produce poor output, or need hand-holding? Name the agent and the problem.
|
|
- **Skill improvements**: did this workflow reveal gaps in the skill instructions or agent prompts? Note what should change
|
|
|
|
Be concise — a few lines is enough when things went well. Only expand on problems.
|
|
|
|
## Step Overrides
|
|
|
|
Override agent defaults per step:
|
|
|
|
```js
|
|
await subagent({ chain: [
|
|
{ agent: "scout", output: "context.md" },
|
|
{ agent: "planner", reads: ["context.md"], output: "plan.md" },
|
|
{ agent: "plan-reviewer", reads: ["plan.md"] }
|
|
]})
|
|
```
|
|
|
|
## Chain Mechanics
|
|
|
|
Chain mode (`subagent({ chain: [...] })`) runs agents sequentially in a shared temp directory (`{chain_dir}`). Each step:
|
|
1. The framework injects `[Read from:]` and `[Write to:]` directives from the agent's `defaultReads` and `output` frontmatter
|
|
2. The agent reads upstream files, does its work, and writes its deliverable to the `[Write to:]` path using the `write` tool
|
|
3. The agent returns a brief text summary; `{previous}` carries this summary to the next step
|
|
4. Variable substitution: `{task}` = original task, `{previous}` = prior step's brief ack, `{chain_dir}` = artifact dir path
|
|
|
|
Key behaviors:
|
|
- Data flows through FILES (`scout.md` → `plan.md` → `plan-review.md`), not through `{previous}`
|
|
- `{previous}` contains only a brief summary from the prior step — do NOT rely on it for full context
|
|
- The framework validates that the expected output file was created
|
|
- The chain result includes `📁 Artifacts: /tmp/pi-chain-runs/<id>/` — use this path to read files for branching decisions
|
|
|
|
Reviewer and fixer run as single agents (not in chains). Pass file paths in the task string and use the `output` parameter to capture their output.
|
|
|
|
## Fallback Strategy
|
|
|
|
When a subagent call returns no output (silent failure), apply cross-family model fallback. **Do not fall back to doing the work yourself** — always retry with the fallback model first.
|
|
|
|
1. **First attempt**: Use the agent's default model
|
|
2. **If silent failure or error**: Retry with the fallback model using `model` override
|
|
3. **If the fallback also fails**: Report the double-failure to the user. Still do not do the work yourself.
|
|
|
|
```js
|
|
// Example: scout fails silently, retry with fallback
|
|
subagent({ agent: "scout", task: "...", model: "opencode/big-pickle" })
|
|
```
|
|
|
|
| Agent | Primary | Fallback |
|
|
|-------|---------|----------|
|
|
| scout | opencode-go/mimo-v2-pro | opencode/big-pickle |
|
|
| planner | opencode/qwen3.6-plus-free | opencode-go/glm-5 |
|
|
| coder | opencode-go/mimo-v2-pro | opencode-go/kimi-k2.5 |
|
|
| plan-reviewer, reviewer | opencode-go/kimi-k2.5 | opencode/qwen3.6-plus-free |
|
|
| fixer | opencode-go/glm-5 | opencode-go/mimo-v2-pro |
|
|
|
|
## Adaptive Routing
|
|
|
|
Do not run the full pipeline for a one-line fix. Use your judgment — a single coder call may suffice.
|