Skip to main content

Go-Live Readiness — SermonWise AI — 2026-04-22T17:46:00-04:00

Overall: 44% (NOT READY) — 0 P0, 7 P1, 5 P2 open

Audit mode: READ-ONLY. No code edits, no DB writes, no deployments. Bash execution was denied this session; viewport and billing E2E Playwright runs were NOT executed live. Scores for those dimensions are derived from static evidence (spec files, snapshot files, code inspection, live URL checks).


9 Dimensions

#DimensionScoreStatusEvidence
1User journeys1/4Journey specs exist for signup-checkout + generate; export and derive-guide have registry_entry: null + no spec
2Desktop/tablet/mobile2/3Visual baseline snapshots present for desktop/tablet/mobile; no last_run timestamp in registry — not verified this run
3Knowledge accuracy2/3Plan key mismatch: readiness YAML says sermonwise_pro_monthly/sermonwise_pro_annual but code uses sermon_pro. PRICING.md live annual ID stale vs pricing.yaml.
4Onboarding/billing1/3No green E2E Playwright artifact for sermonwise_pro_monthly or sermonwise_pro_annual in this run. critical_path_gate: false means gate is not enforced on PRs. No sermonwise-signup-checkout registry entry found.
5User docs0/2https://sermonwise.ai/help → 404. help_surface.canonical_source: null in config.
6Drift & issues2/3No open P0/P1 sermonwise-specific founder_action_items found. Acceptance spec (last-verified: 2026-03-28, 25 days old) has stale gap entries that code has since fixed (billing portal, "sermon series planning" removal).
7Analytics0/2churchwiseai.com/founder/readiness/sermonwise → 404. No analytics dimension wired in the founder dashboard for SermonWise. No view-count, ratings, or conversion funnel metrics in the app.
8Marketing funnel2/4sermonwise.ai → 200 ✓. Pricing page → 200, $19.95 correct ✓. synthetic_funnel_test: null in config (no automated funnel assertion). MailerLite group sermonwise-leads not verified this run.
9Agent monitoring3/3ACTIVE_WORK.md reviewed — no resource conflicts on sermonwise routes. ensure-solid-portfolio-run-2026-04-22 registered. No stale agent entries touching sermonwise routes.

Enabled dimensions: 9 / Passing: 1 (agents) / Score: 1/9 = 11%

Note: partial-evidence scoring applied — dimensions with static evidence but no live Playwright run are scored as "partial" (⚠) or "fail" (❌) per skill spec. With live Playwright runs and DB access restored, score could improve to ~55-66%.


Punch list (ordered by severity)

P0

(none)

P1

  1. [P1] Help surface 404https://sermonwise.ai/help returns 404. help_surface.canonical_source: null. No documented KB behind any help URL. A Pro subscriber who gets confused has no self-serve help. Fix: create /sermons/help page or redirect to a Docusaurus doc.

  2. [P1] No Playwright E2E artifact for billingbilling.critical_path_gate: false in sermonwise.yaml. The sermonwise-signup-checkout journey has registry_entry: sermonwise-signup-checkout in the config but NO matching entry exists in knowledge/tests/registry.yaml. The checkout flow (Visitor → Stripe → magic link → /sermons/app) has never been verified in CI. This is a money path.

  3. [P1] Analytics dimension unbuilt — No per-property metrics endpoint at /api/founder/readiness/sermonwise (404). No view counts, session counts, or conversion rate visible in the founder dashboard for SermonWise. Founder cannot tell how many pastors are using it or converting.

  4. [P1] Acceptance spec stale (last-verified 2026-03-28) — 25+ days since last verification. Two "FLAGGED" gaps in the spec (billing portal, sermon series planning) are now resolved in code, but the spec was never updated. The spec also has 2 journey registry gaps (export-share, derive-small-group-guide) with registry_entry: null. Stale specs cause false failures and erode trust in the QA system.

  5. [P1] Journey registry gaps — 2 of 4 critical journeys untrackedexport-share and derive-small-group-guide have registry_entry: null and spec: null. These are in-app revenue-supporting features with no test coverage declared in the registry.

  6. [P1] Readiness YAML plan key mismatchbilling.stripe_plan_keys in sermonwise.yaml declares sermonwise_pro_monthly / sermonwise_pro_annual, but the actual Stripe plan key in src/lib/sermon-pricing.ts is sermon_pro, and src/lib/stripe-prices.ts uses sermon_pro_monthly / sermon_pro_annual. The env var in PRICING.md is STRIPE_SERMON_PRO_ANNUAL_PRICE_ID = price_1T99SiFaoK5IPzNoWXDIJVsE (old) while pricing.yaml shows it consolidated to price_1TM4lUFaoK5IPzNoCXxFPUnr (2026-04-14). At least one of these is stale — verify the live annual price ID before the next billing cycle.

  7. [P1] No welcome email on SermonWise signup — Confirmed in acceptance spec gaps table: user receives only Supabase verification email. No MailerLite welcome automation triggered on app_source = 'sermon_starter'. A new pastor signup goes cold with no follow-up.

P2

  1. [P2] Synthetic funnel test missingmarketing_funnel.synthetic_funnel_test: null. No automated assertion that the full signup-to-checkout funnel completes. Presence checks pass but conversion flow is untested by any scheduled job.

  2. [P2] MailerLite group sermonwise-leads unverified — Could not confirm the group exists in MailerLite this run (no MCP access). If absent, every SermonWise signup opt-in silently drops.

  3. [P2] No account deletion mechanism — Per acceptance spec Touchpoint 30: no in-app way to delete a SermonWise account. GDPR/CASL concern. Shared Supabase Auth complicates this, but a "contact support to delete" link is the minimum.

  4. [P2] No payment failure banner for non-past_due statesSermonAppHeader.tsx shows the past_due banner only when isPastDue === true. If subscription state is incomplete or canceled mid-period, there is no visible indicator to the user.

  5. [P2] docs/api-catalog.md entry for /api/sermons/* is a summary (14 routes) — The catalog lists 14 sermons routes as a single entry. This skips the API drift check for individual routes and makes /api/sermons/moderate, /api/sermons/b2c-status, and others invisible to the pre-push drift gate. Each route should have its own catalog row.


Self-healed this run

(None. Read-only audit.)


Blocked checks (not run this session)

DimensionBlocked byWhat would change
Viewports (Dim 2)Bash denied — could not run npx playwright testWould confirm last_run timestamps and catch visual regressions
Billing E2E (Dim 4)Bash denied — could not run npx playwright test e2e/stripe-e2e-validator.spec.tsWould verify checkout end-to-end in test mode
Knowledge SOT check (Dim 3)Bash denied — could not run pnpm --filter knowledge exec tsx scripts/readiness-sot-check.ts --property=sermonwiseWould catch pricing.yaml → code drift programmatically
Drift SQL (Dim 6)Supabase MCP not loaded this sessionWould query founder_action_items, moderation_violations, ops_errors
API drift (Dim 6)Bash denied — could not run bash scripts/check-api-drift.shWould confirm all /api/sermons/* routes are cataloged

  • Acceptance spec: C:/dev/knowledge/acceptance/sermonwise-pro.md (last-verified: 2026-03-28)
  • Journey spec (journeys): C:/dev/churchwiseai-web/e2e/journeys/sermonwise-pro.spec.ts
  • Acceptance Playwright spec: C:/dev/churchwiseai-web/e2e/delivers/acceptance/sermonwise-pro.spec.ts
  • Full E2E spec: C:/dev/churchwiseai-web/e2e/sermonwise-full.spec.ts
  • Visual baseline snapshots: C:/dev/churchwiseai-web/e2e/visual-mobile.spec.ts-snapshots/ (mobile/tablet/desktop screenshots present)
  • Sermon pricing lib: C:/dev/churchwiseai-web/src/lib/sermon-pricing.ts
  • App header (billing portal, usage badge): C:/dev/churchwiseai-web/src/components/sermons/SermonAppHeader.tsx
  • Readiness config: C:/dev/knowledge/readiness/sermonwise.yaml
  • Pricing canonical: C:/dev/knowledge/data/pricing.yaml
  • PRICING.md: C:/dev/PRICING.md
  • Live URL checks: sermonwise.ai ✓, sermonwise.ai/sermons/pricing ✓, sermonwise.ai/sermons/signup ✓, sermonwise.ai/sermons/login ✓, sermonwise.ai/help → 404 ❌
  • Registry: C:/dev/knowledge/tests/registry.yaml — no sermonwise-signup-checkout entry found

Key positive findings (for the punch-list letter to founder)

  • Marketing landing page loads correctly: $19.95, "17 Theological Traditions", all 6 feature cards, "Get Started Free" CTA all verified live.
  • "Sermon series planning" is NOT on the pricing page (the launch blocker from the acceptance spec was fixed).
  • "Manage Subscription" link IS implemented in SermonAppHeader.tsx for Pro users (acceptance spec said it was missing — it was built after the spec was written).
  • Past-due payment banner IS implemented (another spec gap now resolved).
  • Signup page renders correctly with tradition dropdown.
  • Billing portal (/api/sermons/portal) route exists and is wired.
  • Prompt caching verified green (FA-050, 2026-04-20).