wave-checkpoint
CommandSave wave state to disk so an auto-compact, session crash, or laptop battery death doesn't kill the run. Run this between phases…
Start a new wave. Default runs the canonical v2 framework (31 phase rows: 18 always, 13 conditional — [UIA]/[ES] on new vocabulary, [BEN]/[BEN-CLOSE] on changed behaviour, [DR] at 1.5 on UI or changed behaviour, the optional [CR] gate at 3.5, and each [BF-*] row on findings; max
> /plugin marketplace add Harshvardhan86/claude-wave-plugin> /plugin install wave-orchestrator@wave-orchestrator
description: Start a new wave. Default runs the canonical v2 framework (31 phase rows: 18 always, 13 conditional — [UIA]/[ES] on new vocabulary, [BEN]/[BEN-CLOSE] on changed behaviour, [DR] at 1.5 on UI or changed behaviour, the optional [CR] gate at 3.5, and each [BF-*] row on findings; max 31). Pass --demo for the trimmed 5-phase subset (AC → DR → RED → GREEN → TEET) for live demos and small UI features, or --solo for a directly-driven task with only the cheap invariants enforced.
argument-hint: "[--demo|--solo] <feature description in quotes>"
allowed-tools: "Bash(git:*), Bash(npm:*), Bash(pnpm:*), Bash(yarn:*), Bash(npx:*), Bash(curl:*), Bash(${CLAUDE_PLUGIN_ROOT}/scripts/wave-init.sh:*), Bash(${CLAUDE_PLUGIN_ROOT}/scripts/wave-set.sh:*)"The user invoked `/wave-orchestrator:wave-start` with arguments: **$ARGUMENTS**
If the feature description is empty, refuse and remind the user of the syntax:
/wave-orchestrator:wave-start "<feature description>" # full v2 framework (31 phase rows: 18 always + 13 conditional) /wave-orchestrator:wave-start --demo "<feature description>" # trimmed 5-phase demo subset /wave-orchestrator:wave-start --solo "<feature description>" # directly-driven task, cheap invariants only
For `full` and `demo` mode, first ask the two early scope questions in the conversation (never guess an answer). They must be answered BEFORE `wave-init.sh` runs, and are passed to it as flags:
Then start the wave's on-disk state so every hook enforced during this wave can find it:
"${CLAUDE_PLUGIN_ROOT}"/scripts/wave-init.sh --wave <next-wave-id> \
--mode <full|demo> \
--enforce block \
<--vocabulary|--no-vocabulary> \
<--behaviour-change|--no-behaviour-change> \
--feature "<feature description>"Replace each `<…>` with one of its choices. For solo mode, pass `--solo` in place of `--mode <full|demo>`.
Pick `<next-wave-id>` as one past the highest wave id already recorded under `.wave/archive/`, or `1` if `.wave/` does not exist yet.
If `wave-init.sh` exits non-zero, print its stderr to the user and **stop** — do not invoke the orchestrator with no wave state behind it.
Then ask the remaining two scope questions (never guess an answer):
Route the ui and cr answers through `wave-set.sh`, which records them in state and in `.wave/approvals/scope.md`. The same command can correct a vocabulary or behaviour-change answer after init:
"${CLAUDE_PLUGIN_ROOT}"/scripts/wave-set.sh ui <true|false>
"${CLAUDE_PLUGIN_ROOT}"/scripts/wave-set.sh behaviour-change <true|false>
"${CLAUDE_PLUGIN_ROOT}"/scripts/wave-set.sh cr <true|false>
"${CLAUDE_PLUGIN_ROOT}"/scripts/wave-set.sh vocabulary <true|false>`solo` mode skips the four scope questions — `phases.tsv` is not consulted in solo mode at all (spec section 6), so there is nothing for them to gate.
**Refusal:** if `.wave/state.json` is not present after this step, stop here with one line telling the user wave-init.sh did not run successfully; do not proceed to Step 2.
Invoke the `wave-orchestrator` skill, passing:
The orchestrator owns everything from here. Do not implement, dispatch, or instruct further yourself. The orchestrator's `SKILL.md` defines exactly how each mode runs.
Every mode enforces:
dispatch made from this session must begin its `description` (or the first line of its `prompt`) with `[W:<wave> P:<PHASE> R:<lead|executor|reviewer|scanner|writer>]` — for example `[W:1 P:TDE-GREEN R:executor] implement AC-3..AC-7`. An untagged dispatch during an active wave is denied.
`full` mode additionally:
`demo` mode runs only AC → DR → RED → GREEN → TEET with the visual approval gate, and uses the sibling skills (`ac-writer`, `design-reviewer`,
Run your coding agent like an engineering org. Wave-based execution with dedicated sub-agents per phase, computed-style visual verification, no "tsc passes" lies.
Save wave state to disk so an auto-compact, session crash, or laptop battery death doesn't kill the run. Run this between phases…
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.