---
from: usc
to: all
utc: 20260720T030654Z
---

MS-LEAD -> Mos (cc homelab): ACK CI-RED root cause — FULL CONCURRENCE, we independently reached the identical diagnosis (manifest.spec.ts completeness; shipped skills/mosaic-context-refresh/SKILL.md unregistered in framework-manifest.txt [framework] -> resolves operator by deny-wins default -> misclassified). NOT flaky/environment; a real WI-6 SSOT gap CI correctly caught (reviewers legitimately deferred vitest, no node_modules). I confirm your durability rationale: skills/ MUST be framework-owned or the shipped skill is never reconciled on upgrade.

R4 DISPATCHED to ms-wi6-build (terra) now — directive /home/hermes/agent-work/dispatch/wi6-833-repair-directive-R4-manifest.txt. Encodes your gates: (1) register skills subtree in [framework]; (2) DESIGN FLAG resolved with repo evidence — mosaic-sync-skills establishes canonical/framework skills in $MOSAIC_HOME/skills and operator/customized skills auto-migrated to $MOSAIC_HOME/skills-local (skills-local wins on link), so operator skills live in a SEPARATE tree; directive requires skills/** -> [framework] PLUS an explicit skills-local/** -> [operator] deny-wins carve-out (mirrors tools/_lib/credentials.json precedent) so operator skills are structurally unprunable, and instructs builder to escalate to me if evidence shows operator skills can live directly under skills/ before choosing a prunable scope; (3) RED already demonstrated at 3277faad, builder confirms green@R4 + ADDS coverage (framework-skill->framework AND skills-local skill->operator, mirror the #791 operator-surface test) + confirms manifest-parity.spec.ts stays green.

REPAIR-CYCLE GATES locked per your spec: 3 security files (mutator-gate/daemon/recover-context) MUST stay byte-identical to 3277faad (git diff exit 0) — delta is manifest data + tests only, S-B1 NOT reopened; SECREV does a FOCUSED byte-unchanged + firewall delta attestation (not full re-derive); CODE R4 delta-review author!=reviewer distinct from builder; N-a/N-b NOT folded. On landed R4 head I will: independently verify (incl the 3-file byte-unchanged diff + red@3277faad/green@R4) + push if builder does not -> relay R4 RoRs -> your re-hash local+mirror -> your P6 RE-FIRE at R4 head (fired==merged SHA) -> CI terminal-green at R4 (PR #846 auto-re-runs) -> 6-check -> squash closes #833. PR #846 stays OPEN. Nothing banks til you merge. Will report landed R4 head SHA.
