Open items
The actionable set: capabilities still PARTIAL or NON-COMPLIANT, plus pending attestations. Sources:
_state.json, _attestations.json.
Non-compliant
4
verified failure
Partial
34
in progress / incomplete
Pending attestations
40
41 have no owner assigned
Non-compliant capabilities
- non-compliant
demo-try-end-to-end-flowcapability · phase ?Scripted end-to-end demo at /try/end-to-end orchestrates subscribe → cart → confirm → portal → admin → CTA against the visitor's connected store; mute-by-default Web Speech narration, manual + auto-advance controls
Sister-slice components (5a CredentialsBanner, 5b WidgetHost, 5c SyntheticSubscriptionList, 5d AdminTilesDemo) render via local placeholders pending their respective merges. Mechanical 4-line import swap once 5a-5d land.
Hive #1259 (AC-5e), dossier docs/handoffs/hive-1143-ac5e-demo-end-to-end-flow.md, parent Hive #1143 AC-5
- non-compliant
authorize-bc-paymentsadr-commitment · phase ?ADR-0038 P2-A: BC Payments authorize() stub — documents that payments.bigcommerce.com is atomic and does not support per-request auth-only mode. Throws not_implemented_phase_2_requires_bc_partner_track. Verified 2026-05-15 against BC payments overview + transactions-api docs.
ADR-0038 / Hive #796 track A
- non-compliant
brd-us-18-6-quantity-silent-clampcapability · phase ?Out-of-range quantity is silently clamped to [1..100] rather than rejected; audit event records original_quantity + clamped:true
BRD.md §US-18.6 / Tier α polish decision e21ea786: silent-clamp closes UX gap where subscribers typing "0" got a 400
- non-compliant
ops-ledger-max-attemptsadr-commitment · phase ?ADR-0031: operations.max_attempts column for per-row retry budget
ADR-0031
Pending attestations (by gating class)
- market
bc-corp-coordinationcoordination · owner: unassignedBC corporate coordination — partner agreements, certifications, and listing approval
Related: #1269
- market
marketplace-listing-copygo-to-market · owner: unassignedBC marketplace listing copy — reviewed and approved
Related: #1269
- market
bc-marketplace-tech-reviewsecurity-compliance · owner: unassignedBC marketplace technical review — submission + approval
Related: #1269
- market
bc-marketplace-technical-reviewsecurity-compliance · owner: unassignedBC marketplace technical review
Related: #1269
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- ga
- soft
hiring-decisionscoordination · owner: unassignedHiring plan — roles needed for Phase 2 engineering and merchant support
Related: #1269
- soft
roadmap-planningcoordination · owner: unassignedRoadmap planning — Phase 2 priorities documented and stakeholder-aligned
Related: #1269
- soft
- soft
launch-announcementgo-to-market · owner: unassignedLaunch announcement — blog post or press release drafted and reviewed
Related: #1269
- soft
sales-enablementgo-to-market · owner: unassignedSales enablement materials — one-pager, demo script, competitive positioning
Related: #1269
- soft
incident-review-templateoperations · owner: unassignedIncident review template — first post-mortem completed
Related: #1269
- soft
regression-suite-coveragetesting · owner: unassignedManual regression suite — coverage of auto-test gaps
Related: #1269
Partial capabilities
34 rows — in-progress or partial implementations
- partial
ops-ledger-locked-until-reaperADR-0031: operations.locked_until column + reaper cron
- partial
brd-us-4-1-product-panel-rendersSubscriptions App Extension panel appears on BC product edit page showing plan status, intervals, pricing, eligibility
- partial
brd-us-5-9-calendar-anchorplans.billing_anchor_month + billing_anchor_day power calendar-anchored renewals; scheduler reads anchor columns to converge next_charge_at to the configured anchor date
- partial
brd-us-6-3-build-a-box-compositionBuild-a-box plan with box_size, eligible_products, customization_window; subscriber picks items; previous composition rolls forward if not customized
- partial
brd-us-10-7-pending-start-deferred-activationSubscriptions created with future starts_at land in status="pending_start"; scheduler's processPendingStarts scan flips them to active when starts_at <= now and emits subscription.activated with reason=starts_at_reached
- partial
brd-us-10-8-first-cycle-prorationMid-year sign-ups on calendar-anchored plans pay a prorated first charge for the partial period; plans.proration_policy controls proportional vs skip_stub behaviour
- partial
brd-us-10-9-capture-timing-configstores.capture_timing column persists merchant choice (immediate / on_fulfillment / on_ship); PaymentSettings admin UI renders dropdown + Phase 1 advisory banner + EU compliance note; capture-timing-resolver service surfaces effective mode for Phase 2 enforcement
- partial
brd-us-12-2-store-credit-applied-at-renewalStore credit balance reduces next charge amount; remainder rolls forward; credit balance decremented atomically with charge decrement
- partial
brd-us-12-4-manual-chargeManual ad-hoc charge executed against stored PM with optional BC order creation; blocked without opt-in auth
- partial
brd-us-14-5-address-propagation-p2merchant-setting-driven propagation of order shipping_address edits to parent subscription row (sync_order_edits_to_subscription = true); pending charges in active bundles are unbundled so re-materialization honours the new address
- partial
brd-us-14-7-nti-verification-chargeStale NTI triggers MUSE verification charge before renewal MIT; success refreshes last_nti_refreshed_at; failure routes to dunning
- partial
brd-us-15-5-free-shipping-plan-settingPlan "Free shipping for subscribers" setting zeros shipping cost on all renewals regardless of cart value
- partial
brd-us-15-6-pre-renewal-oos-checkPre-renewal proactive inventory scan runs ahead of charge window; plans.oos_renewal_policy (proceed/pause/skip_cycle/notify_and_wait) drives outcome; on_hold_oos status + Exception Queue oos_renewal_blocked entry surface to merchant for resolution (Resume now / Skip cycle / Substitute product)
- partial
brd-us-16-1-bundle-toggle-portalSubscriber with ≥2 active subscriptions to same address sees "Bundle shipments" toggle in portal
- partial
brd-us-16-3-admin-bundle-detailAdmin bundle detail view: line-item → subscription attribution + lifecycle events
- partial
brd-us-16-4-shipping-cost-proportionalBundle shipping rate allocated proportionally by line-item value across contributing subscription charges
- partial
brd-us-18-9-term-nudge-emailterm_end_at - nudge_lead_days fires "renew your subscription" email and flags subscription pending_renewal_decision
- partial
brd-us-18-9-term-confirm-advances-endSubscriber confirming re-up advances term_end_at by one term and returns subscription to standard renewal flow
- partial
brd-us-23-10-deliverability-monitoringPer-merchant-domain bounce/complaint rolling-window threshold monitoring drives send throttling + alerts; recovery auto-resumes send
- partial
brd-us-24-3-subscription-change-approvalB2B buyer submits change request via portal; pending → approved/rejected by admin; subscription_change_requests table tracks state; view_only buyers blocked from submitting
- partial
brd-us-25-1-subscription-only-couponsMerchant can mark a promotion as subscription_only via admin UI toggle; flag stored in promotion_settings table; storefront visibility endpoint gates coupon display by cart composition
- partial
brd-us-25-3-cycle-scoped-discountPlan-level cycle-scoped discount declaration (cycle_discount_pct/scope/count) snapshots onto subscription_discounts at creation with cycle_min/cycle_max bounds. Scheduler applies the discount only when current renewal cycle is within range. Plan edits do NOT affect in-flight subscriptions (lock-at-creation per ADR-0052).
- partial
brd-us-25-5-promotion-stacking-rulesTwo-layer stacking rule enforcement: resolveDiscountStack (subscription_discounts) and evaluateSubscriptionPromotions (subscription_promotions) each implement exclusive (highest computed value wins) + stackable (additive, capped). Exclusive disambiguation per Hive #900: highest computed amount_cents for the specific charge, not abstract discount_percent.
- partial
brd-us-25-6-promotional-free-shippingFree-shipping rule with cycle-condition (from_cycle) and/or order-value threshold (min_amount_cents) zeros the shipping line on the materialized BC order (single + bundle paths).
- partial
brd-us-25-7-cycle-modulo-gift-promogift_item promo with application_window=all_cycles + config.cycle_modulo:N fires on every Nth cycle, injecting a $0 product line into the BC order on those cycles. OOS fallback (skip/substitute) configurable per promo.
- partial
brd-us-25-1-subscription-promotion-projection-substrateTwo-table subscription-promotion substrate: subscription_promotions (coupon definition) + subscription_promotion_applications (per-charge attribution). Replaces spike #117 jsonb-on-charges proposal with relational tables for FK integrity, reporting joins, and refund-on-cancel joins.
- partial
brd-us-25-9-promotion-reportingPer-promotion report endpoint + admin UI: redemptions, charges_discounted, total_discount_cents (with subs/bc source breakdown), active subs carrying promo, attributed MRR (from plans.amount_cents), and retention lift (avg cycles_to_cancel partitioned by promo_applied_ever, suppressed below 30 cancellations).
- partial
brd-us-26-7-qty-min-max-enforcedmin_qty/max_qty rules block subscribe action with clear message when quantity is out of range
- partial
brd-us-28-3-audit-log-exportGET /api/v1/admin/audit-log?from=&to= returns every Event row in date range with actor, action, resource, Convention-12 SCA columns; paginated with cursor
- partial
processor-adapter-bc-payments-webhook-extractionADR-0035: BC Payments stored-instrument extraction at order.created webhook — real BigPay token persisted via GET /v3/customers/{id}/stored-instruments
- partial
capture-bc-paymentsADR-0038 P2-A: BC Payments capture() and voidAuth() stubs — documents that BC Transactions API capture/void endpoints are "planned for future phases" as of 2026-05-15. authWindowDays=5 (TBC, conservative default).
- partial
capture-timing-stored-on-storeADR-0038 Phase 1: stores.capture_timing column exists — migration 0026 (schema/D1) + capture_timing field on StoreRow in db.ts + CaptureTiming type in @bc-subscriptions/types. Advisory only in Phase 1; Phase 2 wires enforcement.
- partial
capture-timing-resolver-shippedADR-0038 Phase 2-D: capture-timing-resolver service ships — resolveCaptureTiming() exported, EU_COUNTRY_CODES constant present, migration 0028 adds stores.country_code column
- partial
demo-try-connect-formDemo "connect your store" connect form — store_hash + Storefront API token, validated client-side, session stored in sessionStorage only (spec #1254 AC-2)