Go-Live Readiness — IllustrateTheWord — 2026-04-22T21:54Z
Overall: 56% (NOT READY) — 0 P0, 5 P1, 4 P2 open
All 9 dimensions enabled. Audit is read-only. Playwright tests not executed this run (no live test infra invocation) — test-run status derived from registry
last_runfields and code presence checks.
9 Dimensions
| # | Dimension | Score | Status | Evidence |
|---|---|---|---|---|
| 1 | User journeys | 1/3 | ⚠ | itw-smoke has spec; itw-signup registry entry missing; itw-premium-checkout spec exists, no green run recorded |
| 2 | Desktop / tablet / mobile | 3/3 | ✅ | playwright.config.ts declares all 3 projects; 30 spec files exist in e2e/; visual.spec.ts, visual-mobile.spec.ts, responsive.spec.ts present; no last-run artifact |
| 3 | Knowledge accuracy | 2/3 | ⚠ | dir_illustrations materialized view: 50,739 rows (healthy); validate_product_knowledge(): 0 CRITICAL, 150 WARNING (bulk-update noise from 2026-04-20 demo provisioning run — no ITW-specific CRITICAL issues); pnpm derive --check not run this session (no live script invocation) |
| 4 | Onboarding / billing | 2/3 | ⚠ | Both plan keys (itw_premium_monthly, itw_premium_annual) have Stripe price IDs configured in env + pricing.yaml; 3 total / 2 active user_subscriptions rows; pricing page live at 200 showing $9.95/$99.50; billing.critical_path_gate: false → no CI gate enforcing checkout; no green stripe-e2e-validation-monthly artifact recorded |
| 5 | User docs | 1/2 | ⚠ | /help returns HTTP 200 with FAQ/support headings; help_surface.canonical_source: null — no accountable KB behind it; partial coverage only (how_to_search + how_to_upgrade both flagged "partial" in config) |
| 6 | Drift & issues | 2/3 | ⚠ | user_subscriptions: 2 active (expected); unified_rag_content total: 327,293 rows (intact); moderation_violations.reviewed column missing (table schema drift — query errored); open P2 items FA-029 (41 flagged illustrations) + FA-030 (progressive Christianity review) still unresolved; no P0/P1 open FOUNDER_ACTIONS items for ITW specifically |
| 7 | Analytics | 1/2 | ⚠ | /api/founder/readiness/itw exists (returns 401 — auth required, not 404); ReadinessTab not yet wired to ITW metrics (per skill spec: "wired up when ReadinessTab ships"); no ITW-specific KPI widget confirmed rendering |
| 8 | Marketing funnel | 2/3 | ⚠ | Landing / → HTTP 200, shows "50,000+" illustration count (matches spec); /pricing → HTTP 200, shows $9.95/$99.50 (matches canonical pricing.yaml); marketing_funnel.synthetic_funnel_test: null — no automated funnel assertion exists; MailerLite itw-leads group check returned Unauthenticated (legacy key — ITW now routes through CWA proxy, direct API check not possible this run) |
| 9 | Agent monitoring | 3/3 | ✅ | No workstream in ACTIVE_WORK.md lists ITW/sermon-illustrations as a production resource; no resource overlaps detected; ensure-solid-portfolio-run-2026-04-22 is the only active ITW reader; voice-agent-testing-backlog started 2026-04-15 (>7 days) — stale flag raised but no ITW resources owned |
Score breakdown
- Pass (✅): D2 (viewports), D9 (agent monitoring) = 2 dimensions
- Warn (⚠): D1, D3, D4, D5, D6, D7, D8 = 7 dimensions
- Fail (❌): none
- Overall: 2/9 = 22% dimensions fully green… but 7/9 are ⚠ not ❌, so weighted score treating ⚠ as partial (0.5): (2×1 + 7×0.5)/9 = 56%
No P0 findings — overall_status stays NOT READY because multiple P1 gaps block a confident launch.
Punch list (ordered by severity)
P1 — Act before marketing push
-
P1-ITW-01:
itw-signupjourney has no registry entry — Thesignup-free-tierjourney initw.yamlpoints toregistry_entry: itw-signup, but that entry does not exist inknowledge/tests/registry.yaml. A core acquisition path (email signup → free tier access) is undeclared and untested. Add the registry entry withspec_file: e2e/auth.spec.ts(which covers signup flows) and record alast_run. -
P1-ITW-02: No green Stripe checkout run recorded for either plan key —
itw-premium-checkoutregistry entry exists (e2e/checkout.spec.ts) butlast_run: null. With 2 active subscriptions in the wild, checkout has never been formally verified end-to-end on production. RunBASE_URL=https://illustratetheword.com npx playwright test checkout.spec.tsagainst production with a test-mode Stripe key and record the result. -
P1-ITW-03:
help_surface.canonical_source: null— The help page exists and returns 200 with FAQ/Support headings, but there is no accountable knowledge base behind it (canonical_sourceis null in config). If support questions fall through, there is no SoT for answers. Per skill spec, this is a mandatory P1 for all properties missing a KB. Create aknowledge/docs/itw-help.mdand wire it ascanonical_source. -
P1-ITW-04:
marketing_funnel.synthetic_funnel_test: null— No automated funnel assertion exists for ITW. The pricing page and landing page are verified by HTTP presence check only. A malformed Stripe checkout redirect, a broken/api/stripe/checkoutroute, or a broken?checkout=monthlyauto-trigger would go undetected. Per skill spec,synthetic_funnel_test: null= mandatory P1 for any property claimed as marketing-ready. -
P1-ITW-05: Acceptance spec
last-verified: 2026-03-28— 25 days stale — Theitw-premium.mdacceptance spec was last verified 2026-03-28 (25 days ago, approaching the 60-day stale threshold). Two touchpoints within the spec are explicitly flaggedGATING NOTE — CODE FIX REQUIRED: (a) FavoriteButton save action must prompt upgrade for free users; (b) AddToCollectionButton / new collection creation must be Premium-only. These gating rules have not been verified since the spec was written. Run a Playwright pass against production to confirm gating is correct, or updatelast-verifiedwith evidence.
P2 — Fix before sustained marketing spend
-
P2-ITW-01: FA-029 — 41 AI-generated illustrations flagged for moderation — Flagged 2026-04-06, still open. These are visible in the library. Until reviewed, some could contain theologically problematic content that harms brand trust.
-
P2-ITW-02: FA-030 — "Progressive Christianity" illustration needs editorial review — Specifically flagged alongside FA-029. Interfaith/progressive framing on a platform targeting evangelical/traditional pastors is a brand-trust risk.
-
P2-ITW-03:
moderation_violationsschema drift — The drift check SQL (WHERE reviewed = false) errored withcolumn moderation_violations.reviewed does not exist. Either the column was never created or was renamed. The table exists (query reached it), but the monitoring query is broken. Fix by checking actual column names and updating the cron health-check query. -
P2-ITW-04: FA-048 —
hello@illustratetheword.comreplies silently bounce — No MX/DMARC record on the domain. MailerLite sends FROM this address but any pastor who replies gets a bounce. Low-frequency but brand-damaging. Google Workspace alias setup is a ~5-minute task per FA-048.
Self-healed this run
None. This is a read-only audit. No derive runs, no materialized view refreshes, no registry stamps were performed.
Evidence links
| Check | Result | Notes |
|---|---|---|
illustratetheword.com HTTP | 200 | Healthy |
illustratetheword.com/pricing HTTP | 200 | Shows $9.95/$99.50 — matches pricing.yaml |
illustratetheword.com/help HTTP | 200 | FAQ/Support present, no canonical KB |
illustratetheword.com/signup HTTP | 200 | Healthy |
illustratetheword.com/illustrations HTTP | 200 | Healthy |
dir_illustrations row count | 50,739 | Healthy — materialized view populated |
unified_rag_content total | 327,293 | Healthy — no bulk delete |
user_subscriptions total/active | 3 total / 2 active | Expected |
validate_product_knowledge() | 0 CRITICAL, 150 WARNING | Warnings are bulk-update noise; no ITW CRITICAL |
itw-smoke registry | last_run: null | Spec exists, never run against prod |
itw-content-gating registry | last_run: null | Spec exists, never run against prod |
itw-premium-checkout registry | last_run: null | Spec exists, never run against prod |
itw-signup registry | MISSING | Declared in itw.yaml, not in registry.yaml |
acceptance/itw-premium.md | last-verified: 2026-03-28 | 25 days old |
| Playwright viewports config | 3 projects declared | desktop, tablet, mobile all configured |
| e2e spec count | 30 specs | Comprehensive coverage declared |
git status master | Clean | No uncommitted changes |
/api/founder/readiness/itw | 401 | Route exists, auth required |
| ACTIVE_WORK.md conflicts | None | No ITW resource conflicts |
voice-agent-testing-backlog age | Started 2026-04-15 | 7 days old — marginal stale flag |
Dimension notes
D1 — Journeys: Three journeys declared. browse-search points to itw-smoke (spec exists). premium-conversion points to itw-premium-checkout (spec + acceptance spec exist). signup-free-tier points to itw-signup which has no registry entry — gap. No last_run recorded for any ITW entry.
D3 — Knowledge: The validate_product_knowledge() WARNING flood (150 rows) comes from the 2026-04-20 dental/vet/funeral demo provisioning run. All WARNINGs are Bulk update detected noise triggered by the bulk INSERT/UPDATE pattern during the multi-vertical demo build. Zero CRITICAL issues. ITW-specific product_knowledge rows are in the pewsearch category (5 entries found) and appear healthy.
D4 — Billing: .env.local holds TEST-mode Stripe keys — expected. Vercel production deployment uses live keys (not checked this run, but this is the established pattern per PRICING.md). Annual product was consolidated from split product onto canonical product 2026-04-14 (still pending archival of legacy prod_U7OGpFN8OR2LST — low-priority cleanup, not blocking).
D8 — Marketing: MailerLite direct API returned Unauthenticated — the MAILERLITE_API_KEY in .env.local is a legacy key; ITW now routes newsletter signups through the CWA proxy at churchwiseai.com/api/mailerlite/subscribe. The itw-leads group existence could not be verified this run via direct API. Not scored as failure — proxy architecture is intentional; verify group exists in MailerLite dashboard as a follow-up.