{"generatedAt":"2026-04-26T15:47:29.494Z","backendBaseUrl":"https://bigmooseheadless-production.up.railway.app","summary":{"implemented":1,"partial":5,"planned":2,"routes":12,"liveChecksOnline":1},"liveChecks":[{"id":"backend-health","label":"Backend Health","status":"online","detail":"HTTP 200","href":"https://bigmooseheadless-production.up.railway.app/health"},{"id":"medusa-admin","label":"Medusa Admin","status":"offline","detail":"HTTP 404 (admin disabled or not exposed on this environment)","href":"https://bigmooseheadless-production.up.railway.app/app"}],"routes":[{"href":"/","label":"Homepage","description":"Modernized Big Moose storefront landing page.","status":"ready","kind":"storefront"},{"href":"/shop","label":"Shop","description":"Primary catalog explorer for the rebuilt product assortment.","status":"ready","kind":"storefront"},{"href":"/product-page/moose-munch-3000mg-cbd-gummies-strawberry","label":"Product Detail","description":"Representative PDP route from the upgraded catalog.","status":"ready","kind":"storefront"},{"href":"/thca","label":"THCa Landing","description":"Collection landing page mirroring the live THCa lane.","status":"ready","kind":"storefront"},{"href":"/thcp","label":"THCp Landing","description":"Collection landing page for the THCp assortment.","status":"ready","kind":"storefront"},{"href":"/cbd","label":"CBD Landing","description":"Collection landing page for CBD products and merch.","status":"ready","kind":"storefront"},{"href":"/clones","label":"Clones Hub","description":"SEO-first clone discovery and request workflow surface.","status":"ready","kind":"storefront"},{"href":"/dashboard","label":"Operator Dashboard","description":"Repo-backed visibility into what is built, partial, and blocked.","status":"ready","kind":"storefront"},{"href":"/api/dashboard/status","label":"Dashboard JSON","description":"Machine-readable status export for this dashboard.","status":"ready","kind":"api"},{"href":"/api/clones/request","label":"Clones Request API","description":"Bulk clone request capture endpoint used by the UI.","status":"ready","kind":"api"},{"href":"https://bigmooseheadless-production.up.railway.app/health","label":"Backend Health","description":"Live Railway Medusa health endpoint.","status":"ready","kind":"backend"},{"href":"https://bigmooseheadless-production.up.railway.app/app","label":"Medusa Admin","description":"Production admin is currently disabled or not exposed on Railway.","status":"blocked","kind":"admin"}],"deployStatus":[{"id":"local-storefront","label":"Local Storefront","status":"pending","surface":"http://localhost:3000/dashboard","detail":"Local dev remains useful for fast UI iteration, but the public dashboard is now being served from Vercel.","nextStep":"Keep local `pnpm dev` as the fast edit loop while production points at Vercel + Railway."},{"id":"railway-backend","label":"Railway Backend","status":"healthy","surface":"https://bigmooseheadless-production.up.railway.app","detail":"Railway is serving the Medusa backend publicly and the health check is answering successfully.","nextStep":"Use this backend URL as the source of truth for Vercel and future custom-domain cutover."},{"id":"medusa-admin","label":"Medusa Admin","status":"pending","surface":"https://bigmooseheadless-production.up.railway.app/app","detail":"The backend is live, but `/app` is currently returning 404, which usually means admin is intentionally disabled on this environment.","nextStep":"Leave admin disabled if the plan is local-only operations, or re-enable `/app` when a hosted admin becomes necessary."},{"id":"public-storefront","label":"Public Storefront","status":"healthy","surface":"https://storefront-rosy-pi.vercel.app","detail":"The storefront and operator dashboard are being served from Vercel using the live backend URL.","nextStep":"Next polish step is custom domains plus any remaining dashboard content cleanup."}],"workstreams":[{"id":"platform","name":"Platform Migration","owner":"Codex + Claude + Brendon","deliverable":"Medusa backend + Next.js storefront replacing Wix by July 1, 2026.","status":"partial"},{"id":"compliance","name":"Compliance Engineering","owner":"Claude","deliverable":"Server-side total-THC and ship-to-state enforcement around P.L. 119-37.","status":"partial"},{"id":"crm","name":"CRM Consolidation","owner":"Claude","deliverable":"OG Life contact triage and import tooling for a unified CDP.","status":"planned"},{"id":"clones","name":"Clones Feature","owner":"Claude + Codex","deliverable":"SEO-first `/clones` hub with request flow, state gating, and bulk lane.","status":"partial"},{"id":"payments","name":"Payment Rails","owner":"Claude + Brendon","deliverable":"Clover primary rail with ACH fallback and sitewide card cap.","status":"partial"}],"milestones":[{"id":"m0","label":"M0: Repo Scaffold","target":"Apr 19, 2026","owner":"Claude","gate":"Boilerplate committed","status":"done"},{"id":"m1","label":"M1: Architecture + Compliance Libs","target":"Apr 26, 2026","owner":"Claude","gate":"Design docs and compliance library landed","status":"done"},{"id":"m2","label":"M2: Backend Stood Up","target":"May 3, 2026","owner":"Codex","gate":"`GET /store/products` returns seeded SKUs","status":"partial"},{"id":"m3","label":"M3: Storefront Deploy","target":"May 10, 2026","owner":"Codex","gate":"Homepage, `/shop`, and a product route render","status":"partial"},{"id":"m4","label":"M4: Klaviyo + AlpineIQ + Bland","target":"May 17, 2026","owner":"Codex","gate":"Order event reaches outbound integrations","status":"pending"},{"id":"m7","label":"M7: Checkout on Staging","target":"Jun 7, 2026","owner":"Codex","gate":"Sandbox purchase completes through Clover","status":"partial"},{"id":"m10","label":"M10: Cutover","target":"Jul 1, 2026","owner":"Brendon + Claude","gate":"First real order on the new stack","status":"pending"},{"id":"m14","label":"M14: Post-Ban Catalog","target":"Nov 12, 2026","owner":"Brendon + Claude","gate":"Only compliant SKUs remain purchasable","status":"pending"}],"features":[{"id":"dashboard-gui","name":"Dashboard GUI","goal":"Surface project goals, live system health, milestones, and feature coverage in one operator view.","workflow":"Docs → status model → GUI → API feed for future admin/reporting surfaces.","status":"implemented","links":[{"href":"/dashboard","label":"Operator Dashboard"},{"href":"/api/dashboard/status","label":"Status JSON"}],"artifacts":[{"label":"Dashboard page","path":"storefront/app/dashboard/page.tsx","markers":[],"exists":true,"hasMarkers":false},{"label":"Dashboard status API","path":"storefront/app/api/dashboard/status/route.ts","markers":[],"exists":true,"hasMarkers":false},{"label":"Dashboard data model","path":"storefront/lib/project/dashboard.ts","markers":[],"exists":true,"hasMarkers":false}]},{"id":"admin-gui","name":"Medusa Admin GUI","goal":"Boot the Medusa admin without missing frontend dependencies.","workflow":"Backend package deps → `medusa develop` → `/app` admin runtime.","status":"partial","links":[{"href":"https://bigmooseheadless-production.up.railway.app/app","label":"Admin UI"}],"artifacts":[{"label":"Backend package","path":"backend/package.json","exists":true,"hasMarkers":false},{"label":"Medusa config","path":"backend/medusa-config.ts","exists":true,"hasMarkers":false}]},{"id":"clover-checkout","name":"Clover Card Checkout","goal":"Hosted iFrame card lane with server-side card-cap enforcement.","workflow":"Card page → Clover iframe → `/api/checkout/authorize-card` → Medusa Clover module.","status":"partial","links":[{"href":"/checkout/card","label":"Card Checkout"},{"href":"/api/checkout/authorize-card","label":"Card API"}],"artifacts":[{"label":"Card page","path":"storefront/app/(shop)/checkout/card/page.tsx","exists":true,"hasMarkers":false},{"label":"Clover form","path":"storefront/components/checkout/CloverCardForm.tsx","exists":true,"hasMarkers":false},{"label":"Card authorize route","path":"storefront/app/api/checkout/authorize-card/route.ts","markers":["TODO(#17)"],"exists":true,"hasMarkers":false},{"label":"Backend Clover module","path":"backend/src/modules/payment-clover/index.ts","exists":true,"hasMarkers":false}]},{"id":"ach-checkout","name":"ACH Checkout Fallback","goal":"Route over-cap or declined card orders to the ACH lane.","workflow":"Card-cap middleware → `/checkout/ach` → `/api/checkout/authorize-ach` → Aeropay module.","status":"partial","links":[{"href":"/checkout/ach","label":"ACH Checkout"},{"href":"/api/checkout/authorize-ach","label":"ACH API"}],"artifacts":[{"label":"ACH page","path":"storefront/app/(shop)/checkout/ach/page.tsx","markers":["TODO(#2)"],"exists":true,"hasMarkers":false},{"label":"ACH authorize route","path":"storefront/app/api/checkout/authorize-ach/route.ts","exists":true,"hasMarkers":false},{"label":"Backend Aeropay module","path":"backend/src/modules/payment-aeropay/index.ts","exists":true,"hasMarkers":false}]},{"id":"compliance-engine","name":"Compliance Engine","goal":"Enforce total-THC and state legality in checkout workflows and sunset logic.","workflow":"Compliance library → middleware → backend compliance module.","status":"partial","links":[{"href":"/dashboard","label":"Compliance Status"}],"artifacts":[{"label":"Total THC library","path":"storefront/lib/compliance/totalTHC.ts","exists":true,"hasMarkers":false},{"label":"State legality library","path":"storefront/lib/compliance/stateLegality.ts","exists":true,"hasMarkers":false},{"label":"Checkout middleware","path":"storefront/middleware.ts","exists":true,"hasMarkers":false},{"label":"Backend compliance module","path":"backend/src/modules/compliance/index.ts","exists":true,"hasMarkers":false}]},{"id":"clones-phase-a","name":"Clones Phase A","goal":"Deliver the SEO-first `/clones` hub from the supplied legacy strain data.","workflow":"Catalog data → `/clones` page → quote/request CTA → downstream bulk lane.","status":"partial","links":[{"href":"/clones","label":"Clones Page"}],"artifacts":[{"label":"Clones page","path":"storefront/app/(content)/clones/page.tsx","exists":true,"hasMarkers":false},{"label":"Clones workflow UI","path":"storefront/components/clones/CloneWorkflowPanel.tsx","exists":true,"hasMarkers":false},{"label":"Clones quote API","path":"storefront/app/api/clones/quote/route.ts","exists":true,"hasMarkers":false},{"label":"Clones request API","path":"storefront/app/api/clones/request/route.ts","exists":true,"hasMarkers":false},{"label":"Clones catalog UI","path":"storefront/components/clones/CloneCatalog.tsx","exists":true,"hasMarkers":false},{"label":"Strain library","path":"storefront/app/(content)/clones/_data/strain_library.json","exists":true,"hasMarkers":false},{"label":"Clone backend module","path":"backend/src/modules/clones/index.ts","exists":true,"hasMarkers":false}]},{"id":"crm-import","name":"CRM Import Workflow","goal":"Import OG Life contacts and dedupe them into the Big Moose CDP.","workflow":"Triaged CSVs → import scripts → Medusa customers + outbound events.","status":"planned","links":[],"artifacts":[{"label":"OG Life integration plan","path":"OG_LIFE_INTEGRATION.md","exists":false,"hasMarkers":false},{"label":"Import script","path":"scripts/import-oglife-contacts.ts","exists":false,"hasMarkers":false},{"label":"Dedup script","path":"scripts/dedupe-oglife-bigmoose.ts","exists":false,"hasMarkers":false}]},{"id":"wix-migration","name":"Wix Migration Tooling","goal":"Preserve catalog and SEO equity through repeatable import and redirect tooling.","workflow":"Wix export → migration script → seeded catalog → redirects validation.","status":"planned","links":[],"artifacts":[{"label":"Migration plan","path":"MIGRATION_PLAN.md","exists":false,"hasMarkers":false},{"label":"Wix import script","path":"scripts/migrate-wix-to-medusa.ts","exists":false,"hasMarkers":false},{"label":"Seed script","path":"backend/seeds/phase1-full-catalog.ts","exists":false,"hasMarkers":false}]}],"nextActions":["Wire custom domains next: point `api.bigmoosehemp.com` at Railway and your storefront hostname at Vercel.","Decide whether production needs a hosted Medusa admin. If yes, re-enable `/app`; otherwise leave it intentionally private/local-only.","Finish the backend Clover payment provider so the frontend card flow stops proxying into a stub.","Replace the ACH placeholder with the real Aeropay authorization path and embed."],"currentBlockers":["Production Medusa admin is not exposed right now, so `/app` returns 404 until we explicitly choose to host it.","Clover and Aeropay modules are still stubs, so production checkout remains blocked even though infra is now mostly live.","CRM import and dedupe tooling are still missing, so OG Life consolidation remains docs-first rather than code-complete.","Repeatable Wix migration and seed scripts still need to land before catalog cutover can be treated as operationally safe."],"handoffDocs":["knowledge/LOCAL_DEV_SETUP.md","knowledge/CLAUDE_RAILWAY_HANDOFF.md","knowledge/COMMERCE_PATHWAY.md","knowledge/CLIENT_MESSAGES_AUTOMATIONS.md","infra/deploy-vercel-railway.md"]}