# M4.2-Infrastructure Implementation Plan **Milestone:** M4.2-Infrastructure (0.0.4) **Date:** 2026-02-01 **Orchestrator:** Claude Opus 4.5 ## Issue Summary | Issue | Title | Phase | Priority | Depends On | Est. Tokens | Model | | ----- | ------------------------------------------------- | ----- | -------- | ---------- | ----------- | ------ | | #162 | [EPIC] Mosaic Component Architecture | - | - | All | 0 | manual | | #163 | [INFRA-001] Add BullMQ dependencies | 1 | p0 | none | 15,000 | haiku | | #164 | [INFRA-002] Database schema for job tracking | 1 | p0 | none | 40,000 | sonnet | | #165 | [INFRA-003] BullMQ module setup | 1 | p0 | #163 | 45,000 | sonnet | | #166 | [INFRA-004] Stitcher module structure | 2 | p0 | #165 | 50,000 | sonnet | | #167 | [INFRA-005] Runner jobs CRUD and queue submission | 2 | p0 | #164, #165 | 55,000 | sonnet | | #168 | [INFRA-006] Job steps tracking | 2 | p0 | #164, #167 | 45,000 | sonnet | | #169 | [INFRA-007] Job events and audit logging | 2 | p0 | #164, #167 | 55,000 | sonnet | | #170 | [INFRA-008] mosaic-bridge module for Discord | 3 | p1 | #166 | 55,000 | sonnet | | #171 | [INFRA-009] Chat command parsing | 3 | p1 | #170 | 40,000 | sonnet | | #172 | [INFRA-010] Herald status updates | 3 | p1 | #169, #170 | 50,000 | sonnet | | #173 | [INFRA-011] WebSocket gateway for job events | 4 | p1 | #169 | 45,000 | sonnet | | #174 | [INFRA-012] SSE endpoint for CLI consumers | 4 | p1 | #169 | 40,000 | sonnet | | #175 | [INFRA-013] End-to-end test harness | 5 | p0 | Phase 1-4 | 65,000 | sonnet | | #176 | [INFRA-014] Integration with M4.1 coordinator | 5 | p0 | All M4.2 | 75,000 | opus | | #179 | fix(security): Update Node.js dependencies | - | HIGH | none | 12,000 | haiku | | #180 | fix(security): Update pnpm in Dockerfiles | - | HIGH | none | 10,000 | haiku | | #181 | fix(security): Update Go stdlib in postgres | - | HIGH | none | 15,000 | haiku | **Total Estimated Tokens:** ~712,000 ## Dependency Graph ``` Phase 1: Core Infrastructure (Foundation) ┌───────────────────────────────────────────────────────────────┐ │ │ │ #163 BullMQ deps ──────┬──► #165 BullMQ module │ │ │ │ │ #164 Database schema ──┼──────────────────────────────────►│ │ │ │ │ #179,#180,#181 ◄───────┴─── Security (parallel anytime) │ │ │ └───────────────────────────────────────────────────────────────┘ │ ▼ Phase 2: Stitcher Service ┌───────────────────────────────────────────────────────────────┐ │ │ │ #165 ──► #166 Stitcher module ──────────────────────────► │ │ │ │ #164,#165 ──► #167 Runner jobs CRUD ──┬──► #168 Job steps │ │ │ │ │ └──► #169 Job events │ │ │ └───────────────────────────────────────────────────────────────┘ │ ▼ Phase 3: Chat Integration Phase 4: Real-time Status ┌──────────────────────────┐ ┌────────────────────────────┐ │ │ │ │ │ #166 ──► #170 Bridge │ │ #169 ──► #173 WebSocket │ │ │ │ │ │ │ │ ▼ │ │ └──► #174 SSE │ │ #171 Parser │ │ │ │ │ │ │ │ │ └──┬──► #172 │ │ │ │ #169 ─────┘ Herald │ │ │ │ │ │ │ └──────────────────────────┘ └────────────────────────────┘ │ ▼ Phase 5: Integration ┌───────────────────────────────────────────────────────────────┐ │ │ │ All Phase 1-4 ──► #175 E2E test harness │ │ │ │ All M4.2 ──► #176 Integration with M4.1 coordinator │ │ │ │ All complete ──► #162 EPIC (close) │ │ │ └───────────────────────────────────────────────────────────────┘ ``` ## Execution Plan (2 Parallel Agents Max) ### Wave 0: Security (Can run first, independent) | Agent A | Agent B | | ----------------- | --------------------- | | #179 Node.js deps | #180 pnpm Dockerfiles | | #181 Go stdlib | - | ### Wave 1: Foundation (Phase 1) | Agent A | Agent B | | ------------------ | -------------------- | | #163 BullMQ deps | #164 Database schema | | #165 BullMQ module | (wait for #163) | ### Wave 2: Stitcher Core (Phase 2, Part 1) | Agent A | Agent B | | -------------------- | --------------------- | | #166 Stitcher module | #167 Runner jobs CRUD | ### Wave 3: Stitcher Events (Phase 2, Part 2) | Agent A | Agent B | | -------------- | --------------- | | #168 Job steps | #169 Job events | ### Wave 4: Chat + Real-time (Phase 3 + 4) | Agent A | Agent B | | ------------------- | ---------------------- | | #170 Bridge module | #173 WebSocket gateway | | #171 Command parser | #174 SSE endpoint | ### Wave 5: Herald + E2E Setup | Agent A | Agent B | | ------------------- | ----------------------------- | | #172 Herald updates | #175 E2E test harness (start) | ### Wave 6: Integration (Phase 5) | Agent A | Agent B | | ----------------- | --------------------- | | #175 E2E complete | #176 M4.1 integration | ### Wave 7: Closure | Agent A | Agent B | | --------------- | ------------------ | | Close #162 EPIC | Final verification | ## Quality Gates (Mandatory - Cannot Be Bypassed) Every issue must pass: 1. **Unit Tests** - TDD required, minimum 85% coverage 2. **Type Check** - `pnpm typecheck` must pass 3. **Lint** - `pnpm lint` must pass 4. **Build** - `pnpm build` must pass 5. **Code Review** - Independent agent review before merge 6. **QA Verification** - Functional testing by separate agent ## Agent Protocol 1. **Before starting:** Read issue details, check dependencies are complete 2. **Create scratchpad:** `docs/scratchpads/{issue#}-{short-name}.md` 3. **Follow TDD:** Write tests first (RED), implement (GREEN), refactor 4. **Commit format:** `(#{issue}): description` 5. **Quality gates:** Run all gates before marking complete 6. **Code review:** Request independent review 7. **Close issue:** Add completion comment with summary ## Orchestrator Checkpoints - [ ] Wave 0 complete (security) - [ ] Wave 1 complete (foundation) - [ ] Wave 2 complete (stitcher core) - [ ] Wave 3 complete (stitcher events) - [ ] Wave 4 complete (chat + real-time) - [ ] Wave 5 complete (herald + E2E setup) - [ ] Wave 6 complete (integration) - [ ] Wave 7 complete (closure) - [ ] All issues closed - [ ] EPIC #162 closed - [ ] Token tracking report finalized ## Risk Mitigation 1. **Dependency conflicts:** BullMQ + existing ioredis - Agent must verify compatibility 2. **Schema migrations:** Test on dev database before production 3. **Discord API rate limits:** Implement proper throttling in bridge module 4. **WebSocket scaling:** Design for horizontal scaling from start 5. **Integration complexity:** Phase 5 may require opus-level reasoning ## Notes - Maximum 2 parallel agents to prevent merge conflicts - All agents must pull latest before starting work - Coordinate via git commits, not direct communication - Security issues are HIGH priority but don't block feature work