Odel
morning form

morning form

Local
@contactxyz-adminTypeScriptUpdated 1mo ago

stdio MCP proxy for MorningForm — bridges Claude Code to MorningForm HTTPS MCP server.

Morning Form

Morning Form is a premium mobile-first state-optimization web app covering assessment, profile generation, protocol recommendation, daily guidance, check-ins, insights, and wearable integrations.

Local development

cd /Users/reubenselby/Desktop/morning-form
npm install
npx prisma db push
npm run db:seed
npm run dev

App URL:

http://localhost:3000

Demo user seeded locally:

demo@morningform.com

Current branch workflow

  • main: built MVP
  • feat/real-health-oauth: review branch for real provider connection wiring

Open PR:

https://github.com/contactxyz-admin/morning-form/pull/1

Health integrations

Morning Form currently supports:

  • Terra-backed Apple Health and Garmin connection flow
  • Direct OAuth scaffolding for Whoop, Oura, Fitbit, and Google Fit
  • persisted provider connections via Prisma
  • callback routes and token exchange when credentials are configured
  • graceful mock fallback when credentials are absent

Detailed provider setup lives in:

docs/HEALTH_PROVIDER_SETUP.md

Metrics

Retest loop

The retest loop (off by default, behind RETEST_LOOP_ENABLED) runs the "return leg": a lab panel completes a Draw, the next retest is scheduled, a daily Vercel cron (/api/cron/retest-nudge, gated by CRON_SECRET) sends a capped nudge sequence, and retention-to-retest is measured (nudge-attributed = loop-caused). The metrics CLI above appends a retest-retention section when the flag is on. Backfill existing users (run dark, before the flip): npx tsx scripts/retest/backfill-baseline-draws.ts (dry run) then --apply. Tunables live in src/lib/retest/constants.ts. See docs/runbooks/retest-loop-go-live.md and docs/plans/2026-06-17-001-feat-return-leg-retest-loop-plan.md.

Retrieval

Hybrid retrieval is enabled when an embedding provider is configured. It embeds only SourceChunk.text, stores one VectorEmbedding per chunk, and keeps search_graph_nodes on the same public contract while ranking with vector + lexical + graph RRF. Set HYBRID_RETRIEVAL_ENABLED=false to roll back to legacy lexical/graph behavior.

Production rollout:

npx prisma generate
npx prisma db push
npx tsx scripts/backfill-embeddings.ts --dry-run --estimate
npx tsx scripts/backfill-embeddings.ts --batch 80

See docs/runbooks/hybrid-retrieval-production.md and docs/runbooks/backfill-embeddings.md.