wavves

orchestration OS · Beta / testflight · v0.4.1

When context is summarized or a thread is replaced, the alignment record from the last dispatch remains trapped in the old scrollback, while every fresh session must rebuild governing constraints from the stream where settled decisions already sit beside tool output and abandoned runs. wavves captures that alignment state as versioned files under wavves/, turning operator intent into packets before runners start, persisting disk gate captures and rotation handoffs beside each lane while hydrating every successor from the home record when a fresh thread opens.

Install

After listing, install from the Cursor plugin marketplace:

/add-plugin wavves

Or copy this repo to ~/.cursor/plugins/local/wavves/, then reload plugins.

Invokable commands

Type slash commands in Cursor chat. Start with /wavves for most work, like /poteto-mode in pstack.

CommandUse it when
/wavvesDefault entry. Reads your request, picks a playbook, runs the leaf skill.
/wavves-initHome setup only. First time in a repo or repair the standing home.
/charterCharter a bounded lane, dispatch background waves, multi-repo commit plans.
/mod-checkAdversarial parallel check; scoped verdict (blocks_w2blocks_w5) plus recommended_actions.
/mod-decideLock open product/design calls after a check return; sync authority surfaces on complete.
/layoverRead-only multi-repo workspace preflight audit. Cloud agents stay per-repo; you still open one cloud thread by hand.
/set-keyTerminal.app paste helper for a server-only env secret (default klosr GOOGLE_MAPS_API_KEY). Never echoes the secret.
/shrugThin alias for emoji shrug. Bare /shrug → AUTH-10 proceed. /shrug plus a closed all-standing phrase → proceed-all-standing. Never widens bare shrug.
/mod-rotateRotate the moderator to a fresh thread with a handoff file.

Playbooks /wavves routes to

PlaybookRoutes toFor
bootstrap/wavves-initFirst time in repo, no wavves/ home yet
charter-lane/charterBug fix, audit, refactor, flaky CI, overnight lane
check/mod-checkAdversarial review of a landed spec or plan before the implementation plan
decide/mod-decideLock open calls after a check return, before BUILD charter
layover/layoverPreflight a multi-repo desktop workspace (audit report; cloud stays per-repo)
set-key/set-keyExternal Terminal paste helper for server-only env secrets
paragraph-tunneldispatch STEPSMid-render structural gate for a named outbound paragraph
proof-before-acceptdispatch STEPSNamed proof job + host/blank-canvas checks before ACCEPT
rotate/mod-rotateHand off when context is heavy
pickuphydrateResume from rotation paste; mandatory same-turn remeasure on yield_awaiting_children vs return_to_O0 / hard FAIL
proceedhydrate + executeproceed as recommended, /wavves proceed; all-standing on closed phrases (all still standing, queue all standing and move, proceed all standing); bare shrug / bare /shrug stay AUTH-10 only

The right way to invoke each command

One rule governs all commands: read the matched skill in full before acting, never improvise charter, check, decide, layover or rotation steps from memory, even inside a repeat session.

Spec → BUILD order: /mod-check/mod-decide/charter. Do not charter BUILD while product forks are still open. Authority sync, scoped verdicts and /wavves proceed are documented below.

/wavves

Default entry. Type it plus a plain task description and let it route, don't pre-decide the leaf skill yourself.

/wavves the checkout webhook creates duplicate
invoices under retries. reproduce, fix and verify
with gate captures. do not deploy.

Not this: calling it with no task ("just set things up"). It needs either bounded work to charter or an explicit instruction like "set up" / "check the spec" / "lock decisions" / "proceed as recommended" / "rotate" / "where are we" to match a playbook.

/wavves-init

Only when you specifically want home setup or repair, first time in a repo or a broken standing home.

/wavves-init set up wavves in this repo. do not commit.

Not this: calling it repeatedly "just in case," or expecting it to charter work. If the home already exists, it adopts it, it never overwrites INDEX.md or AGENTS.md silently.

/charter

Only when you already know it's bounded, multi-wave work and want to skip the router. Paste Locked decisions when a check left open forks.

/charter migrate every callsite from the sync
config store to the async one. behavior must
stay identical.

Not this: chartering vague scope ("clean up the codebase"), or BUILD while named product forks are still open. Route those through /mod-decide first.

/mod-check

When a spec or plan is already landed and you want an adversarial parallel wave before writing the implementation plan or starting build.

/mod-check review docs/specs/2026-07-08-example.md
before we write the implementation plan.
adversarial parallel wave. read-only.
landing_commit_hash <hash>

Not this: using it to write the plan, lock product picks or start the build. It returns GO / REVISE / BLOCK with scoped blocks_w2blocks_w5 and recommended_actions under the lane findings.

/mod-decide

After a check return leaves open product or design calls. Invoke once to start the queue. Mid-queue, just answer the pick. Do not re-slash on every decision.

/mod-decide navigate open calls from the check
return. one decision at a time. write
decisions/*.md. no BUILD until locks are complete.
Pick: dedicated button.
Record as DSO-01. Next decision when ready.
No BUILD yet.

Not this: pasting /mod-decide again before every pick in the same thread, re-running /mod-check to "make the decisions," or asking Mod to start building mid-decide. On complete, sync authority surfaces, emit the Locked decisions paste, then /charter or /wavves proceed.

/layover

When you need an eyes-open inventory of local-only state across sibling repos in a desktop .code-workspace, before you manually open a single-repo cloud agent on one of them.

/layover audit ~/my.code-workspace. report
untracked, unpushed and stashed state per sibling.
read-only, audit-only.

Not this: expecting it to start a cloud agent, make cloud multi-root, autoconfigure wavves elsewhere or stage/commit/push. It never classifies anything as safe. One report under wavves/layovers/; you still open the cloud thread and hydrate wavves by hand.

/set-key

When a wave needs a server-only env secret (e.g. klosr GOOGLE_MAPS_API_KEY). Paste in the external Terminal window only.

/set-key open Terminal paste helper for klosr
GOOGLE_MAPS_API_KEY. remeasure set/nchars only.

Not this: pasting the secret into Cursor chat or an agent shell argv/env. Reject leaves .env.local unchanged. Densify/API follow-ups go to background runners.

/wavves proceed

After mod-check or mod-decide returns recommended_actions. Executes commit, dispatch and operator gates in order. Closed all-standing phrases inventory disk standing and move what can.

/wavves proceed as recommended
/wavves proceed all standing

Not this: using it without a verdict that names the actions, skipping operator approval gates or treating bare shrug as all-standing.

/shrug

Discoverable alias for emoji shrug. Bare form is AUTH-10 proceed only. Pair with a closed all-standing phrase to widen.

/shrug
/shrug queue all standing and move

Not this: widening bare /shrug or bare ¯\_(ツ)_/¯ to all-standing (PROC-PROCEED-SHRUG-WIDEN).

/mod-rotate

Only when the thread is genuinely heavy or you're stepping away, not preemptively.

/mod-rotate token velocity is too high. give me
the one-line paste for a fresh thread.

Not this: rotating on every small task, or assigning the successor identity yourself. The rotation file assigns O0.R<N+1>. The new thread verifies claimed commits are reachable from HEAD before trusting them.

/wavves pickup

Resume from a rotation handoff or ask what lanes are active. Hydrates from wavves/INDEX.md and the newest rotation file, not chat history. On in-flight orch notify, same-turn remeasure yield_awaiting_children vs return_to_O0 / hard FAIL (do not step-log-and-park).

/wavves hydrate from the rotation paste and tell me what's active.

Not this: treating orch yield as park-and-wait, or re-deriving settled locks from transcript scrollback. Remeasure checkpoint + child outs on disk; fail-remediation-only is for true fails, not mid-wave yield.

Demo prompts

Copy any prompt into Cursor chat after installing the plugin.

first session

/wavves set up in this repo, then audit our README for drift.
read-only, no commits.

bug fix

/wavves our checkout webhook sometimes creates duplicate
invoices. reproduce, fix and verify with gate captures. do not deploy.

flaky ci

/wavves three integration tests flake on main. fix root
causes and prove stability with a rerun gate.

overnight lane

/wavves i'm stepping away. land the auth hardening lane with
captured gates. no deploy without my approval.

layover

/wavves preflight ~/my.code-workspace. read-only audit of
sibling repos; I will open one cloud agent myself afterward.

proceed

/wavves proceed as recommended

rotate

/wavves rotate this thread. write a handoff for active lanes.

pickup

/wavves hydrate from the rotation paste and tell me what's active.

leaf: setup only

/wavves-init set up wavves in this repo. do not commit.

leaf: charter only

/charter migrate every callsite to the async config store.
behavior must stay identical.

leaf: spec check

/mod-check review docs/superpowers/specs/2026-07-08-example.md
before we write the implementation plan. adversarial parallel
wave. read-only. landing_commit_hash <hash>.

leaf: decide

/mod-decide navigate open calls from the check return.
one decision at a time. write decisions/*.md. no BUILD yet.

leaf: layover

/layover audit ~/my.code-workspace. read-only.

leaf: rotate only

/mod-rotate token velocity is too high. give me the one-line paste.

How to use it

  1. Install with /add-plugin wavves or a local copy under ~/.cursor/plugins/local/wavves/.
  2. For spec work: /mod-check/mod-decide/charter. Do not BUILD while forks are open.
  3. Type /wavves plus a plain task description. If the home is missing, bootstrap runs first.
  4. After a verdict, /wavves proceed as recommended runs commit, dispatch and operator gates in order.
  5. When the thread gets heavy, /wavves rotate or /mod-rotate and paste the one-liner into a fresh chat.
  6. Pair with Cursor /loop for long lanes that need runnable gates on disk beside the lane home.

Repository Shape

wavves/
  INDEX.md
  AGENTS.md
  registry.yml
  step-log.md
  rotations/
    rotation-r01-YYYYMMDD-HHMM.md
  lanes/
    YYYYMMDD_lane-label/
      README.md
      waveset.md
      dispatch.md
      dispatch-w{N}.md
      findings/
      gate-captures/
      decisions/
  layovers/
    <workspace-name>-YYYYMMDD.md
  skills/
    proposed/
    accepted/

How Work Moves

Moderator

Creates the lane, records model choices and keeps the operator-facing thread small.

Lane Orchestrator

Runs bounded waves, writes findings and returns decisions to the moderator.

Gate

Advances only after a disk gate capture under gate-captures/. Product lanes can also require a named proof job before ACCEPT.

Model Routing

RoleRecommended tierReason
Lane orchestratorhigh-reasoningCross-file plan and gate design.
Discovery runnersfastSearch, inventory and mechanical scans.
Build runnersbalancedBounded edits with local validation.
Adversarial gatehigh-reasoningRisk and defect judgment.
Acceptance gatehigh-reasoningFinal verification with captured evidence.