- Gap 13: Growth tsconfig path alias (unused, safe)
- Gap 14: Docker Compose depends_on for tracker-dashboard
- Gap 15: Admin dashboard docs.ts service directory list
- Gap 16: MindLyst docs reference old services
- Gap 17: Old Dockerfiles need deletion
- Confirmed safe: Cosmos pattern, vitest, extraction-service, MindLyst web, pnpm-workspace
- Phase 4 expanded with new task items (4.8.3, 4.8.6, 4.12, 4.13, 4.15.6)
- Gap 1: Product ID naming inconsistency (tracker uses DEFAULT_PRODUCT_ID)
- Gap 2: Missing deps in platform-service (stripe, @bytelyst/auth, @fastify/rate-limit)
- Gap 3: Billing internal key auth must be scoped (not global hook)
- Gap 4-5: Growth webhooks lib + Stripe key config
- Gap 6: 17+ consumer files need URL updates across LysnrAI repo
- Gap 7: Ops status health check route references old ports
- Gap 8: Stripe webhook test hardcodes port 4002
- Gap 9-10: Load tests + Stripe docs reference old ports
- Gap 11: LysnrAI services/ env stubs need cleanup
- Gap 12: Mobile apps — no changes needed (confirmed)
- Route collision check: verified no conflicts
- Added Python client updates, Phase 0 baseline steps, pnpm install verification
- SERVICE_CONSOLIDATION_ROADMAP.md: plan to merge billing+growth+tracker into platform-service (5→2 services)
- AUTH_SERVICE_DESIGN.md: renamed with OUTDATED_CANCELED suffix, auth handled by platform-service