docs(skills): owner loop-doctrine + collaborator delivery discipline, remediated (#44)

ms-communications: integrated as-authored - owner preamble restructure +
collaborator delivery-discipline hunks from the #43 calibration (own
session output is not a send path; the tool performs the preamble flip;
receiving rule 3 requires actually running agent-send.sh).

ms-conductor: collaborator redraft integrated (canon-aligned tracking
surfaces, one-action cadence, fail-closed core) with one conductor
remediation - step 3 now distinguishes refusal (fail closed, never
bypass) from runner outage (direct dispatch to a qualified live seat via
ms-communications permitted, recorded loudly as degraded: no sandbox, no
run record; suites still gate integration). Preserves the owner's
outage-dispatch intent inside invariant 6.

docs/TOOLS.md: release.sh ensure row added (M16 subcommand existed in
code but not in the doc - flagged by the collaborator, verified in
release.sh usage).

Authorship: owner (ms-conductor doctrine, preamble restructure) +
ms-test collaborator (delivery hunks, redraft); remediation + integration
by conductor (dragon-lin:darkwing). Suites 24/74/14/17 + verify green;
unslop clean.
This commit is contained in:
2026-09-03 17:17:29 -05:00
parent c8f433131c
commit bf56583a49
4 changed files with 63 additions and 16 deletions
+24 -10
View File
@@ -16,24 +16,35 @@ SESSIONS.md, never in a pane that scrolls away.
submits reliably (bracketed paste, Enter flush, draft detection), and ships
itself over ssh for remote targets. Never raw `tmux send-keys`; that is how
messages die as unsubmitted drafts.
- Non-Fleet seats use the default docket.
- Fleet seats use the named socket: `-L mosaic-fleet` (or `MOSAIC_TMUX_SOCKET`).
Fleet traffic stays off the user's default tmux server.
- Address durable fleet seats exactly: `=coder0`, not a prefix that might match
two sessions.
- Tool spec and internals: `tools/tmux/README.md`.
- Your own session output is not a send path either. A reply composed as
assistant prose, however well formatted, delivers nothing to the
recipient's pane; a hand-written preamble in prose is decoration, not
delivery. A reply exists only once `agent-send.sh` has run, and its exit
code is the delivery receipt. No rc, no send.
## Preamble (required)
### Preamble
Preamble is prepended to the message when using the `agent-send.sh` script.
Check the script for usage instructions.
```
[<src_host>:<src_session> -> <dst_host>:<dst_session>] <message>
[<src> -> <dst> class=<CLASS>] <message> # with triage class
```
`host` is `hostname -s` of the sender's machine; `session` is the tmux session
name. `agent-send.sh` writes the preamble for you. Two rules carry the protocol:
- Non-Fleet seats use the default docket.
- Fleet seats use the named socket: `-L mosaic-fleet` (or `MOSAIC_TMUX_SOCKET`).
Fleet traffic stays off the user's default tmux server.
- Address durable fleet seats exactly: `=coder0`, not a prefix that might match
two sessions.
- Tool spec and internals: `tools/tmux/README.md`
- `host` is `hostname -s` of the sender's machine; `session` is the tmux session
name. `agent-send.sh` writes the preamble for you. Two rules carry the protocol:
1. Replying? Flip it: `[<dst> -> <src>] ...`. Answer under your own lane.
The tool performs the flip: aim your send at the original sender's session
(`agent-send.sh -s <src_session> -C <class>`) and it writes the flipped
preamble for you. Never write the bracket line yourself.
2. A preamble-less cross-agent message is malformed. If you receive one, ask
the sender to resend before acting on it.
@@ -66,7 +77,10 @@ Class honestly. Never downgrade a question you want answered to `terminal-log`.
1. Read the preamble first. Confirm you are the `dst`. Note the `src`.
2. Triage by class (table above). `actionable` or absent: act now, or reply why not.
3. Reply with the preamble flipped. Cite the run id or issue you acted on.
3. Reply by sending: invoke `agent-send.sh` aimed at the sender's session; the
tool writes the flipped preamble. Cite the run id or issue you acted on.
Formatting the reply into your own output without running the tool leaves
the sender with nothing; that is a dropped reply, not a late one.
## Delivery mechanics