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
| # | Dimension | Score | Status | Evidence |
|---|---|---|---|---|
| 1 | User journeys | 4/6 | ⚠ | Playwright 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) |
| 2 | Desktop/tablet/mobile | 9/9 | ✅ | desktop 117/117 pass; tablet 112/112 pass; mobile 112/112 pass — 14/32/29 skipped (all visual baseline skips, not failures) |
| 3 | Knowledge accuracy | 3/4 | ⚠ | validate_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. |
| 4 | Onboarding/billing | 0/2 | ❌ | P0 — e2e/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. |
| 5 | User docs | 2/2 | ✅ | https://pewsearch.com/help → HTTP 200 confirmed. Canonical source: knowledge/products/pewsearch-directory/help.md — present and non-null. |
| 6 | Drift & issues | 3/4 | ⚠ | founder_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. |
| 7 | Analytics | 1/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. |
| 8 | Marketing funnel | 3/4 | ⚠ | Landing (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. |
| 9 | Agent monitoring | 2/2 | ✅ | ACTIVE_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 withSUPABASE_SERVICE_ROLE_KEYfrom.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-pathpewsearch-premium-checkoutregistry entry. Fix: update.env.localSUPABASE_SERVICE_ROLE_KEYto 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 runvercel env add SUPABASE_SERVICE_ROLE_KEY production+vercel env pullinpewsearch/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 showsbasic_chatbot: Xandhosted_chat: Xforstarter/premiumtier, 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 tobasic_chatbot: —andhosted_chat: —for the Premium tier. -
P1
[REGISTRY]pewsearch-claim-flowregistry entry —last_run: 2026-04-28(22+ days old);last_break: null. The claim flow is acritical_path: trueentry. Registry stamp is stale (pre Supabase key rotation, pre PR #51 accessibility fix). Recommend re-runninge2e/claim.spec.tsagainst deployed URL and stampinglast_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-checkoutregistry 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 greenlast_rununtil the key is updated. This is the same root cause as the P0. -
P2
[SCHEMA-MISMATCH]moderation_violationstable lacks areviewedcolumn — 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 areviewedflag the SLA cannot be formally measured. Recommend addingreviewed BOOLEAN DEFAULT falsecolumn 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 —CrossPromoBannerlint error was fixed in PR #51). All warnings areno-html-link-for-pagesandno-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.
Evidence links
- 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.tsdesktop — 3/3 passed - Billing checkout:
e2e/checkout.spec.tsdesktop — 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_itemsopen P0/P1 → 0;ops_errorsunresolved 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 andstatus=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:
| Entry | Current last_run | Recommended action |
|---|---|---|
pewsearch-claim-flow | 2026-04-28 | Re-run e2e/claim.spec.ts against deployed URL; stamp with today's date + result |
pewsearch-premium-checkout | 2026-04-28 | Blocked on P0 (legacy key fix required first); then re-run + stamp |
pewsearch-directory-smoke | 2026-04-24T15:22:00Z | Re-run smoke.spec.ts against deployed URL; stamp |
pewsearch-funnel-synthetic | null | Spec exists and passes (3/3 this run); stamp last_run: 2026-05-20 |