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 83be22a7.

InternalBuild-verification substrate (internal vocabulary). The narrative account of what's built lives in theKnowledge base and thehandoff corpus.

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
14868%
integrationIntegration
10%
scenarioScenario (api behavior)
19790%
bdd-e2eGherkin BDD e2e
2913%
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 · 182 files

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

  • unit120
  • scenario13
  • bdd-e2e10
  • e2e36
  • 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······—