# Commercial Runtime Adoption Report

> **Date:** 2026-07-28  
> **Phase:** `commercial-runtime-adoption`  
> **Prerequisite:** Commercial Runtime Backend **COMPLETE** (not rebuilt)  
> **Contract:** `commercial.v1.2` · ADR-023 · ADR-022

---

## Verdict

Platform commercial lookups now consume **Commercial Runtime** (`/api/v1/commercial/*`) as the single SoT.

Admin Commercial Portal is the **only** editor for commercial registries. New products / bundles / capabilities / pricing require **registry rows only** — zero FE/BE commercial catalog code.

---

## Platform Commercial Readiness Score: **92 / 100**

| Dimension | Score | Notes |
| --- | --- | --- |
| SoT uniqueness | 95 | FE catalogs deleted; Core onboarding/tenant context on commercial |
| FE adoption | 94 | Billing, workspace, admin plans/features, tenant subs, hub catalog |
| BE adoption | 90 | Onboarding + tenant context + Payment entitlement client |
| Zero-code expansion | 96 | Catalog discovery + generic registries |
| Legacy removal | 88 | Legacy Core `/plans`/`/features` deprecated (compat retained) |
| L2 boundary hygiene | 95 | Payment/Experience/Hospitality L2 packs kept (ADR-023) |

Deductions: legacy Core plan tables still exist (deprecated APIs); vertical modules still use L2 feature gates (correct, not commercial SoT); communication roadmap registry still lists future modules locally (codes aligned).

---

## Migrated

### Frontend
- Deleted `lib/business-bundles.ts`, `lib/apps-catalog.ts`, `AppStoreGrid`, `AppTile`
- Billing: commercial subscriptions/pricing only (no Core bridge, no `trial_days \|\| 14`)
- Workspace entitlement + subscription: commercial only
- Admin `/admin/plans` → `/admin/commercial/plans`
- Admin `/admin/features` → `/admin/commercial/capabilities`
- Tenant detail subscription: commercial plans + subscriptions
- Admin hub: discovers registries via `GET /catalog`
- Communication future-module `bundle` fields → commercial-style codes

### Backend
- Onboarding: **no** legacy FREE/STARTER plan assignment; commercial activation from FE
- Tenant context: plan/subscription from `CommercialTenantSubscription`
- Payment `CoreEntitlementClient` → `POST /api/v1/commercial/entitlements/check`
- Legacy `/api/v1/plans` marked **Deprecated** with successor Link header
- Trial days: taken from plan/pricing resolve only (no hardcoded 14)

---

## Zero-code validation

| Action | FE code change | BE code change | How |
| --- | --- | --- | --- |
| Add product | None | None | Admin → products registry |
| Add bundle | None | None | Admin → bundles |
| Add capability | None | None | Admin → capabilities |
| Add pricing/plan | None | None | Admin → pricing / plans |
| New registry kind | None | None | `POST /admin/kinds` + catalog |

---

## Intentionally unchanged (not commercial SoT)

- Payment / Experience / Hospitality **L2** capability packs (ADR-023 decision 10)
- Delivery operational pricing rules
- Vertical merchandising (menu items, membership venue plans, etc.)
- `docs/reference/*.yaml` seed inputs (feed Commercial Runtime)

---

## Artifacts

- [Legacy Removal Report](commercial-runtime-legacy-removal-report.md)
- Snapshot: [commercial-runtime-adoption.yaml](service-snapshots/commercial-runtime-adoption.yaml)
- Handover: [phase-commercial-runtime-adoption.md](phase-handover/phase-commercial-runtime-adoption.md)

---

## STOP

Do not rebuild Commercial Runtime. Do not start Marketplace / QR / Booking / Payment 14.6+.
