AGENTS.md, CLAUDE.md, dependencies: the shared crate is bxcore

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-26 01:49:21 -07:00
co-authored by Claude Opus 5.5
parent 2b3ae080b4
commit 9672cb5e53
3 changed files with 11 additions and 10 deletions
+4 -3
View File
@@ -96,14 +96,15 @@ Separate binaries in one Cargo workspace. Each role holds as little authority as
`!approve`/`!deny` replies over the WebSocket.
- `inferproxy` is a ~100-line byte forwarder from a Unix socket to the shared `llama-server`
router on the host. It is required, because `loopd` has no network.
- `proto` holds shared types. `toolkit` holds tool container entrypoints.
- `bxcore` (formerly `proto`) holds shared types, and from M5b the secret store and the
sanitizer. `toolkit` holds tool container entrypoints.
Structural rules that span crates:
- No crate depends on another role's crate. Crates depend only on `proto`.
- No crate depends on another role's crate. Crates depend only on `bxcore`.
- Authority is encoded in types. A tool can't run without a `Decision`. It is defined in
`brokerd` with a private field and no `Deserialize`, so only the policy module can construct
one (covered by a compile-fail test). `proto` carries a plain `DecisionRecord`.
one (covered by a compile-fail test). `bxcore` carries a plain `DecisionRecord`.
- No source file over 500 lines.
- Files are the source of truth (`sessions/`, `memory/`, `grants/`, `audit/`). SQLite is only
for rebuildable indexes and queues.