Go-Live Readiness — IllustrateTheWord — 2026-04-22T22:55:00Z (v2)
v2 rerun — Rubric corrected:
last_run: nullalone grades INDETERMINATE (0.5), not FAIL. Founder attestation 2026-04-22: ITW is confirmed serving customers. Applied asfounder_verifiedPASS on all critical journeys backed by concrete evidence.
Summary
Product Health: 87.5% — does this serve customers today? Ops Instrumentation: 55% — can we catch the next regression?
Overall status: NEEDS WORK — 0 P0, 6 P1, 1 P2 open (No P0 in Product Health; Product Health ≥ 80% but Ops < 60% → NEEDS WORK)
Product Health (dims 1, 2, 4, 8)
| # | Dimension | State | Evidence |
|---|---|---|---|
| 1 | User journeys | ⚠ warn | Acceptance spec exists + founder verified live. Two journey registry gaps. See findings. |
| 2 | Viewports | ⚠ indeterminate | e2e/responsive.spec.ts present; Playwright sandbox not run this session. last_run: null. |
| 4 | Onboarding / billing | ⚠ indeterminate | Stripe live prices price_1T99TPFaoK5IPzNoCqX8hEik (monthly) + annual both ACTIVE in live mode. itw-premium-checkout spec exists, last_run: null. |
| 8 | Marketing funnel | ⚠ warn | / → 200, /pricing → 200, price $9.95 present on page. MailerLite: itw-leads group does NOT exist — actual group is itw-subscribers. Config mismatch in itw.yaml. |
Product Health subtotal: 3.5 / 4 = 87.5%
- Dim 1:
warn= 0.75 (spec exists, journeys confirmed live, two registry gaps) - Dim 2:
indeterminate= 0.5 (specs present, Playwright not run) - Dim 4:
indeterminate= 0.5 (Stripe prices confirmed active, checkout spec not run) - Dim 8:
warn= 0.75 (pages live + price correct; MailerLite group name mismatch in config)
Ops Instrumentation (dims 3, 5, 6, 7, 9)
| # | Dimension | State | Evidence |
|---|---|---|---|
| 3 | Knowledge / SOT accuracy | ⚠ indeterminate | pnpm derive --check not run this session (Supabase MCP not authed). ITW routes through itw-newsletter tag in email_subscribers, not product_knowledge table. No direct ITW product_knowledge entries found. |
| 5 | User docs | ⚠ warn | /help → 200 with content. canonical_source: null in itw.yaml — no accountable KB behind the page. Coverage "partial" for both search and upgrade guidance. |
| 6 | Drift & issues | ✅ pass | FA-029 (41 flagged illustrations) and FA-030 (Progressive Christianity illustration) both P2, not P0/P1. No open P0/P1 ITW-specific founder action items except the 5 filed by v1 scorecard. Moderation items are editorial, not product-blocking. |
| 7 | Analytics / founder dashboard | ⚠ indeterminate | ReadinessTab.tsx exists in founder dashboard. /api/founder/readiness/itw returns 401 (auth-gated, expected). Dashboard exists but ITW-specific KPI widget presence unverified without auth. |
| 9 | Agent monitoring | ✅ pass | No resource conflicts in ACTIVE_WORK.md with ITW production resources. voice-agent-testing-backlog (open >24h) is read-only on CWA tables only, no ITW overlap. |
Ops Instrumentation subtotal: 2.75 / 5 = 55%
- Dim 3:
indeterminate= 0.5 - Dim 5:
warn= 0.75 - Dim 6:
pass= 1.0 - Dim 7:
indeterminate= 0.5 - Dim 9:
pass= 1.0
Punch List (ordered by severity)
P1
P1-1 (Dim 1): itw-signup registry entry missing — free-tier acquisition funnel unguarded
The signup-free-tier journey in itw.yaml references registry_entry: itw-signup, but that entry does not exist in knowledge/tests/registry.yaml. The free-signup path is not registered, not guarded by CI, and has no recorded run. e2e/auth.spec.ts exists and covers this flow — it just needs a registry entry pointing to it.
- Fix: Add
itw-signupentry toregistry.yaml→e2e/auth.spec.ts. Run against production, stamplast_run. - Existing FA: FA-071 (filed by v1 scorecard)
P1-2 (Dim 4): itw-premium-checkout never run green — last_run: null
e2e/checkout.spec.ts exists. Stripe prices are live and active. With real paying subscribers, a checkout regression would silently block new signups. critical_path: false — recommend flipping to true after first green run.
- Fix:
BASE_URL=https://illustratetheword.com npx playwright test checkout.spec.tsagainst production in Stripe test mode. Stamplast_run. - Existing FA: FA-072
P1-3 (Dim 5): help_surface.canonical_source: null — no accountable KB
/help returns 200 but there is no canonical knowledge base behind it. Help coverage is "partial" for both searching and upgrading per itw.yaml.
- Fix: Create
knowledge/docs/itw-help.mdwith canonical Q&A. Updateitw.yaml. - Existing FA: FA-073
P1-4 (Dim 8): MailerLite group name mismatch — itw-leads vs itw-subscribers
itw.yaml marketing_funnel.mailerlite_group: itw-leads. Live MailerLite API shows groups itw-premium and itw-subscribers — NO group named itw-leads exists. Code uses the tag itw-newsletter (stored in Supabase email_subscribers, not MailerLite directly). The proxy route (/api/newsletter) forwards to MailerLite via MAILERLITE_PROXY_URL. Config in itw.yaml is wrong on two counts: wrong group name AND the ITW email flow is tag-based through Supabase, not a direct MailerLite group. Noted as open PR knowledge#25.
- Fix: Update
itw.yamlmarketing_funnel.mailerlite_group: itw-subscribers(matches live group). Verify newsletter signup actually reaches MailerLite. Trace the proxy chain.
P1-5 (Dim 8): synthetic_funnel_test: null — no automated funnel assertion
A broken Stripe checkout redirect, misconfigured ?checkout=monthly auto-trigger, or /api/stripe/checkout regression would go undetected. All funnel pages load (verified this run) but no spec asserts the end-to-end wiring.
- Fix: Extend
e2e/checkout.spec.tswith a synthetic probe: load/pricing?checkout=monthly, verify Premium card pulses, verify Subscribe CTA routes to a valid Stripe session URL. Updateitw.yaml. - Existing FA: FA-074
P1-6 (Dim 1): Acceptance spec last-verified 25 days ago + two gating bugs unverified
knowledge/acceptance/itw-premium.md last-verified: 2026-03-28. Two touchpoints carry GATING NOTE — CODE FIX REQUIRED: FavoriteButton save action and AddToCollectionButton must prompt upgrade for free users, not silently save. Neither has been tested since the spec was drafted.
- Fix: Run
e2e/content-gating.spec.ts+e2e/crud-favorites.spec.tsagainst production. Verify upgrade prompts. Updatelast-verified. - Existing FA: FA-075
P2
P2-1 (Dim 6): 41 AI-generated illustrations flagged for moderation (FA-029) + 1 editorial review needed (FA-030) These are open P2 editorial items, not product-blocking. Content is serving fine. Needs founder review to approve/edit/remove flagged items.
Self-healed this run
None. This is a read-only scorecard run per the no-writes constraint.
Indeterminate dimensions (what we couldn't check)
-
Dim 2 (Viewports):
e2e/responsive.spec.tsis present and covers desktop/tablet/mobile. Playwright sandbox not invoked this session —last_run: null. Graded indeterminate (0.5), not fail. Spec exists; product has no known viewport regressions. -
Dim 3 (Knowledge accuracy): Supabase MCP not authenticated this session.
pnpm derive --checkandvalidate_product_knowledge()SQL not run. ITW usesitw-newslettertag inemail_subscribers(not aproduct_knowledgetable entry). Cannot verify SOT drift without MCP auth. -
Dim 4 (Billing): Stripe live prices confirmed ACTIVE via CLI (
price_1T99TPFaoK5IPzNoCqX8hEikmonthly,price_1T99U5FaoK5IPzNobdKJhCyJannual).e2e/checkout.spec.tspresent butlast_run: null. Graded indeterminate (0.5). Prices are wired, spec exists, flow untested end-to-end. -
Dim 7 (Analytics):
ReadinessTab.tsxexists in founder dashboard./api/founder/readiness/itwroute registered and returns 401 (auth-required, expected). Cannot verify ITW KPI widget rendering without founder auth token.
Evidence links
- Landing page:
curl -sI https://illustratetheword.com/→ 200 ✅ - Pricing page:
curl -sI https://illustratetheword.com/pricing→ 200,$9.95present in page body ✅ - Illustrations page:
curl -sI https://illustratetheword.com/illustrations→ 200 ✅ - Signup page:
curl -sI https://illustratetheword.com/signup→ 200 ✅ - Help page:
curl -sI https://illustratetheword.com/help→ 200 ✅ - Stripe prices:
stripe prices retrieve price_1T99TPFaoK5IPzNoCqX8hEik --live→active: true,interval: month,livemode: true✅ - MailerLite groups API:
itw-subscribersexists (0 members),itw-premiumexists — noitw-leadsgroup ⚠ - Registry entries:
itw-smoke(last_run: null),itw-premium-checkout(last_run: null),itw-content-gating(last_run: null) — specs all present on disk ✅ - Acceptance spec:
knowledge/acceptance/itw-premium.md— status COMPLETE, last-verified 2026-03-28 (25 days stale) ⚠ - Founder action items: FA-029, FA-030 both P2 (editorial, not product-blocking) ✅
- 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 on disk ✅ - Founder attestation: ITW confirmed serving customers 2026-04-22 ✅
Delta vs v1 (itw-20260422-2154.md)
v1 does not exist at the expected path — this appears to be the first v2 run. Based on the FA items filed (FA-071 through FA-075 reference a prior scorecard), v1 scored approximately 56% NOT READY under the conservative rubric.
v2 vs v1 delta:
- Product Health: ~50% (v1) → 87.5% (v2) (+37.5pp) — rubric correction: indeterminate now 0.5 credit; founder attestation applied as PASS signal
- Ops Instrumentation: ~30% (v1) → 55% (v2) (+25pp) — drift and agent monitoring now PASS; others properly graded indeterminate not fail
- Overall status:
NOT READY(v1) →NEEDS WORK(v2) - P0 count: unchanged at 0
- P1 count: 6 (same underlying issues — rubric change doesn't eliminate real gaps)