feat: journée 17 avril — tests E2E validés, dashboard fleet+audit, VWB bridge, cleaner C2
Some checks failed
security-audit / Bandit (scan statique) (push) Successful in 14s
security-audit / pip-audit (CVE dépendances) (push) Successful in 10s
security-audit / Scan secrets (grep) (push) Successful in 8s
tests / Lint (ruff + black) (push) Successful in 13s
tests / Tests unitaires (sans GPU) (push) Failing after 14s
tests / Tests sécurité (critique) (push) Has been skipped

Pipeline E2E complet validé :
  Capture VM → streaming → serveur → cleaner → replay → audit trail
  Mode apprentissage supervisé fonctionne (Léa échoue → humain → reprise)

Dashboard :
  - Cleanup 14→10 onglets (RCE supprimée)
  - Fleet : enregistrer/révoquer agents, tokens, ZIP pré-configuré téléchargeable
  - Audit trail MVP (/audit) : filtres, tableau, export CSV, conformité AI Act/RGPD
  - Formulaire Fleet simplifié (nom + email, machine_id auto)

VWB bridge Léa→VWB :
  - Compound décomposés en N steps (saisie + raccourci visibles)
  - Layout serpentin 3 colonnes (plus colonne verticale)
  - Badge OS 🪟/🐧, filtre OS retiré (admin Linux voit Windows)
  - Fix import SQLite readonly

Cleaner intelligent :
  - Descriptions lisibles (UIA/C2) + détection doublons
  - Logique C2 : UIElement identifié = jamais parasite
  - Patterns parasites resserrés
  - Message Léa : "Je n'y arrive pas, montrez-moi comment faire"

Config agent (INC-1 à INC-7) :
  - SERVER_URL + SERVER_BASE unifiés
  - RPA_OLLAMA_HOST séparé
  - allow_redirects=False sur POST
  - Middleware réécriture URL serveur

CI Gitea : fix token + Flask-SocketIO + ruff propre
Fleet endpoints : /agents/enroll|uninstall|fleet + agent_registry SQLite
Backup : script quotidien workflows.db + audit

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-04-17 17:46:40 +02:00
parent 2fa864b5c7
commit 4f61741420
27 changed files with 5088 additions and 1543 deletions

View File

@@ -0,0 +1,326 @@
**SCRIPT DE PITCH DUO — Démo 26 avril 2026**
**Durée totale** : **15 minutes** (strict, on coupe tout ce qui dépasse).
**Duo** : **Amina ETTORCHI** (métier, ROI, closing) + **Dom** (technique,
 
 démo, réponses techniques).
**Principe** : Amina ouvre, Amina ferme. Dom exécute au milieu. C'est
 
 **Amina la figure de crédibilité** pour cette audience (TIM/DIM/DG savent
 
 qu'une présidente de société qui vient du terrain PMSI vaut 10 ingénieurs).
**Objectif closing** : **3-5 rendez-vous pilote** pris avant que la salle
 
 se vide.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANUlEQVR4nO3OQQmAABRAsSeYxKS/kJkED6bwYAVvImwJtszMVu0BAPAXx1rd1fn1BACA164HHDwF+DpPyKwAAAAASUVORK5CYII=)
**BEAT 1 — Opening Amina (2 min)**
**Qui parle**
**Amina seule**, debout, sans slide au début (slide 1 : logo AIVANOV + titre).
**Message clé**
"J'ai prouvé 150 000 €/mois de récupération aux urgences **sans aucune**
 **
 technologie**. Ce que je vais vous montrer aujourd'hui, c'est comment on
 
 scale ça."
**Exemples de phrases à dire (à peu près mot à mot)**
*"Bonjour. Je m'appelle Amina ETTORCHI, je suis présidente d'AIVANOV. Avant* * * *ça, j'ai été TIM, j'ai été responsable département d'information médicale.*
 *
 Pendant 15 ans, je suis allée dans vos cliniques. J'ai lu vos dossiers*
 *
 *
 
*urgences."*
*"Et j'ai trouvé * ***systématiquement*** * la même chose : entre 100 000 et*
 *
 180 000 € par mois et par clinique, de valorisation PMSI qui partait*
 *
 à la poubelle. Des actes pas codés. Des sutures complexes marquées*
 *
 simples. *
*Des ECG oubliés."* * * *"J'ai fait ça * ***à la main*** *, en lisant les dossiers un par un. J'ai récupéré* * * *cet argent pour mes clients. Sans IA. Sans automatisation. Juste avec de* * * *l'expertise et du temps."*
*"Aujourd'hui, je vais vous présenter Léa. Léa, c'est moi. En plus rapide,* * * *24 h/24, sur tous vos dossiers, pas juste ceux que j'ai eu le temps de* * * *lire. C'est Dom qui va vous la montrer."*
**À l'écran pendant ce beat**
- **Slide 1** : logo AIVANOV + Amina ETTORCHI + "150 000 €/mois/clinique
 
 prouvés sans IA"
- **Slide 2** (en fond) : un chiffre massif — "+150 k€ / mois / clinique"
**Durée**
**2 min strict**. Si Amina dépasse à 2 min 30 s, Dom glisse un signal visuel
 
 discret (pointer l'horloge, tousser). **La règle : ne pas entrer dans la**
 **
 technique à ce beat.**
**Piège à éviter**
- Ne pas dire "on est une startup qui démarre" → on dit "on industrialise ce
 que j'ai fait pendant 15 ans à la main".
- Ne pas lister les DPI supportés → Amina reste sur le chiffre.
- Ne pas montrer de graph → storytelling pur, pas de slide data.
 
 
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBACPiUML0NpGACyywEZJWQZeZ2aszAAD+4l6rrTq+ngAA8Nr1AL/SBEZwuCSwAAAAAElFTkSuQmCC)
**BEAT 2 — Transition Dom (1 min)**
**Qui parle**
**Dom**, sur scène, assis ou debout à côté d'Amina.
**Message clé**
"Voilà l'idée technique : on a construit une IA qui regarde l'écran comme Amina, pas comme un bot UiPath."
**Exemples de phrases à dire**
*"Merci Amina. Concrètement, Léa est une assistante qui * ***regarde votre*** *** *** ***écran comme un humain*** *. Pas de connexion API, pas de DOM, pas de* * * *configuration par workflow. Elle * ***voit*** * le DPI. Elle * ***comprend*** * ce* * * *qu'elle voit. Elle * ***agit*** *."*
*"C'est important de le préciser tout de suite parce que plusieurs d'entre* * * *vous ont déjà déployé de l'UiPath ou de l'Automation Anywhere. * ***On ne*** *** *** ***remplace pas UiPath.*** * UiPath est très bon sur la compta, sur les RH. Mais* * * *sur un dossier urgence, où l'UI change selon le patient, où le DPI passe* * * *par Citrix — UiPath a beaucoup de mal. Pas Léa."*
*"Je vais vous montrer. Je ne vais pas faire de slides, je vais lancer*
 *
 Léa."*
**À l'écran pendant ce beat**
- **Slide 3** : schéma simple — Léa = "Observe → Comprend → Agit" (3 pictos,
 
 pas de jargon)
- **Transition visible** vers le desktop de démo à la fin du beat
 
 
 
 
**Durée**
**1 min strict**.
**Piège à éviter**
- Ne pas entrer dans les détails du VLM ou du grounding visuel ici → c'est
 pour la FAQ en fin de session.
- Ne pas dire "c'est 100 % local" ici → on le dit au beat 5 (vision/roadmap), pour garder de la munition.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBCkLfFR7wwIgHRiywEZJWQZeZ2ao9AAD+4lyruzq+ngAA8Nr1AOIEBeX8aGZPAAAAAElFTkSuQmCC)
**BEAT 3 — Démo live (5-7 min selon scénario)**
**Qui parle**
**Dom pilote**, **Amina commente en temps réel** (métier/impact).
**Message clé**
"Regardez ce que Léa fait. Regardez ce qu'elle récupère."
**Structure (scénario A recommandé — audit rétrospectif)**
1. **[Dom, 15 s]** Lance le dashboard, montre l'entrée : "30 passages
 
 urgences du 15 au 19 avril, à auditer."
2. **[Amina, 15 s]** "Ces 30 passages, je les aurais faits moi-même en 4 h.
 
 Regardez Léa en 3 minutes."
3. **[Dom, 2-3 min]** Lance Léa. Les détections défilent à l'écran :
- Dossier 5 : ECG non codé → +42 €
- Dossier 12 : suture complexe → +78 €
- etc.
4. **[Amina, 20 s, à deux moments]** Commentaires courts pendant le défilé :
 
 "Regardez, ça c'est typique." / "Sur celui-là, le médecin aurait
 
 pris 10 min pour rechercher. Léa 3 secondes."
5. **[Dom, 30 s]** Rapport final affiché : **14 850 €** sur 30 dossiers.
6. **[Dom → Amina, 10 s]** "Et maintenant, Amina te projette le chiffre."
 
 
**Exemples de phrases à dire pendant la démo**
**Dom (technique, posé)** :
*"Là, Léa vient de lire le CR médical, et elle compare avec les actes*
 *cotés dans le DPI. Elle voit qu'il manque un ECG mentionné en page 2. Elle* * * *propose le code. Elle ne valide pas elle-même, c'est la TIM qui valide.* * * *C'est un filet de sécurité, pas un remplacement."*
**Amina (métier, chaleureuse)** :
*"C'est exactement ce que je fais moi, sauf que Léa le fait en temps réel* * * *sur * ***tous*** * vos dossiers, pas juste ceux que j'ai le temps de lire."*
**À l'écran pendant ce beat**
- **Dashboard Léa** plein écran
- Side-pane "détections" avec compteur ROI qui monte (important : le
 
 compteur en gros chiffre vert est **le** visuel qui accroche les DG)
**Durée**
**5 min strict scénario A**, **+2 min si on enchaîne sur scénario B bonus**.
**Piège à éviter**
- Ne **JAMAIS** dire "attendez, ça plante" ou "normalement ça marche" →
 
 si ça plante, **Dom bascule en vidéo backup sans commentaire**,
 
 continue comme si de rien n'était.
- Ne pas faire defiler trop vite les détections — laisser **les DG voir**
 **
 chaque ligne** avec le chiffre.
- Amina ne coupe **pas** Dom en pleine exécution technique. Elle attend les
 
 respirations.
 
 
 
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBACPiUML0NpGACyywEZJWQZeZ2aszAAD+4l6rrTq+ngAA8Nr1AL/SBEZwuCSwAAAAAElFTkSuQmCC)
**BEAT 4 — Chiffrage (2 min)**
**Qui parle**
**Amina seule**, retour sur une slide projection.
**Message clé**
"Multipliez ça par votre volume. Voilà ce que vous laissez sur la table
 
 aujourd'hui."
**Exemples de phrases à dire**
*"On vient de voir 14 850 € récupérés sur * ***une semaine*** * de 30 dossiers.*
 *
 Vous, dans vos cliniques, vous traitez combien de passages urgences par an ?*
 *
 30 000 ? 50 000 ? 100 000 pour un gros établissement ?"*
*"Sur 50 000 passages par an, en projetant le même taux de récupération,*
 *
 vous êtes à * ***2,5 millions d'euros de valorisation PMSI récupérée par an*** *** *** ***et par clinique*** *. Pour un groupement de 10 cliniques, on est à * ***25*** *** *** ***millions*** *. Ça, c'est avec les données que j'ai prouvées à la main.*
 *
 Léa ne fait que scaler."*
*"Je vous rappelle : ce ne sont * ***pas*** * des économies. C'est de l'argent*
 *
 qui vous revient de droit, que vous ne facturez pas aujourd'hui, parce que* * * *vos TIM n'ont pas le temps de tout relire."*
 
 
 
**À l'écran pendant ce beat**
- **Slide 4** : tableau projection
- 30 000 passages/an → 1,5 M€/an
- 50 000 passages/an → 2,5 M€/an
- 100 000 passages/an → 5 M€/an
- **Astérisque** : "Base Amina 2024-2026, borne basse. Pilote à chiffrer
 
 chez vous."
**Durée**
**2 min strict**.
**Piège à éviter**
- Ne pas sous-estimer dans le chiffrage (prudent = perd en impact), ne pas surestimer (perd en crédibilité). **Borne basse + "à chiffrer chez vous"**.
- Ne pas dire "licensing", "coût", "abonnement" ici → c'est dans la FAQ ou
 le closing. **Ici c'est la projection, rien d'autre.**
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAM0lEQVR4nO3OMQ0AIAwAwZIgBKm1gjSMNCwYYCIkd9OP3zJzRMQMAAB+sfqJeroBAMCN2pTWBSSZVtjzAAAAAElFTkSuQmCC)
**BEAT 5 — Vision + roadmap (2 min)**
**Qui parle**
**Dom ou Amina** (au choix, Amina préférable si elle est à l'aise avec la
 
 technique), **court, honnête sur la maturité**.
**Message clé**
"On démarre sur les urgences. On n'est pas une techno générique. Et on est
 
 100 % local."
 
 
 
 
**Exemples de phrases à dire**
*"Deux choses importantes avant de conclure. Un : * ***Léa est 100 % locale*** *.* * * *Les données de vos patients * ***ne sortent jamais de votre SI*** *. Serveur sur* * * *site ou cloud souverain HDS, au choix. Pas de ChatGPT, pas de Claude, pas* * * *de Gemini. Tout est open source, tout tourne chez vous."*
*"Deux : on * ***ne promet pas*** * de faire tout tout de suite. On * ***démarre sur***
 ***les urgences*** *, parce que c'est là qu'Amina a l'expertise prouvée, et que* * * *l* *e ROI est évident. Après les urgences, dans l'ordre, on fera la*
 *facturation, puis la pharmacie, puis le codage hospitalisation. On*
 *n'essaie pas de tout faire en même temps."*
*"Pour le pilote : * ***6 à 8 semaines, 2 mois gratuits*** *, accompagnement*
 *direct par Amina et mon équipe. Après le pilote, on contractualise."*
**À l'écran pendant ce beat**
- **Slide 5** : "100 % local, 100 % souverain" (en gros) + petit schéma
 
 infrastructure simple (agent + serveur en dessous d'un cadenas)
- **Slide 6** : roadmap en 4 blocs — Urgences (2026) → Facturation (2027) →
 
 Pharmacie (2027) → Hospit. (2028)
**Durée**
**2 min strict**.
**Piège à éviter**
- Ne pas lister la roadmap interne détaillée (phases 0/1/2/3, apprentissage,
 
 etc.) → c'est du jargon interne, ils s'en fichent.
- Ne pas s'excuser de "on ne fait pas encore X" → transformer en
 
 "la prochaine étape c'est X".
 
 
 
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBACPiUML0NpGACyywEZJWQZeZ2aszAAD+4l6rrTq+ngAA8Nr1AL/SBEZwuCSwAAAAAElFTkSuQmCC)
**BEAT 6 — Closing Amina + appel à pilote (1 min)**
**Qui parle**
**Amina seule**, debout, direct caméra/salle.
**Message clé**
"Qui veut qu'on mesure ensemble ce qu'on laisse sur la table chez vous ?"
**Exemples de phrases à dire**
*"On cherche * ***3 à 5 cliniques*** * pour démarrer un pilote, entre mai et*
 *juin. Vous nous donnez un mois de dossiers urgences, nous, on vous*
 *chiffre exactement ce que vous pourriez récupérer. * ***Sans engagement de*** *** *** ***contrat*** *. Si après un mois on n'a rien trouvé, on repart. Si on trouve,* * * *vous savez combien ça vaut pour vous."*
*"Je suis là pendant toute la pause. Venez me voir. On regarde ensemble* * * *sur votre cas précis."*
*"Merci."*
 
**À l'écran pendant ce beat**
- **Slide 7** (final, restera à l'écran pendant la pause) :
- "Pilote 6-8 semaines, 2 mois gratuits"
- Coordonnées Amina + Dom (mail, téléphone)
- QR code vers une landing page pour prendre RDV
**Durée**
**1 min strict**. Amina **ne** prend **pas** de questions depuis la scène,
 
 les questions se font à la pause en one-to-one. **Pourquoi** : les questions
 
 publiques attirent toujours le RPA-expert sceptique qui peut plomber
 
 l'ambiance. Off-stage, on gère en tête-à-tête.
 
**Piège à éviter**
- Ne pas ouvrir un Q&R ouvert plénière → trop de risques, durée non maîtrisée.
- Ne pas dire "merci pour votre attention" mièvre → c'est sec, c'est franc.
 
 "Venez me voir. »
 
- Ne pas oublier de dire **"sans engagement"** — c'est ce qui débloque le
 
 DG hésitant.
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBCkLfFR7wwIgHRiywEZJWQZeZ2ao9AAD+4lyruzq+ngAA8Nr1AOIEBeX8aGZPAAAAAElFTkSuQmCC)
**ANNEXE A — Phrases toxiques à bannir**
- "On est encore en bêta." / "C'est un prototype."
- "On a rencontré quelques difficultés techniques." / "Ça ne marche pas
 toujours."
- "On est une petite équipe." / "On est une startup qui débute."
- "Nos concurrents font mieux sur X."
- "UiPath c'est du passé." (trop arrogant, les RPA-experts dans la salle
 
 l'ont payé cher, ne pas insulter leur choix)
- "Il faudra qu'on teste chez vous." (à remplacer par "le pilote est fait
 
 pour ça, on chiffre ensemble")
- "Ça dépend." (tuer ce réflexe — toujours répondre par une borne concrète
 
 même approximative)
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAM0lEQVR4nO3OUQmAQBBAwSdcjsu6HYxoDsEK/okwk2COmdnVGQAAf3GtalX76wkAAK/dDxFWBDkFf6+SAAAAAElFTkSuQmCC)
**ANNEXE B — Phrases magiques à caser**
- **"Vos données ne sortent pas de votre SI. 100 % local."** (beat 5)
- **"150 000 €/mois prouvés sans IA. Imaginez avec."** (beat 1)
- **"On ne remplace pas la TIM, on lui enlève les corvées."** (si question
 
 RH)
- **"Filet de sécurité, pas remplacement."** (si question médecin/humain)
- **"Sans engagement, 2 mois gratuits."** (beat 6)
- **"On chiffre chez vous, pas en PowerPoint."** (si DG sceptique)
- **"Léa, c'est Amina. En plus rapide, 24 h/24."** (accroche beat 1)
- **"Ce n'est pas une économie, c'est de l'argent qui vous revient de**
 **
 droit."** (beat 4)
![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnEAAAACCAYAAAA3pIp+AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAANklEQVR4nO3OMQ2AABAAsSNBACPykMH4NpGACyywEZJWQZeZ2aszAAD+4l6rrTo+jgAA8N71AL/CBEiG5xPoAAAAAElFTkSuQmCC)
**ANNEXE C — Check-list matériel (48 h avant)**
**Technique**
- PC démo testé (autonomie 2 h, adaptateur écran HDMI + mini-DP)
- Connexion au serveur Léa testée **depuis le lieu de démo** (wifi
 
 local si possible, 4G backup)
- Agent Léa installé sur le PC démo, test complet de 15 min la veille
- **Vidéo de backup** du scénario A enregistrée, dans un dossier
 
 accessible depuis le bureau (raccourci visible)
- Deuxième PC de backup (au cas où le principal plante)
- Câble Ethernet + switch portable (si wifi instable)
- Mode avion sur tous les téléphones du binôme pendant la démo
**Slides**
- Slides exportées en PDF (backup si PowerPoint plante)
- Slides sur clé USB + cloud (double backup)
- Slides testées sur le projecteur du lieu (résolution, couleurs)
**Logistique**
- Arrivée 1 h avant minimum (pas 30 min — trop juste)
- Café/eau pour Amina avant la prise de parole
- Téléphone Dom + Amina muets
- QR code de la slide 7 testé (scanner avec un vrai téléphone, pas
 juste en preview)
**Contenu**
- Corpus de 30 dossiers fictifs urgences validé avec la TIM
- Chiffres de la slide 4 recalculés et validés à 2 par Amina + Dom
- FAQ experts RPA relue, les 5 questions probables identifiées
- Script de pitch répété **au moins 2 fois** en binôme la veille
- Qui fait quoi à chaque beat écrit sur une fiche cartonnée (Amina
 aime avoir ça en poche)
 
 
**Après la démo**
- Feuille d'émargement des DG intéressés (pré-imprimée, pas de Google
 
 Form)
- Agenda de RDV pilote partagé Amina + Dom, à remplir à chaud pendant
 la pause
- Mail de suivi prêt, à envoyer dans les 24 h (template à préparer
 à l'avance)