Markdown under .claude/
Orchestration
Slash commands, roles, and hooks that run the waves and spawn, review, and retire teammates, driven by the lead: your main Claude Code session.

βάθος — Greek for “depth, the abyss.”
BATHOS turns a single Claude Code session into a disciplined team: 17 specialist roles across a 7-wave pipeline, scale-adaptive routing, and hard quality gates, all backed by a deterministic Rust engine.
v0.2.0 · Rust engine · runs on Claude Code
Build the engine, point your hooks at it, then drive the pipeline from Claude Code.
Clone the repository and compile the single Rust binary.
git clone <your-fork-url> bathos && cd bathos
cd core && cargo build --release && cd ..Set BATHOS_BIN so the commands and hooks can find the engine.
export BATHOS_BIN="$(pwd)/core/target/release/bathos"Open Claude Code in your project and run the wave commands in order.
/team-kickoff
/route /abs/path/to/project
/wave1-discovery /abs/path
/wave2-design /abs/path
/wave3-story-gate /abs/path
/wave5-implement /abs/path
/wave6-verify-report /abs/path
/team-confirmRequires Claude Code v2.1.32+ with Agent Teams enabled, plus the Rust toolchain and jq.
A single long LLM conversation drifts: context is lost between design and build, checks get skipped, and the same model both writes and approves its own work. BATHOS replaces that with structure.
You mostly type slash commands. A single Rust binary is the deterministic core those commands call underneath.
Markdown under .claude/
Slash commands, roles, and hooks that run the waves and spawn, review, and retire teammates, driven by the lead: your main Claude Code session.
A single static Rust binary
Computes and enforces state, gates, wave transitions, routing, story freshness, and plugins. The hooks and commands invoke it automatically.
Work moves from discovery to a verified release through explicit waves. The mainline is W0 → W1 → W2 → W3 → W5 → W6; IP & research (W4) is an optional plug-in off the critical path.
W0
Caleb
Optional pre-brief: brainstorm, forge the idea, product brief.
W1
John · Caleb
Reverse-engineering and market research; sharpen the USP.
W2
Joshua → James · Jonnathan
Planning gates the wave, then architecture and UX in parallel.
W3
Matthew + Thomas · Matthias
Condense to self-contained story files; the implementation-readiness gate.
W4
Mark · Nathanael
Optional plug-in, off the critical path. Patents and papers.
W5
Phillip · Andrew · Stephen
Backend, frontend, and ML build against the story files.
W6
Thomas · Michael · Hananiah · Martin
Review, security audit, behavior-preserving refactor, and the release report.
Wave 3 · the heart
Wave 3 closes the design-to-build gap: the story engineer condenses upstream work into a self-contained story file where every technical claim is tagged to its source, independent reviewers sign off, and on FAIL a hook physically blocks entry into implementation.
BATHOS activates only the waves a task needs. The router recommends a level from four stakes axes; you confirm it.
| Level | Work type | Active waves |
|---|---|---|
| Lv0 | Bug fix / trivial | W5 (+ minimal W6) |
| Lv1 | Small feature / local refactor | Light W2 + W3 (slim) + W5 + light W6 |
| Lv2 | Standard feature / module | W1 + W2 + W3 + W5 + W6 |
| Lv3 | New product / large | W0–W6 (W4 optional) |
| Lv4 | Enterprise / deep-tech / regulated | Full W0–W6 + W4 |
The lead is your main session and is never spawned. Specialists are spawned per wave, with concurrency capped at three.
Every wave gate speaks one vocabulary, and the critical one is enforced in code. No evidence-free auto-pass.
PASS
Criteria met, no blockers
Proceed to the next wave
CONCERNS
Conditional pass, non-blocking risk
Log the risk, then proceed
FAIL
Blocking defect
Entry blocked; remediate and re-gate
Every state change is written to a keyed audit hash-chain (HMAC-SHA256). A single command, bathos audit verify, proves the trail has not been altered.
The critical invariants (state, gates, routing, story freshness) live in a single static Rust binary, so they are computed and enforced the same way every time.
$ echo '{"scope":"feature","novelty":true}' \
| bathos --state-dir _state route decide
→ {"recommended_level":2,"requires_confirmation":true}Recommend a level from the stakes. The engine proposes, you confirm.
Read the source, or explore more on the web.