Skip to main content

Go-Live Readiness — PewSearch (Directory + Premium Page) — 2026-05-20T14:45:00Z

Overall: 56% (NOT READY) — 1 P0, 3 P1, 4 P2 open

Run by: ensure-solid readiness auditor (subagent of golive-readiness-program-2026-05-20) Prior score: NEEDS WORK (portfolio-audit-20260519.md — no 9-dimension cert had been run) Config: knowledge/readiness/pewsearch.yaml | Deploy branch: master | Repo: C:/dev/pewsearch


9 Dimensions

#DimensionScoreStatusEvidence
1User journeys4/6Playwright journey specs 4/6 green; 2 registry entries lack a green last_run (claim-flow: last_run 2026-04-28 pre-Supabase-key-rotation; premium-checkout: E2E teardown fails due to legacy key)
2Desktop/tablet/mobile9/9desktop 117/117 pass; tablet 112/112 pass; mobile 112/112 pass — 14/32/29 skipped (all visual baseline skips, not failures)
3Knowledge accuracy3/4validate_product_knowledge() → 0 CRITICAL; 157 WARNING (all bulk-update telemetry on demo/funeral/vet-vertical rows, none PewSearch-specific). knowledge/products/pewsearch-directory/help.md canonical source exists. Gap: pnpm derive --check not run (read-only constraint) — recommend running to confirm no drift.
4Onboarding/billing0/2P0e2e/checkout.spec.ts 6/6 FAIL: SUPABASE_SERVICE_ROLE_KEY in .env.local is a legacy Supabase key disabled 2026-05-13; test harness cannot insert/delete test churches. Production checkout API (/api/stripe/pre-checkout) returns 400 on bad input (correct behavior) confirming route is live, but end-to-end billing E2E cannot be verified locally. Stripe plan key ps_premium_monthly / price_1TMsbMFaoK5IPzNobI2geegX confirmed active in live Stripe. 2 active ps_ subs in DB. critical_path_gate: false per config, but this is still a billing-critical gap.
5User docs2/2https://pewsearch.com/help → HTTP 200 confirmed. Canonical source: knowledge/products/pewsearch-directory/help.md — present and non-null.
6Drift & issues3/4founder_action_items WHERE priority IN ('P0','P1') AND status = 'open' → 0 rows ✅. ops_errors WHERE severity IN ('P0','P1') AND resolved_at IS NULL AND created_at > now()-7d → 0 rows ✅. moderation_violations recent (7d) → 72 rows — no reviewed column exists; cannot distinguish reviewed from unreviewed; gap in schema vs skill expectation. In-memory rate-limiter known issue (resets on cold start) — deferred pending founder infra decision.
7Analytics1/2/api/founder/readiness/pewsearch → HTTP 401 (token-gated, expected). premium_churches shows 2 active PewSearch subs (MRR ~$9.90/mo). ReadinessTab exists in churchwiseai-web (src/app/founder/[token]/components/ReadinessTab.tsx). No synthetic analytics assertion wired to a non-token-gated check — gap noted.
8Marketing funnel3/4Landing (pewsearch.com/) → 200 ✅. Pricing (pewsearch.com/pricing) → 200, renders $4.95 ✅. pewsearch-funnel-synthetic spec → 3/3 PASS ✅. MailerLite group pewsearch-premium not verifiable without MailerLite API credentials in this session. synthetic_funnel_test is non-null (authored 2026-04-22) ✅. Minor gap: MailerLite group existence unconfirmed.
9Agent monitoring2/2ACTIVE_WORK.md checked. golive-readiness-program-2026-05-20 is the active workstream — reads only knowledge/readiness/reports/. portfolio-audit-and-fix-2026-05-19 is ✅ COMPLETE (no active writes). fa-082-multi-item-stripe-2026-04-24 workstream is active but scoped exclusively to churchwiseai-web (no overlap with pewsearch). No resource overlaps. No stale entries (>48h without activity) affecting pewsearch.

Punch list (ordered by severity)

  • P0 [BILLING-E2E] pewsearch/web/e2e/checkout.spec.ts — 6/6 FAIL. The checkout E2E test harness calls Supabase REST directly with SUPABASE_SERVICE_ROLE_KEY from .env.local, which is a legacy key disabled on 2026-05-13. Test setup (beforeAll) cannot insert a test church row → all 6 checkout scenarios fail. This breaks the only local billing E2E verification path for the PewSearch critical-path pewsearch-premium-checkout registry entry. Fix: update .env.local SUPABASE_SERVICE_ROLE_KEY to the new Supabase secret API key (or migrate the spec to use a pre-seeded fixture church slug instead of dynamic creation). Founder action needed: retrieve new Supabase secret key from Supabase dashboard and run vercel env add SUPABASE_SERVICE_ROLE_KEY production + vercel env pull in pewsearch/web/. NOTE: Production checkout API is still live (routes use Vercel's env, not local .env.local) — customer purchases are unaffected. This is a TEST HARNESS gap, not a production outage.

  • P1 [DOCS] pewsearch/CLAUDE.md — Section 3 "Products & Tiers" feature access matrix still shows basic_chatbot: X and hosted_chat: X for starter/premium tier, implying chatbot is included in Premium Page. Per the canonical acceptance spec (knowledge/acceptance/pewsearch-premium.md), chatbot is NOT included in Premium (Pro Website and ChurchWiseAI plans only). This is a developer-facing doc error that could cause agents to accidentally wire chatbot features into Premium builds. Fix: correct the feature matrix to basic_chatbot: — and hosted_chat: — for the Premium tier.

  • P1 [REGISTRY] pewsearch-claim-flow registry entry — last_run: 2026-04-28 (22+ days old); last_break: null. The claim flow is a critical_path: true entry. Registry stamp is stale (pre Supabase key rotation, pre PR #51 accessibility fix). Recommend re-running e2e/claim.spec.ts against deployed URL and stamping last_run. Note: claim.spec.ts (2 tests) passed cleanly in this run's desktop suite, so the flow itself is healthy — only the registry stamp is stale.

  • P1 [REGISTRY] pewsearch-premium-checkout registry entry — last_run: 2026-04-28; last_break: null. Technically passed 17/18 on 2026-04-28, but is now known-broken locally due to legacy Supabase key. Cannot stamp a new green last_run until the key is updated. This is the same root cause as the P0.

  • P2 [SCHEMA-MISMATCH] moderation_violations table lacks a reviewed column — the SKILL.md dimension-6 query (WHERE reviewed = false) cannot run as specified. Adapted to count all recent violations (72 in 7 days). 72 violations is high-frequency but without a reviewed flag the SLA cannot be formally measured. Recommend adding reviewed BOOLEAN DEFAULT false column or adapting the skill query to match the actual schema.

  • P2 [SECURITY] In-memory rate-limiter (src/lib/rate-limit.ts) resets on every serverless cold start — effectively unthrottled on new Vercel instances. Flagged in 2026-05-19 audit (P2). Deferred pending founder infra decision (Upstash vs Supabase-RPC). No new information this run.

  • P2 [LINT] 97 ESLint warnings (0 errors — CrossPromoBanner lint error was fixed in PR #51). All warnings are no-html-link-for-pages and no-img-element — no shipped-code regressions. CI lint gate is now unblocked (exits 0).

  • P2 [STALE-FILES] ~14 temp JSON files at pewsearch repo root (temp_church_*.json, temp_data*.json, etc.) — tracked as git-untracked. Low priority but creates confusion for future agents scanning the repo.


Self-healed this run

None. This run was read-only per hard rules. No pnpm derive, no registry stamps, no code edits.


  • Viewport tests (desktop): C:/dev/pewsearch/web/playwright-report/ — 117 passed, 14 skipped
  • Viewport tests (tablet): C:/dev/pewsearch/web/playwright-report/ — 112 passed, 32 skipped
  • Viewport tests (mobile): C:/dev/pewsearch/web/playwright-report/ — 112 passed, 29 skipped
  • Synthetic funnel: e2e/synthetic-funnel.spec.ts desktop — 3/3 passed
  • Billing checkout: e2e/checkout.spec.ts desktop — 0/6 passed (legacy key; root cause documented above)
  • Live HTTP probes: pewsearch.com/ → 200, /pricing → 200, /directory → 200, /help → 200, /churches-with/handicap-accessible → 200, /churches-with/nursery → 200, /directory/texas → 200, /denominations → 200
  • ESLint: pnpm lint → exit 1 (0 errors, 97 warnings — warnings-only, no blocking errors)
  • Supabase SQL: founder_action_items open P0/P1 → 0; ops_errors unresolved P0/P1 (7d) → 0; validate_product_knowledge() CRITICAL → 0, WARNING → 157 (all bulk-update telemetry, non-PewSearch)
  • Stripe: prod_U7ODneitVJFbl7 (PewSearch Premium Page) active in live mode, default_price: price_1TMsbMFaoK5IPzNobI2geegX ($4.95/mo) — confirmed
  • Active subs in DB: 2 rows with ps_* plan and status=active
  • Registry entries checked: pewsearch-claim-flow (last_run 2026-04-28), pewsearch-premium-checkout (last_run 2026-04-28), pewsearch-directory-smoke (last_run 2026-04-24), pewsearch-funnel-synthetic (last_run null)

Registry last_run stamp recommendations

The following registry stamps are stale and should be updated when the corresponding spec is re-run:

EntryCurrent last_runRecommended action
pewsearch-claim-flow2026-04-28Re-run e2e/claim.spec.ts against deployed URL; stamp with today's date + result
pewsearch-premium-checkout2026-04-28Blocked on P0 (legacy key fix required first); then re-run + stamp
pewsearch-directory-smoke2026-04-24T15:22:00ZRe-run smoke.spec.ts against deployed URL; stamp
pewsearch-funnel-syntheticnullSpec exists and passes (3/3 this run); stamp last_run: 2026-05-20