diff --git a/CLAUDE.md b/CLAUDE.md
index 7750dff..a5ee7fa 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -59,5 +59,6 @@ pnpm + Turborepo. `apps/api` : NestJS, Prisma, PostgreSQL (pgvector + PostGIS),
- ✅ **R4.2 — terrain en ligne** : scanner QR réel (expo-camera, `analyseScan` testée, résolution locale D4, QR étrangers refusés), fiche ascenseur (D3, historique scopé), fiche OT (machine à états, coûts figés, garde par `closureBlockers` API), clôture terrain (bilan 6 champs au pouce), préventif → grille cochable (appui long = N/A, `aria-checked`). Écritures en ligne assumées (bandeaux) — la file est R4.3. Vérifié 12/12 en Expo web (dont clôture complète d'un OT de test), 12 tests jest-expo.
- ✅ **R4.3 — file & verrou** : verrou optimiste serveur (`baseUpdatedAt` → 409 contextualisé, toute écriture avance la version, web inchangé, ADR-003 sécurité/routage mobile) ; file persistée rejouée dans l'ordre (propagation de version intra-lot, arrêt sur conflit, patchs optimistes, photos D5 compressées en file), écran Synchro & conflits (rejouer sur version à jour / abandonner), préchargement parc+référentiels, purge complète à la déconnexion. Recette « mode avion » 13/13 en Expo web (conflit tranché par l'humain, serveur DONE + bilan), 17 tests jest-expo, 74 tests API.
- 🏁 **R4 CLOSE (17/07/2026, tag `release/r4`)** : posé sur décision du référent avec la recette « mode avion » validée 13/13 en Expo web piloté ; **la recette sur téléphone (Expo Go — vrai mode avion, scan caméra) est reportée et reste due avant toute production client mobile**.
-- 🔄 **Reprise ici** : R5 IA — design d'abord : maquettes (assistant RAG sourcé, suggestion de codes de bilan) + décisions à acter, AUCUN code `apps/ai` avant validation. Restes : recette R4 sur appareil, redéploiement Dokploy de `release/r3`.
+- ✅ **R5 — maquettes rédigées** (17/07) : `maquette-r5.html`, 6 écrans (assistant RAG à citations sources document/page/extrait, refus explicite hors corpus, suggestion de bilan web+mobile à validation humaine, corpus & ingestion administrable, voix opt-in avec purge) + 5 décisions à acter (aucune écriture automatique, sourcé ou silencieux, corpus fermé, anonymisation 09-08, voix purgée).
+- 🔄 **Reprise ici** : validation des maquettes + 5 décisions R5 par le référent → R5.1 socle `apps/ai` (FastAPI/uv, ADR-004 modèles/embeddings pgvector). Restes : recette R4 sur appareil, redéploiement Dokploy de `release/r3`.
- Détail quotidien : `docs/journal/journal.md`. Dépôt : `siop-spelev/siop2` (privé), jalons R0→R5.
diff --git a/docs/02-design/maquettes/maquette-r5.html b/docs/02-design/maquettes/maquette-r5.html
new file mode 100644
index 0000000..469da78
--- /dev/null
+++ b/docs/02-design/maquettes/maquette-r5.html
@@ -0,0 +1,576 @@
+
+
+
+
+
+SIOP V2 — Maquettes HD · R5 IA
+
+
+
+
+
+
+ SIOP · Maquettes R5 — IA
+
+
+
+
+
+
Intention : la recette type du cadrage, à l'écran.
+Chaque affirmation porte ses citations numérotées ; chaque source montre le document (bibliothèque
+R3), la page et l'extrait exact, avec « Ouvrir » vers le document. L'avertissement « l'IA propose »
+est permanent, pas un disclaimer caché. L'assistant vit dans la sidebar (groupe Pilotage).
+
+
+
+
+
+
Assistant
+ répond UNIQUEMENT depuis votre bibliothèque et vos historiques
+
+
+
Quel couple de serrage pour les coulisseaux de guides du Gen2 ?
+
+
Pour l'Otis Gen2 Premier, la notice prescrit un couple de serrage de
+ 25 N·m pour les vis de fixation des coulisseaux de guides
+ 1, avec contrôle du jeu latéral à 0,5 mm maximum
+ 1. Sur votre parc, ce réglage a été appliqué lors du
+ remplacement des coulisseaux de l'ascenseur A1 le 17 juillet
+ 2.
⚠ L'IA propose, vous validez : vérifiez la notice avant d'agir sur l'appareil.
+
+
+
+
+
+
+
+
+
+
+
+
Intention : l'anti-hallucination rendue
+VISIBLE : quand le corpus ne porte pas la réponse, l'assistant le dit, montre ce qu'il a cherché, et
+propose l'action utile (téléverser la notice manquante dans la bibliothèque R3). Jamais de réponse
+inventée « pour faire plaisir ».
+
+
+
+
+
Assistant
+
+
Procédure de remplacement du variateur de fréquence du monte-charge KONE ?
+
+ Je ne trouve pas de source fiable dans votre bibliothèque — je préfère ne pas inventer.
+
J'ai cherché dans 6 documents indexés et 214 bilans d'intervention :
+ aucune notice KONE, aucun historique de variateur sur le monte-charge MC-1.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Intention : le technicien (ou le
+dispatcher) décrit la panne en français libre — l'IA propose les codes du bilan R2 avec sa
+justification et sa confiance. « Appliquer » PRÉ-REMPLIT les sélecteurs (liseré « suggéré ») —
+rien n'est enregistré tant que l'humain n'a pas cliqué « Enregistrer le bilan ». Les référentiels
+restent la seule vérité : l'IA ne peut suggérer QUE des codes existants.
+
+
+
+
+
+
OT-2026-0352 — Portes qui rebondissent au 3ᵉ
+ fiche OT · carte Bilan d'intervention
+
+
+
Décrire pour suggérer (optionnel)
+
+
+
+
+ La description reste dans l'OT — elle n'écrit rien toute seule.
+
+
« cellule encrassée », « nettoyé la barrière » dans votre description
+ confiance forte
+
+
✨
+
Action réalisée → « Nettoyage + réglage »
+
« j'ai nettoyé… et réglé le contact »
+ confiance forte
+
+
✨
+
Élément concerné → « Portes »
+
« porte cabine », « contact NC-31 » — 9 bilans similaires sur ce parc
+ confiance moyenne
+
+
+
+
+
+
+
+
+
Bilan d'intervention — requis pour clôturer
+
+
+
Sélectionner…
+
+
Cellule/barrière encrassée
+
+
Nettoyage + réglage
+
+
Portes
+
+
+
+
+ ⚠ « État des portes » reste à choisir — l'IA ne l'a pas deviné, elle ne devine pas.
+
+
+
+
+
+
+
+
+
Intention : la même capacité au pouce,
+dans l'écran de clôture R4 : décrire (ou dicter, écran 6), recevoir des chips suggérées, les
+appliquer d'un geste — les sélecteurs restent la vérité et la garde de clôture ne change pas.
+Hors-ligne : la suggestion attend le réseau (l'IA est un service serveur), la clôture en file R4
+fonctionne sans elle.
+
+
+
+
+
Clôture — suggestion depuis la description
+
+
♦ ‹ Clôturer OT-2026-0352
+
+
Décrire pour suggérer
+
+ Porte cabine qui rebondit, cellule encrassée, nettoyage + réglage du contact, essais OK.
+
Rien ne s'enregistre sans votre geste —
+ les chips pré-remplissent les sélecteurs ci-dessous.
+
+
+
Bilan d'intervention
+
+
État des portes * : à choisir
+
Anomalie : Cellule encrassée (suggéré)
+
Action * : Nettoyage + réglage (suggéré)
+
Élément * : Portes (suggéré)
+
+
+
Clôturer (bilan incomplet)
+
+
+
+
+
+
+
Intention : le corpus est la bibliothèque R3 +
+les bilans codés — rien d'externe, et c'est VISIBLE : chaque document montre son statut
+d'indexation, un interrupteur l'exclut du corpus, « Réindexer » est un geste explicite. Bandeau
+loi 09-08 : l'anonymisation à l'ingestion est dite, pas cachée dans une CGU.
🛡 Loi 09-08 — anonymisation à l'ingestion : noms, téléphones et e-mails des
+ personnes ne sont JAMAIS envoyés dans les index ni aux modèles.
+
+
+
Document
Rattaché à
Indexation
Corpus
+
+
Notice Otis Gen2 Premier.pdf
Asc. A1
+
indexé · 17 juil. 09:12 · 38 extraits
+
+
Schindler 3300 — manuel.pdf
Asc. B1 · B2
+
indexé · 17 juil. 09:12 · 51 extraits
+
+
Certificat parachute 2026.pdf
Asc. A1
+
indexé · 17 juil. 09:13 · 4 extraits
+
+
Notice KONE MonoSpace.pdf
MC-1
+
indexation en cours…
+
+
photo-guide-frottement.jpg
OT-2026-0341
+
image — non indexable
+
+
Contrat cadre SPELEV 2026.pdf
Tour Atlas
+
exclu par l'admin
+
+
+
+
+
+
Historiques inclus
+
214 bilans d'intervention codés (R2→R4),
+ anonymisés — c'est ce qui permet « sur votre parc, ce réglage a déjà été appliqué… ».
+
+
+
+
+
+
+
Intention : l'option « si budget temps » du
+cadrage : dicter au lieu de taper, mains sales sur le palier. L'audio est transcrit puis
+PURGÉ immédiatement (loi 09-08) — le bandeau le dit au moment même. La transcription devient la
+description libre de l'écran 4 : même circuit, même validation humaine.
+
+
+
+
+
Dictée — pendant l'enregistrement
+
+
♦ ‹ Décrire l'intervention
+
+
🎙
+
+
+
+
+
+
« …cellule encrassée,
+ j'ai nettoyé la barrière et réglé le contact… »
+
■ Terminer la dictée
+
+
+
Confidentialité (loi 09-08)
+
🛡 L'audio est transcrit puis
+ supprimé immédiatement — seule la transcription (que vous
+ relisez) est conservée, dans l'OT. Dictée opt-in :
+ jamais d'écoute sans ce bouton.
+
+
+
+
+
+
Après — transcription relue, audio purgé
+
+
♦ ‹ Décrire l'intervention
+
+
Transcription — relisez avant d'envoyer
+
+ Porte cabine qui rebondissait à la fermeture au 3ᵉ, cellule encrassée, nettoyage de la
+ barrière et réglage du contact NC-31, essais concluants sur dix cycles.
+
+
✓ Audio purgé (2,4 s après transcription)
+
+
+
Et ensuite
+
+
✨ Suggérer les codes depuis ce texte
+
Joindre la description à l'OT
+
+
+
+
+
+
+
+
+
+
diff --git a/docs/journal/journal.md b/docs/journal/journal.md
index b405d52..1829cf6 100644
--- a/docs/journal/journal.md
+++ b/docs/journal/journal.md
@@ -4,6 +4,21 @@ Trace chronologique des sessions (la plus récente en premier). Le **playbook**
---
+## 2026-07-17 — Pr. Daaif (+ Claude) — R5 ouverte : maquettes IA (design d'abord)
+
+**Actions**
+
+- **`maquette-r5.html`** (docs/02-design/maquettes) : 6 écrans — **Assistant sourcé** (recette type du cadrage : « couple de serrage des guides Gen2 ? » → réponse à citations numérotées, sources document/page/**extrait exact** ouvrables), **Sans source = refus** (l'anti-hallucination visible : « je préfère ne pas inventer » + ce qui a été cherché + action utile), **Suggestion de bilan** web et mobile (description libre → codes EXISTANTS des référentiels, justification + confiance, « Appliquer » pré-remplit avec liseré « suggéré », rien d'enregistré sans le geste humain), **Corpus & ingestion** (bibliothèque R3 + bilans codés, statut par document, exclusion réversible, bandeau 09-08), **Voix** (option « si budget » : dictée opt-in, transcription relue, audio purgé immédiatement). Bi-thème, tokens répliqués, vérifiée en navigateur (6 onglets + sombre, zéro erreur console).
+- Artefact de validation publié (6 écrans + preuve bi-thème + **5 décisions à acter** : D1 aucune écriture automatique, D2 sourcé ou silencieux, D3 corpus fermé et visible, D4 anonymisation à l'ingestion 09-08, D5 voix opt-in avec purge).
+
+**Décisions**
+
+- Aucune actée — les 5 décisions **attendent la validation du référent avec les écrans**. Aucune ligne de code `apps/ai` avant (principe n°1). L'architecture (pgvector, choix des modèles) se tranchera en **ADR-004** au lancement du socle R5.1.
+
+**Prochaine étape** : validation référent (maquettes + décisions) → R5.1 socle `apps/ai` (FastAPI/uv, ingestion + ADR-004). Restes : recette R4 sur appareil, redéploiement Dokploy de `release/r3`.
+
+---
+
## 2026-07-17 — Pr. Daaif (+ Claude) — R4 CLOSE : tag `release/r4` (recette téléphone reportée)
**Actions**