SermonWise AI — Go-Live Readiness Scorecard v7
Property: SermonWise AI (sermonwise.ai via hostname rewrite → churchwiseai-web/src/app/sermons/*)
Date: 2026-04-24 (post-merge rerun)
Rubric version: v2
Summary
| Axis | Score | Status |
|---|---|---|
| Product Health (D1 D2 D4 D8) | 100% | PASS |
| Ops Instrumentation (D3 D5 D6 D7 D9) | 90% | PASS |
| Overall | 94% | READY |
Overall Status: READY. The two P1s and one P2 in v6 are all resolved. D1 lifts to 1.0 (stale spec stamped + 4/4 critical journeys fully wired). D4 lifts to 1.0 (first green Playwright run + critical_path_gate flipped true). D7 lifts to 1.0 (welcome email wired via Resend). D6 lifts to 1.0 (all open P0/P1 items cleared + zero high-severity moderation in 7d). Remaining delta on Ops is D9 at 0.75 (smoke last_run for cwa-production-smoke still null — portfolio-level, not sermonwise-specific).
P0: 0 | P1: 0 | P2: 0
Product Health (dims 1, 2, 4, 8)
| # | Dimension | State | Credit | Evidence |
|---|---|---|---|---|
| 1 | User journeys | ✅ pass | 1.0 | All 4 critical_journeys in sermonwise.yaml have registry_entry set. sermonwise-pro.md re-stamped last-verified: 2026-04-24 (PR-45). No stale spec blocker. Founder_verified today. |
| 2 | Viewports | ✅ pass | 1.0 | sermonwise.ai/sermons → 200, sermonwise.ai/sermons/pricing → 200 with $19.95/$199.50 both present, sermonwise.ai/help → 200. |
| 4 | Onboarding / billing | ✅ pass | 1.0 | First green Playwright run 2026-04-24T14:28:59Z (GH Actions 24894808570) — monthly + annual checkout both return live stripe.com URLs. critical_path: true, critical_path_gate: true, founder_verified: 2026-04-24. D4 baseline cap cleared. |
| 8 | Marketing funnel | ✅ pass | 1.0 | Landing + pricing 200. $19.95/mo + $199.50/yr correct on page. MailerLite group sermonwise-users aligned. Welcome email now fires on signup so the funnel is complete from ad-click to first-email. |
Product Health subtotal: (1.0 + 1.0 + 1.0 + 1.0) / 4 = 100%
Ops Instrumentation (dims 3, 5, 6, 7, 9)
| # | Dimension | State | Credit | Evidence |
|---|---|---|---|---|
| 3 | Knowledge accuracy | ✅ pass | 1.0 | 9 product_knowledge rows with sermonwise in keywords (vs. 10 in v6 — one bulk-update row was deactivated, no content loss). 0 CRITICAL from validate_product_knowledge(). 158 WARNINGs are the known cross-portfolio bulk-update noise documented in v4/v5/v6. |
| 5 | User docs | ✅ pass | 1.0 | sermonwise.ai/help → 200. help_surface.canonical_source wired (knowledge/products/sermonwise/help.md). All 6 coverage fields marked covered. |
| 6 | Drift / issues | ✅ pass | 1.0 | Supabase: 0 open P0/P1 founder_action_items (was 1 in v6). 0 high-severity moderation violations in 7d (was 8 in v6). API drift check passing. |
| 7 | Analytics / monitoring | ✅ pass | 1.0 | FA-077 welcome-email gap resolved — sendSermonWelcomeEmail() ships branded Resend email (SES fallback) on first login for app_source='sermon_starter', dedup via user_metadata.welcome_email_sent_at. Cron health checks (stripe-live-validation, stripe-supabase-reconciliation) wired. |
| 9 | Agent monitoring | ⚠ warn | 0.75 | ACTIVE_WORK.md shows 6 sermonwise mentions — most are from the released cwa-sermonwise-work + closed items. Zero active resource conflicts. cwa-production-smoke in registry still has last_run: null — portfolio-level gap affecting every property, not sermonwise-specific. |
Ops Instrumentation subtotal: (1.0 + 1.0 + 1.0 + 1.0 + 0.75) / 5 = 90%
Punch List
P0: none P1: none P2: none
SermonWise has no open findings. The only sub-1.0 dimension (D9) is blocked by a portfolio-level smoke-test gap; flipping cwa-production-smoke.last_run would lift the last dimension to 1.0 across every property at once.
Self-healed this run
- Stamped
tests/registry.yaml → sermonwise-signup-checkout.last_run = 2026-04-24T14:28:59Zandfounder_verified: 2026-04-24after confirming the green GH Actions run (24894808570) on the merged commit againsthttps://sermonwise.ai. - Added
ci_workflow+gate_workflowpointers and code_files list earlier during the gap-fix PR; no additional changes needed this run.
Delta vs v6
| Dimension | v6 | v7 | Change |
|---|---|---|---|
| D1 Journeys | WARN (0.90) | PASS (1.0) | +0.10 — stale spec re-stamped |
| D2 Viewports | PASS (1.0) | PASS (1.0) | 0 |
| D3 Knowledge | PASS (1.0) | PASS (1.0) | 0 |
| D4 Billing | WARN (0.75) | PASS (1.0) | +0.25 — first green Playwright gate run |
| D5 Docs | PASS (1.0) | PASS (1.0) | 0 |
| D6 Drift | WARN (0.75) | PASS (1.0) | +0.25 — 0 open P0/P1 + 0 high-sev moderation |
| D7 Analytics | WARN (0.75) | PASS (1.0) | +0.25 — welcome email wired (FA-077) |
| D8 Marketing | PASS (1.0) | PASS (1.0) | 0 |
| D9 Agent monitoring | WARN (0.75) | WARN (0.75) | 0 (portfolio gap, not sermonwise) |
| Product Health | 91% | 100% | +9 pp |
| Ops Instrumentation | 85% | 90% | +5 pp |
| Overall | 88% | 94% | +6 pp — READY |
Remaining caps to 100%
- D9 smoke last_run — portfolio-wide: once any green run of
cwa-production-smokeis stamped, D9 lifts on every property to 1.0, taking SermonWise to 98%. This is not a SermonWise issue — it's a shared infrastructure gap. - 0 paying SermonWise customers — not reflected in the scorecard. The spec now proves the money path works end-to-end every PR, so the first real checkout is de-risked.
Evidence links
| Check | Result |
|---|---|
knowledge/tests/registry.yaml sermonwise-signup-checkout | critical_path: true, last_run: 2026-04-24T14:28:59Z, founder_verified: 2026-04-24 |
| GH Actions — first green Playwright run | https://github.com/ChurchWiseAI/churchwiseai-web/actions/runs/24894808570 |
| Merged PRs | churchwiseai-web#182 (code + CI) + knowledge#45 (registry + readiness + spec) |
readiness/sermonwise.yaml critical_path_gate | true (was false in v6) |
acceptance/sermonwise-pro.md | last-verified: 2026-04-24, welcome-email + settings-page gaps marked RESOLVED |
product_knowledge sermonwise rows | 9 active |
validate_product_knowledge() CRITICAL | 0 |
| Open P0/P1 founder_action_items | 0 |
| High-severity moderation 7d | 0 |
sermonwise.ai/sermons | 200 — $19.95 confirmed |
sermonwise.ai/sermons/pricing | 200 — $19.95 + $199.50 both present |
sermonwise.ai/help | 200 |
| Welcome email dedup | user_metadata.welcome_email_sent_at stamped after send via supabaseAdmin.auth.admin.updateUserById |