Specify M3a (the decision path) and write the runbook
Split M3 into M3a and M3b, record the M3 design decisions, propose P13 (tool image built by Nix, named by digest), and add docs/runbook.md with an entry for every fail-closed state, including loopd's existing ones. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,8 +7,10 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
Boxmaker is a sovereign personal agent harness written in Rust. Work proceeds one milestone at a
|
||||
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
|
||||
(`brokerd`) is next to design. Check `docs/implementer-log.md` for
|
||||
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`;
|
||||
M3b (the container runner and tools) follows it. `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.
|
||||
|
||||
- `docs/design.md` is the binding design brief. If it looks wrong or conflicts with a measurement,
|
||||
|
||||
Reference in New Issue
Block a user