Portfolio Readiness Summary v7 — 2026-05-04
This is the first portfolio scorecard since v6 (2026-04-22). It covers all 8 surfaces for the first time, including the three new properties (FuneralWiseAI, VetWiseAI, WiseAI Agency) that did not have per-property scorecards in v6.
Portfolio Scorecard Table
| Property | Product% | Ops% | P0s | P1s | Outreach-Ready? | Verdict |
|---|---|---|---|---|---|---|
| sermonwise | 100% | 80% | 0 | 0 | ✅ Yes | READY |
| itw | 93.75% | 85% | 0 | 0 | ✅ Yes | READY |
| cwa | 93.75% | 75% | 1 | 1 | ⚠ Conditional | READY* |
| pro-website | 93.75% | 85% | 0 | 1 | ⚠ Conditional | READY* |
| pewsearch | 87.5% | 85% | 0 | 1 | ⚠ Conditional | READY* |
| funeralwiseai | 56.25% | 30% | 2 | 3 | ❌ No | NOT READY |
| wiseaiagency | 50% | 40% | 2 | 3 | ❌ No | NOT READY |
| vetwiseai | 56.25% | 40% | 3 | 3 | ❌ No | NOT READY |
Portfolio Product Health Average: 78.9% Portfolio Ops Average: 65% Total P0s (portfolio): 8 Total P1s (portfolio): 12
*READY = above minimum thresholds (Product ≥80%, Ops ≥60%, zero P0 in Product Health). CWA has 1 P0 in Ops (ops_errors), not Product Health — passes the READY gate.
Vertical Outreach-Launch Verdict
| Vertical | Sites | Outreach-Ready? | Blocker |
|---|---|---|---|
| Church | churchwiseai.com, pewsearch.com, sermonwise.ai, pro-website | ⚠ Conditional | 3 P0 ops_errors in CWA; PewSearch claim copy drift |
| Funeral | funeralwiseai.com | ❌ No | Demo provisioning blocked (Stream A); no email sequence; no acceptance spec |
| Vet | veterinarywiseai.com | ❌ No | Just launched today; no infrastructure beyond Stripe + marketing site |
| Agency | wiseaiagency.com | ❌ No | Contact form routing unverified; no acceptance spec; no local SEO pages |
Bottom line: Church vertical is outreach-ready with conditions. Funeral/vet/agency are NOT outreach-ready — sending cold email to funeral directors or vet clinics now would route prospects to a broken demo and no follow-up automation.
Top 10 P0/P1 Items — Sorted by Cold-Outreach Impact
| Rank | Severity | Surface | Item | Impact on Outreach |
|---|---|---|---|---|
| 1 | P0 | funeralwiseai | Demo provisioning blocked — funeral_knowledge_base and tenant_voice_agents provisioning cannot complete for non-church tenants | 429 funeral prospects drafted, zero can get a working demo link |
| 2 | P0 | vetwiseai | Bare domain veterinarywiseai.com → 308 redirect (non-www) | Every cold email link to veterinarywiseai.com redirects — confusing, looks broken to prospects |
| 3 | P0 | funeralwiseai / vetwiseai | No acceptance specs for either vertical | Per CLAUDE.md Rule #17, no customer-facing features can be shipped without spec — everything downstream is ungated |
| 4 | P0 | cwa | 3 unresolved P0 ops_errors (change-tier, sweep-cancel, FA-082 webhook) | Webhook errors could cause missed provisioning for new paid customers; actively firing |
| 5 | P0 | vetwiseai | No lifecycle email automation / welcome email | First vet customer who signs up gets no onboarding communication |
| 6 | P0 | wiseaiagency | Contact form routing to outreach_contacts unverified | Agency inbound leads may be silently dropped |
| 7 | P1 | funeralwiseai | No cold outreach email sequence (3-email) | 429 drafted prospects have no approved copy to send them |
| 8 | P1 | pewsearch | Claim page mentions "AI Church Chatbot" on a $4.95/mo plan | Overpromises to churches who claim listings — churn risk when they discover chatbot isn't included |
| 9 | P1 | vetwiseai | No Stripe test-mode products | Can't run CI checkout tests; every code change to vet checkout is untested |
| 10 | P1 | wiseaiagency | 4 city SEO pages not built (Ingersoll, London ON, Woodstock, Tillsonburg) | Founder's home market has zero local SEO presence for WiseAI Agency |
v6 → v7 Comparison (existing surfaces)
| Property | v6 Product | v7 Product | v6 Ops | v7 Ops | Change |
|---|---|---|---|---|---|
| pro-website | 100% | 93.75% | 95% | 85% | -6.25pp product, -10pp ops |
| cwa | 93.75% | 93.75% | 90% | 75% | 0pp product, -15pp ops |
| sermonwise | 91%* | 100% | 85%* | 80% | +9pp product, -5pp ops |
| itw | 87.5% | 93.75% | 90% | 85% | +6.25pp product, -5pp ops |
| pewsearch | 87.5% | 87.5% | 90% | 85% | 0pp product, -5pp ops |
*sermonwise v6→v7: v7 (2026-04-24) was already published; this uses that as baseline.
What improved since v6
- SermonWise: +9pp product health — checkout spec green, billing gate enabled, welcome email wired (FA-077)
- ITW: +6.25pp product health — viewport Playwright now stamped (2026-04-24), checkout verified (2026-04-28)
- PewSearch: Two critical specs run (claim flow + checkout, both 2026-04-28) — claims flow verified founder
- Product Knowledge: VetWiseAI 9 rows added, FuneralWiseAI pricing corrected to $745 (was $999 stale)
- FA-082 (Debora Moelker): Unknown tier resolver patched in code — pending migration apply
What regressed since v6
- CWA Ops -15pp: 3 new P0 ops_errors accumulated since 2026-04-22 (all
resolved_at: null)sub_1TQeZyF8resource_missing (2026-04-27) — stale subscription referencesweep-cancel-at-period-endmust-have-plan error (2026-04-28) — sweep race condition- FA-082 webhook unknown tier (2026-05-04) — code patch shipped but migration not yet applied
- Pro-Website Ops -10pp: Same shared ops_errors + D6 WARN
- Help redirect:
churchwiseai.com/helpnow 307-redirects to docs portal — technically correct but adds friction
What is new (not in v6)
- FuneralWiseAI scored for first time: NOT READY (56.25% / 30%)
- VetWiseAI scored for first time (launch day): NOT READY (56.25% / 40%)
- WiseAI Agency scored for first time: NOT READY (50% / 40%)
Critical-Path Test Registry Gaps
From knowledge/tests/registry.yaml — entries where critical_path: true and last_run is null or older than 30 days:
| Entry | Last Run | Days Since | Gap Type | Priority |
|---|---|---|---|---|
stripe-live-checkout | null | never | No spec run | HIGH — primary revenue path |
voice-live-call | null | never | No spec run | HIGH — customer-facing product |
voice-routing-integration | null | never | No spec run; last_break: 2026-04-22 | HIGH — broke on M2 migration |
user-login-cwa | null | never | No spec run | HIGH — blocks all authenticated flows |
cwa-04-onboarding | null | never | No spec run | HIGH — step 3 of customer flow |
cwa-chatbot-live-response | 2026-04-27 | 7 days | ✅ Within 30 days | OK |
cwa-production-smoke | 2026-04-24T14:45Z | 10 days | ✅ Within 30 days | OK |
pro-website-cancelled-tombstone | null | never | No spec run | MEDIUM |
cwa-cancelled | null | never | No spec run | MEDIUM |
cwa-trial-expired | null | never | No spec run | MEDIUM |
cwa-custom-domain-setup | null | never | No spec run; founder_verified: null | MEDIUM |
cwa-pro-website-ssr | 2026-04-18T02:40Z | 16 days | ✅ Within 30 days | OK |
cwa-onboarding-wizard | 2026-04-18T02:40Z | 16 days | ✅ Within 30 days | OK |
pro-website-upgrade | 2026-04-21T00:00Z | 13 days | ✅ Within 30 days | OK |
pewsearch-claim-flow | 2026-04-28 | 6 days | ✅ Within 30 days | OK |
pewsearch-premium-checkout | 2026-04-28 | 6 days | ✅ Within 30 days | OK |
sermonwise-signup-checkout | 2026-04-24T14:28:59Z | 10 days | ✅ Within 30 days | OK |
cold-outreach-director-transfer | null | never | last_break: 2026-04-29; 8 P0s | CRITICAL — cold email GO/NO-GO gate |
consistency-price-matching | null | never | No spec run | HIGH — drift defense |
Summary: 8 critical_path:true entries have last_run: null. The most impactful gaps are stripe-live-checkout (primary revenue), voice-live-call (core product), and cold-outreach-director-transfer (the gate for funeral cold email).
Playwright Runs Needed (For Orchestrator)
In priority order:
cold-outreach-director-transfer—e2e/cold-outreach-director-transfer.spec.ts— MUST be green before any funeral cold email batch. Currently broken (last_break: 2026-04-29, 8 P0s from PR #251). Requires Stream A provisioning to be working first.stripe-live-checkout—e2e/stripe-e2e-validator.spec.ts— Primary revenue path, never run. Run against production withSTRIPE_TEST_MODE=1.voice-live-call— No spec file exists (spec_file: null). Spec needs to be authored before first run.voice-routing-integration—tests/test_routing.py,tests/test_load_church_data_integration.py—last_break: 2026-04-22, never green after M2 migration. Run via.github/workflows/voice-routing-integration-on-pr.yml.user-login-cwa— No spec file. Blocks every authenticated flow test.consistency-price-matching—e2e/delivers/consistency/price-matching.spec.ts— Run to verify prices match across all 8 surfaces.pro-website-cancelled-tombstone—e2e/journeys/cancelled-subscription-tombstone.spec.ts— Against demo-cancelled-2026 token.cwa-cancelled—e2e/journeys/cancelled.spec.ts— Demo: Riverside Fellowship Church (demo-cancelled-2026).cwa-trial-expired—e2e/journeys/trial-expired.spec.ts— Demo: Harbor Light Methodist Church (demo-trial-expired-2026).cwa-custom-domain-setup—e2e/journeys/custom-domain-setup.spec.ts— Needs demo-pro-website-bundled-2026 token.
Scorecard File Index
| Property | File |
|---|---|
| CWA | knowledge/readiness/reports/cwa-20260504-v1.md |
| Pro Website | knowledge/readiness/reports/pro-website-20260504-v1.md |
| PewSearch | knowledge/readiness/reports/pewsearch-20260504-v1.md |
| ITW | knowledge/readiness/reports/itw-20260504-v1.md |
| SermonWise | knowledge/readiness/reports/sermonwise-20260504-v1.md |
| FuneralWiseAI | knowledge/readiness/reports/funeralwiseai-20260504-v1.md |
| VetWiseAI | knowledge/readiness/reports/vetwiseai-20260504-v1.md |
| WiseAI Agency | knowledge/readiness/reports/wiseaiagency-20260504-v1.md |
| Portfolio (this file) | knowledge/readiness/reports/portfolio-20260504-v7.md |
Closing Assessment
The church vertical is in good shape and conditionally outreach-ready. The three new verticals (funeral, vet, agency) are all in "marketing site live, infrastructure absent" state — which is the right order to do things (ship first, then harden). But they cannot receive cold-email outreach traffic until:
- Stream A unblocks demo provisioning for funeral + vet
- Cold-outreach email sequences are authored and approved
- MailerLite groups + lifecycle automations are wired per vertical
- Acceptance specs exist (CLAUDE.md Rule #17)
- At minimum one Playwright checkout spec is green per vertical
The 429 funeral prospects in outreach_contacts.status='drafted' are the most urgent. They are provisioned-enough to have been scraped and approved, but no demo link works and no email copy exists to send them. Stream A + D unlock this.
Next sprint milestone: After Stream A + D complete, re-run this scorecard. Target: FuneralWiseAI to 80%/65% (minimum outreach threshold). VetWiseAI and WiseAI Agency to 70%/55% (soft outreach OK with caveats).