Go-Live Readiness — ChurchWiseAI (Voice + Chatbot) — 2026-04-22T21:52:15Z
Overall: 22% (NOT READY) — 0 P0, 7 P1, 3 P2 open
NOT READY is driven by 7 P1 findings across 6 dimensions. No P0 issues found in this run. The production site is live and serving customers — the rating reflects readiness gaps for confident scaled marketing, not a system-down state.
9 Dimensions
| # | Dimension | Score | Status | Evidence |
|---|---|---|---|---|
| 1 | User journeys | 2/5 | ⚠ WARN | Registry checked; 2/5 journeys have confirmed last_run; 3 lack last_run (null) |
| 2 | Desktop/tablet/mobile | 0/3 | ⚠ WARN | Playwright commands declared but not run this session (Tests CI failing for pre-existing reasons — FA-045) |
| 3 | Knowledge accuracy | 0/1 | ❌ FAIL | pnpm derive --check fails: 3 sources drifted — products.yaml (4 targets), policies.yaml (5 targets), knowledge:docs (1 target). product_knowledge SQL upserts pending |
| 4 | Onboarding/billing | 0/1 | ⚠ WARN | stripe-e2e-validator.spec.ts exists; no stripe-e2e-validation-monthly CI artifact found this month. Billing plan keys in cwa.yaml (voice_suite_monthly, bundle_suite_monthly) do not align with stripe-prices.ts key names (cwa_suite_chat, cwa_suite_both) |
| 5 | User docs | 1/1 | ✅ PASS | https://churchwiseai.com/help returns 200 with real "ChurchWiseAI Help Center" content |
| 6 | Drift & issues | 0/1 | ⚠ WARN | API drift check: PASS (all 4 checks green). Supabase MCP required auth — founder_action_items, moderation_violations, ops_errors SQL queries not executed this run; graded warn |
| 7 | Analytics | 1/1 | ✅ PASS | ReadinessTab.tsx exists in FounderDashboard, wired to /api/founder/readiness/[property] route — component is present and imported |
| 8 | Marketing funnel | 0/1 | ❌ FAIL | Landing (/) returns 200 ✅. Pricing (/pricing) returns 200 ✅. Prices on page match PRICING.md ✅. BUT: marketing_funnel.mailerlite_group = cwa-leads does not match code (CWA_NEWSLETTER / cwa-newsletter). synthetic_funnel_test: null — no automated smoke test for landing→checkout |
| 9 | Agent monitoring | 1/1 | ✅ PASS | No resource overlaps between active workstreams. ensure-solid-orchestrator stale (last activity 2026-04-18T14:20Z — 4 days); voice-agent-testing-backlog stale (started 2026-04-15, no last-activity timestamp). Two stale entries flagged as P2 |
Overall score: 3/9 dimensions pass = 33% — but any P1+ findings keep status NOT READY.
Score correction: 3 dimensions pass (5, 7, 9), 2 fail (3, 8), 4 warn (1, 2, 4, 6). Warn ≠ pass per scoring rules. Pass count = 3/9 = 33%. Status = NOT READY (P1 findings present).
Punch List (ordered by severity)
P1 Findings
-
P1-1 [Journeys]
voice-live-callregistry entry:last_run: null,spec_file: null. Critical-path entry has never been run green. FA-047 (browser voice demo E2E) is still open — spec exists ase2e/voice-live-callbut no green run on record.- Fix: Complete FA-047 — run
e2e/voice-live-call.spec.tsagainst production, confirm green, stamplast_run.
- Fix: Complete FA-047 — run
-
P1-2 [Journeys]
cwa-chatbot-live-responseregistry entry:last_run: null. Critical-path entry.spec_file: e2e/journeys/visitor-uses-chatbot.spec.tsexists but no green production run on record.- Fix: Run
visitor-uses-chatbot.spec.tsagainsthttps://churchwiseai.comand stamplast_run.
- Fix: Run
-
P1-3 [Journeys]
cwa-cancelledandcwa-trial-expiredjourneys listed incwa.yamlcritical_journeys but NOT found inregistry.yamlby those names. FA-046 (churn-return auth hole) is open — cancelled customers still have full dashboard access.- Fix: Add
cwa-cancelledandcwa-trial-expiredregistry entries; implement tombstone view (FA-046).
- Fix: Add
-
P1-4 [Knowledge]
pnpm derive --checkfails:data/products.yaml(4 product_knowledge SQL targets out of sync),data/policies.yaml(5 product_knowledge SQL targets out of sync),knowledge:docs(1 README target out of sync). Self-heal attempt viapnpm derive --allfixed file targets but could not execute SQL upserts (Supabase MCP requires auth this run).- Fix: Run
pnpm derive --allwith Supabase MCP auth active to sync product_knowledge rows. Runvalidate_product_knowledge()after.
- Fix: Run
-
P1-5 [Billing]
cwa.yamlbillingstripe_plan_keyscontainsvoice_suite_monthlyandbundle_suite_monthlywhich do not match canonical key names instripe-prices.ts(cwa_suite_chat,cwa_suite_both). Config is stale — thestripe-e2e-validator.spec.tsmay not exercise the correct keys.- Fix: Update
cwa.yamlbilling keys to match stripe-prices.ts canonical names; re-run e2e validator.
- Fix: Update
-
P1-6 [Billing] No
stripe-e2e-validation-monthlyCI artifact found for April 2026.stripe-e2e-validator.spec.tsexists but has not been run in CI this month — manual run required to verify all 9 plan keys have a green checkout path.- Fix: Run
npx playwright test e2e/stripe-e2e-validator.spec.tsagainst production and upload artifact.
- Fix: Run
-
P1-7 [Marketing]
marketing_funnel.mailerlite_group = cwa-leadsin config does not match actual code group nameCWA_NEWSLETTER(MailerLite name:cwa-newsletter). Thecwa-leadsgroup may not exist or may be unmapped — new signups from CWA landing page may not be tagged to the right MailerLite segment.- Fix: Verify
cwa-leadsgroup exists in MailerLite; if not, updatecwa.yamltocwa-newsletter. Wire newsletter signup on landing page toCWA_NEWSLETTERgroup.
- Fix: Verify
P2 Findings
-
P2-1 [Marketing]
marketing_funnel.synthetic_funnel_test: null— no automated smoke test for the landing→pricing→checkout flow. Any silent regression in the conversion funnel goes undetected.- Fix: Create a Playwright spec that: loads
/, clicks the primary CTA, verifies/pricingrenders with correct prices, confirms/onboardor/api/stripe/church-checkoutis reachable.
- Fix: Create a Playwright spec that: loads
-
P2-2 [Agent monitoring]
ensure-solid-orchestratorworkstream in ACTIVE_WORK.md last active 2026-04-18T14:20Z (4 days stale). No git commits since that date onfeat/ensure-solid-orchestratorbranch.- Fix: Founder to confirm if this workstream is complete and release it via
wt-release, or assign to an agent to finish.
- Fix: Founder to confirm if this workstream is complete and release it via
-
P2-3 [Agent monitoring]
voice-agent-testing-backlogworkstream in ACTIVE_WORK.md started 2026-04-15 with nolast_activitytimestamp. WorktreeC:/dev/cwa-voice-testingstill exists.- Fix: Founder to confirm status. If complete, release the worktree. If in-flight, update
last_activity.
- Fix: Founder to confirm status. If complete, release the worktree. If in-flight, update
Dimension Details
D1 — User Journeys (WARN)
Journeys declared in cwa.yaml critical_journeys vs registry state:
| Journey | Registry Entry | last_run | last_break | Status |
|---|---|---|---|---|
| onboard-signup-activate | cwa-onboarding-wizard | 2026-04-18T02:40Z (15 passed) | null | ✅ Green |
| chatbot-hear-protocol | cwa-chatbot-live-response | null | null | ❌ Never run |
| voice-live-call | voice-live-call | null | null | ❌ Never run (spec_file: null) |
| trial-expired-gating | cwa-trial-expired | Not found in registry | — | ❌ Gap |
| cancellation-service-continues | cwa-cancelled | Not found in registry | — | ❌ Gap |
Acceptance specs checked: starter-chat.md ✅, starter-voice.md ✅, starter-both.md ✅, pro-suite-chat.md ✅, pro-both.md ✅, suite-both.md ✅, trial-expired.md ✅, cancelled.md ✅ — all 8 spec files exist.
D2 — Viewports (WARN)
Playwright commands declared in cwa.yaml. Commands were not run this session — the Tests workflow has been failing on main since at least 2026-04-18 (FA-045: API contract test 400-vs-401 drift + rate-limit 429s). Running viewport tests against https://churchwiseai.com would have produced unreliable results due to rate-limiter interference. Graded WARN (not-checked-this-run) per skill spec.
Latest CI Tests workflow: FAILING (run 24803634871, 2026-04-22T21:29Z). Critical Path Protection workflow: PASSING (run 24803634845, same push).
D3 — Knowledge Accuracy (FAIL)
pnpm derive --check exit code 1. Self-heal attempted via pnpm derive --all:
data/pricing.yamltargets: all UP TO DATE ✅data/features.yamltargets: UP TO DATE ✅knowledge/INDEX.md: UP TO DATE after self-heal ✅data/products.yaml→supabase:product_knowledge: 4 SQL statements pending (cannot execute — Supabase MCP auth required)data/policies.yaml→supabase:product_knowledge: 5 SQL statements pending (same)knowledge:docsREADME: 1 target out of sync
D4 — Onboarding/Billing (WARN)
stripe-e2e-validator.spec.ts exists at e2e/stripe-e2e-validator.spec.ts. No CI artifact found for the current month. Critical Path Protection CI is green on main. Config key mismatch flagged (P1-5). Graded WARN.
D5 — User Docs (PASS)
https://churchwiseai.com/help returns 200 with real Help Center content covering Getting Started, Voice Agent, Chatbot, and other sections. help_surface.canonical_source: null in config (still a documentation gap) but the surface itself passes the presence check.
Note: Config still shows canonical_source: null. This means there is no accountable KB source documented — the help content is live but not version-controlled or linked to a canonical source in the readiness config. Recommend updating cwa.yaml help_surface.canonical_source to point to the backing source.
D6 — Drift & Issues (WARN)
API drift check (bash scripts/check-api-drift.sh): ALL 4 CHECKS PASSED ✅
- All API routes documented in
docs/api-catalog.md - All critical files have CODEOWNERS entries
- No changes to legacy directories
- All page routes documented in CLAUDE.md
Supabase SQL checks: Not executed this run (Supabase MCP required browser-based OAuth — not available in headless agent context). Graded WARN not FAIL per skill spec (not-checked-this-run). Prior context: FA-045 documents pre-existing CI issues. No new P0/P1 ops_errors known.
Open founder action items relevant to CWA (from FOUNDER_ACTIONS.md): FA-058 (P1, voice preview DID), FA-057 (P1, FuneralWiseAI demo), FA-047 (P1, voice demo E2E), FA-046 (P1, churn-return auth), FA-045 (P1, CI red Tests workflow), FA-037 (P1, voice security test plan).
D7 — Analytics (PASS)
ReadinessTab.tsx exists at src/app/founder/[token]/components/ReadinessTab.tsx and is imported in FounderDashboard.tsx. Tab key readiness is in the tab list. API route src/app/api/founder/readiness/[property]/route.ts exists. Component fetches from /api/founder/readiness?token= and /api/founder/readiness/${property}?token=. Passes presence check.
D8 — Marketing Funnel (FAIL)
| Check | Result |
|---|---|
https://churchwiseai.com (landing) | ✅ 200, content loads |
https://churchwiseai.com/pricing | ✅ 200, prices visible |
| Price consistency check | ✅ Chat Starter $14.95 ✅ Chat Pro $34.95 ✅ Chat Suite $59.95 ✅ Voice Starter $49.95 ✅ Voice Pro $99.95 ✅ Bundle Starter $54.95 ✅ Bundle Pro $119.95 ✅ Bundle Suite $139.95 — all match PRICING.md |
MailerLite group cwa-leads | ❌ MISMATCH — code uses CWA_NEWSLETTER (MailerLite name: cwa-newsletter), not cwa-leads |
synthetic_funnel_test | ❌ null — no automated smoke test |
D9 — Agent Monitoring (PASS)
No resource overlaps between active workstreams. The product-gates-testing-2026-04-22 workstream was released. funeralwiseai-and-founder-ux-2026-04-22 is paused (no active conflict). Two stale entries flagged as P2 (see punch list).
Self-Healed This Run
pnpm derive --all—knowledge/INDEX.mdwas drifted (1 target:new-vertical-launch.mddescription updated 2026-04-22). Re-derived to current state. File targets now clean. SQL targets (supabase:product_knowledge) could not be applied — Supabase MCP auth not available. These remain open (P1-4 in punch list).
Evidence Links
- API drift check: ran
bash scripts/check-api-drift.shinchurchwiseai-web/— exit code 0, all checks PASS - Production landing:
https://churchwiseai.com— 200 OK, content verified - Production pricing:
https://churchwiseai.com/pricing— 200 OK, all 8 key prices verified against PRICING.md - Help surface:
https://churchwiseai.com/help— 200 OK, real Help Center content - GitHub CI: last main push run 24803634871 —
TestsFAIL,Critical Path ProtectionPASS - Registry file:
C:/dev/knowledge/tests/registry.yaml - Acceptance specs:
C:/dev/knowledge/acceptance/— all 8 declared specs present - Derive check:
C:/dev/knowledge/—pnpm derive --checkexit 1 (3 source groups drifted); self-heal partially applied - ACTIVE_WORK.md:
C:/dev/ACTIVE_WORK.md— 5 active workstreams reviewed, 2 stale flagged - FOUNDER_ACTIONS.md:
C:/dev/FOUNDER_ACTIONS.md— 6 open P1s relevant to CWA