Documents the demo-productization work from this branch: the Northstar Mobility fictional concept and scope, the five named scenarios and their fixed records, the seed/date-anchoring strategy (including the real bug it fixed), the in-app Demo Guide's design and the English-suggested- questions decision, and an operational runbook covering 5/10-minute demo flows, reset, Unraid redeploy and rollback. Updates README with current test counts and pointers to the new docs.
3.9 KiB
3.9 KiB
Demo scenarios
Five fixed scenarios are surfaced at /scenarios and via GET /api/v1/demo/manifest's
scenarios array, which derives each scenario's ready/blocked_reason from the actual
underlying records — never hardcoded. All five are re-findable, using the same public
references, after every demo reset (see demo-data.md).
1 — Odometer regression on return
- Fixed records: booking
BK-DEMO-RETURNon vehicleMO-024. - Role: Rental Employee or Operations Manager.
- Problem demonstrated: a return is submitted with an odometer reading lower than the vehicle's canonical reading — usually a data-entry mistake or a return logged against the wrong vehicle.
- Flow: open the booking. The return form is pre-filled with a suspicious reading
below
MO-024's canonical odometer (the demo never asks a visitor to invent one), with a callout explaining why. Review the server-evaluated preview, then confirm. The canonical odometer is never silently lowered; a data-quality issue is opened automatically and the outcome is queued for delivery to n8n. - Continue: the result panel links to the vehicle, automation status, and audit trail, plus (inside the guided tour) a "Ga verder met de demo" button.
2 — Possible duplicate customer
- Fixed records: customers
CUS-0012andCUS-0178(same email/phone), issueDQ-DEMO-DUPLICATE. - Role: Operations Manager (merge is a bounded, audited action).
- Problem demonstrated: two customer profiles that are very likely the same person, registered twice — a risk for split booking history and duplicate contact.
- Flow: open the issue, compare both profiles field by field, choose which survives, and merge. The losing profile becomes a tombstone linked to the survivor; its bookings are rewired. The result is recorded in the audit trail.
3 — Overlapping bookings
- Fixed records: vehicle
MO-016, bookingsBK-DEMO-OVERLAP-A/BK-DEMO-OVERLAP-B, issueDQ-DEMO-OVERLAP. - Role: Operations Manager.
- Problem demonstrated: the same vehicle committed to two overlapping reservations — a legacy-import-style conflict that a normal booking command would reject outright.
- Flow: open the issue, choose which of the two bookings to block; the other keeps its current status.
4 — Failed automation, retried
- Fixed record: a seeded outbox event (
00000000-0000-4000-8000-000000000020,BK-H-0020) that is durablyfailedimmediately after every reset — a safe, simulated connection error, not a deliberately destabilised n8n configuration. - Role: Operations Manager.
- Problem demonstrated: bounded retries and visible failure/recovery state for workflow delivery, rather than a silent drop.
- Flow: open Automation, filter to failed deliveries, retry the event; it moves out of the failed filter once delivered.
5 — Grounded procedure question
- Role: Rental Employee or Operations Manager.
- Problem demonstrated: an operational question gets an answer with a citation from the demo knowledge base — or an honest "insufficient evidence" if nothing indexed answers it — never an invented answer.
- Flow: open Knowledge, click one of the suggested questions (English, matching the
indexed procedure content — see the note in
demo-guide.mdabout why suggested questions stay in English even though the rest of the demo narrates in Dutch), and inspect the cited source and evidence state.
A sixth scenario exists but isn't one of the five requested
docs/13-seed-and-demo-scenarios.md's S3 ("missing inspection before next booking",
vehicle MO-031) is also seeded and shows up in the attention queue; it isn't surfaced
on /scenarios because the brief names five specific scenarios, but it remains available
for anyone exploring the attention queue directly.