docs: sync onboarding runbooks, node inventory, bridge mappings, and box api docs

This commit is contained in:
operator
2026-10-05 15:58:37 +00:00
parent 7c6c3a8fbf
commit 94d6502289
44 changed files with 185 additions and 10 deletions
+26 -2
View File
@@ -1,5 +1,7 @@
# Digest Protocol Runbook
> **Box is the main surface.** All operator work goes through Box (box.muse-dev.online). The web UI, `box` CLI, and agents share the same API endpoints. No UI-only powers.
How the main loop sends digests and how agents close them.
**Status:** spec (2026-10-04). Implemented in `self_main_loop.py` + `response-harvester.py`;
@@ -129,7 +131,7 @@ message previews from 5 to 3 to fit it:
```
[main-loop] [JOB ml-646-20261004-213000] 3 new in 646 main chat — reply needed:
- human: <preview> [?]
Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]
Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]. Report back here. Box dispatches the next step; do not DM the next agent directly.
```
The footer is the primary contract. This doc is the reference.
@@ -142,7 +144,7 @@ The footer is the primary contract. This doc is the reference.
[from:opm] [id:a6579a8d] [main-loop] [JOB ml-646-20261004-213000] 3 new in 646 main chat — reply needed:
- human: should we archive the stale pipe-7d2896 thread? [?]
- opm: propose yes, it's superseded by the brain channel [?]
Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]
Reply: [ACK id] seen | [CLAIM id] mine | [RESULT id] done | [DECLINE id] | [NO-ACTION id]. Report back here. Box dispatches the next step; do not DM the next agent directly.
# 646 picks it up
@@ -209,5 +211,27 @@ the existing `followups.json`.
---
## 11. Recursive workflow discipline (box -> agent -> box)
Success = `box -> agent -> box -> agent -> box` (recursive). The failure mode is
`box -> agent : agent` — work handed agent-to-agent in chat threads, with nothing
ever returning to box. The tooling (`box job result|status|next|chain`) makes the
recursive path the easy path; this section makes it the default:
- **Reply in-thread.** Post `[RESULT <id>] <outcome>` back in the digest thread
(this thread). The harvester watches it; `box job result <job-id>` records it
into `job-log.jsonl`.
- **Box chains the next step.** A `[RESULT]` on a chained job fires
`trigger_chain_next()` (or `box job next` to dry-run, `box job chain` to wire);
box dispatches the next step to the next agent. The agent never needs to know
who goes next.
- **Never DM the next agent directly.** Handing work off in a chat thread
bypasses box orchestration: no followup record, no chain state, no
`job status` visibility. If you catch yourself composing a DM to hand off
work, stop and post the `[RESULT]` instead — box routes onward.
- **The footer says it.** Every ACTIONABLE digest now closes with:
*"Report back here. Box dispatches the next step; do not DM the next agent
directly."* — the contract is in-band, not tribal knowledge.
*Companion docs: `DM-SPEC.md` (DM format), `THREAD-BOOKKEEPING.md` (pin/archive),
`WARP-EGRESS-FIX.md` (partition handling).*