hospitality-hotel-restaurant-systems · git:20260920.7b9dcd2 · 2026-09-20 · sha256 a7af808f99a1c944
hospitality-hotel-restaurant-systems git:20260920.7b9dcd2A
Immutable. This exact content never changes and is served at /api/v1/blob/a7af808f99a1c944.
--- name: hospitality-hotel-restaurant-systems description: Use when architecting, specifying, implementing, or auditing PMS, POS, restaurant, hotel, resort, lodge, guest-house, venue, catering, or food-service software. metadata: portable: true compatible_with: [claude-code, codex] --- # Hospitality Hotel And Restaurant Systems Acknowledgement: Shared by Peter Bamuhigire, techguypeter.com, +256 784 464178. <!-- dual-compat-start --> Use with requirements, modular SaaS, PHP/API/database, security, finance, offline-first, observability, testing, UX and professional documentation skills. This is an implementation contract, not a certification that any existing product is complete. ## Product boundary Model one operational platform with bounded domains: tenant/property/outlet, rooms and rates, guests, reservations, stays and folios, housekeeping, maintenance, events, restaurant tables/orders/KOT/KDS, menus/recipes/inventory, payments, shifts/day close, finance integration, reporting and administration. Keep PMS and POS workflows independently usable but share only explicit, reconciled contracts. ## Core engineering rules - Every tenant/property/outlet query is scoped and negative-tested; role and capability checks occur server-side. - State machines are explicit for room status, reservation, stay, folio, housekeeping task, order, KOT, payment, shift and night audit. Invalid transitions fail safely and create an audit event. - Posted charges, payments, refunds, inventory movements, KOTs and audit events are append-only or reversal-based. Use idempotency keys and an outbox/queue for notifications, fiscal calls and integrations. - Money, tax, discounts, tips/service charge, deposits, room charges, city ledger, recipe yield, wastage and reconciliation have an account/dimension owner. Route journal logic through the canonical finance posting service. - Offline/staged operation must declare what is safe to queue, how conflicts are resolved, how a user sees stale state, and how duplicate orders/payments are prevented. Never silently overwrite. - Provider boundaries isolate payment, SMS/WhatsApp, fiscal, channel manager, maps, identity and analytics. Contracts include timeout, retry, signature, idempotency, reconciliation and degraded-mode behaviour. - Prefer a modular monolith plus durable queue for current scale. Introduce services only when measured load, isolation, team ownership or failure domain justifies them. ## Hotel implementation slices 1. Property/room types/rooms/capacity/amenities and room-status board. 2. Availability, reservation overlap protection, rate plans, restrictions, deposits, cancellation/no-show, group blocks and booking sources. 3. Guest profile/identity consent, check-in/walk-in, stay, folio, room charges, split/transfer, payment/refund and checkout. 4. Housekeeping assignment/inspection, maintenance work order and out-of-order. 5. Night audit/business date, city ledger, reconciliation, operational reports and event/meeting charges. ## Restaurant implementation slices 1. Outlets/areas/tables/reservations/waitlist and table status. 2. Menu/category/item/modifier/availability, price history, recipe/BOM/yield. 3. Order/seat/course/notes/allergy flag, KOT routing, station/KDS timers, reprint/void and manager override. 4. Bill, service charge/tips, discounts, split/transfer, room charge, payments/refunds, shift open/close and cash reconciliation. 5. Receiving, stock, wastage/spoilage, menu engineering, delivery/events, food-safety logs, finance posting and reports. ## Test and release contract Each slice needs normal, validation, permission, tenant-isolation, concurrency, retry/idempotency, rollback/reversal, offline/reconnect, device/browser, accessibility, performance and rendered/UAT evidence where applicable. Test room overlap, stale availability, duplicate payment, partial KOT failure, negative stock, void-after-posting, tax/fiscal outage, lost connection, night audit rerun, cross-property access and backup restore. Code or a screen is only `observed`; release status requires executable evidence and owner sign-off. ## Evidence Produced | Category | Artifact | Format | Example | |---|---|---|---| | Correctness | Scenario and state-transition evidence | Markdown table plus test output | Reservation overlap, folio posting, night-audit rerun and KOT state tests with expected outcomes | | Security | Tenant, role and provider-boundary findings | JSON or Markdown finding record | Cross-property access denial, server-side capability check and webhook signature result | | Data safety | Ledger, inventory and idempotency trace | JSON/YAML trace with stable IDs | Duplicate payment key, reversal lineage, stock movement and reconciliation evidence | | Performance | Workload and latency result | Versioned benchmark record | Availability search, KDS timer and report query measured with data volume and environment | | Operability | Recovery and owner runbook | Markdown runbook plus incident evidence | Fiscal outage, queue retry, backup restore and night-audit recovery steps | | UX quality | Accessibility and device-state evidence | Test matrix plus rendered/UAT record | Keyboard flow, focus/error/loading states, narrow-screen and offline/reconnect results | | Release evidence | Signed readiness and rollback record | Markdown/JSON manifest | Migration, feature flag, rollback, approver and unresolved-risk status | ## Deliberate exclusions until proven No raw card storage, biometric guest ID, blockchain ledger, metaverse/VR as core, robots, unexplainable AI pricing, broad OTA/channel manager, social feed, microservice fleet, or feature with no actor, state, business outcome, control, oracle, dependency and owner. ## Anti-patterns - Treating a route, migration or screen as proof. Fix: execute the acceptance slice. - Sharing a database without tenant/property/outlet lineage. Fix: enforce scope at repository, API, job, report and export boundaries. - Retrying money, orders or fiscal calls without idempotency. Fix: persist keys and reconcile provider responses. - Making offline mode silently overwrite state. Fix: show staleness, conflict and recovery, and queue only safe events. - Adding AI or integrations before operational controls. Fix: gate them behind data, privacy, security, explainability and support evidence. ## Worked example For a last-room booking, model the reservation command with a property-scoped transaction, unique inventory constraint, idempotency key and audit event; concurrently attempt a second booking, force a retry and restore a backup. The slice passes only when one booking wins, the other receives a safe result, the folio/report state reconciles and the event trail is complete. ## References - `C:\wamp64\www\skills-web-dev\docs\skill-routing-index.md` - `C:\wamp64\www\skills-web-dev\docs\source-registers\hospitality-currentness-2026-09.json` <!-- dual-compat-end -->