# Handoff [S2] → [S1] — Audit éclair prompts t2a (12 mai 2026) ## Mission [S2] Audit qualité des 3 prompts (resume_patient, justification_t2a, t2a_decision) sur cas MOREL réel + doc DIM/TIM officielle de l'établissement. Time-box 30-45 min. Pas de code touché. ## Sources consultées - 3 prompts collés par Dom (versions actuelles en prod) - Doc DIM/TIM : `/home/dom/Téléchargements/RPU UHCD IA (2) (5)/RPU UHCD IA/RPU UHCD IA.pptx` → Slide 6 = règle officielle de l'établissement : **3 critères validés → UHCD ; 1 critère manquant → Forfait Urgences** (conjonction ET, 3/3) - Capture UI aiva-vision sur dossier MOREL Catherine (77 ans, IPP 25003284, passage 01/01/2025 03:12 → 06:49 = 3h37 réel) ## Bugs confirmés en condition réelle (cas MOREL) ### 🔴 #1 — Contradiction décision ↔ justification (NOUVEAU vs audit [S1]) - UI affiche `FORFAIT URGENCES (FFU/ATU)` en vert - Le texte de justification conclut littéralement à `requalification en hospitalisation (UHCD)` - Le PROMPT 2 dit « Tu ne dois PAS changer la décision » mais le résultat suggère que la décision a été overridée APRÈS le LLM-justif (par la vérité-terrain ?), sans recalculer la justif ni les listes `elements_pour_*`. - À investiguer côté serveur, vraisemblablement dans `_handle_t2a_decision_action` (ordre d'application : LLM-décision → override vérité-terrain → LLM-justif appelée avec la décision corrigée OU pas du tout ?). ### 🔴 #2 — Hallucination durée (déjà connu, reconfirmé) - Durée affichée : **23.0 h** - Durée réelle calculable depuis bandeau Easily Assure : **3h37** - LLM confond « symptômes depuis 23h » avec « durée du passage » - C'est probablement la cause amont du bug #1 (23h pousse mécaniquement vers UHCD) ### 🟡 #3 — Listes elements_pour_* inversées - `elements_pour_hospitalisation` contient « Sortie en consultation externe avec point de contrôle à 48h » → c'est un argument POUR le forfait - `elements_pour_forfait` : « Aucun élément cité par le LLM » - Cohérent avec l'hypothèse override (le LLM avait raisonné UHCD) ### 🟡 #4 — Confiance "faible" ignorée par l'UI - LLM marque sa propre confiance faible, l'UI affiche la décision sans warning - Pour audience DIM, c'est rédhibitoire ### 🟡 #5 — Le PROMPT 3 contredit la doc DIM/TIM interne - Prompt actuel : « au moins 2 sur 3 validés ⇒ REQUALIFICATION » - Doc DIM slide 6 : « si oui aux 3 critères ⇒ UHCD ; 1 critère manquant ⇒ Forfait » - Donc le prompt n'est pas seulement non-conforme à l'ATIH, il est aussi non-conforme à la propre doc de l'établissement client. - Idem pour le seuil « durée > 6h » dans le critère 2 : ABSENT de la PPTX, confirme que c'est une erreur du DIM senior à retirer. ## Sur MOREL spécifiquement Si on applique strictement la règle 3/3 de la doc : - Critère 1 (pathologie évolutive) ✓ (pneumopathie + 77 ans + insuf coro + asthme) - Critère 2 (surveillance prolongée) **✗** (3h37 réels, observations itératives non documentées) - Critère 3 (examens/actes) ✓ (radio + biol + PCR VRS + aérosols + Augmentin) ⇒ 2/3 ⇒ **Forfait Urgences** (verdict correct) La décision affichée actuelle est juste, mais **pour la mauvaise raison** : le pipeline tombe sur le bon résultat via la vérité-terrain en override, pas via un raisonnement LLM correct. Faux positif de concordance. ## Reco prioritaire — ordre des chantiers 1. **Préprocesseur Python `build_dpi_enriched`** (chantier déjà identifié en [S1]) → calcul déterministe durée depuis horaires bandeau, injection `FAITS_CALCULÉS: durée_passage = 3h37` dans le prompt. → C'est le levier #1. Sans ça, tout LLM continuera à halluciner. 2. **Réécrire PROMPT 3** avec règle 3/3 ET (texte Section F du rapport `docs/handoffs/2026-05-12_audit_complet_decision_t2a.md`) + retirer seuil 6h. 3. **Garde-fou serveur** dans `_handle_t2a_decision_action` : - Si `confiance == "faible"` → bandeau UI « À valider » - Si override vérité-terrain appliqué → recalculer LLM-justif AVEC la décision corrigée, ou afficher explicitement la divergence. 4. **Ajouter CCMU + GEMSA + mode_venue + occupation_lit** dans le contexte LLM (slide 5 doc DIM, manquants dans le prompt actuel). Post-démo si time-box serré. ## Ce que [S2] N'A PAS fait (par choix de time-box) - Pas lu le DOCX compagnon `RPU UHCD IA.docx` (PPTX déjà suffisamment claire) - Pas grep des chemins fichiers ni vérif paramètres Ollama (temp/seed) - Pas touché de code ## Synchro [S1] Findings #1 et #5 (override vérité-terrain non recalculé + non-conformité doc établissement) sont nouveaux vs ton audit du 12 mai. Le reste reconfirme.