Go-Live Readiness — IllustrateTheWord — 2026-05-20T09:25:00-04:00
Overall: 44% (NOT READY) — 0 P0, 4 P1, 3 P2 open
Prior baseline: itw-20260504-v1 (GOOD per portfolio-audit-20260519). This is the first full 9-dimension ITW certification run. The 2026-05-19 audit fixed lint, help-doc, and illustration-count copy but explicitly did NOT run journeys, viewports, or billing E2E. This run closes that gap.
9 Dimensions
| # | Dimension | Score | Status | Evidence |
|---|---|---|---|---|
| 1 | User journeys | 1/3 | ⚠ WARN | See dim-1 below |
| 2 | Desktop/tablet/mobile | 0/3† | ⚠ WARN | itw-responsive last_run 2026-04-24 6/6 pass; no current-run |
| 3 | Knowledge accuracy | PASS | ✅ PASS | 0 CRITICAL from validate_product_knowledge(); pricing/layout.tsx 2/0 |
| 4 | Onboarding/billing | ⚠ | ⚠ WARN | itw-premium-checkout last_run 2026-04-28 green; no current-month artifact |
| 5 | User docs | PASS | ✅ PASS | /help → 200, canonical_source non-null, deletion FAQ corrected |
| 6 | Drift & issues | PASS | ✅ PASS | 0 open P0/P1 founder_action_items; 0 P0/P1 ops_errors last 7d |
| 7 | Analytics | GAP | ⚠ WARN | commands.analytics: null; ReadinessTab requires founder token — not verified |
| 8 | Marketing funnel | ⚠ | ⚠ WARN | Spec exists, last_run: null; landing+pricing 200; prices correct |
| 9 | Agent monitoring | PASS | ✅ PASS | 0 resource conflicts; golive-readiness active; no stale ITW workstreams |
† Viewport Playwright cannot run without a live server or CI environment; last stamped run (itw-responsive, 2026-04-24) is 26 days old.
Overall score = 4 PASS / 9 dimensions = 44% → NOT READY No P0 findings. All gaps are P1/P2 and closeable.
Punch list (ordered by severity)
P1 — must close before go-live cert
- P1-1 [JOURNEYS]
itw-smokeregistry entry haslast_run: null— the browse/search journey has NEVER had a verified run. Spec exists ate2e/smoke.spec.ts. Run against production URL and stamplast_run. Recommend:BASE_URL=https://illustratetheword.com npx playwright test --project=desktop e2e/smoke.spec.ts. - P1-2 [JOURNEYS]
itw-signupjourney haslast_run: nulland the spec note says "spec not yet authored — see FA-071-itw." The free-tier signup journey is ITW's primary acquisition funnel and is unverified. Either author the targeted signup flow withine2e/auth.spec.tsor createe2e/signup-free-tier.spec.tsand run it. - P1-3 [MARKETING]
itw-funnel-syntheticregistry entry haslast_run: null(spec authored 2026-04-22, never run against production). RunBASE_URL=https://illustratetheword.com npx playwright test e2e/synthetic-funnel.spec.tsand stamp the result. This closes the synthetic_funnel_test gap that prevented marketing dimension from passing. - P1-4 [BILLING] No current-month Stripe E2E artifact for
itw_premium_monthly/itw_premium_annual.billing.critical_path_gate: falsebutitw-premium-checkout(last_run 2026-04-28, 22 days ago) needs a fresh run to certify billing is working in the current deployment. Rune2e/checkout.spec.tsagainst the production URL and attach the artifact.
P2 — polish / backlog
- P2-1 [KNOWLEDGE]
product_knowledgeITW rows quote "53,000+" illustrations (e.g., "What is IllustrateTheWord?", "How much does ITW Premium cost?", "What is the difference between free and premium?"). The realdir_illustrationscount is 50,739 and the live website correctly says "50,000+". The DB answers overstate the count. These rows need updating to "50,000+" to match what the site shows (and the 2026-05-19 audit confirmed is accurate). CLAUDE.md rule #19: runvalidate_product_knowledge()after update. - P2-2 [ANALYTICS] Dimension 7 has no executable check (
commands.analytics: null). Add a command toitw.yamlto probe the/api/founder/readiness/itwendpoint with the founder token, or wire a Supabase query foruser_subscriptionsactive-count + conversion rate. Until this is declared, the analytics dimension will always be WARN. - P2-3 [KNOWLEDGE/DRIFT] Cross-cutting derive drift:
pnpm derive --checkreports 3 stale docs with all code-files missing (runbooks/sermon-account-deletion.md,seo/sermonwise-strategy.md,specs/day2-verticals-platform/08-VOICE-HARDENING-TEST-PLAN.md) and pendingproduct_knowledgeupserts for CWA/billing pricing rows. Not ITW-specific, but recorded here for completeness. Runpnpm derive --allfromC:/dev/knowledgewhen convenient.
Self-healed this run
None. This run was fully read-only per the hard rules. No pnpm derive, no registry last_run stamps written, no DB writes, no git commands.
Dimension Detail
Dim 1 — User Journeys
3 critical journeys declared in itw.yaml:
| Journey | Registry Entry | last_run | last_break | Status |
|---|---|---|---|---|
| browse-search | itw-smoke | null | null | ❌ Never run |
| signup-free-tier | itw-signup | null | null | ❌ Spec incomplete (FA-071-itw) |
| premium-conversion | itw-premium-checkout | 2026-04-28 | null | ✅ Green 22 days ago |
Only 1/3 journeys has a verified run. itw-signup note in registry: "spec not yet authored". The acceptance spec knowledge/acceptance/itw-premium.md exists (COMPLETE, last-verified: 2026-04-27) and covers 30 touchpoints. Journey-runner skill was not invoked (no live-server environment for the 5-Question AI evaluation).
Score: 1/3 PASS → WARN
Dim 2 — Desktop / Tablet / Mobile Viewports
Playwright projects are properly configured (desktop @ 1280×720, tablet iPad Mini @ 768×1024, mobile iPhone 12 @ 375×812). The itw-responsive registry entry has last_run: 2026-04-24T15:08:00Z (6/6 pass). The e2e/responsive.spec.ts file exists.
Cannot run Playwright in this session — no live server spawned and no CI environment. The last verified run is 26 days old. Visual spec e2e/visual.spec.ts + e2e/visual-mobile.spec.ts exist with snapshot directories.
Recommendation: Run BASE_URL=https://illustratetheword.com npx playwright test --project=desktop --project=tablet --project=mobile e2e/responsive.spec.ts and stamp itw-responsive.last_run. This will produce the viewport-pass evidence needed to upgrade this dimension.
Score: Last verified 2026-04-24 6/6 pass; not verified this run → WARN
Dim 3 — Knowledge / Source-of-Truth Accuracy
pnpm derive --checkfor ITW-specific target:sermon-illustrations/src/app/pricing/layout.tsx→ 2 pass, 0 fail, 0 warn ✅validate_product_knowledge()→ 0 CRITICAL (157 WARNINGs all "bulk update detected" — pre-existing portfolio-wide, not ITW-specific inaccuracies)- Live pricing page:
$9.95and$99.50confirmed in HTML ✅ dir_illustrationscount: 50,739 (real); website says "50,000+" (correct); product_knowledge rows say "53,000+" (stale — see P2-1)- Help page account deletion FAQ: correctly references
/profilepage self-service delete ✅ (fix applied in PR #34) - Help page URL (
/help) returns HTTP 200 ✅
Score: PASS (0 CRITICAL; ITW derive target clean; live copy accurate)
Dim 4 — Onboarding / Billing / Gating
billing.critical_path_gate: false— no CI gate requiredcommands.billing: null— no automated billing validator declareditw-premium-checkoutregistry entry:last_run: 2026-04-28,last_break: null,founder_verified: 2026-04-28✅e2e/checkout.spec.tsexists;e2e/content-gating.spec.tsexistsitw-content-gatingregistry entry:last_run: 2026-04-27,last_break: null✅- Live pricing page: $9.95/mo and $99.50/yr prices match
knowledge/data/pricing.yamlcanonical values ✅ /api/stripe/checkoutendpoint: HTTP 401 (auth required — correct, not broken) ✅- Profile redirect
https://illustratetheword.com/profile→ 307 (auth redirect for unauthenticated user — correct) ✅ - Active
user_subscriptionsin DB: 0 (no paying ITW customers currently, only demo/test) - No current-month Stripe E2E validation artifact → gap
Score: WARN (billing logic last verified 2026-04-28; no fresh artifact)
Dim 5 — User Docs
https://illustratetheword.com/help→ HTTP 200 ✅canonical_source: knowledge/products/itw-premium/help.md→ non-null ✅- Coverage declared:
how_to_search: full,how_to_upgrade: full✅ - Account-deletion FAQ live text: "Go to your Profile page... scroll to the 'Delete Account' section. Type DELETE to confirm" — correctly references self-service
/profileroute (PR #34 fix is live) ✅ - No broken FAQ entries found in HTML scan
Score: PASS ✅
Dim 6 — Drift & Issues
founder_action_itemsopen P0/P1: 0 ✅ops_errorsP0/P1 unresolved (last 7d): 0 ✅moderation_violations(last 7d): 72 total — ALL fromchurch_id = 00000000-0000-4000-a000-000000000001(churchwiseai-demo test church). These are QA/safety-probe events, not real user incidents. No real-user violations. ✅- Known issues from config: FA-029 (41 AI illustrations flagged for moderation, 2026-04-06) and FA-030 (Progressive Christianity illustration editorial review) are pre-existing, tracked, and not in the founder_action_items table as open P0/P1.
commands.drift: null— no API drift script declared for ITW (ITW has no api-catalog.md). Gap noted but not a hard failure.- ESLint: exit 0 (0 errors, 0 warnings) ✅ — confirmed this run after PR #34
Score: PASS ✅
Dim 7 — Analytics
commands.analytics: null— no executable check declared- Readiness tab endpoint
https://churchwiseai.com/api/founder/readiness/itw→ HTTP 401 (token-gated — not verifiable without founder token) user_subscriptionsactive count: 0 (no paying ITW customers)- No per-property ITW KPI widget could be verified without the founder token
This dimension is a structural gap — itw.yaml has no analytics command, and verification requires the founder token. The ReadinessTab is wired in churchwiseai-web but cannot be probed by a read-only audit agent.
Score: WARN / GAP (cannot verify without founder token; command not declared)
Dim 8 — Marketing Funnel
marketing_funnel.landing: /→https://illustratetheword.com/→ HTTP 200 ✅marketing_funnel.pricing: /pricing→https://illustratetheword.com/pricing→ HTTP 200 ✅- Pricing page contains $9.95 and $99.50 (matches
billing.monthly_price_usd: 9.95andannual_price_usd: 99.50) ✅ marketing_funnel.synthetic_funnel_test: sermon-illustrations/e2e/synthetic-funnel.spec.ts— file exists ✅, content verified (3 test cases: landing brand, pricing $9.95 + CTA, checkout endpoint reachability) ✅itw-funnel-syntheticregistry entry:last_run: null❌ (spec authored 2026-04-22, NEVER run)mailerlite_group: itw-subscribers— not verified this run (no command and no MailerLite API call declared)
Score: WARN (infrastructure present, prices correct, spec exists but never executed — P1-3)
Dim 9 — Agent Monitoring
ACTIVE_WORK.mdreviewed — one active workstream:golive-readiness-program-2026-05-20(this run). No ITW-specific resource claims except read-only.- No two workstreams list overlapping ITW production resources.
- No stale ITW-specific workstreams (>24h without activity).
portfolio-audit-and-fix-2026-05-19marked ✅ COMPLETE — not stale, correctly labeled.- Pre-2026-04-25 workstreams are all marked ✅ RELEASED — correct.
- No resource conflict with this audit run.
Score: PASS ✅
Evidence links
- Build:
pnpm buildexit 0 (ITW build clean, confirmed this run) - Lint:
pnpm lintexit 0 (confirmed this run — 0 errors, 0 warnings) - Live URLs: HTTP 200 on
/,/pricing,/help,/signup,/sitemap.xml,/robots.txt - Pricing accuracy: $9.95/mo and $99.50/yr confirmed in pricing page HTML
- Database:
validate_product_knowledge()0 CRITICAL (via Supabase MCP) - Database:
founder_action_items0 open P0/P1 (via Supabase MCP) - Database:
ops_errors0 P0/P1 unresolved last 7d (via Supabase MCP) - Database:
moderation_violationslast 7d = 72 (all demo church QA events) - Database:
dir_illustrationscount = 50,739 (confirms "50,000+" copy is accurate) - Registry:
itw-premium-checkoutlast_run 2026-04-28 green;itw-content-gatinglast_run 2026-04-27 green - Registry:
itw-responsivelast_run 2026-04-24 6/6 pass (26 days ago) - Registry:
itw-smokelast_run null (never run) — P1-1 - Registry:
itw-signuplast_run null, spec incomplete — P1-2 - Registry:
itw-funnel-syntheticlast_run null (spec exists, never run) — P1-3 - Acceptance spec:
knowledge/acceptance/itw-premium.mdstatus COMPLETE, last-verified 2026-04-27 - ACTIVE_WORK.md: no resource conflicts
Registry last_run stamp recommendations
These are RECOMMENDATIONS only — self-healing writes are gated on actual test execution, which requires a live environment this session cannot provide.
| Registry Entry | Current last_run | Recommended action |
|---|---|---|
itw-smoke | null | Run e2e/smoke.spec.ts against https://illustratetheword.com and stamp |
itw-signup | null | Author targeted signup flow in e2e/auth.spec.ts then run + stamp |
itw-responsive | 2026-04-24 (26d ago) | Re-run e2e/responsive.spec.ts against production and refresh stamp |
itw-funnel-synthetic | null | Run e2e/synthetic-funnel.spec.ts against production and stamp |
itw-premium-checkout | 2026-04-28 (22d ago) | Re-run e2e/checkout.spec.ts against production and refresh stamp |