# Hospitality Frontend UX Audit

> **Phase:** hospitality-frontend-production  
> **Date:** 2026-07-28  
> **Scope:** `/hospitality/*` (54 routes) + module `frontend/modules/hospitality`  
> **Backend:** hospitality 12.0–12.8 (unchanged)  
> **Constraint:** No fake data · No backend rebuild · Commercial via Runtime adapters

## Classification legend

| Class | Meaning |
| --- | --- |
| **READY** | Live API, usable CRUD/actions, guided empty |
| **PARTIAL** | API connected but missing upgrade path, role UX, or commercial entitlement |
| **SCAFFOLD** | Placeholder / misleading mapping / dead path |
| **BROKEN** | Route or action fails contract |

---

## Route audit

| Route | Class | Notes |
| --- | --- | --- |
| `/hospitality` | PARTIAL | Live KPIs; hardcoded product badge; no ops role switch |
| `/hospitality/hub` | PARTIAL | Health/caps live; static branding |
| `/hospitality/branches` | READY | Venues CRUD |
| `/hospitality/branches/list` | READY | Branches CRUD |
| `/hospitality/dining-areas` | READY | Create/list |
| `/hospitality/tables` | READY | Create/list |
| `/hospitality/floor-map` | READY | POS Pro floor plans + L2 gate |
| `/hospitality/reservations` | READY | CRUD + status action |
| `/hospitality/queue` | READY | Waitlist + status |
| `/hospitality/customers` | PARTIAL | CRM connector regs (honest ownership) |
| `/hospitality/guests` | READY | QR menu sessions (read) |
| `/hospitality/menu` (+ categories/items/modifiers/options/availability/media) | READY | Digital menu catalog |
| `/hospitality/qr/menu` | READY | QR codes |
| `/hospitality/qr/ordering` | READY | Sessions + submit |
| `/hospitality/ordering/cart` | READY | Carts |
| `/hospitality/ordering/checkout` | READY | Cart lines |
| `/hospitality/kitchen/*` | PARTIAL | Live tickets; no dedicated kitchen ops dashboard |
| `/hospitality/pos/*` | PARTIAL | Live POS; coupons=discounts filter; no cashier ops home |
| `/hospitality/orders/*` | READY | Filtered QR / kitchen views |
| `/hospitality/invoices` `/receipts` | READY | POS ticket views |
| `/hospitality/integrations/delivery|crm|loyalty|communication|website` | READY | Connector registrations by kind |
| `/hospitality/integrations/marketplace` | SCAFFOLD | Mapped to all dispatches; marketplace foundation **not** available |
| `/hospitality/reports` `/analytics` | READY | Analytics reports/snapshots |
| `/hospitality/inventory` | PARTIAL | Snapshot metric filter — often empty; needs explained empty |
| `/hospitality/settings` `/bundles` `/roles` `/permissions` `/audit` `/notifications` `/health` `/capabilities` | READY | Admin surfaces |
| `/hospitality/onboarding` | SCAFFOLD | **Missing** restaurant first-run wizard |
| `/hospitality/ops/*` | SCAFFOLD | **Missing** operational / waiter / cashier dashboards |
| `/hospitality/integrations/accounting` | SCAFFOLD | Backend capability exists; **nav/page missing** |

---

## Cross-cutting gaps (pre-fix)

| Gap | Severity | Fix target |
| --- | --- | --- |
| `HospitalityBundleGate` = EmptyState only (no plan/capability/upgrade) | High | Commercial FeatureLock + UpgradePrompt |
| No commercial entitlement layer | High | `checkFeatureAccess` + FeatureLock |
| Hardcoded «تربت فود / Torbat Food» | Med | Commercial product adapter display name |
| Marketplace nav without foundation | High | CapabilityUnavailable |
| No restaurant setup wizard | High | `/hospitality/onboarding` |
| No role ops dashboards | High | Kitchen / waiter / cashier / ops |
| Accounting connector absent in FE | Med | Add connector + nav |
| Bundle gate when `features` undefined treats as allowed | Med | Safe deny / loading |

---

## Route audit (post production wave)

All former SCAFFOLD items closed except honest unavailable:

| Route | Class |
| --- | --- |
| Core CRUD / admin / integrations (excl. marketplace) | **READY** |
| `/hospitality/integrations/marketplace` | **READY (CapabilityUnavailable)** |
| `/hospitality/onboarding` | **READY** |
| `/hospitality/ops/*` | **READY** |
| `/hospitality/integrations/accounting` | **READY** |
| Dashboards / hub | **READY** (commercial brand when registry live) |

## Quality gate snapshot (after)

| Gate | After |
| --- | --- |
| No Placeholder | **PASS** |
| No Fake Data | **PASS** |
| Fully commercial-aware | **PASS** |
| Fully entitlement-aware | **PASS** |
| Onboarding | **PASS** |
| Zero scaffold pages | **PASS** |

See [hospitality-final-report.md](hospitality-final-report.md).

