plan
task = $ARGUMENTS
Produce the minimum artifact that prevents the executor from going wrong. The executor starts with an empty context window: they get this plan and the codebase, nothing else. Every ambiguity becomes a wrong guess they make confidently.
Match depth to complexity. A 3-file bug fix needs a paragraph, not a document. If you could describe the diff in one sentence, skip the plan entirely.
Exploration
Explore until you can articulate why one approach beats alternatives — then stop and write. If you can't articulate the tradeoffs, you haven't explored enough. If you're still reading files after the picture is clear, you've explored too much. External-axis stop: a borrowable pattern is identified, or you've confirmed nobody solved it cleanly — inventing is the fallback, not the default.
Two axes, pursued concurrently via read-only subagents that return summaries (not raw file dumps):
- Codebase — existing implementations, patterns, conventions. For every new pattern the plan introduces, cite the precedent
file:linethe executor should mirror. Without the citation, the executor will reinvent — even when the precedent exists. - External — web search for how others solved this. Libraries, vendor docs, open-source implementations. Prefer borrowing a named approach over inventing; name the source (URL or library) in the plan.
Decomposition
Choose based on task shape, not habit. Default to vertical slice; switch when the task clearly fits another: