| title | Quickstart |
|---|---|
| description | Get a Bluewater small ship running in a fresh directory. |
Goal: ten minutes to a running small ship with watch standing (on-call rotation), deterministic monitors (alarms that don't burn LLM tokens until they fire), and the brevity linter (a check that agents talk to each other tersely) live.
First time?
docs/concepts.mdxexplains the naval theming in software-engineering terms;docs/glossary.mdxis a one-page lookup. Either is a 5-minute read.
mkdir my-ship && cd my-ship
gc initgc init creates city.toml, the .gc/ runtime directory, and a
rigs/ placeholder.
Replace the generated city.toml with the small-ship example:
curl -fsSL https://raw.githubusercontent.com/boylec/bluewater/main/examples/small_ship.city.toml > city.toml(Or copy the file directly from your local clone of this repository.)
Edit [workspace] name to your ship's name.
Add provider configuration. Two providers recommended:
[providers.claude]
# anthropic API key via env or here
[providers.codex]
# codex configgc startThe wardroom comes up:
- XO spawns (always-on per pack named_session).
- OOD spawns (always-on; takes the conn).
- Yeoman spawns (always-on, log keeper).
- MAA spawns (always-on, pre-tool-use guard).
- Cook does NOT spawn (deterministic — its check script is wired into
the
agent_stalledorder on a 1-minute interval).
CO and COB are not spawned at startup; they wake on demand.
Add a rig (any project will do):
gc rig add ../some-projectFile a bead:
gc bd create --rig some-project "Add a one-line README for the project" -t taskThe flow:
- FC pool (under CSO) picks up; produces a structured bead with target branch and success criteria.
- GM polecat picks up; writes the change in a worktree on a feature branch; pushes; reassigns to Helmsman.
- Helmsman rebases, runs tests, merges (fast-forward only).
convoy_landedorder fires; Yeoman summarizes.
Watch the dashboard:
gc dashboardYou should see the watch turnover happen automatically when OOD's context-utilization crosses the threshold (default 65%). The brevity linter should show 'advisory' findings (not blocking) on early agent- to-agent traffic.
Manually trigger the casualty alarm to verify the wardroom comes up:
gc event emit ci.failed --subject some-projectExpected:
- Yeoman stamps the GQ entry with timestamp and source.
- CIC Watch broadcasts BREAK BREAK FLASH.
- CO spawns; XO and CSO are awakened.
- Wardroom reads the situation brief and decides intent.
- After 30 minutes of stable state, CO calls 'secure from general quarters' and BoI bead is filed.
If any of these steps does not happen, see the troubleshooting section
of docs/install.mdx.
docs/first_watch.mdx— your first watch end-to-enddoctrine/— the doctrine layer agents inherit