polish: rebrand to Fleet Ops, add trilingual i18n, adaptive demo guide, and UX overhaul

Rebrands the product from MobilityOps to Fleet Ops across the UI, backend defaults and
knowledge base, and makes nl-BE/en-GB/fr-BE full first-class languages: i18next with
eager-bundled per-namespace resources, a persisted accessible language switcher (topbar
and mobile drawer), locale-aware date/number formatting, and a coverage test that fails
the build on any missing or empty translation key.

Backend dynamic content (demo scenarios, blocked-reason text, integration status) moves
from fixed English/Dutch prose to stable message codes + params so the frontend can
localize it; the demo knowledge base gains a fully translated NL/EN/FR procedure corpus
(11 documents each) with per-language retrieval and localized evidence-state messages.

The Demo Guide becomes breakpoint-adaptive: a docked rail on extra-wide desktop, a
floating panel that auto-collapses to a persistent, closable progress chip on standard
desktop/tablet, and a collapsed/half/full bottom sheet on mobile -- with scroll+focus+
highlight on "go to this step", Escape handling, and reduced-motion support.

The Data Quality Workbench gets accessible choice-card decisions with a clear primary/
secondary/tertiary action hierarchy; the Automation ledger groups repeated successes and
uses meaningful short refs; the Audit trail groups events by correlation id with human
action labels and readable before/after diffs. Attention Queue, Today's movements,
Vehicles, Bookings and Data Quality rows are fully clickable (stretched-link pattern)
with independent secondary links, keyboard support and mobile touch targets.

Fixes a topbar overflow on mobile caused by the new language switcher (moved into the
mobile drawer at <=960px) and two dangling aria-labelledby references introduced this
session. Updates all affected Playwright specs for the new nl-BE default and the new
Audit/DemoGuide DOM structure, and adds new i18n-coverage, demo-guide-adaptive and
clickable-rows specs. 131 backend tests, Ruff and mypy, and 71 Playwright tests pass.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
NuklearRabbit
2026-08-03 18:33:22 +02:00
co-authored by Claude Sonnet 5
parent 257a4cf6c0
commit 337f8716bb
127 changed files with 5529 additions and 1287 deletions
@@ -0,0 +1,21 @@
---
document_id: vehicle-checkout-procedure
title: Procedure voertuigvertrek
version: "1.2"
effective_date: 2026-06-01
department: Verhuuroperaties
status: active
---
# Procedure voertuigvertrek
## 1. Verplichte controles
Voordat een voertuig de site verlaat, moet de verhuurmedewerker de actieve boeking, de identiteit van de klant, het rijbewijs en de vereiste ondertekende documenten bevestigen. De geregistreerde startkilometerstand mag niet lager zijn dan de huidige laatst bevestigde kilometerstand van het voertuig.
## 2. Staat van het voertuig
Voer de vertrekinspectie uit, registreer het brandstofniveau en zichtbare bestaande schade, en bevestig dat er geen blokkerend onderhouds- of datakwaliteitsprobleem openstaat.
## 3. Vrijgave
Alleen een voertuig met een goedgekeurde vertrekinspectie mag op verhuurd gezet worden. Bij een kritieke afwijking blijft het voertuig geblokkeerd en wordt dit geëscaleerd naar Operations.
@@ -0,0 +1,25 @@
---
document_id: vehicle-return-procedure
title: Procedure voertuigretour
version: "2.0"
effective_date: 2026-07-01
department: Verhuuroperaties
status: active
---
# Procedure voertuigretour
## 1. Retour registreren
Open de actieve boeking en registreer de eindkilometerstand, het brandstofniveau, de netheid, zichtbare schade, technische waarschuwingen en relevante notities.
## 2. Meting valideren
Een ingevoerde kilometerstand die lager is dan de vorige laatst bevestigde stand mag nooit de laatst bevestigde waarde vervangen. Registreer de inspectie, maak een datakwaliteitsprobleem aan en vraag een menselijke beoordeling.
## 3. Volgende status bepalen
Schade of een technische waarschuwing vereist een geblokkeerde status. Een bereikte onderhoudsdrempel vereist onderhoud. Anders gaat het voertuig naar reiniging voordat het beschikbaar kan worden.
## 4. Opvolging
De retourautomatisering kan een reinigings- of onderhoudsopvolging aanmaken, maar Fleet Ops blijft de bron van waarheid voor de voertuigstatus.
@@ -0,0 +1,21 @@
---
document_id: damage-procedure
title: Procedure schadeafhandeling
version: "1.3"
effective_date: 2026-06-15
department: Operations
status: active
---
# Procedure schadeafhandeling
## 1. Directe acties
Wanneer een voertuig terugkomt met zichtbare of gemelde schade, markeer de schade in de retourinspectie, voeg een beknopte feitelijke beschrijving toe en houd het voertuig geblokkeerd. Beloof de klant geen herstelkost of aansprakelijkheidsbeslissing.
## 2. Bewijs
Registreer minstens vier foto's in het bron-inspectiesysteem: volledige aangetaste zijde, close-up, ruimere context en kentekenplaat. Fleet Ops mag in deze PoC enkel de verwijzing naar dat bewijs opslaan.
## 3. Escalatie
Maak een Operations-beoordeling aan vóór elke nieuwe verhuur. Een voertuig met onopgeloste schade mag niet als beschikbaar gemarkeerd worden, zelfs niet bij een toekomstige boeking.
@@ -0,0 +1,21 @@
---
document_id: odometer-anomaly-guideline
title: Richtlijn kilometerstandafwijkingen
version: "1.1"
effective_date: 2026-05-20
department: Operations
status: active
---
# Richtlijn kilometerstandafwijkingen
## 1. Lagere meting
Als een nieuwe meting lager is dan de laatst bevestigde kilometerstand, bewaar de ingevoerde meting als bewijs maar verlaag de laatst bevestigde waarde niet. Controleer op cijferverwisseling, verkeerde voertuigselectie of een importfout uit het bronsysteem.
## 2. Oplossing
Een Operations Manager mag het probleem oplossen na controle van de oorspronkelijke inspectie. Corrigeer enkel de foutieve inspectie of bronkoppeling; herschrijf geen geldige historische metingen.
## 3. Escalatiedrempel
Elke onverklaarde daling of een enkele stijging van meer dan 2.500 kilometer tijdens één verhuur vereist beoordeling.
@@ -0,0 +1,21 @@
---
document_id: cleaning-checklist
title: Reinigingschecklist voertuig
version: "1.4"
effective_date: 2026-06-10
department: Wagenparkvoorbereiding
status: active
---
# Reinigingschecklist voertuig
## 1. Interieur
Verwijder afval, inspecteer de bekleding, reinig keuken- en sanitaire oppervlakken en bevestig dat de inventarischecklist volledig is.
## 2. Exterieur
Inspecteer ramen, verlichting, banden en carrosserie tijdens het reinigen. Meld nieuw vastgestelde schade in plaats van de taak stilzwijgend af te ronden.
## 3. Afronding
Het voltooien van de reiniging alleen maakt een geblokkeerd of onderhoudsvoertuig niet beschikbaar. Fleet Ops leidt de beschikbaarheid af uit alle actieve beperkingen.
@@ -0,0 +1,21 @@
---
document_id: maintenance-escalation
title: Procedure onderhoudsescalatie
version: "1.1"
effective_date: 2026-04-01
department: Werkplaats
status: active
---
# Procedure onderhoudsescalatie
## 1. Aanleidingen
Escaleer wanneer een technische waarschuwing gemeld wordt, de onderhoudsdrempel bereikt is, een veiligheidsgerelateerd gebrek wordt vastgesteld of een bestaande onderhoudsblokkering onopgelost blijft.
## 2. Status
Stel de onderhoudsstatus in of behoud deze. Een toekomstige boeking overschrijft een onderhoudsbeperking niet.
## 3. Vrijgave
Enkel een geautoriseerde registratie van voltooid onderhoud en de afwezigheid van andere blokkerende problemen laten het voertuig toe tot reiniging of beschikbaarheid.
@@ -0,0 +1,21 @@
---
document_id: customer-document-requirements
title: Vereiste klantdocumenten
version: "1.0"
effective_date: 2026-07-01
department: Verhuuroperaties
status: active
---
# Vereiste klantdocumenten
## 1. Vereisten bij vertrek
De identiteit van de klant en een geldig rijbewijs moeten geverifieerd zijn in het bronproces vóór vertrek. Vereiste contractuele documenten moeten ondertekend zijn.
## 2. Dataminimalisatie
Fleet Ops registreert in deze PoC enkel de afhandelingsstatus en bronverwijzingen. Er worden geen afbeeldingen van identiteitsdocumenten opgeslagen.
## 3. Ontbrekende informatie
Een boeking met onvolledige verplichte documenten is niet klaar voor vertrek en moet als aandachtspunt verschijnen.
+21
View File
@@ -0,0 +1,21 @@
---
document_id: privacy-guideline
title: Operationele privacyrichtlijn
version: "1.0"
effective_date: 2026-03-01
department: Management
status: active
---
# Operationele privacyrichtlijn
## 1. Minimale toegang
Medewerkers mogen enkel de klant- en boekingsinformatie raadplegen die nodig is voor hun rol. Externe AI-tools krijgen geen ongelimiteerde klantdataset.
## 2. Kennisplatform
Voeg geen persoonsgegevens van klanten, boekingsnotities of identiteitsdocumenten toe aan de kennisverzameling van procedures. De verzameling is beperkt tot goedgekeurde interne richtlijnen.
## 3. Logging
Registreer actiemetadata en bronverwijzingen, maar vermijd onnodige persoonsgegevens te kopiëren naar technische logs.
@@ -0,0 +1,21 @@
---
document_id: booking-conflict-procedure
title: Procedure boekingsconflicten
version: "1.2"
effective_date: 2026-06-20
department: Operations
status: active
---
# Procedure boekingsconflicten
## 1. Detectie
Twee gereserveerde of actieve boekingen voor hetzelfde voertuig mogen niet overlappen. Geïmporteerde historische conflicten moeten gemarkeerd worden als datakwaliteitsprobleem.
## 2. Oplossing
Operations beoordeelt beide boekingen, bevestigt het eigenaarschap in het bronsysteem en wijst één boeking opnieuw toe of annuleert deze in het gezaghebbende boekingssysteem. Fleet Ops registreert het beoordeelde resultaat.
## 3. Veiligheid
Annuleer een klantboeking nooit automatisch enkel op basis van een afgeleid conflict.
@@ -0,0 +1,21 @@
---
document_id: roles-and-escalation
title: Rollen- en escalatiematrix
version: "1.0"
effective_date: 2026-06-01
department: Management
status: active
---
# Rollen- en escalatiematrix
## Verhuurmedewerker
Mag toegewezen operationele records bekijken, vertrek- en retourinspecties uitvoeren en procedures raadplegen. Mag geen klantrecords samenvoegen of de demo-omgeving herstellen.
## Operations Manager
Mag alle aandachtspunten en datakwaliteitsproblemen beoordelen, bevestigde dubbele klanten samenvoegen, aflevering van automatisering opnieuw proberen en de synthetische demo herstellen.
## Service-integraties
n8n, RAGcore en ITWorx MCP Hub gebruiken afzonderlijke, beperkte identiteiten. Service-identiteiten erven geen interactieve gebruikersrol.
@@ -0,0 +1,21 @@
---
document_id: vehicle-availability-procedure
title: Procedure voertuigbeschikbaarheid
version: "1.0"
effective_date: 2026-07-01
department: Verhuuroperaties
status: active
---
# Procedure voertuigbeschikbaarheid
## 1. Voorwaarden
Een voertuig mag enkel op beschikbaar gezet worden als er geen blokkerende voorwaarde meer geldt: geen openstaande schade, geen onopgeloste technische waarschuwing, geen lopende onderhoudsblokkering en geen open kritiek datakwaliteitsprobleem voor het voertuig.
## 2. Reiniging alleen is niet voldoende
Het voltooien van de reinigingschecklist alleen maakt een voertuig niet beschikbaar. Beschikbaarheid wordt afgeleid uit de gecombineerde status van reiniging, onderhoud en datakwaliteitscontroles, niet uit één enkele stap.
## 3. Bevestiging
Een geautoriseerde medewerker bevestigt de laatste controle en de voertuigstatus verandert naar beschikbaar. De wijziging wordt geregistreerd in het audittraject samen met de controles die als correct bevestigd zijn.