Files
rpa_vision_v3/docs/handoffs/2026-05-12_handoff_S2_vers_S1.md
Dom 5ea4960e65
Some checks failed
tests / Lint (ruff + black) (push) Successful in 1m50s
tests / Tests unitaires (sans GPU) (push) Failing after 1m50s
tests / Tests sécurité (critique) (push) Has been skipped
backup: snapshot post-démo GHT 2026-05-19
Backup état complet après enregistrement vidéo démo de bout en bout.
À utiliser comme point de référence pour la consolidation post-démo.

Changements majeurs de la session 18-19 mai :
- AIVA-URGENCE : page autonome avec preset URL + auto-focus chain
- Workflow Demo_urgence_3_db : merge linux_db + steps AIVA + pause humaine NoMachine
- Bypass LLM (static_result / static_text) dans replay_engine
  pour démos déterministes sans appel Ollama
- Fix api_stream:3013 — replay_paused au premier polling /next
- dag_execute : lift duration_ms vers top-level pour wait runtime
- NPM bypass auth /aiva-urgence/ via location ^~ (proxy_host/10.conf hors git)
- scripts/cancel-replays.sh — workaround Stop VWB qui ne purge pas la queue

Anchors visuels (468) forcés dans le commit pour garantir restorabilité.
DB workflows actuelle + ~12 .bak DB de la journée incluses.

Sujets identifiés pour consolidation post-démo (TODO) :
1. Bug VWB recapture anchor ne régénère pas le PNG
2. Léa client accumule état mémoire (restart périodique requis)
3. Stop VWB ne purge pas la queue serveur (lien manquant vers /replay/cancel)
4. Bug coord client mss tronqué 2560x60 → mapping Y cassé
5. delay_before/delay_after ignorés au runtime (fix partiel duration_ms)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 14:55:06 +02:00

4.7 KiB

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.