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: Procédure de départ du véhicule
version: "1.2"
effective_date: 2026-06-01
department: Opérations de location
status: active
---
# Procédure de départ du véhicule
## 1. Contrôles obligatoires
Avant qu'un véhicule ne quitte le site, l'employé de location doit confirmer la réservation active, l'identité du client, le permis de conduire et les documents signés requis. Le kilométrage de départ enregistré ne peut pas être inférieur au kilométrage canonique actuel du véhicule.
## 2. État du véhicule
Effectuez l'inspection de départ, enregistrez le niveau de carburant et les dommages préexistants visibles, et confirmez qu'aucun problème bloquant d'entretien ou de qualité des données n'est ouvert.
## 3. Mise à disposition
Seul un véhicule ayant fait l'objet d'une inspection de départ approuvée peut être mis en location. En cas d'écart critique, le véhicule reste bloqué et le cas est transmis aux Opérations.
@@ -0,0 +1,25 @@
---
document_id: vehicle-return-procedure
title: Procédure de retour du véhicule
version: "2.0"
effective_date: 2026-07-01
department: Opérations de location
status: active
---
# Procédure de retour du véhicule
## 1. Enregistrer le retour
Ouvrez la réservation active et enregistrez le kilométrage final, le niveau de carburant, la propreté, les dommages visibles, les avertissements techniques et les notes pertinentes.
## 2. Valider le relevé
Un relevé de kilométrage inférieur au relevé canonique précédent ne doit jamais remplacer la valeur canonique. Enregistrez l'inspection, créez un problème de qualité des données et demandez une revue humaine.
## 3. Déterminer l'état suivant
Un dommage ou un avertissement technique impose un état bloqué. Un seuil d'entretien atteint impose un entretien. Sinon, le véhicule passe au nettoyage avant de pouvoir devenir disponible.
## 4. Suivi
L'automatisation du retour peut créer un suivi de nettoyage ou d'entretien, mais Fleet Ops reste la source de vérité pour l'état du véhicule.
@@ -0,0 +1,21 @@
---
document_id: damage-procedure
title: Procédure de gestion des dommages
version: "1.3"
effective_date: 2026-06-15
department: Opérations
status: active
---
# Procédure de gestion des dommages
## 1. Actions immédiates
Lorsqu'un véhicule revient avec des dommages visibles ou signalés, marquez le dommage dans l'inspection de retour, ajoutez une description factuelle concise et gardez le véhicule bloqué. Ne promettez pas au client un coût de réparation ou une décision de responsabilité.
## 2. Preuves
Enregistrez au moins quatre photographies dans le système d'inspection source : côté affecté en entier, gros plan, contexte plus large et plaque d'immatriculation. Fleet Ops ne peut stocker que la référence à cette preuve dans ce PoC.
## 3. Escalade
Créez une revue Opérations avant toute nouvelle location. Un véhicule avec un dommage non résolu ne peut pas être marqué disponible, même en présence d'une réservation future.
@@ -0,0 +1,21 @@
---
document_id: odometer-anomaly-guideline
title: Directive sur les anomalies de kilométrage
version: "1.1"
effective_date: 2026-05-20
department: Opérations
status: active
---
# Directive sur les anomalies de kilométrage
## 1. Relevé inférieur
Si un nouveau relevé est inférieur au kilométrage canonique, conservez le relevé soumis comme preuve mais n'abaissez pas la valeur canonique. Vérifiez une inversion de chiffres, une sélection erronée du véhicule ou une erreur d'importation du système source.
## 2. Résolution
Un Operations Manager peut résoudre le problème après vérification de l'inspection d'origine. Ne corrigez que l'inspection erronée ou le mappage source ; ne réécrivez pas les relevés historiques valides.
## 3. Seuil d'escalade
Toute diminution inexpliquée ou une hausse unique de plus de 2 500 kilomètres au cours d'une même location nécessite une revue.
@@ -0,0 +1,21 @@
---
document_id: cleaning-checklist
title: Liste de contrôle de nettoyage du véhicule
version: "1.4"
effective_date: 2026-06-10
department: Préparation de flotte
status: active
---
# Liste de contrôle de nettoyage du véhicule
## 1. Intérieur
Retirez les déchets, inspectez les sellerie, nettoyez les surfaces de cuisine et sanitaires, et confirmez que la liste d'inventaire est complète.
## 2. Extérieur
Inspectez les vitres, les feux, les pneus et la carrosserie pendant le nettoyage. Signalez tout nouveau dommage constaté plutôt que de terminer la tâche silencieusement.
## 3. Achèvement
L'achèvement du nettoyage seul ne rend pas disponible un véhicule bloqué ou en entretien. Fleet Ops déduit la disponibilité de toutes les restrictions actives.
@@ -0,0 +1,21 @@
---
document_id: maintenance-escalation
title: Procédure d'escalade d'entretien
version: "1.1"
effective_date: 2026-04-01
department: Atelier
status: active
---
# Procédure d'escalade d'entretien
## 1. Déclencheurs
Escaladez lorsqu'un avertissement technique est signalé, le seuil d'entretien est atteint, un défaut lié à la sécurité est observé ou un blocage d'entretien existant reste non résolu.
## 2. État
Définissez ou conservez l'état d'entretien. Une réservation future ne remplace pas une restriction d'entretien.
## 3. Levée du blocage
Seuls un enregistrement autorisé d'entretien terminé et l'absence d'autres problèmes bloquants permettent au véhicule de passer au nettoyage ou à la disponibilité.
@@ -0,0 +1,21 @@
---
document_id: customer-document-requirements
title: Documents client requis
version: "1.0"
effective_date: 2026-07-01
department: Opérations de location
status: active
---
# Documents client requis
## 1. Exigences au départ
L'identité du client et un permis de conduire valide doivent être vérifiés dans le processus source avant le départ. Les documents contractuels requis doivent être signés.
## 2. Minimisation des données
Fleet Ops n'enregistre dans ce PoC que le statut d'achèvement et les références sources. Aucune image de document d'identité n'est stockée.
## 3. Informations manquantes
Une réservation dont les documents requis sont incomplets n'est pas prête pour le départ et doit apparaître comme point d'attention.
+21
View File
@@ -0,0 +1,21 @@
---
document_id: privacy-guideline
title: Directive de confidentialité opérationnelle
version: "1.0"
effective_date: 2026-03-01
department: Direction
status: active
---
# Directive de confidentialité opérationnelle
## 1. Accès minimal
Les employés ne peuvent accéder qu'aux informations client et de réservation nécessaires à leur rôle. Les outils d'IA externes ne reçoivent aucun jeu de données client non restreint.
## 2. Plateforme de connaissances
N'intégrez pas de données personnelles de clients, de notes de réservation ou de documents d'identité dans la collection de connaissances des procédures. La collection se limite aux directives internes approuvées.
## 3. Journalisation
Consignez les métadonnées d'action et les références sources, mais évitez de copier des données personnelles inutiles dans les journaux techniques.
@@ -0,0 +1,21 @@
---
document_id: booking-conflict-procedure
title: Procédure de conflit de réservation
version: "1.2"
effective_date: 2026-06-20
department: Opérations
status: active
---
# Procédure de conflit de réservation
## 1. Détection
Deux réservations réservées ou actives pour le même véhicule ne peuvent pas se chevaucher. Les conflits hérités importés doivent être signalés comme problème de qualité des données.
## 2. Résolution
Les Opérations examinent les deux réservations, confirment la propriété dans le système source et réattribuent ou annulent une réservation dans le système de réservation faisant autorité. Fleet Ops enregistre le résultat de la revue.
## 3. Sécurité
N'annulez jamais automatiquement une réservation client sur la seule base d'un conflit déduit.
@@ -0,0 +1,21 @@
---
document_id: roles-and-escalation
title: Matrice des rôles et de l'escalade
version: "1.0"
effective_date: 2026-06-01
department: Direction
status: active
---
# Matrice des rôles et de l'escalade
## Employé de location
Peut consulter les enregistrements opérationnels assignés, réaliser les inspections de départ et de retour, et consulter les procédures. Ne peut pas fusionner des fiches client ni réinitialiser l'environnement de démonstration.
## Operations Manager
Peut examiner tous les points d'attention et problèmes de qualité des données, fusionner des clients en double confirmés, relancer la livraison d'automatisation et réinitialiser la démo synthétique.
## Intégrations de service
n8n, RAGcore et ITWorx MCP Hub utilisent des identités distinctes à portée limitée. Les identités de service n'héritent pas d'un rôle utilisateur interactif.
@@ -0,0 +1,21 @@
---
document_id: vehicle-availability-procedure
title: Procédure de disponibilité du véhicule
version: "1.0"
effective_date: 2026-07-01
department: Opérations de location
status: active
---
# Procédure de disponibilité du véhicule
## 1. Conditions
Un véhicule ne peut être mis en disponible que si aucune condition bloquante ne subsiste : aucun dommage ouvert, aucun avertissement technique non résolu, aucun blocage d'entretien en cours et aucun problème critique de qualité des données ouvert sur le véhicule.
## 2. Le nettoyage seul ne suffit pas
L'achèvement de la liste de contrôle de nettoyage seul ne rend pas un véhicule disponible. La disponibilité est déduite de l'état combiné du nettoyage, de l'entretien et des contrôles de qualité des données, et non d'une seule étape.
## 3. Confirmation
Un employé autorisé confirme le contrôle final et le statut du véhicule passe à disponible. Le changement est enregistré dans la piste d'audit avec les contrôles confirmés comme conformes.