Files
stack/docs/remediation/BOARD.md
T
mos-dt-0andClaude Opus 5 4520d2f672 docs(remediation): promote two first-class principles to the charter; dispatch RM-02 round 3
Mos ruled both open questions and promoted the pattern to the charter.

PRINCIPLE 1 — the anchor must live outside the audited party's authority. You cannot fix "the author
controls X" by deriving X from something the author also controls; deriving only MOVES the control
point. Third independent arrival of one conclusion, each reached while shipping something else and each
from a different direction: the manifest certifying its own tree (D-19), the sandbox evaluating code
that enters before the boundary exists (D-25), and now the registry seam derived from a path the author
also places (D-45). Three impossibility-derivations of the same conclusion is the strongest
architectural evidence this mission has produced, and it is what forces Builds 1-2 rather than making
them a preference.

PRINCIPLE 2 — no universally-quantified check may pass over an empty set. "All registered cases ran" is
vacuously true when there are none. Non-emptiness and anchoring are preconditions asserted before the
quantified check runs, not properties hoped for after. The identical vacuity appeared twice at two
levels — seam=HEAD emptied the commit range, an emptied manifest emptied the registry population — and
the first was fixed as an instance, so it returned one level up. Corollary, same disease: a clause
written for the instance that produced it is not a clause.

Q1 ruled: the merge-base anchor IS in scope for f10-coder in this PR. It is git-computable against
main, which the author does not control, so reordering or splitting within the branch cannot move it —
an existing non-author-controlled reference, no new infrastructure. RM-60's execution boundary is a
sibling under the same principle but a different mechanism (where gate-verify runs, not what the anchor
is) and stays with Mos and Jason. Honesty required in both directions: the merge-base anchors to main,
whose integrity rests on the merge discipline this registry enforces — a bootstrap, sound against an
author who cannot rewrite main and NOT sound against an attacker who can, with that residual bound to
the Builds 1-2 dependency rather than implied.

Q2 ruled: state the empty-set principle as a general clause now, and generalize the D-38/D-40 criteria
the same way — quantify over the population instead of relabeling the originating instances.

Round 3 dispatched to f10-coder: merge-base anchor plus delayed-introduction must-fail; empty-set
precondition as a general clause with an emptied-registry must-fail; generalized clauses bound across
the gate inventory; each red-first. Number.isInteger accepting zero/negative/unsafe pipeline numbers
banked as a non-blocking follow-up.

Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
2026-08-01 12:08:21 -05:00

8.0 KiB
Raw Blame History

mos-remediation — LIVE BOARD (keep < 8 KB)

Phase: EXECUTING — RM-03 at owner-merge; RM-61 MERGED; RM-02 keystone is the front. Updated: 2026-08-01 — seam crossed; successor seat resumed, attested from the files, and is driving. ⚠ That was a MANUAL pane respawn (prior seat ~803k tokens): it validates the checkpoint+rehydration design, NOT a lifecycle mechanism — P-LIFECYCLE rotation does not exist yet (D-41 / RM-62).

Head

  • Charter + 15 decisions + 4-build plan: MISSION.md. Backlog + all findings: TASKS.md.
  • Planning DONE (58 tasks, P0P5). DECISION-1/2/3 all RULED by Mos 2026-07-31 (TASKS.md §5) — nothing is waiting on a decision. D-2's availability target is Jason-pending and non-blocking.
  • Executing, not planning. RM-01 is MERGED; three lanes are live (see In-flight).
  • Orchestrator seat mos-remediation LIVE, owns the mission, resumed across the rotation seam 2026-08-01 and re-attested to Mos from the files. Residency attestation: PASS.

In-flight

Task Owner State
RM-01 checkout MERGED f58b3699 (#1027)
RM-03 queue guard Jason GO @ 78ec47cd (cmt 20392) — HELD FOR OWNER MERGE. Head unmoved; GO commit-bound, VOID if it moves — do not push #1032
RM-02 registry ★key MOS 2nd NO-GO @ 32b490a7. D-44's four closed as instances; D-45 (derivation still author-controlled via introduction timing) + D-46 (empty registry passes green) + D-47 (clauses instance-scoped). DISPATCH PAUSED — fix needs a non-author anchor, may cross RM-60
RM-61 CI exemption MERGED f4fd5967 (#1033). #1034 closed; #1000 stays OPEN (retirement trigger). Exemption is on main
RM-59 / RM-60 Jason (infra) tracked deps; RM-60 option B
#1023 queue attempt Jason SUPERSEDED-PENDING-JASON — live REQUEST_CHANGES, do not merge

For the incoming orchestrator — read this before acting

  1. Lane state lives in the In-flight table above — this item does NOT restate it. It went stale 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 48 findings (D-1…D-6 in BOARD-LEDGER.md, D-7…D-47 + 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, third arrival) and no universally-quantified check may pass over an empty set (D-44/D-46).
  4. Seat identity: export MOSAIC_GIT_IDENTITY=<seat> is stripped by a context reset (D-34) — every dispatch/rehydration brief must re-export it, or the seat cannot use its credentials.
  5. Scan CI from -f json, never default text — text mode omits clone (D-33). State counts.
  6. The queue guard is zero-information until RM-03 merges (D-23) — never cite its green.
  7. The bounded CI re-roll used on RM-02 was a one-time stopgap, NOT policy. A per-PR free re-roll is D-21 normalisation. Do not repeat it; RM-61 is the fix.

Delivery gates — REFERENCE, do not restate

Canonical: ~/.config/mosaic/fleet/roles.local/merge-gate.md (verdict authority) + ~/.config/mosaic/fleet/roles/validator.md. Order and the freeze/zero-information rules: MISSION.md and KICKSTART.md. Read them there (why: D-26, in BOARD-LEDGER.md).

Fleet seats

  • mos-remediation — project orchestrator (Claude, /src/mosaic-stack, socket mosaic-fleet) — ACTIVE
  • planner-opus — adversarial planner (robustness), Opus 5, socket default — DELIVERED, idle
  • planner-sol — adversarial planner (pragmatic), gpt-5.6-sol, socket default — DELIVERED, idle
  • rev-974 — mosaicstack reviewer identity (id 16, write:repository) — idle, on call
  • Mos (mos-claude) — lead coordinator, socket default — relay path to Jason

Gate status

  • Freeze: LIFTED for this workstream only.
  • Git identity: orchestrator runs 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 + seat identity (D-11b / D-11a, incl. the false-NEGATIVE twin): authoritative in TASKS.md. Short form — assert the DIFFERENTIAL as that seat (authenticated push:true vs unauthenticated push:false); a single endpoint can be true for anyone or 403 for an unrelated scope. Full text rolled to BOARD-LEDGER.md.
  • LIVE HAZARD (D-37) — one shared .git/config re-identifies EVERY worktree at once. Every seat, including rev-974's review worktree, currently authors as coder-mos1; MOSAIC_GIT_IDENTITY does not override it. STANDING ORDER: commit with explicit git -c user.name=<seat> -c user.email=<seat>@…, and NOBODY rewrites the shared config mid-flight. Real fix authorised, Mos owns it, sequenced at a quiet seam. #1024 implicated. Detail: D-37.
  • Standing worker-brief doctrine (mandatory in EVERY brief): re-export MOSAIC_GIT_IDENTITY (D-34); commit early/WIP (D-31); don't weaken a RED test to pass; if a check is unrunnable SAY SO, never substitute; agent-send -f never -m; artifacts off shared /tmp; scan CI from -f json (D-33); relay observations into an open review, NEVER your own conclusion on an open check (D-39); the author never adjudicates their own PR's blocker status — surface evidence, prepare the fix, hold.
  • 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.

Decisions log — full record in TASKS.md

All 48 findings (D-1…D-6 in BOARD-LEDGER.md, D-7…D-47 + 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.