--- phase: 05-mvp-deployment plan: 04 subsystem: infra tags: [docker-compose, matrix, deployment, agents, docs] requires: - phase: 05-03 provides: "Shared /agents attachment contract and path normalization for Matrix runtime" provides: - "docker-compose.prod.yml bot-only deployment handoff artifact" - "docker-compose.fullstack.yml internal E2E harness with health-gated platform-agent startup" - "README and deploy architecture docs aligned to the split compose contract" affects: [mvp-deployment, operator-handoff, internal-e2e] tech-stack: added: [Docker Compose] patterns: [split-compose-by-operational-intent, shared-agents-volume-contract] key-files: created: [docker-compose.prod.yml, docker-compose.fullstack.yml] modified: [.env.example, README.md, docs/deploy-architecture.md] key-decisions: - "Split Compose artifacts by runtime intent: bot-only prod handoff vs internal full-stack verification." - "Document /agents as the bot-side shared volume root while internal platform-agent keeps /workspace on the same volume." patterns-established: - "Production operators use docker-compose.prod.yml and provide an external AGENT_BASE_URL." - "Internal verification uses docker-compose.fullstack.yml with service_healthy gating instead of sleep-based startup." requirements-completed: [PH05-05] duration: 3 min completed: 2026-04-27 --- # Phase 05 Plan 04: Split deployment artifacts Summary **Bot-only production compose handoff plus a separate health-gated full-stack harness aligned to the shared `/agents` volume contract** ## Performance - **Duration:** 3 min - **Started:** 2026-04-27T22:12:42Z - **Completed:** 2026-04-27T22:16:09Z - **Tasks:** 2 - **Files modified:** 5 ## Accomplishments - Added `docker-compose.prod.yml` as the operator-facing bot-only runtime artifact. - Added `docker-compose.fullstack.yml` for internal E2E runs with `platform-agent` health-gated startup. - Updated env and deployment docs so `/agents` and the split compose flow are explicit without relying on the old root compose file. ## Task Commits Each task was committed atomically: 1. **Task 1: Create split prod and fullstack compose artifacts** - `df6d8bf` (feat) 2. **Task 2: Update deployment docs and operator guidance for the split artifacts** - `22a3a2b` (docs) **Plan metadata:** pending final docs commit after state updates ## Files Created/Modified - `docker-compose.prod.yml` - bot-only deployment handoff with `/agents` volume contract - `docker-compose.fullstack.yml` - internal harness extending the bot service and adding health-checked `platform-agent` - `.env.example` - Phase 05 runtime variables for prod handoff and internal full-stack defaults - `README.md` - operator-facing instructions for choosing the correct compose artifact - `docs/deploy-architecture.md` - deployment topology and shared-volume guidance aligned to the split artifacts ## Decisions Made - Split deployment packaging by operational intent instead of overloading one compose file for both prod handoff and internal testing. - Kept the bot’s absolute shared path rooted at `/agents` in docs and env examples while letting the internal `platform-agent` consume the same named volume at `/workspace`. ## Deviations from Plan None - plan executed exactly as written. ## Issues Encountered - The docs verification grep treated `deploy` inside the filename `docs/deploy-architecture.md` as a false positive when root compose was still named explicitly. The fix was to remove the literal root compose filename from deploy-path wording while keeping the deprecation clear. ## User Setup Required None - no external service configuration required beyond populating `.env` from `.env.example`. ## Next Phase Readiness - Operators now have a bot-only compose artifact for handoff, and developers have a separate internal E2E harness. - Remaining Phase 05 work can rely on the split runtime contract without reinterpreting deployment docs. ## Self-Check: PASSED - Summary file exists at `.planning/phases/05-mvp-deployment/05-04-SUMMARY.md` - Commit `df6d8bf` found in git history - Commit `22a3a2b` found in git history --- *Phase: 05-mvp-deployment* *Completed: 2026-04-27*