From 199fce69d01c2affabdc6a18deb580153af4c4f6 Mon Sep 17 00:00:00 2001 From: pr-daaif Date: Fri, 17 Jul 2026 11:37:28 +0100 Subject: [PATCH] =?UTF-8?q?feat(r5):=20maquettes=20HD=20IA=20=E2=80=94=206?= =?UTF-8?q?=20=C3=A9crans=20=C3=A0=20valider,=20l'IA=20propose,=20l'humain?= =?UTF-8?q?=20valide?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Design d'abord : aucune ligne de code apps/ai avant validation. Assistant RAG sourcé (citations numérotées → document/page/extrait exact, ouvrables), refus explicite hors corpus (anti-hallucination visible), suggestion de codes de bilan web + mobile (codes existants seulement, pré-remplissage « suggéré », enregistrement humain), corpus & ingestion administrable (bibliothèque R3 + bilans codés, exclusion réversible, bandeau 09-08), voix en option (opt-in, transcription relue, audio purgé immédiatement). Bi-thème, tokens répliqués. 5 décisions soumises avec les écrans : aucune écriture automatique, sourcé ou silencieux, corpus fermé et visible, anonymisation à l'ingestion (09-08), voix purgée. ADR-004 (modèles/embeddings) au lancement du socle R5.1. Co-Authored-By: Claude Fable 5 --- CLAUDE.md | 3 +- docs/02-design/maquettes/maquette-r5.html | 576 ++++++++++++++++++++++ docs/journal/journal.md | 15 + 3 files changed, 593 insertions(+), 1 deletion(-) create mode 100644 docs/02-design/maquettes/maquette-r5.html 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.

+
+
+ 1 +
+ Notice Otis Gen2 Premier.pdf +
Bibliothèque · Asc. A1 · page 42, § « Guidage cabine »
+
« Serrer les vis de fixation des coulisseaux au couple de 25 N·m ; + jeu latéral maximal admissible : 0,5 mm. »
+
+ Ouvrir p. 42 +
+
+ 2 +
+ OT-2026-0341 — Bruit anormal en gaine +
Historique · clôturé le 17/07/2026 · bilan : Guides / Remplacement pièce
+
« Coulisseau de guide 16 mm × 2 — frottement guides, remplacement effectué. »
+
+ Ouvrir l'OT +
+
+
⚠ L'IA propose, vous validez : vérifiez la notice avant d'agir sur l'appareil.
+
+
+
+ + +
+
+
+
+ + + +
+
+ +
+

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.
+
+ + +
+
+
+
+ + +
+
+
+
+ + + +
+
+ +
+
+

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. + +
+
+
+

3 suggestions — rien n'est enregistré sans vous

+
+
+
Anomalie constatée → « Cellule/barrière encrassée » +
« 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. + +
+
+
+
+
+ + + +
+
+
+
+
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. +
+
✨ Suggérer les codes
+
+
+

Suggestions — appuyez pour appliquer

+
+ ✨ Anomalie : Cellule encrassée + ✨ Action : Nettoyage + réglage + ✨ Élément : Portes +
+
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)
+
+
+
+
+ + + +
+
+ +
+
+

Bibliothèque — corpus de l'assistant

+ 6 documents · 5 indexés · 214 bilans codés inclus + +
+
🛡 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.
+
+ + + + + + + + + + + + + + + + + + + + + + +
DocumentRattaché àIndexationCorpus
Notice Otis Gen2 Premier.pdfAsc. A1indexé · 17 juil. 09:12 · 38 extraits
Schindler 3300 — manuel.pdfAsc. B1 · B2indexé · 17 juil. 09:12 · 51 extraits
Certificat parachute 2026.pdfAsc. A1indexé · 17 juil. 09:13 · 4 extraits
Notice KONE MonoSpace.pdfMC-1indexation en cours…
photo-guide-frottement.jpgOT-2026-0341image — non indexable
Contrat cadre SPELEV 2026.pdfTour Atlasexclu 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é… ».
+
+
+
+
+ + + +
+
+
+
+
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**