← ClaudeAtlas

wave-sharedlisted

Shared reference that the wave execution skills — wave-start, wave-reviewer, wave-close — load for the exact result shapes a dispatched agent has to return, and for the working rules they all follow: checking access to the tracker and the code host up front, handling each review outcome the same way every time, and writing to a wave's plan file without ever leaving it half-written. Read via a sibling-path file read by those skills, from their own base directory rather than loaded by name; never picked on its own.
formtrieb/flotilla · ★ 3 · AI & Automation · score 72
Install: claude install-skill formtrieb/flotilla
# wave-shared The shared substrate the **execution** skills (`wave-start`, `wave-reviewer`, `wave-close`) read via a sibling-path file read. It carries no judgment and is **never model-invoked** (`disable-model-invocation: true`) — siblings reach for it explicitly, as a file beside their own base directory rather than through the Skill tool. It owns the three things those skills must agree on byte-for-byte: 1. **The canonical agent-boundary JSON schemas** — `WORKER_REPORT_SCHEMA` and `REVIEWER_VERDICT_SCHEMA`, inlined verbatim below. A skill cannot `import` a TS const, so the Workflow driver pastes these literals into `agent({ schema })`. They are **copies** of `tools/wave/src/worker-report-schema.ts` / `reviewer-verdict-schema.ts` and the drift-guard spec (`tools/wave/src/skill-schema-drift.spec.ts`) deep-equals them to the exported consts on every run — if you edit a literal here, the spec fails until the source const matches. 2. **The auth-preflight convention** — `detect-host` → verify, before any tracker write. 3. **The deterministic routing chain** — `route-verdict` / `route-outcome` → `issue-store transition` → spine write, with one **atomic spine write per state flip**. The CLI invocation detail (exact flags, exit codes, the `{{wave-cli}}` resolution) lives in [reference/routing-mechanics.md](reference/routing-mechanics.md). ## Sibling-path loads (the cross-skill composition finding) `wave-shared` is never model-invoked — `disable-model-invocation: true` removes