Skip to main content

Go-Live Readiness — Pro Website — 2026-04-22T11:45Z

Overall: 67% (NOT READY) — 0 P0, 5 P1, 3 P2 open

Diff vs 2026-04-18 14:30: Score unchanged at ~66–67%. Six active workstreams since the last scorecard have shipped significant improvements (modular pricing, upgrade flow verified 5/5, demo-slug spec, setup-wizard spec, contact form spec, voice routing fixes), but two of the three P1 blockers from the prior run remain open, and two new P1s have been added since (FA-046 auth hole, FA-045 CI red). Overall Axis A (customer reality) cap remains: 0 real paying Pro Website customers.


Two-Axis Score

Axis2026-04-18 14:302026-04-22 11:45Change
A — Customer Reality (0 real customers → cap)60% (capped)60% (capped)
B — Regression Safety78%78%— (same base, new wins offset new gaps)
Overall weighted (0.7A + 0.3B)66%67%+1 pt

9 Dimensions

#DimensionScoreStatusEvidence
1User journeys3/4⚠ WARN3 registry entries stamped last_run: 2026-04-18T02:40Z; cwa-pro-website-edit still last_run: null (no editor spec yet)
2Desktop/tablet/mobile3/3✅ PASS4 pro-website specs present: pro-website-standalone.spec.ts, pro-website-funnel.spec.ts, pro-website-demo-slugs.spec.ts, setup-wizard.spec.ts. Demo URL grace-community.john316.church confirmed 200. Viewport tags @pro-website present on funnel spec.
3Knowledge accuracy0/1❌ FAILKnowledge drift was P1 at last run; Supabase MCP auth unavailable this run so validate_product_knowledge() could not be executed. Dimension held FAIL pending re-check with DB access. cwa-pro-website.md acceptance spec remains DRAFT (founder interview still outstanding).
4Onboarding / billing1/1✅ PASSchurchwiseai.com/pro-website → 200, $14.95/mo + $19.95/mo CTAs visible. /onboard?plan=cwa_pro_website → 200, plan card renders. pro-website-upgrade entry last_run: 2026-04-21T00:00Z (5/5 green). Plan-column contract confirmed: webhook route has 13 references to cwa_pro_website/ps_pro_website, no normalizePlanTier() writes to plan column. modular-pricing spec exists; flag currently OFF in production (spec skips flag-gated assertions, safe). Critical-path-gate was green on most recent relevant PRs.
5User docs1/1✅ PASSchurchwiseai.com/help/pro-website → 200. Topics confirmed: activation, customization, domain, cancellation, troubleshooting (15 topics). Canonical source churchwiseai-web/src/app/help/pro-website/page.tsx confirmed present.
6Drift & issues0/1❌ FAILFA-045 (Tests workflow API contract drift + rate-limit 429s — CI red on every main push) still open P1. FA-046 (churn-return auth hole — cancelled customers retain full dashboard access) still open P1. Supabase MCP auth unavailable so founder_action_items SQL count not run; based on file audit: 2 active P1s directly affecting this property.
7Analytics1/1✅ PASS/api/founder/readiness/pro-website route present in codebase (auth-gated 401 from unauthenticated request = route live). Readiness tab wired in FounderDashboard.tsx.
8Marketing funnels1/1✅ PASSLanding /pro-website → 200, heading "A stunning website your church actually wants", CTA present. Pricing /pricing → 200, both $14.95/mo (site-only) and $19.95/mo (with Chat) confirmed. e2e/synthetic/pro-website-funnel.spec.ts exists (last_run: 2026-04-18T02:40Z — 9 passed). Note: MailerLite pro-website-leads group existence not verified (MailerLite API not checked this run).
9Agent monitoring1/1✅ PASSNo resource conflicts in ACTIVE_WORK.md. voice-agent-testing-backlog is stale (started 2026-04-15, no recent activity noted) — P2. ensure-solid-portfolio-run-2026-04-22 registered as read-only.

Dimension score: 6/9 enabled dimensions pass = 67%


Punch List (ordered by severity)

P1 — Must fix before marketing push

  • P1-1 (FA-046) — Cancelled customers retain full admin dashboard access [auth-hole]. resolveToken() returns a full session regardless of premium_churches.status. Cancelled customer with an old magic-link or re-requested link can view care list, call logs, prayer requests. Fix: tombstone view in admin/[token]/page.tsx when status='cancelled'. Note: Banner exists in AdminDashboard.tsx (line 758) but the page itself does not gate access at the resolveToken level — banner is cosmetic only. Action: FA-046 (filed 2026-04-18).

  • P1-2 (FA-045) — CI red on main branch: API contract tests failing [ci-red]. Tests → Run API contract tests step fails on every main push. 2 failure classes: status-code drift (400 where spec expects 401/403) + rate-limit 429s on CI burst traffic. Violates green-CI rule (memory/feedback_ci_must_be_green.md). This is 4 days old and has been accepted de facto — not acceptable pre-marketing-push. Action: FA-053 (rate-limit bypass header added as P2 but needs to be treated as P1 given CI red).

  • P1-3 — Acceptance spec cwa-pro-website.md still DRAFT [spec-gap]. 7 delta sections (discovery copy, onboarding wizard copy, upsell from Pro Website to Voice/Chat, cross-sell to SermonWise, welcome email sequence, domain config, brand voice) remain unwritten. This means there is no authoritative expected-output definition for the CWA-specific Pro Website journey. Blocks CLAUDE.md rule #17 (no customer-facing feature without acceptance spec). Action: 30–45 min founder interview to promote spec from DRAFT to COMPLETE.

  • P1-4 — cwa-pro-website-edit journey has no spec or last_run [journey-gap]. Registry entry exists but spec_file: null and last_run: null. The admin editor flow (hero photo, colors, staff, events) is critical to the daily customer experience. Any regression in WebsiteTab.tsx or the /api/admin/website route would go undetected. Action: Write e2e/pro-website-editor.spec.ts against demo-bridge-2026 token.

  • P1-5 — modular-pricing spec never run; NEXT_PUBLIC_MODULAR_PRICING off in production [billing-risk]. The 2026-04-21 modular pricing work (site-only $14.95, combo $19.95) shipped code but the feature flag is OFF in Vercel production. The modular-pricing registry entry has last_run: null and critical_path: false (pending first green run). The pricing page currently serves both price points via a non-flag-gated path (confirmed 200 with $14.95 + $19.95 on /pricing), but the has_website_subscription entitlement column path is untested end-to-end. Action: Run e2e/modular-pricing.spec.ts on preview with flag ON, get first green run, flip critical_path: true in registry.

P2 — Fix before scale

  • P2-1 — voice-agent-testing-backlog workstream stale (7 days) [agent-monitoring]. Started 2026-04-15, no confirmed recent commit activity. Holds C:/dev/cwa-voice-testing worktree on feat/voice-agent-testing-backlog. Risk: if the founder starts new voice work in churchwiseai-web on a different branch, branch divergence. Recommend: release or confirm active.

  • P2-2 — FA-047/FA-048 deferred: 2 demo rows still ps_pro_website [schema-debt]. St. Joseph and The Bridge demo rows retain legacy plan value. While harmless today (all three keys accepted in the isProWebsitePlan() array), the CHECK constraint can't be tightened until FA-047 migrates them. Blocking FA-048 (constraint tighten). Low risk but creates confusion for agents reading plan values.

  • P2-3 — MailerLite pro-website-leads group existence unverified [funnel-gap]. marketing_funnel.mailerlite_group: pro-website-leads in config but not confirmed alive this run (MailerLite API not checked). If the group is missing, subscriber capture from the landing page CTA is silently dropping leads.


What Improved Since 2026-04-18

  • pro-website-upgrade spec: 5/5 green (FA-051 resolved 2026-04-21). BUG-051 double-billing invariant verified. 3 follow-up bugs fixed (PRs #93, #94, #95). Registry entry flipped critical_path: true.
  • Modular pricing built (2026-04-21): $14.95/mo site-only plan (cwa_pro_website_site_only) + $19.95/mo combo (cwa_pro_website) now live on the pricing and landing pages. Plan-column contract respected.
  • Demo subdomain spec added: e2e/pro-website-demo-slugs.spec.ts — 3 demo URLs verified (9/9 passes from product-gates-testing session, per ACTIVE_WORK.md). Closes a gap from the prior run.
  • Setup wizard spec added: e2e/setup-wizard.spec.ts — covers the 7-step wizard for cwa_pro_website plan. Requires PLAYWRIGHT_WIZARD_ADMIN_TOKEN env var; skips otherwise.
  • Contact form spec deferred properly: knowledge/acceptance/cwa-pro-website-contact-form.md backfill filed as FA-052 with full spec requirements. Proper scoping instead of CLAUDE.md rule #17 violation.
  • FA-044 resolved (demo richness): hero video keys assigned to 3 demos, Maple Street phone restored. Demo completeness test re-closed.
  • Plan-column canonical invariant: tier-config.contract.test.ts rewritten to node:test (PR #52), passes clean. FA-043 closed.
  • grace-community.john316.church → 200 confirmed (manually verified this run).

What Regressed Since 2026-04-18

  • No new dimension improvements — Axis B held at 78%. The new P1 items (FA-046, FA-045 treated at P1 severity) offset the wins above.
  • Pricing page funnel spec may be stale: pro-website-funnel.spec.ts line 42 asserts $19.95 on the pricing page — the pricing page now shows both $14.95 (site-only) AND $19.95 (combo), so the assertion technically still passes (first $19.95 match). However, the spec was written pre-modular-pricing and does not verify the new $14.95 entry or the cwa_pro_website_site_only plan key routing. This is a spec-staleness risk, not a production bug.

New Findings (not in prior scorecard)

  • Modular pricing feature flag OFF: confirmed from grep — NEXT_PUBLIC_MODULAR_PRICING is not set in .env.local, meaning the modular pricing code paths for the entitlement column are dormant in production.
  • FA-046 is partially mitigated: AdminDashboard.tsx line 758 shows a cancelled subscription banner with a "Reactivate" CTA — the UI is not fully open. However the resolveToken() gate still needs hardening at the page level so route data is not loaded at all for cancelled customers.

Closed Findings (resolved since 2026-04-18)

  • FA-043 (CI red on vitest import) — CLOSED, PR #52
  • FA-044 (demo richness gap) — CLOSED, PR #54
  • BUG-051 upgrade double-billing — VERIFIED CLOSED, FA-051 resolved

Self-healed This Run

None. This was a read-only audit. Supabase MCP auth was unavailable; SQL checks for validate_product_knowledge() and founder_action_items count could not be executed. Dimensions 3 and 6 scored conservatively based on file audit and known-open FAs.


CheckResultNotes
churchwiseai.com/pro-website200 ✅Heading confirmed, CTAs visible, $14.95 + $19.95
churchwiseai.com/pricing200 ✅Pro Website at $14.95/mo + $19.95/mo combo present
churchwiseai.com/onboard?plan=cwa_pro_website200 ✅Plan card renders, no errors
churchwiseai.com/help/pro-website200 ✅15 topics, canonical source confirmed
grace-community.john316.church200 ✅Full church site renders
Registry: cwa-onboarding-wizard last_run2026-04-18T02:40Z15 passed, 6 skipped
Registry: cwa-pro-website-ssr last_run2026-04-18T02:40Z15 passed, 6 skipped
Registry: cwa-pro-website-funnel-synthetic last_run2026-04-18T02:40Z9 passed
Registry: pro-website-upgrade last_run2026-04-21T00:00Z5/5 passed (FA-051 resolved)
Registry: cwa-pro-website-edit last_runnull ❌No spec yet
Registry: modular-pricing last_runnull ❌Spec exists, flag OFF
Plan column webhook grep13 occurrencesContract respected, no normalizePlanTier() writes
Acceptance spec cwa-pro-website.mdDRAFT ❌Needs founder interview
CI — Critical Path ProtectionPASS (last check 2026-04-18)Not re-verified this run
CI — Tests workflowFAIL ❌FA-045 — API contract drift still open

Path to READY

Axis B 78% → 95%+ (actionable this week):

  1. Resolve FA-046 (auth hole) + FA-045 (CI green) → D6 flips PASS → ~83%
  2. Run modular-pricing.spec.ts green on preview → first run stamps last_run → flip critical_path: true → D4 confidence higher
  3. Write cwa-pro-website-edit Playwright spec against demo token → D1 flips 4/4 → ~89%

Axis B → 95%: 4. Founder interview → cwa-pro-website.md DRAFT → COMPLETE → D3 resolves spec-gap → ~95%

Axis A → unlocked: 5. First real paying cwa_pro_website customer → Axis A cap lifted → ~89% overall


Generated by /ensure-solid pro-website · 2026-04-22T11:45Z