Go-Live Readiness — IllustrateTheWord — 2026-04-22T23:30:00Z (v3)
v3 rerun — Three knowledge PRs merged since v2: knowledge#24 (itw-signup registry entry), knowledge#25 (itw.yaml MailerLite group → itw-subscribers), knowledge#28 (itw.yaml help_surface.canonical_source → knowledge/products/itw-premium/help.md). Re-scored under same v2 rubric (last_run:null = INDETERMINATE/0.5 credit).
Arithmetic correction: v2 Product Health "87.5%" was a math error — 0.75+0.5+0.5+0.75=2.5/4=62.5%. v3 carries the corrected baseline forward.
Summary
Product Health: 62.5% — does this serve customers today? Ops Instrumentation: 80% — can we catch the next regression?
Overall status: NEEDS WORK — 0 P0, 3 P1, 1 P2 open (No P0. Product Health < 80% — three indeterminate dims drag the score. Ops rose from 55% → 80%.)
Product Health (dims 1, 2, 4, 8)
| # | Dimension | State | Evidence |
|---|---|---|---|
| 1 | User journeys | ⚠ warn | Acceptance spec exists + founder verified live. itw-signup registry gap CLOSED (knowledge#24). One remaining P1: acceptance spec last-verified 2026-03-28 (25d stale) + FavoriteButton/AddToCollectionButton gating bugs unverified. |
| 2 | Viewports | ⚠ indeterminate | e2e/responsive.spec.ts present; Playwright sandbox not run this session. last_run: null. |
| 4 | Onboarding / billing | ⚠ indeterminate | Stripe live prices active. itw-premium-checkout spec present, last_run: null. No green run recorded. |
| 8 | Marketing funnel | ⚠ warn | / → 200, /pricing → 200, $9.95 confirmed on page. MailerLite group mismatch FIXED (knowledge#25 — itw-subscribers aligned). synthetic_funnel_test: null persists. |
Product Health subtotal: 2.5 / 4 = 62.5%
- Dim 1:
warn= 0.75 (itw-signup gap closed; acceptance spec staleness remains) - Dim 2:
indeterminate= 0.5 (spec present; not run) - Dim 4:
indeterminate= 0.5 (Stripe prices live; checkout spec not run) - Dim 8:
warn= 0.75 (pages live + price correct + MailerLite fixed; no synthetic funnel test)
Ops Instrumentation (dims 3, 5, 6, 7, 9)
| # | Dimension | State | Evidence |
|---|---|---|---|
| 3 | Knowledge / SOT accuracy | ⚠ indeterminate | pnpm derive --check not run this session. ITW routes through itw-newsletter tag in email_subscribers; no direct product_knowledge entries. Supabase MCP not authenticated for validate check. |
| 5 | User docs | ✅ pass | /help → 200. canonical_source: knowledge/products/itw-premium/help.md set (knowledge#28). File exists, last-verified: 2026-04-22, coverage how_to_search: full + how_to_upgrade: full. Full billing, account, and content Q&A present. |
| 6 | Drift & issues | ✅ pass | FA-029 (41 flagged illustrations) + FA-030 (Progressive Christianity) both P2 editorial items. No open ITW-specific P0/P1 founder actions beyond punch list below. |
| 7 | Analytics / founder dashboard | ⚠ indeterminate | ReadinessTab.tsx exists. /api/founder/readiness/itw returns 401 (auth-gated, expected). Dashboard present but ITW KPI widget rendering unverified without auth token. |
| 9 | Agent monitoring | ✅ pass | No ITW production resource conflicts in ACTIVE_WORK.md. All active workstreams are CWA-only. |
Ops Instrumentation subtotal: 4.0 / 5 = 80%
- Dim 3:
indeterminate= 0.5 - Dim 5:
pass= 1.0 ← upgraded from warn (0.75) in v2 - Dim 6:
pass= 1.0 - Dim 7:
indeterminate= 0.5 - Dim 9:
pass= 1.0
Punch List (ordered by severity)
P1
P1-1 (Dim 4): itw-premium-checkout never run green — last_run: null
e2e/checkout.spec.ts exists. Stripe prices are live and active ($9.95/mo price_1T99TPFaoK5IPzNoCqX8hEik). With real paying subscribers, a checkout regression would silently block new signups.
- Fix:
BASE_URL=https://illustratetheword.com npx playwright test checkout.spec.tsin Stripe test mode. Stamplast_run. - Existing FA: FA-072
P1-2 (Dim 8): synthetic_funnel_test: null — no automated funnel assertion
No spec asserts the /pricing?checkout=monthly auto-trigger, Premium card pulse, or that the Subscribe CTA routes to a valid Stripe session URL.
- Fix: Extend
e2e/checkout.spec.tswith a synthetic probe: load/pricing?checkout=monthly, verify Premium card pulses, verify Subscribe CTA routes to valid Stripe session URL. Updateitw.yaml. - Existing FA: FA-074
P1-3 (Dim 1): Acceptance spec 25 days stale + two gating bugs unverified
knowledge/acceptance/itw-premium.md last-verified: 2026-03-28. Two GATING NOTE — CODE FIX REQUIRED touchpoints: FavoriteButton must prompt upgrade for free users; AddToCollectionButton must be Premium-only. Neither verified since spec draft.
- Fix: Run
e2e/content-gating.spec.ts+e2e/crud-favorites.spec.tsagainst production. Verify upgrade prompts fire. Updatelast-verified. - Existing FA: FA-075
P2
P2-1 (Dim 6): 41 AI-generated illustrations flagged for moderation (FA-029) + 1 editorial review (FA-030) Open P2 editorial items. Not product-blocking. Needs founder review to approve/edit/remove.
Self-healed this run
None. Read-only scorecard run per the no-writes constraint.
Resolved since v2 (3 P1s closed)
| Was | Fix | PR |
|---|---|---|
P1-1 (v2): itw-signup registry entry missing | Added itw-signup entry to registry.yaml pointing to e2e/auth.spec.ts | knowledge#24 |
P1-3 (v2): help_surface.canonical_source: null | Created knowledge/products/itw-premium/help.md + set canonical_source in itw.yaml | knowledge#28 |
P1-4 (v2): MailerLite group mismatch (itw-leads vs itw-subscribers) | Updated itw.yaml mailerlite_group: itw-subscribers; comment explains proxy chain | knowledge#25 |
Indeterminate dimensions (what we couldn't check)
-
Dim 2 (Viewports):
e2e/responsive.spec.tspresent and covers desktop/tablet/mobile. Playwright sandbox not invoked —last_run: null. Graded indeterminate (0.5). No known viewport regressions. -
Dim 3 (Knowledge accuracy): Supabase MCP not authenticated.
pnpm derive --checkandvalidate_product_knowledge()not run. ITW usesitw-newslettertag inemail_subscribers, notproduct_knowledgetable directly. -
Dim 4 (Billing): Stripe live prices confirmed ACTIVE (
price_1T99TPFaoK5IPzNoCqX8hEikmonthly,price_1T99U5FaoK5IPzNobdKJhCyJannual).e2e/checkout.spec.tspresent butlast_run: null. Graded indeterminate (0.5). -
Dim 7 (Analytics):
ReadinessTab.tsxexists./api/founder/readiness/itwauth-gated (returns 401 as expected). Cannot verify ITW KPI widget rendering without founder token.
What would push Product Health to 100%
All four Product Health dims currently below 1.0 credit need one thing each:
- Dim 1 → 1.0: Add
founder_verified: 2026-04-22toitw-premium-checkoutanditw-smokeregistry entries AND updateknowledge/acceptance/itw-premium.mdlast-verified: 2026-04-22. Requires runninge2e/content-gating.spec.ts+e2e/crud-favorites.spec.tsagainst production and verifying gating prompts fire. - Dim 2 → 1.0: Run
npx playwright test --project=desktop,tablet,mobileagainsthttps://illustratetheword.comand stamplast_runforitw-smoke+itw-content-gating. - Dim 4 → 1.0: Run
e2e/checkout.spec.tsagainst production in Stripe test mode. Stamplast_runonitw-premium-checkout. Ideally setcritical_path: true. - Dim 8 → 1.0: Write and run a synthetic funnel test (extend
e2e/checkout.spec.ts). Setsynthetic_funnel_test:field initw.yaml. Addfounder_verified: 2026-04-22signal.
A single focused Playwright session against production (dims 1+2+3+4 are all e2e/*.spec.ts runs) would flip all four indeterminate/warn dims to pass → Product Health 100%.
Evidence links
- Landing page:
curl -sI https://illustratetheword.com/→ 200 ✅ - Pricing page:
curl -sI https://illustratetheword.com/pricing→ 200 ✅ - Help page:
curl -sI https://illustratetheword.com/help→ 200 ✅ - Canonical help KB:
knowledge/products/itw-premium/help.md— last-verified 2026-04-22, full coverage ✅ - itw.yaml help_surface.canonical_source:
knowledge/products/itw-premium/help.md✅ - itw.yaml mailerlite_group:
itw-subscribers(aligned 2026-04-22) ✅ - Registry:
itw-signupentry present at line 783 of registry.yaml ✅ - Registry:
itw-smoke,itw-premium-checkout,itw-content-gating— specs on disk,last_run: null⚠ - Stripe prices: live mode
price_1T99TPFaoK5IPzNoCqX8hEik(monthly $9.95) +price_1T99U5FaoK5IPzNobdKJhCyJ(annual) — confirmed ACTIVE in v2 ✅ - Acceptance spec:
knowledge/acceptance/itw-premium.md— COMPLETE, last-verified 2026-03-28 (25d stale) ⚠ - Founder attestation: ITW confirmed serving customers 2026-04-22 ✅
- E2E spec inventory:
e2e/smoke.spec.ts,e2e/checkout.spec.ts,e2e/content-gating.spec.ts,e2e/responsive.spec.ts,e2e/auth.spec.ts,e2e/crud-favorites.spec.ts— all present ✅
Delta vs v2 (itw-20260422-v2.md)
| Metric | v2 | v3 | Delta |
|---|---|---|---|
| Product Health % | 62.5% (v2 reported 87.5% but math was wrong; corrected here) | 62.5% | 0pp (rubric-corrected baseline; no new dims changed) |
| Ops Instrumentation % | 55% | 80% | +25pp |
| Overall status | NEEDS WORK | NEEDS WORK | no change |
| P0 count | 0 | 0 | — |
| P1 count | 6 | 3 | -3 |
| P2 count | 1 | 1 | — |
| Dim 5 (Docs) | warn (0.75) | pass (1.0) | upgraded |
| Dim 1 (Journeys) | warn (0.75) — 2 gaps | warn (0.75) — 1 gap | P1-1 closed |
| Dim 8 (Marketing) | warn (0.75) — 2 P1s | warn (0.75) — 1 P1 | P1-4 closed |