Initial MobilityOps build pack (docs, contracts, scaffold)

This commit is contained in:
NuklearRabbit
2026-08-01 20:34:43 +02:00
commit 24188d9b10
71 changed files with 3412 additions and 0 deletions
+54
View File
@@ -0,0 +1,54 @@
# Seed and demo scenarios
## Dataset
`seed/generate_seed.py` creates a deterministic snapshot for a chosen anchor date and random seed. The committed CSV files are generated with:
```bash
python seed/generate_seed.py --anchor 2026-08-01 --seed 20260801
```
Target scale:
- 50 vehicles;
- 180 customers including three duplicate pairs;
- 220 historical and 25 current/future bookings;
- realistic inspections and maintenance records;
- fixed quality and workflow scenarios.
## Required named scenarios
### S1 — Odometer regression return
Booking `BK-DEMO-RETURN` for vehicle `MO-024` is active. Submit a return reading below the canonical odometer. Expected: inspection saved, canonical odometer unchanged, vehicle blocked or cleaning according to other flags, quality issue created, event queued and audit visible.
### S2 — Duplicate customer merge
Customers `CUS-0012` and `CUS-0178` share normalized contact data and similar names. Expected: issue with explainable signals, merge rewires bookings, loser becomes tombstone, audit preserved.
### S3 — Missing inspection before next booking
Vehicle `MO-031` has a near-future booking and an unresolved operational attention item. Expected: dashboard links to its record.
### S4 — Legacy booking overlap
Vehicle `MO-016` has two imported overlapping reservations. Expected: visible quality issue; normal booking command would reject the same overlap.
### S5 — Failed workflow
One seeded outbox/workflow record is failed with a safe simulated connection error. Expected: dashboard and Automation page show it; Operations Manager can retry.
### S6 — Grounded damage question
Question: “What must I do when a vehicle returns with damage?” Expected: answer cites damage handling and return inspection procedures.
## Demo reset
Reset must:
- require Operations Manager;
- rebuild the deterministic dataset;
- re-establish scenario references;
- clear non-seed audit/workflow state;
- complete safely and visibly;
- be covered by a test.