Files
stack/docs/M6-NEW-ISSUES-TEMPLATES.md
Jason Woltje 12abdfe81d feat(#93): implement agent spawn via federation
Implements FED-010: Agent Spawn via Federation feature that enables
spawning and managing Claude agents on remote federated Mosaic Stack
instances via COMMAND message type.

Features:
- Federation agent command types (spawn, status, kill)
- FederationAgentService for handling agent operations
- Integration with orchestrator's agent spawner/lifecycle services
- API endpoints for spawning, querying status, and killing agents
- Full command routing through federation COMMAND infrastructure
- Comprehensive test coverage (12/12 tests passing)

Architecture:
- Hub → Spoke: Spawn agents on remote instances
- Command flow: FederationController → FederationAgentService →
  CommandService → Remote Orchestrator
- Response handling: Remote orchestrator returns agent status/results
- Security: Connection validation, signature verification

Files created:
- apps/api/src/federation/types/federation-agent.types.ts
- apps/api/src/federation/federation-agent.service.ts
- apps/api/src/federation/federation-agent.service.spec.ts

Files modified:
- apps/api/src/federation/command.service.ts (agent command routing)
- apps/api/src/federation/federation.controller.ts (agent endpoints)
- apps/api/src/federation/federation.module.ts (service registration)
- apps/orchestrator/src/api/agents/agents.controller.ts (status endpoint)
- apps/orchestrator/src/api/agents/agents.module.ts (lifecycle integration)

Testing:
- 12/12 tests passing for FederationAgentService
- All command service tests passing
- TypeScript compilation successful
- Linting passed

Refs #93

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 14:37:06 -06:00

1086 lines
23 KiB
Markdown

# M6 New Orchestrator Issues - Ready to Create
**Total:** 34 new issues for `apps/orchestrator/` implementation
**Milestone:** M6-AgentOrchestration (0.0.6)
**Labels:** `orchestrator` (create this label first)
---
## Label Creation Command
```bash
cd /home/localadmin/src/mosaic-stack
tea labels create orchestrator --color "#FF6B35" --description "Orchestrator service (apps/orchestrator/)"
```
---
## Phase 1: Foundation (Days 1-2)
### ORCH-101: Set up apps/orchestrator structure
**Labels:** task, setup, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Create the directory structure for the orchestrator service in the monorepo.
## Acceptance Criteria
- [ ] Directory structure created: `apps/orchestrator/src/{api,spawner,queue,monitor,git,killswitch,coordinator,valkey}`
- [ ] Test directories created: `apps/orchestrator/tests/{unit,integration}`
- [ ] package.json created with dependencies (@mosaic/shared, @mosaic/config, ioredis, bullmq, @anthropic-ai/sdk, dockerode, simple-git, fastify, zod)
- [ ] tsconfig.json extends root tsconfig.base.json
- [ ] .eslintrc.js and .prettierrc configured
- [ ] README.md with service overview
## Dependencies
None (foundation work)
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 2 for complete structure.
---
### ORCH-102: Create Fastify server with health checks
**Labels:** feature, api, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Basic HTTP server for orchestrator API with health check endpoint.
## Acceptance Criteria
- [ ] Fastify server in `src/api/server.ts`
- [ ] Health check endpoint: GET /health (returns 200 OK)
- [ ] Configuration loaded from environment variables
- [ ] Pino logger integrated
- [ ] Server starts on port 3001 (configurable)
- [ ] Graceful shutdown handler
## Dependencies
- Blocked by: #ORCH-101
## Technical Notes
```typescript
GET /health
Response 200 OK:
{
"status": "healthy",
"uptime": 12345,
"timestamp": "2026-02-02T10:00:00Z"
}
```
---
### ORCH-103: Docker Compose integration for orchestrator
**Labels:** task, infrastructure, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Add orchestrator service to docker-compose.yml.
## Acceptance Criteria
- [ ] orchestrator service added to docker-compose.yml
- [ ] Depends on: valkey, coordinator
- [ ] Environment variables configured (VALKEY_URL, COORDINATOR_URL, CLAUDE_API_KEY)
- [ ] Volume mounts: /var/run/docker.sock (for Docker-in-Docker), /workspace (git operations)
- [ ] Health check configured
- [ ] Port 3001 exposed
## Dependencies
- Blocked by: #ORCH-101
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 3.3 for docker-compose.yml template.
---
### ORCH-104: Monorepo build pipeline for orchestrator
**Labels:** task, infrastructure, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Update TurboRepo configuration to include orchestrator in build pipeline.
## Acceptance Criteria
- [ ] turbo.json updated with orchestrator tasks
- [ ] Build order: packages/\* → coordinator → orchestrator → api → web
- [ ] Root package.json scripts updated (dev:orchestrator, docker:logs)
- [ ] `npm run build` builds orchestrator
- [ ] `npm run dev` runs orchestrator in watch mode
## Dependencies
- Blocked by: #ORCH-101
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 3.2 for turbo.json configuration.
---
## Phase 2: Agent Spawning (Days 3-4)
### ORCH-105: Implement agent spawner (Claude SDK)
**Labels:** feature, core, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Spawn Claude agents using Anthropic SDK.
## Acceptance Criteria
- [ ] `src/spawner/agent-spawner.ts` implemented
- [ ] Spawn agent with task context (repo, branch, instructions)
- [ ] Claude SDK integration (@anthropic-ai/sdk)
- [ ] Agent session management
- [ ] Return agentId on successful spawn
## Dependencies
- Blocked by: #ORCH-102
## Technical Notes
```typescript
interface SpawnAgentRequest {
taskId: string;
agentType: "worker" | "reviewer" | "tester";
context: {
repository: string;
branch: string;
workItems: string[];
skills?: string[];
};
options?: {
sandbox?: boolean;
timeout?: number;
maxRetries?: number;
};
}
```
---
### ORCH-106: Docker sandbox isolation
**Labels:** feature, security, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Isolate agents in Docker containers for security.
## Acceptance Criteria
- [ ] `src/spawner/docker-sandbox.ts` implemented
- [ ] dockerode integration for container management
- [ ] Agent runs in isolated container
- [ ] Resource limits enforced (CPU, memory)
- [ ] Non-root user in container
- [ ] Container cleanup on agent termination
## Dependencies
- Blocked by: #ORCH-105
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 7 for Docker security hardening.
---
### ORCH-107: Valkey client and state management
**Labels:** feature, core, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Valkey client for orchestrator state management.
## Acceptance Criteria
- [ ] `src/valkey/client.ts` with ioredis connection
- [ ] State schema implemented (tasks, agents, queue)
- [ ] Pub/sub for events (agent spawned, completed, failed)
- [ ] Task state: pending, assigned, executing, completed, failed
- [ ] Agent state: spawning, running, completed, failed, killed
## Dependencies
- Blocked by: #98 (Valkey Integration), #ORCH-102
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 5 for Valkey state schema.
---
### ORCH-108: BullMQ task queue
**Labels:** feature, core, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Task queue with priority and retry logic using BullMQ.
## Acceptance Criteria
- [ ] `src/queue/task-queue.ts` implemented
- [ ] BullMQ queue on Valkey
- [ ] Priority-based task ordering
- [ ] Retry logic with exponential backoff
- [ ] Queue worker processes tasks
- [ ] Queue monitoring (pending, active, completed, failed counts)
## Dependencies
- Blocked by: #ORCH-107
## Technical Notes
```typescript
interface QueuedTask {
taskId: string;
priority: number; // 1-10
retries: number;
maxRetries: number;
context: TaskContext;
}
```
---
### ORCH-109: Agent lifecycle management
**Labels:** feature, core, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Manage agent states through lifecycle (spawning → running → completed/failed).
## Acceptance Criteria
- [ ] `src/spawner/agent-lifecycle.ts` implemented
- [ ] State transitions: spawning → running → completed/failed/killed
- [ ] State persisted in Valkey
- [ ] Events emitted on state changes (pub/sub)
- [ ] Agent metadata tracked (startedAt, completedAt, error)
## Dependencies
- Blocked by: #ORCH-105, #ORCH-108
## Technical Notes
State machine enforces valid transitions only.
---
## Phase 3: Git Integration (Days 5-6)
### ORCH-110: Git operations (clone, commit, push)
**Labels:** feature, git, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Implement git operations using simple-git.
## Acceptance Criteria
- [ ] `src/git/git-operations.ts` implemented
- [ ] Clone repository
- [ ] Create branch
- [ ] Commit changes with message
- [ ] Push to remote
- [ ] Git config (user.name, user.email)
## Dependencies
- Blocked by: #ORCH-105
## Technical Notes
Use simple-git library. Configure git user from environment variables.
---
### ORCH-111: Git worktree management
**Labels:** feature, git, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Create and manage git worktrees for agent isolation.
## Acceptance Criteria
- [ ] `src/git/worktree-manager.ts` implemented
- [ ] Create worktree for each agent
- [ ] Worktree naming: `agent-{agentId}-{taskId}`
- [ ] Cleanup worktree on agent completion
- [ ] Handle worktree conflicts
## Dependencies
- Blocked by: #ORCH-110
## Technical Notes
Git worktrees allow multiple agents to work on same repo without conflicts.
---
### ORCH-112: Conflict detection
**Labels:** feature, git, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Detect merge conflicts before pushing.
## Acceptance Criteria
- [ ] `src/git/conflict-detection.ts` implemented
- [ ] Fetch latest from remote before push
- [ ] Detect merge conflicts
- [ ] Return conflict details to agent
- [ ] Agent retries with rebase/merge
## Dependencies
- Blocked by: #ORCH-110
## Technical Notes
Check for conflicts before push. If conflicts, agent must resolve.
---
## Phase 4: Coordinator Integration (Days 7-8)
### ORCH-113: Coordinator API client
**Labels:** feature, integration, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
HTTP client for calling coordinator quality gates.
## Acceptance Criteria
- [ ] `src/coordinator/coordinator-client.ts` implemented
- [ ] POST /api/quality/check endpoint
- [ ] Quality check request serialization
- [ ] Response parsing (approved/rejected)
- [ ] Retry on coordinator unavailable
## Dependencies
- Blocked by: #ORCH-102
## Related
- Coordinator exists at `apps/coordinator/`
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 6.1 for API contract.
---
### ORCH-114: Quality gate callbacks
**Labels:** feature, quality, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Call coordinator quality gates before commit/push.
## Acceptance Criteria
- [ ] `src/coordinator/quality-gates.ts` implemented
- [ ] Pre-commit quality check (before git commit)
- [ ] Post-commit quality check (before git push)
- [ ] Parse quality gate response
- [ ] Block commit/push if rejected
- [ ] Return rejection details to agent
## Dependencies
- Blocked by: #ORCH-113
## Technical Notes
Coordinator runs: typecheck, lint, tests, coverage. Orchestrator calls coordinator.
---
### ORCH-115: Task dispatch from coordinator
**Labels:** feature, integration, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Coordinator dispatches validated tasks to orchestrator.
## Acceptance Criteria
- [ ] Orchestrator API endpoint: POST /agents/spawn
- [ ] Coordinator calls orchestrator after quality pre-check
- [ ] Task queued in Valkey
- [ ] Agent spawned
- [ ] Return agentId to coordinator
## Dependencies
- Blocked by: #99 (Task Dispatcher), #ORCH-113
## Related
- Extends #99 (Dispatcher in control plane)
## Technical Notes
Flow: User → Mosaic Stack → Coordinator (pre-check) → Orchestrator (dispatch).
---
### ORCH-116: 50% rule enforcement
**Labels:** feature, quality, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Enforce 50% rule: no more than 50% AI-generated code in PR.
## Acceptance Criteria
- [ ] Mechanical gates: typecheck, lint, tests, coverage (coordinator)
- [ ] AI confirmation: independent AI agent reviews (coordinator)
- [ ] Orchestrator calls both mechanical and AI gates
- [ ] Reject if either fails
- [ ] Return detailed failure reasons
## Dependencies
- Blocked by: #ORCH-114
## Technical Notes
Coordinator enforces 50% rule. Orchestrator calls coordinator.
---
## Phase 5: Killswitch + Security (Days 9-10)
### ORCH-117: Killswitch implementation
**Labels:** feature, security, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Emergency stop: kill single agent or all agents.
## Acceptance Criteria
- [ ] `src/killswitch/killswitch.ts` implemented
- [ ] POST /agents/{agentId}/kill endpoint
- [ ] POST /agents/kill-all endpoint
- [ ] Immediate termination (SIGKILL)
- [ ] Cleanup Docker containers
- [ ] Cleanup git worktrees
- [ ] Update agent state to 'killed'
- [ ] Audit trail logged
## Dependencies
- Blocked by: #ORCH-109
## Related
- #114 (Kill Authority in control plane)
## Technical Notes
Killswitch bypasses all queues. Must respond within seconds.
---
### ORCH-118: Resource cleanup
**Labels:** task, infrastructure, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Clean up resources when agent terminates.
## Acceptance Criteria
- [ ] `src/killswitch/cleanup.ts` implemented
- [ ] Stop Docker container
- [ ] Remove Docker container
- [ ] Remove git worktree
- [ ] Clear Valkey state
- [ ] Emit cleanup event
## Dependencies
- Blocked by: #ORCH-117
## Technical Notes
Run cleanup on: agent completion, agent failure, killswitch.
---
### ORCH-119: Docker security hardening
**Labels:** security, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Harden Docker container security for agents.
## Acceptance Criteria
- [ ] Dockerfile with multi-stage build
- [ ] Non-root user (nodejs:nodejs)
- [ ] Minimal base image (node:20-alpine)
- [ ] No unnecessary packages
- [ ] Health check in Dockerfile
- [ ] Security scan passes (docker scan)
## Dependencies
- Blocked by: #ORCH-106
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 7 for Dockerfile template.
---
### ORCH-120: Secret scanning
**Labels:** security, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Prevent secrets from being committed.
## Acceptance Criteria
- [ ] git-secrets integrated
- [ ] Pre-commit hook scans for secrets
- [ ] Block commit if secrets detected
- [ ] Scan for API keys, tokens, passwords
- [ ] Custom patterns for Claude API keys
## Dependencies
- Blocked by: #ORCH-110
## Technical Notes
```bash
git secrets --add 'sk-[a-zA-Z0-9]{48}' # Claude API keys
```
---
## Phase 6: Quality Gates (Days 11-12)
### ORCH-121: Mechanical quality gates
**Labels:** feature, quality, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Implement mechanical quality gates (non-AI).
## Acceptance Criteria
- [ ] TypeScript type checking
- [ ] ESLint linting
- [ ] Test execution (vitest)
- [ ] Coverage check (>= 85%)
- [ ] Build check (tsup)
## Dependencies
- Blocked by: #ORCH-114
## Related
- Coordinator has gate implementations
## Technical Notes
Mechanical gates are deterministic (no AI). Run via coordinator.
---
### ORCH-122: AI agent confirmation
**Labels:** feature, quality, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Independent AI agent reviews changes for quality.
## Acceptance Criteria
- [ ] Spawn independent AI reviewer agent
- [ ] Review code changes
- [ ] Check for: logic errors, security issues, best practices
- [ ] Return confidence score (0.0 - 1.0)
- [ ] Approve if confidence >= 0.9
## Dependencies
- Blocked by: #ORCH-114
## Related
- Coordinator calls AI reviewer
## Technical Notes
AI reviewer is INDEPENDENT of worker agent (no self-review).
---
### ORCH-123: YOLO mode (gate bypass)
**Labels:** feature, configuration, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
User-configurable approval gates (YOLO mode bypasses gates).
## Acceptance Criteria
- [ ] Configuration option: `YOLO_MODE=true`
- [ ] If YOLO mode enabled, skip quality gates
- [ ] Log YOLO mode usage (audit trail)
- [ ] UI warning: "Quality gates disabled"
## Dependencies
- Blocked by: #ORCH-114
## Technical Notes
YOLO mode is opt-in. Default: quality gates enabled.
---
### ORCH-124: Gate configuration per-task
**Labels:** feature, configuration, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Different quality gates for different task types.
## Acceptance Criteria
- [ ] Task metadata includes required gates
- [ ] Gate profiles: strict (all gates), standard (tests + lint), minimal (tests only)
- [ ] User selects profile on task creation
- [ ] Orchestrator enforces selected gates
## Dependencies
- Blocked by: #ORCH-114
## Technical Notes
Example: docs tasks need fewer gates than backend tasks.
---
## Phase 7: Testing (Days 13-14)
### ORCH-125: E2E test: Full agent lifecycle
**Labels:** test, e2e, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
End-to-end test: spawn agent → git operations → quality gates → completion.
## Acceptance Criteria
- [ ] E2E test spawns agent
- [ ] Agent clones repo
- [ ] Agent makes code change
- [ ] Agent commits (quality gates pass)
- [ ] Agent pushes
- [ ] Agent completes
- [ ] State transitions tracked
- [ ] Test passes consistently
## Dependencies
- Blocked by: All above
## Technical Notes
Use test fixtures for repo, tasks, quality gates.
---
### ORCH-126: E2E test: Killswitch
**Labels:** test, e2e, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
End-to-end test: killswitch terminates agents.
## Acceptance Criteria
- [ ] E2E test spawns agent
- [ ] Trigger killswitch
- [ ] Agent terminated within 5 seconds
- [ ] Docker container stopped
- [ ] Git worktree cleaned up
- [ ] State updated to 'killed'
- [ ] Test passes consistently
## Dependencies
- Blocked by: #ORCH-117
## Technical Notes
Test both single agent kill and kill-all.
---
### ORCH-127: E2E test: Concurrent agents
**Labels:** test, e2e, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
End-to-end test: 10 concurrent agents.
## Acceptance Criteria
- [ ] E2E test spawns 10 agents
- [ ] All agents work on different tasks
- [ ] No resource conflicts
- [ ] All agents complete successfully
- [ ] Test passes consistently
## Dependencies
- Blocked by: #ORCH-109
## Technical Notes
Test resource limits, queue concurrency, Valkey performance.
---
### ORCH-128: Performance testing
**Labels:** test, performance, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Load testing and resource monitoring.
## Acceptance Criteria
- [ ] Load test: 10 concurrent agents
- [ ] Monitor: CPU, memory, Valkey connections
- [ ] Measure: agent spawn time, task completion time
- [ ] Results documented
- [ ] Performance within acceptable limits
## Dependencies
- Blocked by: #ORCH-125
## Technical Notes
Acceptable limits:
- Agent spawn: < 10 seconds
- Task completion: < 1 hour (configurable)
- CPU: < 80%
- Memory: < 4GB
---
### ORCH-129: Documentation
**Labels:** documentation, orchestrator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Complete orchestrator documentation.
## Acceptance Criteria
- [ ] README.md with overview
- [ ] API documentation (OpenAPI spec)
- [ ] Architecture diagrams (spawning, lifecycle, killswitch)
- [ ] Runbook (deployment, monitoring, troubleshooting)
- [ ] Development guide (setup, testing, contributing)
## Dependencies
- Blocked by: All above
## Technical Notes
Documentation goes in `apps/orchestrator/` and root `docs/`.
---
## Phase 8: Integration (Existing Apps)
### ORCH-130: apps/api: Add orchestrator client
**Labels:** feature, integration, api
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
HTTP client for orchestrator API in apps/api.
## Acceptance Criteria
- [ ] `apps/api/src/orchestrator/orchestrator.client.ts` created
- [ ] Methods: spawnAgent, getAgentStatus, killAgent, killAllAgents
- [ ] WebSocket subscription for events
- [ ] Error handling and retries
## Dependencies
- Blocked by: #ORCH-102, #99 (uses this client)
## Related
- Extends #99 (Dispatcher uses this client)
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 4.1 for client template.
---
### ORCH-131: apps/coordinator: Add orchestrator dispatcher
**Labels:** feature, integration, coordinator
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Dispatch tasks to orchestrator after quality pre-check.
## Acceptance Criteria
- [ ] `apps/coordinator/src/dispatcher/orchestrator.dispatcher.ts` created
- [ ] Pre-check tasks before dispatch
- [ ] Call orchestrator API to spawn agent
- [ ] Handle dispatch errors
- [ ] Update task state to 'dispatched'
## Dependencies
- Blocked by: #ORCH-102, #99
## Related
- Coordinator already exists
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 4.2 for dispatcher template.
---
### ORCH-132: apps/web: Add agent dashboard
**Labels:** feature, ui, web
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Real-time agent status dashboard in web UI.
## Acceptance Criteria
- [ ] `apps/web/src/features/agents/AgentDashboard.tsx` created
- [ ] Display: active agents, status, progress, uptime
- [ ] Real-time updates via WebSocket
- [ ] Kill button per agent
- [ ] Kill All button (admin only)
## Dependencies
- Blocked by: #101 (extends this), #ORCH-102
## Related
- Extends #101 (Task Progress UI)
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 4.3 for component template.
---
### ORCH-133: docker-compose: Add orchestrator service
**Labels:** task, infrastructure
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Integrate orchestrator into docker-compose.yml.
## Acceptance Criteria
- [ ] orchestrator service in docker-compose.yml
- [ ] Depends on: valkey, coordinator
- [ ] Environment variables set
- [ ] Volume mounts configured
- [ ] Health check configured
- [ ] Port 3001 exposed
## Dependencies
- Blocked by: #ORCH-103
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 3.3 for docker-compose.yml template.
---
### ORCH-134: Update root documentation
**Labels:** documentation
**Milestone:** M6-AgentOrchestration (0.0.6)
**Description:**
Update root README and ARCHITECTURE.md with orchestrator.
## Acceptance Criteria
- [ ] README.md updated with orchestrator overview
- [ ] ARCHITECTURE.md updated with orchestrator layer
- [ ] Architecture diagram includes orchestrator
- [ ] Development guide includes orchestrator setup
## Dependencies
- Blocked by: #ORCH-129
## Technical Notes
Documentation at root level explains entire monorepo architecture.
---
## Issue Creation Script
Use this script to create all 34 issues at once:
```bash
cd /home/localadmin/src/mosaic-stack
# Create orchestrator label first
tea labels create orchestrator --color "#FF6B35" --description "Orchestrator service (apps/orchestrator/)"
# Then create issues (example for ORCH-101)
tea issues create \
--title "[ORCH-101] Set up apps/orchestrator structure" \
--body "$(cat <<'EOF'
Create the directory structure for the orchestrator service in the monorepo.
## Acceptance Criteria
- [ ] Directory structure created: `apps/orchestrator/src/{api,spawner,queue,monitor,git,killswitch,coordinator,valkey}`
- [ ] Test directories created: `apps/orchestrator/tests/{unit,integration}`
- [ ] package.json created with dependencies
- [ ] tsconfig.json extends root tsconfig.base.json
- [ ] .eslintrc.js and .prettierrc configured
- [ ] README.md with service overview
## Dependencies
None (foundation work)
## Technical Notes
See `ORCHESTRATOR-MONOREPO-SETUP.md` Section 2 for complete structure.
EOF
)" \
--milestone "M6-AgentOrchestration (0.0.6)" \
--labels "task,setup,orchestrator"
# Repeat for all 34 issues...
```
---
## Summary
- **34 new issues ready to create**
- **All issues have templates above**
- **Dependencies mapped**
- **No conflicts with existing M6 issues**
- **Ready for Jason's approval**