Review → Test matrix

Test matrix.

For each acceptance criterion, which kinds of test are tagged to it — and where scenario evidence exists, whether they pass (gate G4). Measures test presence per type; the Verification ladder view owns the authoritative G4 verdict. Derived at b083f095.

Tagged

211 / 218

97% have a test claiming coverage

G4-verified

202 / 218

93% have a passing scenario

Tagged, not verified

9

claim without a passing-gate proof

Dark · failing

7 · 0✗

no test at all · G4 failing

ACs covered, by test type

An AC can appear in more than one column. Coverage today concentrates in scenario and unit — the integration and a11y columns have no AC-tagging convention yet, which is the backfill opportunity this matrix exists to surface.

unitUnit
14667%
integrationIntegration
10%
scenarioScenario (api behavior)
19790%
bdd-e2eGherkin BDD e2e
2311%
e2ePlaywright e2e
3416%
a11yAccessibility
00%

Per-epic coverage

EpicCovered / totalCoverage
Epic 17 / 7
100%
Epic 27 / 7
100%
Epic 37 / 7
100%
Epic 45 / 5
100%
Epic 59 / 9
100%
Epic 611 / 11
100%
Epic 75 / 5
100%
Epic 86 / 6
100%
Epic 96 / 6
100%
Epic 109 / 9
100%
Epic 117 / 7
100%
Epic 126 / 6
100%
Epic 135 / 5
100%
Epic 147 / 7
100%
Epic 156 / 6
100%
Epic 165 / 5
100%
Epic 175 / 5
100%
Epic 1810 / 11
91%
Epic 196 / 6
100%
Epic 207 / 7
100%
Epic 218 / 8
100%
Epic 229 / 9
100%
Epic 2317 / 18
94%
Epic 2410 / 11
91%
Epic 2510 / 11
91%
Epic 2610 / 10
100%
Epic 277 / 7
100%
Epic 284 / 7
57%

Authoring queue · 7 ACs

Acceptance criteria with zero tagged tests of any type. Each needs a scenario or test.

US-18.11 · US-23.18 · US-24.11 · US-25.11 · US-28.5 · US-28.6 · US-28.7

Tagging-backfill queue · 141 files

Test files with no sanctioned AC tag. Add an acs: array, @ac: tag, or BRD § prose ref.

  • unit84
  • scenario10
  • bdd-e2e10
  • e2e34
  • a11y3

Full matrix · 218 ACs

One row per AC; a tick means at least one test of that type is tagged to it (a claim of coverage). The G4 column is the verification — the committed gate verdict from state-derive (✓ = a passing scenario exists). A tagged row with a in G4 has no gate to prove it passes — coverage claimed, not verified.

ACUIScBDDE2EA11yG4
US-1.1OAuth install handshake····
US-1.2Signed payload JWT verification on app load····
US-1.3App Extensions registered on install····
US-1.4Webhook subscriptions registered on install·····
US-1.5Uninstall hook cleans up credentials and extensions····
US-1.6Persist BC staff on first load····
US-1.7Stamp mutating events with `actor_user_id`····
US-2.1Auto-detect BC Payments···
US-2.2Stripe Connect onboarding··
US-2.3Processor compatibility detection at install····
US-2.4Sandbox/test mode····
US-2.5Processor health check····
US-2.6Multiple processor connections····
US-2.7Capture timing advisory at processor onboarding····
US-3.1Recharge export import····
US-3.2Payment method migration via Stripe/Braintree dataset import·····
US-3.3Cycle-date preservation·····
US-3.4PayWhirl export import·····
US-3.5Bold / MINIBC import····
US-3.6Dry-run migration with impact report·····
US-3.7PayWhirl API import (authoritative extraction)·····
US-4.1"Subscriptions" panel on a BC product····
US-4.2Subscription-enable wizard··
US-4.3Variant-level subscription enablement····
US-4.4Deactivate subscription plan···
US-4.5Copy plan between products···
US-5.1Multiple offered intervals····
US-5.2Pricing strategy — fixed discount %····
US-5.3Pricing strategy — BC Price List····
US-5.4Pricing strategy — fixed price····
US-5.5Free or paid trial···
US-5.6Lock price at subscription creation····
US-5.7Commitment (minimum cycles)····
US-5.8Cancel lock plan policy — minimum term + early-cancellation policy·····
US-5.9Calendar-anchored billing plan anchor·····
US-6.1Gift subscriptions····
US-6.2Prepaid fixed-term subscriptions····
US-6.3Build-a-box subscriptions·····
US-6.4Bundle subscriptions····
US-6.5Membership subscriptions (access-based)····
US-6.6Usage-based subscriptions····
US-6.7Surprise-me / curation subscriptions····
US-6.8Referral subscriptions····
US-6.9AllotmentGrant — admin-granted recurring quota / wallet (PRD-COMPANION D18)····
US-6.10Multi-actor subscription — payer / beneficiary / manager distinct from owner (PRD-COMPANION D19)····
US-6.11Custom-field configuration on a plan (PRD-COMPANION D20)····
US-7.1Plan scoped to specific channels····
US-7.2Plan scoped to customer groups····
US-7.3Plan scoped to geographic region····
US-7.4Plan scoped to Price List····
US-7.5Scope audit view····
US-8.1Widget on Stencil PDP···
US-8.2Widget on cart·····
US-8.3Headless SDK·····
US-8.4Widget theming·····
US-8.5A/B widget copy·····
US-8.6Pre-purchase education panel·····
US-9.1Line-item custom fields carry intent····
US-9.2`store/order/created` → Subscription creation··
US-9.3Post-purchase fallback capture····
US-9.4Mixed-cart checkout (subscription + one-time)····
US-9.5Third-party checkout support declaration·····
US-9.6Affirmative consent capture at subscribe (auto-renewal disclosure)·····
US-10.1Nightly schedule scan···
US-10.2Charge executor workflow···
US-10.3Charge anchor-date math···
US-10.4Charge jitter for rate limiting····
US-10.5Pause/resume respects schedule math····
US-10.6Schedule visualization···
US-10.7Future start date — pending_start state and deferred activation·····
US-10.8First-cycle proration for mid-year calendar-anchor sign-ups·····
US-10.9Capture timing configuration per store···
US-11.1Configurable dunning policy··
US-11.2Retry execution···
US-11.3Hard vs soft decline classification···
US-11.4Automatic Card Updater integration·····
US-11.5Subscriber-initiated PM update resets retries·····
US-11.6Dunning notifications····
US-11.7Merchant-side dunning digest·····
US-12.1Refund a charge····
US-12.2Store credit as payment for next charge····
US-12.3Skip cycle without refund·····
US-12.4Merchant-initiated one-time charge····
US-12.5Chargeback dispute handling·····
US-12.6Tax handling on refund·····
US-13.1Event log per subscription····
US-13.2Daily reconciliation sweep····
US-13.3Replay a failed workflow····
US-13.4Structured logs with correlation IDs·····
US-13.5Metrics dashboard for platform SRE·····
US-14.1Create BC order on successful charge···
US-14.2Tag order with subscription metadata····
US-14.3First-order linkage·····
US-14.4Order status mapping·····
US-14.5Order edit sync····
US-14.6Mid-cycle plan upgrade — delta-capture semantics····
US-14.7NTI verification charge before stale-NTI renewal (PRD-COMPANION D21)····
US-15.1Inventory check before charge····
US-15.2Price recalculation at renewal····
US-15.3Tax recalculation at renewal·····
US-15.4Shipping cost recalculation·····
US-15.5Free shipping on subscription····
US-15.6Pre-renewal OOS check — proactive inventory scan before charge with Exception Queue escalation····
US-16.1Subscriber opts into combined shipments····
US-16.2Single BC order per combined shipment····
US-16.3Merchant view of combined shipments···
US-16.4Shipping cost allocation····
US-16.5Decoupled billing and shipping cadence — Phase 3 scaffold·····
US-17.1Magic-link email auth····
US-17.2BC storefront SSO····
US-17.3Portal custom domain·····
US-17.4Portal theming·····
US-17.5Headless portal SDK·····
US-18.1Skip next charge····
US-18.2Swap product/variant····
US-18.3Pause subscription····
US-18.4Reschedule next charge····
US-18.5Cancel (with churn-prevention flow)····
US-18.6Update quantity····
US-18.7Reactivate cancelled subscription···
US-18.8Change cadence / interval····
US-18.9Term-end renewal nudge — registration-style re-up distinct from MIT renewal···
US-18.10Cancel lock — portal enforcement and CS-rep admin override·····
US-18.11Click-to-cancel — same-medium cancellation parity······
US-19.1Update payment method····
US-19.2Default vs per-subscription PM····
US-19.3Update shipping address····
US-19.4Update billing address····
US-19.5Subscriber preferences····
US-19.6Update payment method across all subscriptions·····
US-20.1Cancel reason capture·····
US-20.2Intervention: pause-instead-of-cancel····
US-20.3Intervention: offer discount·····
US-20.4Intervention: change cadence····
US-20.5Intervention: escalate to support·····
US-20.6Intervention A/B testing·····
US-20.7Churn-flow obstruction guard (save-attempt limit)·····
US-21.1KPI summary···
US-21.2Upcoming charges panel···
US-21.3Exception queue···
US-21.4Subscription list with search & filter····
US-21.5Bulk actions on subscriptions···
US-21.6Subscription detail view····
US-21.7Export subscription data (CSV)···
US-21.8Analytics beyond KPIs (cohort, LTV)···
US-22.1Create subscription manually····
US-22.2Customer lookup from BC App Extension·····
US-22.3Impersonate subscriber (view-only)··
US-22.4Bulk subscription creation via CSV··
US-22.5Force-charge / force-refund···
US-22.6Merchant note on subscription····
US-22.7AllotmentGrant management (issue, refresh-override, suspend, revoke)···
US-22.8Custom-field admin UI — view, edit, validate···
US-22.9B2B Edition — admin-only subscription enrollment for buyer-orgs (ADR-0023)···
US-23.1Transactional emails····
US-23.2SMS notifications·····
US-23.3Template editor···
US-23.4Merchant alerts & digests·····
US-23.5Klaviyo integration·····
US-23.6Gorgias / Zendesk integration·····
US-23.7Accounting integrations (NetSuite, QuickBooks, Xero)·····
US-23.8Outbound webhooks····
US-23.9Custom sending domain···
US-23.10Deliverability monitoring····
US-23.11Suppression list management·····
US-23.12Magic-link email pipeline····
US-23.13Decline-reason-translated dunning email····
US-23.14Failed-render fallback····
US-23.15Idempotent send + dedupe····
US-23.16Webhook ingestion (bounce / complaint / open / click)····
US-23.17Localization framework·····
US-23.18Auto-renewal reminder notifications······
US-24.1Company-account subscriptions····
US-24.2Role-based portal permissions····
US-24.3Approval workflow for subscription changes····
US-24.4Purchase order as payment method····
US-24.5Buyer hierarchy & visibility·····
US-24.6Volume-tier renewal pricing·····
US-24.7Contract-term commitments·····
US-24.8Multi-location shipping·····
US-24.9Admin-only B2B subscription enrollment in Phase 1 (ADR-0023)····
US-24.10`org_admin` actor role and multi-actor management on B2B subscriptions (PRD-COMPANION D19, ADR-0022)·····
US-24.11Catalyst storefront + Buyer Portal + subscription widget composite PDP behaviour······
US-25.1Subscription-only coupon codes··
US-25.2Subscribe-and-save auto-promotion·····
US-25.3Cycle-scoped discount····
US-25.4Tenure-based loyalty discount·····
US-25.5Promotion stacking rules···
US-25.6Promotional free shipping····
US-25.7Subscription-exclusive bundles····
US-25.8Gift-with-subscription····
US-25.9Promotion reporting···
US-25.10Time-tiered discount ladder·····
US-25.11Cycle-discount ladder — admin propagation controls······
US-26.1Product inclusion by category···
US-26.2Product exclusion···
US-26.3Variant-level eligibility·····
US-26.4Custom-field-based eligibility····
US-26.5Customer-segment eligibility·····
US-26.6Geographic & channel restrictions·····
US-26.7Quantity min/max····
US-26.8Mutual exclusion rules····
US-26.9Conditional dependency rules·····
US-26.10Rule evaluation audit····
US-27.1Public REST API····
US-27.2API key management in admin·····
US-27.3Outbound webhook subscriptions····
US-27.4Headless SDK (TypeScript)·····?
US-27.5GraphQL API·····
US-27.6App Marketplace for extensions·····
US-27.7Sandbox test stores·····
US-28.1GDPR data subject access request (DSAR)····
US-28.2GDPR/CCPA erasure····
US-28.3Audit log export····
US-28.4PCI DSS scope maintenance·····
US-28.5SOC 2 Type II readiness······
US-28.6Data residency······
US-28.7Auto-renewal disclosure policy & consent-record retention······