CLAUDE.md: M3a is done; M3b next; the new slot layout

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-22 21:55:27 -07:00
co-authored by Claude Opus 5.5
parent aafd9f930e
commit 6b9bd7f5f0
+11 -7
View File
@@ -8,10 +8,12 @@ Boxmaker is a sovereign personal agent harness written in Rust. Work proceeds on
time (M0 to M7, table in `docs/milestones.md`). M0 (measurements), M1 (workspace, `proto`, gate,
`Decision`), M2a (the inference path: `inferproxy`, `loopd`'s HTTP, SSE and llama client, the
startup self-test) and M2b (sessions, the turn loop, `loopd serve`, `bxctl chat`) are done. M3 is split:
M3a (`brokerd`'s decision path) is specified in `docs/specs/2026-09-18-m3a-decision-path.md`,
and its plan (22 tasks, `docs/plans/M3a/README.md`) is ready for Laguna on branch `m3a`; the
reference it was checked against is on the unpushed branch `m3a-ref` (`~/src/boxmaker-ref`).
M3b (the container runner and tools) follows it. `docs/runbook.md` has an entry for every
M3a (`brokerd`'s decision path, spec `docs/specs/2026-09-18-m3a-decision-path.md`) is done and
merged, reviewed in `docs/implementer-log.md`; its open findings (17, 18, 20, and 14, which M3b's
first task must take) are listed there. M3b (the container runner and tools) is next to plan.
Straylight now serves Ornith as four slots over one 262,144-token pool; see
`docs/inference-contract.md`, "Deployment change, 2026-09-20", before relying on cache behaviour.
`docs/runbook.md` has an entry for every
fail-closed state; any new one needs an entry and a pointer in its message. Check `docs/implementer-log.md` for
what is in flight.
@@ -46,10 +48,12 @@ requests, check `GET /slots?model=ornith-1.5-35b-a3b` so you do not evict someon
- Single test: `cargo test -p <crate> <test_name>`.
- `make audit` runs `cargo deny check advisories`; it needs the network.
- `make verify-device` (from M2a task 13) runs the ignored tests in `crates/loopd/tests/device.rs`
against straylight through a private `inferproxy`. It uses Ornith slot 0.
against straylight through a private `inferproxy`. It uses Ornith slot 0. `tools/check-m3a-device.sh`
runs `brokerd`, `loopd` and an approval end to end against it.
- `bxctl` is the owner CLI: `bxctl chat` talks to a running `loopd serve --config <path>`;
`bxctl reindex` comes in M5. Roles not yet built (`brokerd`, `gatewayd`, `toolkit`) print "not
implemented" and exit 2.
`bxctl approvals`, `approve`, `refuse`, `grants check` and `audit verify` talk to `brokerd serve`
(or read the audit log directly); `bxctl reindex` comes in M5. Roles not yet built (`gatewayd`,
`toolkit`) print "not implemented" and exit 2.
## Architecture in brief