- 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