From wai
Build a detailed implementation plan as a DAG of tasks (`T<n>` headings + `depends_on:` lines + checkbox steps). Parses cleanly into `/implement-plan` (DAG walk), `to-issues` (mirror to tracker), and `/validate-plan` (criteria check).
How this command is triggered — by the user, by Claude, or both
Slash command
/wai:create-planopusThe summary Claude sees in its command listing — used to decide when to auto-load this command
# Create Plan You produce a thorough implementation plan. Skeptical, grounded in actual code, interactive, not a one-shot dump. > **INVARIANT, no code here.** This command does not modify source files. The plan is a spec. Code changes happen only when `/implement-plan` runs against the plan. See `plugins/wai/WORKFLOW.md`. Plan location: `plans/<YYYY-MM-DD>-<kebab-slug>.md` by default; the user may override. ## Invocation If called with a file or ticket reference (`/create-plan path/to/spec.md`), read it fully and start. If called bare: > I'll help you create an implementation plan. Gi...
You produce a thorough implementation plan. Skeptical, grounded in actual code, interactive, not a one-shot dump.
INVARIANT, no code here. This command does not modify source files. The plan is a spec. Code changes happen only when
/implement-planruns against the plan. Seeplugins/wai/WORKFLOW.md.
Plan location: plans/<YYYY-MM-DD>-<kebab-slug>.md by default; the user may override.
If called with a file or ticket reference (/create-plan path/to/spec.md), read it fully and start. If called bare:
I'll help you create an implementation plan. Give me:
- The spec / ticket (file path or description).
- Any constraints, prior research, or related implementations.
I'll research the code first, then come back with focused questions.
Wait.
limit/offset. Specs, tickets, research, JSON, related plans. Read them in main context before spawning anything, otherwise you can't direct subagents accurately.codebase-locator, files/tests/configs related to the task.codebase-analyzer, how the current implementation works in the area you'll touch.codebase-pattern-finder, similar features you can model after.
See using-subagents for prompt-craft guidance, one focused, self-contained, output-specified prompt per area, dispatched concurrently in a single response.Then present:
Based on the spec and my research, here's what I understand:
[accurate summary]
Found in the codebase:
- [pattern/constraint] at file:line
- [existing impl detail] at file:line
Questions I genuinely cannot answer from the code:
- [technical question requiring human judgment]
- [business-logic clarification]
- [design preference]
Only ask what you actually can't infer. Don't pad.
When the user corrects you, do not just accept it. Spawn follow-up research, read the files they pointed at, verify their claim against the code. Confirm before proceeding.
Present design options when there's a real choice:
Design options:
1. [Option A], pros: ... cons: ...
2. [Option B], pros: ... cons: ...
Which fits what you want?
Plans are DAGs of tasks, not phases. Each task is independently grabbable, has explicit dependencies, and is small enough to dispatch as a single subagent invocation.
Before writing the plan body, agree on the task list:
Proposed tasks:
T1 [name] (no prereqs)
T2 [name] (no prereqs)
T3 [name] (← T1)
T4 [name] (← T1, T2)
T5 [name] (← T3)
...
Does the granularity feel right? Anything to split, merge, or reorder?
Iterate until approved.
depends_on: lists only tasks whose output the dependent task needs to read, not tasks that happen to be related.Save to plans/<YYYY-MM-DD>-<kebab-slug>.md (or user-specified location).
# <Feature> Implementation Plan
Short paragraph describing the rework / feature this plan implements. Include the parse contract pointer so future-you (and `/implement-plan`) read tasks the same way.
> **INVARIANT, no code here.** This plan documents the work. Code changes happen only when `/implement-plan` runs against this file.
## Goal
One paragraph. What we're implementing and why.
## Success criteria
**Automated:**
- [ ] [command an agent can run, `make test`, `npm run typecheck`, file-existence check, etc.]
- [ ] [another]
**Manual:**
- [ ] [UI / behavior observation the user has to verify]
- [ ] [another]
## Tracker (per-plan opt-in)
`to-issues` does not auto-fire. Run `to-issues plans/<this-file>.md` if you want a tracker mirror.
---
## Tasks
### T1, <title>
depends_on: []
- [ ] [checkbox step, concrete action, exact file paths]
- [ ] [another step]
- [ ] [test command to run + expected output]
### T2, <title>
depends_on: []
- [ ] ...
### T3, <title>
depends_on: [T1]
- [ ] ...
### T4, <title>
depends_on: [T1, T2]
- [ ] ...
---
## DAG visualization (informational)
```
T1 <name> (root)
T2 <name> (root)
T3 <name> ← T1
T4 <name> ← T1, T2
```
## Notes for execution
- `/implement-plan` walks the DAG, dispatching `wai-implementer` per ready task, with parallel cap from `.claude/wai.json`.
- After all tasks land, the spec-reviewer + code-quality-reviewer chain runs per-task.
/implement-plan, to-issues, and /validate-plan all read this same shape. Hard rules so the parse stays trivial:
### T<n>, <title> (note the em-dash, single space on each side).depends_on: [T<n>, T<m>] or depends_on: []. Plain text line, no code fence.- [ ] lines. Each step is one concrete action.## Tasks heading so the parser can scope the search.issue: #N line (added by to-issues after publishing) sits between depends_on: and the first checkbox.If you deviate from the shape, the downstream tooling silently misses tasks. Don't.
clearLayers() in T3 stays clearLayers() in T7. Property names, signatures, all consistent across tasks.Show the user the path and ask for feedback. Iterate. Each round may need fresh research, spawn agents again if the change demands it.
using-subagents primer for prompt-craft rules.to-spec → /create-plan → to-issues (opt-in) → /implement-plan → /validate-plan → ...
npx claudepluginhub mlitre/wai --plugin wai/create-planCreates hierarchical project plans for solo agentic development, generating briefs, roadmaps, and phase plans from a description of what to plan.
/create-planCreates detailed implementation plans through interactive research and iteration for tasks or files, with configurable autonomy: autopilot, critical, verbose.
/create-planCreates an implementation plan from arguments using the planning skill. Requires an active session started with /session-start or /session-continue.