TASK-1 complete. planner-opus (robustness, 38 tasks/8 dissents) and planner-sol (pragmatic, 25 tasks/10 defers/7 dissents) each decomposed the 4-build plan without seeing the other's work. Both decomps are committed alongside the reconciliation so the disagreements stay auditable rather than being flattened into a consensus. Reconciled into 58 tasks across P0-P5 (docs/remediation/TASKS.md): - 7 independent convergences, treated as settled because neither planner could see the other. The headline: BOTH reject the charter's wire-in point (mosaic_orchestrator.py::run_single_task) because that controller is disabled and references a dispatcher absent from this checkout — wiring it would produce a stranded executor, the same built-but-unwired disease one layer up. - 7 genuine disagreements ADJUDICATED, not averaged. The cost estimates are ~18x apart; rather than split the difference, the plan adopts sol's scope with opus's rigor and treats the first-dogfood gate as a hard budget checkpoint. - 3 decisions escalated (wire-in point, rollback artifact + availability trade, queue-guard ownership vs parked PR #1023). No task blocked on them is dispatched. Keystone dogfood case recorded (TASKS.md 1a): merged PR #868 shipped a file failing pnpm format:check, then an unrelated PR reformatted it as a side effect, so main went green and the gate's failure to fire left no trace. Detection must therefore be per-merge-commit against that commit's own tree. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
6.8 KiB
mos-remediation — LIVE BOARD (keep < 8 KB)
Phase: PLANNING COMPLETE — reconciled backlog landed; 3 decisions block dispatch.
Updated: 2026-07-31 (mos-remediation orchestrator; seat active on mosaic-fleet).
Head
- Mission charter + 15 decisions + 4-build plan: PERSISTED (
docs/remediation/MISSION.md). - HOLD lifted for this workstream (Jason 2026-07-31). Nothing implemented yet — planning first.
- Orchestrator seat
mos-remediationis LIVE and owns the mission. Residency attestation: PASS. - TASK-0 DONE — checkout repaired, all three gates green HONESTLY (no
--no-verify), branch pushed. - TASK-1 DONE — both planners delivered independently on clean context; reconciled into
TASKS.md(58 tasks across P0–P5, 7 convergences, 7 adjudicated disagreements, 3 escalated decisions). - NEXT ACTION IS NOT MINE: DECISION-1/2/3 (
TASKS.md§5) must be ruled before P0 dispatch. RM-01 is dispatchable immediately regardless — it depends on nothing and blocks everything.
In-flight
| Task | Owner | State |
|---|---|---|
PR: remediation/mission-setup (docs-only) |
mos-remediation | branch pushed; PR to open |
PR: fix/hygiene-inert-format-gate (full gate) |
mos-remediation | branch pushed; needs rev-974 review + CI |
| 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 |
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
- Delivery gates active: author≠reviewer, diff-blind pre-registered checks, CI-green, merged-PR completion.
- Freeze: LIFTED for this workstream only.
- Git identity:
MOSAIC_GIT_IDENTITY=mos-dt-0INTERIM. 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. - Remote control: native
/remote-controlNOT wired in this runtime. Path is Mos-relay (Jason ↔ mos-claude via Discord ↔ mos-remediation via agent-send). Not a blocker.
Sequencing (from MISSION.md)
- Spine + choke-point service (MACP wiring @ mosaic_orchestrator.py::run_single_task) + PG/Redis
⚠ CONTESTED — see DECISION-1. Both planners independently reject this wire-in point: that
controller is
"enabled": falseand references a dispatcher that does not exist here. Charter text left UNCHANGED pending Mos/Jason ruling; do not treat it as settled. - Rotation daemon (finish Mission Control Plane, reuse packages/coord)
- Comms service (envelope→service→PG/Redis→adapters)
- Hygiene + conformance harness Cross-cutting retirements: flat-file tracking, 3 MACP islands, silent MOSAIC BYPASS.
Dogfood evidence captured this session (live failure classes, not hypotheticals)
-
D-1 / P-ACTIVATION + hygiene — committed
.npmrchard-pinsstore-dir=/root/.local/share/pnpm/store. Correct for the CI container (runs as root), fatal for EVERY non-root local checkout:EACCESon/root/.local/share/pnpm/store/v10/server/server.json. A committed config that only works on one runtime is exactly the activation-skew class. Fix candidate: make store-dir env-overridable, not hardcoded. -
D-2 / hygiene — husky
preparefailsEPERMcopying into root-owned.husky/_/. Repo working tree has root-owned dirs (.husky/, repo root) under a non-root agent. Worked around with the intendedHUSKY=0escape hatch (does NOT disable the existing pre-commit/pre-push hooks). -
D-3 / P-FLEET-001 — the seats running this mission are UNMANAGED.
mos-remediation,rev-974,planner-opus,planner-solappear in NO roster (~/.config/mosaic/fleet/roster.yaml,agents/). Planners run on socketdefault; the roster declaresmosaic-fleet. This is the exact "one roster-owned socket/host + quarantine unmanaged + stale GC" failure P-FLEET-001 indicts — observed on the remediation mission's own fleet. Prerequisite for INBOX identity-addressing. -
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
/newdriven 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. -
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 FAILSpnpm format:check⇒ the CI format gate did not block. An unrelated later PR (#872) then reformatted that file via its ownlint-staged, somainwent 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 inTASKS.md§1a. NOT quiet-patched, by Mos's ruling: patching the symptom destroys the signal.
Decisions log
- 2026-07-31 — Mission set up by Mos post-postmortem (15/15 decided). Dogfood posture active.
- 2026-07-31 — Mos: stale
.mosaic/orchestrator/mission.jsonis RESIDUE of the disabled Python orchestrator rail that this plan RETIRES. Do NOT invest in it; do NOT build on that rail. The 0/0 milestone banner is cosmetic. (Supersedes any plan to repair it.) - 2026-07-31 — Mos: planners must be dispatched with GUARANTEED clean context, not requested-clean. Prior default-socket planner sessions predate this mission; dirty context is the indicted hygiene.
- 2026-07-31 — mos-remediation: worker briefs forbid all git ops and restrict each worker to a single named output file, so two planners can share one checkout without a branch race (M2-era incident doctrine).