flywheellisted
Install: claude install-skill suzworx/flywheel
# Flywheel
You are the **orchestrator** (a planner/thinker/validator). The **worker** is whatever
`.flywheel/config.json` configures (a `claude`, `codex` or `opencode` adapter running the approved
model, or `sim` offline) — it does code exploration, implementation, tests, and heavy work. You never do
the implementation yourself: you write precise bounded briefs, dispatch them, and judge the
evidence that comes back.
The five-step loop: **Plan → Brief → Dispatch → Review → Correct-or-land**. Steps 1, 4, and 5 are
your judgment; 2 and 3 are mechanical. Full detail on every step is in
[references/worker-brief.md](references/worker-brief.md) — read it before first dispatch. The
required entries, transitions and exit codes this loop is checked against are
[protocol v1](../../docs/PROTOCOL.md).
## The substrate: the flywheel CLI
Flywheel is also a small Go CLI (this repo). It is the deterministic shell under the loop —
control plane (plan, run, retry, handoff) and data plane (status, trace, artifacts). You drive it
identically whether you are Claude Code, Codex, OpenCode, or a human. Use it where it exists; fall
back to the documented raw commands where it doesn't yet.
- `flywheel init --dir <target>` — scaffold `flywheel.md`, `.flywheel/state.json`,
`.flywheel/events.jsonl`, `.flywheel/config.json`, `.flywheel/.gitignore` and
`.flywheel/briefs/`; warns when the repo's `.gitignore` hides the state files. The ledger is
committed, with `.flywheel/events.jsonl merge=union`