diff --git a/docs/remediation/BOARD.md b/docs/remediation/BOARD.md index 38348c54..149424d9 100644 --- a/docs/remediation/BOARD.md +++ b/docs/remediation/BOARD.md @@ -31,8 +31,8 @@ three times in one session by duplicating that table (D-26's class). Read the table. ⚠ **And re-derive any board claim from the provider before load-bearing use (D-43)** — the board is sole-written and has no independent verifier. -2. **`docs/remediation/TASKS.md` is authoritative**, not the newest voice in a chat. It holds 53 findings - (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-52 + D-38c in TASKS.md), every ruling with its rationale, and the +2. **`docs/remediation/TASKS.md` is authoritative**, not the newest voice in a chat. It holds 54 findings + (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-53 + D-38c in TASKS.md), every ruling with its rationale, and the requirements each finding placed on RM-02/RM-34/RM-50/RM-55. 3. **`MISSION.md` carries the first-class principles** — read them there, they are not listed here. Two added 2026-08-01: **the anchor must live outside the audited party's authority** (D-19/D-25/D-45, @@ -78,6 +78,6 @@ Roster rolled verbatim to [`BOARD-LEDGER.md`](./BOARD-LEDGER.md); live truth is ## Decisions log — full record in [`TASKS.md`](./TASKS.md) -All 53 findings (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-52 + D-38c in `TASKS.md`) and every ruling with +All 54 findings (D-1…D-6 in `BOARD-LEDGER.md`, D-7…D-53 + D-38c in `TASKS.md`) and every ruling with its rationale live there. **Not duplicated here.** The history of _why_ this board must not restate — six stale copies across two seams — is rolled verbatim into [`BOARD-LEDGER.md`](./BOARD-LEDGER.md). diff --git a/docs/remediation/TASKS.md b/docs/remediation/TASKS.md index 9fc5c22c..73293ceb 100644 --- a/docs/remediation/TASKS.md +++ b/docs/remediation/TASKS.md @@ -641,6 +641,43 @@ a fourth anchor; ran independent code + security review **on its own fix**; comm (EROFS/EPERM) rather than substituting; named exit-97 as the known **#973/D-16** limitation rather than a finding. +### D-53 — a sender label that was WRONG for hours while looking exactly right + +`agent-send.sh` derived the **sender** label from the `-L ` flag. So a cross-socket +message was stamped with an **arbitrary session from the socket the sender was NOT attached to**. One +lead's messages arrived **for hours stamped as the recipient**. Fixed on `main`: source now comes from +the caller's own `$TMUX`. + +> **★ THE PROVENANCE LABEL WAS FALSE AND PLAUSIBLE AT THE SAME TIME — which is the only dangerous kind.** +> A garbled label gets questioned. A label naming a real seat that really exists on a real socket does +> not. Same family as **D-33** (a summary that resembles an enumeration) and **D-48** (a boundary +> statement that reads as rigorous). **Nothing about it invited scrutiny.** + +**★ THE FIX'S DESIGN CHOICE IS THE TRANSFERABLE PART: it now reports `?` rather than borrowing a +plausible name.** Refusing to guess beats guessing well. + +> **This is the SAME discipline as `NOT-MEASURED`, adopted the SAME DAY on the credential thread:** +> identity absent must be rendered **absent**, not as a pass and not as a fail. **An unknown rendered as +> a plausible value is worse than an unknown rendered as unknown** — the first is consumed as fact, the +> second is consumed as a question. Two subsystems, one day, same conclusion, reached independently. + +**Orchestrator ledger audited on receipt of the notice: CLEAN.** Zero mis-attributed sources reached +`TASKS.md` or `BOARD.md`. The reason is worth keeping as practice rather than luck: **rulings were +recorded from the message BODY (which carried its own `[mos-claude -> mos-remediation]` header), not +from the transport ENVELOPE.** Where a message self-identifies, the body is the claim and the envelope +is metadata — **and the envelope was the part that was broken.** + +**ROUTING DEFECT, now doctrine:** the USC message was addressed to **"orchestrator" — a ROLE, and there +is one on EACH estate**. `agent-send.sh` resolves a session NAME, so a role-addressed message routes to +whichever seat happens to carry that name on the socket in reach. + +> **BINDING: ADDRESS SEATS, NOT ROLES; ESTATE-QUALIFY ANY NAME THAT EXISTS ON BOTH ESTATES.** + +Nothing misfired — **the addressee was ambiguous.** The cost was bounded only because the recipient +declined to act on another estate's delivery **while still checking whether any line of it constrained +its own estate.** Declining to act but silently letting a stale cross-estate constraint ride would have +been the actual failure. + ### D-51 — the fix is merged, the issue is closed, and the RUNNING TOOL IS STILL BROKEN `#1032` merged (`58b971ab`), `#1019` closed, both verified by property. **RM-03 is delivered to `main`.**