From be10bdc8281f109daa41389a2688574bccb7e62a Mon Sep 17 00:00:00 2001 From: mos-dt-0 Date: Fri, 31 Jul 2026 18:01:55 -0500 Subject: [PATCH] =?UTF-8?q?docs(remediation):=20board=20tick=20=E2=80=94?= =?UTF-8?q?=202=20PRs=20merged,=20RM-01=20on=20rotated=20seat,=20dispatch?= =?UTF-8?q?=20doctrine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Board now carries the pre-dispatch capability check (token-file existence), the token/authorship coherence rule, and the accreted worker-brief doctrine, so a compacted or fresh seat inherits them mechanically rather than by recall. Co-Authored-By: Claude Opus 5 (1M context) --- docs/remediation/BOARD-LEDGER.md | 10 ++++++++++ docs/remediation/BOARD.md | 34 ++++++++++++++++---------------- 2 files changed, 27 insertions(+), 17 deletions(-) diff --git a/docs/remediation/BOARD-LEDGER.md b/docs/remediation/BOARD-LEDGER.md index 9510ff92..7c9e1560 100644 --- a/docs/remediation/BOARD-LEDGER.md +++ b/docs/remediation/BOARD-LEDGER.md @@ -13,3 +13,13 @@ Correct for the CI container (runs as root), fatal for EVERY non-root local chec ### **D-2 / hygiene — husky `prepare` fails `EPERM` copying into root-owned `.husky/_/`.** Repo working tree has root-owned dirs (`.husky/`, repo root) under a non-root agent. Worked around with the intended `HUSKY=0` escape hatch (does NOT disable the existing pre-commit/pre-push hooks). + + + +### **D-5 / P-QUEUE-001 + P-CONFORMANCE-001 — KEYSTONE: an inert gate that erased its own evidence.** + +Merged PR #868 (`b79336a8`) shipped a file that FAILS `pnpm format:check` ⇒ the CI format gate did not block. An unrelated later PR (#872) then reformatted that file via its own `lint-staged`, so `main` went green again and nobody learned the gate had failed to fire. Verified blob-level under the repo's own config. **Detection must be per-merge-commit against that commit's own tree** — a "is main green today" check reports all-clear on this exact defect. Binding on RM-02/RM-55. Full chain in `TASKS.md` §1a. NOT quiet-patched, by Mos's ruling: patching the symptom destroys the signal. + +### **D-4 / P-LIFECYCLE + hygiene — a dispatched agent silently IGNORED an in-message context reset.** + +planner-sol was at 64.3%/372k; the brief asked it to reset first; it began work on dirty context anyway. Only an out-of-band `/new` driven by the orchestrator guaranteed clean state. Confirms the postmortem thesis: **instructions are not enforcement.** Reset must be a mechanical pre-dispatch step, not a request. diff --git a/docs/remediation/BOARD.md b/docs/remediation/BOARD.md index 8d4d9d58..4f5c14b6 100644 --- a/docs/remediation/BOARD.md +++ b/docs/remediation/BOARD.md @@ -1,6 +1,6 @@ # mos-remediation — LIVE BOARD (keep < 8 KB) -**Phase:** EXECUTING — first PR merged; RM-01 in flight; all 3 decisions ruled. +**Phase:** EXECUTING — 2 PRs merged; RM-01 in flight (rotated seat); 11 dogfood classes banked. **Updated:** 2026-07-31 (mos-remediation orchestrator; seat active on `mosaic-fleet`). ## Head @@ -16,14 +16,14 @@ ## In-flight -| Task | Owner | State | -| ------------------------------------------------- | --------------- | ------------------------------------------------------------------ | -| PR #1026 docs (mission record + backlog) | mos-remediation | OPEN, retargeted to main, rebased; diff verified docs-only | -| PR #1025 hygiene | — | **MERGED** 52414605; rev-974 APPROVE + CI #2158 8/8 terminal-green | -| DECISION-1 wire-in point (charter change) | Mos / Jason | ESCALATED — both planners reject the charter's target | -| DECISION-2 rollback artifact + availability trade | Jason | ESCALATED | -| DECISION-3 RM-03 vs parked PR #1023 ownership | Mos | ESCALATED | -| RM-01 reproducible checkout (unblocks everything) | unassigned | READY TO DISPATCH | +| Task | Owner | State | +| ----------------------------------- | ---------- | ------------------------------------------------------------------ | +| PR #1025 hygiene | — | **MERGED** 52414605 (rev-974 APPROVE + CI 8/8 terminal-green) | +| PR #1026 mission package | — | **MERGED** 01e966f3 (docs policy: CI-green, precedent #968/#863) | +| PR #1027 RM-01 | f10-coder | **DRAFT** — AC2/3/5/7/8 proven; AC1/AC4/AC6 open | +| RM-01 remainder: AC6 race, AC1, AC4 | f10-coder | IN FLIGHT on ROTATED seat (reset 0.0%, rehydrated from #1027 body) | +| RM-03 queue guard (3 defects) | — | **HOLD** — #1023 SUPERSEDED-PENDING-JASON | +| RM-02 gate registry (keystone) | unassigned | READY — explicitly NOT held by RM-03 | ## Fleet seats @@ -39,6 +39,14 @@ - Freeze: LIFTED for this workstream only. - Git identity: `MOSAIC_GIT_IDENTITY=mos-dt-0` INTERIM. Mos ruled gate-16 HOLDS (author≠reviewer is what gate-16 protects; rev-974 reviews, mos-dt-0 never self-reviews). Dedicated identity TRACKED, Mos provisions. +- Capability check (D-11b): before dispatching seat X to provider Y, verify + `~/.config/mosaic/secrets/gitea-tokens/gitea--.token` exists. Token-file set = authoritative + capability registry. Mos owns provisioning; escalate missing pairs to him. +- Seat identity (D-11a): token identity AND `git config user.name`/`user.email` must BOTH be set and + agree. Exporting `MOSAIC_GIT_IDENTITY` alone does NOT fix commit authorship. +- Standing worker-brief doctrine (accreted, mandatory in every brief): don't weaken a RED test to make + it pass; if a check is unrunnable as written SAY SO, never silently substitute; `agent-send -f` never + `-m`; heavy artifacts off shared `/tmp`. - Remote control: native `/remote-control` NOT wired in this runtime. Path is **Mos-relay** (Jason ↔ mos-claude via Discord ↔ mos-remediation via agent-send). Not a blocker. @@ -72,14 +80,6 @@ PR #1025 AC2's fixture `mkdir -p apps/*/venv/lib` creates a literal `apps/*/venv Running the required `ci-queue-wait.sh --purpose push` before pushing produced `state=unknown ... exit 0` — the exact defect at `ci-queue-wait.sh:282-288` that PR #1023 is parked on. It also evaluated `branch=main` rather than the branch being pushed. The mission's own required pre-push gate passed me on an indeterminate result. Third independent live instance of the class. -### **D-5 / P-QUEUE-001 + P-CONFORMANCE-001 — KEYSTONE: an inert gate that erased its own evidence.** - -Merged PR #868 (`b79336a8`) shipped a file that FAILS `pnpm format:check` ⇒ the CI format gate did not block. An unrelated later PR (#872) then reformatted that file via its own `lint-staged`, so `main` went green again and nobody learned the gate had failed to fire. Verified blob-level under the repo's own config. **Detection must be per-merge-commit against that commit's own tree** — a "is main green today" check reports all-clear on this exact defect. Binding on RM-02/RM-55. Full chain in `TASKS.md` §1a. NOT quiet-patched, by Mos's ruling: patching the symptom destroys the signal. - -### **D-4 / P-LIFECYCLE + hygiene — a dispatched agent silently IGNORED an in-message context reset.** - -planner-sol was at 64.3%/372k; the brief asked it to reset first; it began work on dirty context anyway. Only an out-of-band `/new` driven by the orchestrator guaranteed clean state. Confirms the postmortem thesis: **instructions are not enforcement.** Reset must be a mechanical pre-dispatch step, not a request. - ## Decisions log