feat: replay E2E fonctionnel — 25/25 actions, 0 retries, SomEngine via serveur

Validé sur PC Windows (DESKTOP-58D5CAC, 2560x1600) :
- 8 clics résolus visuellement (1 anchor_template, 1 som_text_match, 6 som_vlm)
- Score moyen 0.75, temps moyen 1.6s
- Texte tapé correctement (bonjour, test word, date, email)
- 0 retries, 2 actions non vérifiées (OK)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Dom
2026-03-31 14:04:41 +02:00
parent 5e0b53cfd1
commit a7de6a488b
79542 changed files with 6091757 additions and 1 deletions

View File

@@ -0,0 +1,236 @@
# Document d'Exigences: Visual Workflow Builder
## Introduction
Le Visual Workflow Builder est une interface graphique permettant de créer, modifier et gérer des workflows RPA par glisser-déposer sans écrire de code. Cette fonctionnalité rend l'automatisation RPA accessible aux non-développeurs tout en conservant la puissance nécessaire aux experts.
Le builder offre un canvas intuitif où construire visuellement des workflows en connectant des nodes d'action, configurer les paramètres, tester en temps réel, et déployer en production.
## Glossaire
- **Canvas**: Espace de travail visuel principal
- **Node**: Représentation visuelle d'une action (clic, saisie, attente, etc.)
- **Edge**: Connexion visuelle entre deux nodes
- **Palette**: Barre latérale avec les types de nodes disponibles
- **Panneau de Propriétés**: Interface de configuration des nodes
- **Workflow Graph**: Structure de données sous-jacente
- **Sélecteur de Cible**: Outil pour sélectionner des éléments UI
- **Template**: Modèle de workflow pré-construit
## Exigences
### Exigence 1: Gestion du Canvas et des Nodes
**User Story:** En tant que créateur de workflow, je veux organiser visuellement les actions sur un canvas, afin de voir le flux d'exécution d'un coup d'œil.
#### Critères d'Acceptation
1. QUAND le Visual Builder se charge, LE Visual Builder DOIT afficher un canvas vide avec fond en grille
2. QUAND un utilisateur glisse un node depuis la palette, LE Visual Builder DOIT créer le node à la position de dépôt
3. QUAND un utilisateur sélectionne un node, LE Visual Builder DOIT le mettre en surbrillance et afficher ses propriétés
4. QUAND un utilisateur déplace un node, LE Visual Builder DOIT mettre à jour sa position en temps réel
5. QUAND un utilisateur supprime un node, LE Visual Builder DOIT retirer le node et ses edges
### Exigence 2: Connexion des Nodes
**User Story:** En tant que créateur de workflow, je veux connecter les nodes pour définir l'ordre d'exécution.
#### Critères d'Acceptation
1. QUAND un utilisateur glisse d'un port de sortie vers un port d'entrée, LE Visual Builder DOIT créer un edge
2. QUAND un edge est créé, LE Visual Builder DOIT valider la connexion selon les règles
3. QUAND un utilisateur clique sur un edge, LE Visual Builder DOIT permettre sa suppression
4. QUAND un node est supprimé, LE Visual Builder DOIT retirer automatiquement ses edges
5. QUAND plusieurs edges existent, LE Visual Builder DOIT les distinguer visuellement
### Exigence 3: Configuration des Nodes
**User Story:** En tant que créateur de workflow, je veux configurer les paramètres des nodes via un panneau, sans écrire de code.
#### Critères d'Acceptation
1. QUAND un node est sélectionné, LE Visual Builder DOIT afficher tous ses paramètres configurables
2. QUAND un utilisateur modifie un paramètre, LE Visual Builder DOIT valider et mettre à jour immédiatement
3. QUAND un node nécessite une cible, LE Visual Builder DOIT fournir un bouton de sélection interactive
4. QUAND un utilisateur sauvegarde, LE Visual Builder DOIT persister les changements
5. OÙ un paramètre a une valeur par défaut, LE Visual Builder DOIT pré-remplir le champ
### Exigence 4: Sélection Interactive de Cibles
**User Story:** En tant que créateur de workflow, je veux sélectionner interactivement des éléments UI, pour spécifier facilement les cibles d'actions.
#### Critères d'Acceptation
1. QUAND un utilisateur clique sur le sélecteur de cible, LE Visual Builder DOIT capturer l'écran et entrer en mode sélection
2. QUAND l'utilisateur survole des éléments, LE Visual Builder DOIT mettre en surbrillance les contours
3. QUAND l'utilisateur clique sur un élément, LE Visual Builder DOIT extraire ses propriétés et configurer la cible
4. QUAND la sélection se termine, LE Visual Builder DOIT retourner en mode édition normal
5. QUAND les propriétés sont extraites, LE Visual Builder DOIT inclure texte, position, taille et embedding visuel
### Exigence 5: Sérialisation des Workflows
**User Story:** En tant que créateur de workflow, je veux sauvegarder et charger mes workflows de manière fiable.
#### Critères d'Acceptation
1. QUAND un utilisateur sauvegarde, LE Visual Builder DOIT sérialiser en JSON tous les nodes, edges et configurations
2. QUAND un utilisateur charge, LE Visual Builder DOIT désérialiser et reconstruire l'état exact du canvas
3. QUAND la sérialisation se produit, LE Visual Builder DOIT valider que tous les champs requis sont présents
4. QUAND un workflow est sauvegardé, LE Visual Builder DOIT générer un identifiant unique si absent
5. QUAND la désérialisation échoue, LE Visual Builder DOIT afficher une erreur et empêcher le chargement
### Exigence 6: Exécution des Workflows
**User Story:** En tant que créateur de workflow, je veux exécuter mes workflows directement depuis le builder, pour tester immédiatement.
#### Critères d'Acceptation
1. QUAND un utilisateur clique sur exécuter, LE Visual Builder DOIT convertir en WorkflowGraph et exécuter via ExecutionLoop
2. QUAND l'exécution démarre, LE Visual Builder DOIT afficher la progression en temps réel
3. QUAND une étape se termine, LE Visual Builder DOIT mettre à jour l'état visuel (succès/échec)
4. QUAND l'exécution se termine, LE Visual Builder DOIT afficher un résumé (durée, taux de succès)
5. SI l'exécution échoue, ALORS LE Visual Builder DOIT mettre en surbrillance le node en échec et afficher l'erreur
### Exigence 7: Types de Nodes et Palette
**User Story:** En tant que créateur de workflow, je veux accéder à toutes les actions RPA courantes via une palette visuelle.
#### Critères d'Acceptation
1. QUAND le Visual Builder se charge, LE Visual Builder DOIT afficher une palette avec tous les types de nodes par catégorie
2. QUAND un utilisateur recherche dans la palette, LE Visual Builder DOIT filtrer les types selon la requête
3. QUAND un utilisateur survole un type, LE Visual Builder DOIT afficher une infobulle avec description et paramètres
4. LE Visual Builder DOIT supporter au minimum: Click, Type, Wait, Navigate, Extract, Condition, Loop, Variable
5. OÙ de nouveaux types sont ajoutés, LE Visual Builder DOIT les inclure automatiquement dans la palette
### Exigence 8: Branchements Conditionnels
**User Story:** En tant que créateur de workflow, je veux ajouter de la logique conditionnelle, pour gérer différents scénarios.
#### Critères d'Acceptation
1. QUAND un utilisateur ajoute un node Condition, LE Visual Builder DOIT fournir la configuration pour l'expression et les branches vrai/faux
2. QUAND un node Condition est connecté, LE Visual Builder DOIT permettre des edges séparés pour vrai et faux
3. QUAND une condition est évaluée, LE Visual Builder DOIT suivre la branche appropriée
4. QUAND un node Condition est affiché, LE Visual Builder DOIT distinguer visuellement les ports de sortie vrai/faux
5. QUAND un utilisateur configure une condition, LE Visual Builder DOIT valider la syntaxe de l'expression
### Exigence 9: Boucles
**User Story:** En tant que créateur de workflow, je veux créer des boucles, pour répéter des actions sur des collections.
#### Critères d'Acceptation
1. QUAND un utilisateur ajoute un node Loop, LE Visual Builder DOIT fournir la configuration pour le type (for-each, while, repeat)
2. QUAND un node Loop est connecté, LE Visual Builder DOIT permettre des edges pour le corps et la sortie de boucle
3. QUAND une boucle s'exécute, LE Visual Builder DOIT répéter le corps selon les paramètres
4. QUAND un node Loop est affiché, LE Visual Builder DOIT indiquer visuellement la région du corps de boucle
5. QUAND une boucle se termine, LE Visual Builder DOIT continuer depuis l'edge de sortie
### Exigence 10: Gestion des Variables
**User Story:** En tant que créateur de workflow, je veux définir et utiliser des variables, pour stocker et passer des données entre étapes.
#### Critères d'Acceptation
1. QUAND un utilisateur ouvre la gestion des variables, LE Visual Builder DOIT afficher toutes les variables avec noms, types et valeurs par défaut
2. QUAND un utilisateur crée une variable, LE Visual Builder DOIT valider que le nom est unique et suit les conventions
3. QUAND un utilisateur référence une variable, LE Visual Builder DOIT utiliser la syntaxe ${nom_variable} et valider l'existence
4. QUAND un workflow s'exécute, LE Visual Builder DOIT substituer les références par les valeurs runtime
5. QUAND un node produit une sortie, LE Visual Builder DOIT permettre de stocker le résultat dans une variable
### Exigence 11: Templates de Workflows
**User Story:** En tant que créateur de workflow, je veux utiliser des templates pré-construits, pour créer rapidement des patterns courants.
#### Critères d'Acceptation
1. QUAND un utilisateur crée un workflow, LE Visual Builder DOIT offrir une sélection de templates par cas d'usage
2. QUAND un utilisateur sélectionne un template, LE Visual Builder DOIT charger la structure avec tous les nodes et connexions
3. QUAND un template est chargé, LE Visual Builder DOIT permettre la personnalisation de tous les paramètres
4. LE Visual Builder DOIT inclure au minimum les templates: Login, Remplissage de Formulaire, Extraction de Données, Navigation
5. OÙ les utilisateurs créent des workflows, LE Visual Builder DOIT permettre de les sauvegarder comme templates personnalisés
### Exigence 12: Validation et Vérification d'Erreurs
**User Story:** En tant que créateur de workflow, je veux une validation en temps réel, pour identifier et corriger les erreurs avant l'exécution.
#### Critères d'Acceptation
1. QUAND un workflow est modifié, LE Visual Builder DOIT valider la structure et mettre en surbrillance les erreurs
2. QUAND un node manque de configuration requise, LE Visual Builder DOIT afficher un indicateur d'avertissement
3. QUAND un workflow a des nodes déconnectés, LE Visual Builder DOIT afficher un message d'avertissement
4. QUAND un workflow a des dépendances circulaires, LE Visual Builder DOIT détecter et empêcher la structure invalide
5. QUAND des erreurs de validation existent, LE Visual Builder DOIT empêcher l'exécution jusqu'à résolution
### Exigence 13: Annuler/Refaire
**User Story:** En tant que créateur de workflow, je veux annuler et refaire mes actions, pour expérimenter librement.
#### Critères d'Acceptation
1. QUAND un utilisateur effectue une action, LE Visual Builder DOIT l'ajouter à la pile d'annulation
2. QUAND un utilisateur déclenche annuler, LE Visual Builder DOIT inverser la dernière action
3. QUAND un utilisateur déclenche refaire, LE Visual Builder DOIT réappliquer la dernière action annulée
4. LE Visual Builder DOIT supporter au minimum 50 niveaux d'historique d'annulation
5. QUAND une nouvelle action est effectuée après annulation, LE Visual Builder DOIT vider la pile de refaire
### Exigence 14: Zoom et Panoramique
**User Story:** En tant que créateur de workflow, je veux zoomer et déplacer le canvas, pour travailler confortablement avec de grands workflows.
#### Critères d'Acceptation
1. QUAND un utilisateur scroll avec la molette, LE Visual Builder DOIT zoomer le canvas centré sur le curseur
2. QUAND un utilisateur glisse sur l'espace vide, LE Visual Builder DOIT déplacer la vue
3. QUAND un utilisateur clique sur ajuster à l'écran, LE Visual Builder DOIT ajuster zoom et position pour montrer tout le workflow
4. LE Visual Builder DOIT supporter des niveaux de zoom de 25% à 200%
5. QUAND zoom ou panoramique, LE Visual Builder DOIT maintenir une performance fluide à 60fps
### Exigence 15: Export et Import
**User Story:** En tant que créateur de workflow, je veux exporter et importer des workflows, pour les partager et les sauvegarder.
#### Critères d'Acceptation
1. QUAND un utilisateur exporte, LE Visual Builder DOIT générer un fichier JSON avec la définition complète
2. QUAND un utilisateur importe, LE Visual Builder DOIT valider le format et charger le workflow
3. QUAND export, LE Visual Builder DOIT inclure tous les nodes, edges, variables et métadonnées
4. QUAND import, LE Visual Builder DOIT détecter les incompatibilités de version et offrir la migration
5. LE Visual Builder DOIT supporter l'export en formats JSON et YAML
### Exigence 16: Raccourcis Clavier
**User Story:** En tant que créateur de workflow, je veux des raccourcis clavier, pour travailler plus efficacement.
#### Critères d'Acceptation
1. LE Visual Builder DOIT supporter Ctrl+Z pour annuler et Ctrl+Y pour refaire
2. LE Visual Builder DOIT supporter Suppr pour retirer les nodes sélectionnés
3. LE Visual Builder DOIT supporter Ctrl+C, Ctrl+V pour copier et coller des nodes
4. LE Visual Builder DOIT supporter Ctrl+S pour sauvegarder le workflow
5. LE Visual Builder DOIT supporter Ctrl+F pour focus sur la recherche de palette
### Exigence 17: Performance
**User Story:** En tant que créateur de workflow, je veux que le Visual Builder reste réactif avec de grands workflows.
#### Critères d'Acceptation
1. QUAND un workflow contient jusqu'à 100 nodes, LE Visual Builder DOIT maintenir un rendu à 60fps
2. QUAND un utilisateur effectue une action, LE Visual Builder DOIT répondre en moins de 100ms
3. QUAND chargement d'un workflow, LE Visual Builder DOIT afficher le canvas en moins de 2 secondes
4. QUAND sauvegarde d'un workflow, LE Visual Builder DOIT compléter en moins de 1 seconde
5. LE Visual Builder DOIT utiliser la virtualisation pour ne rendre que les nodes visibles
### Exigence 18: Intégration avec le Système Existant
**User Story:** En tant qu'administrateur système, je veux que le Visual Builder s'intègre parfaitement avec les composants RPA Vision existants.
#### Critères d'Acceptation
1. QUAND un workflow visuel est exécuté, LE Visual Builder DOIT le convertir en WorkflowGraph compatible avec ExecutionLoop
2. QUAND un workflow utilise self-healing, LE Visual Builder DOIT configurer les nodes pour activer les stratégies de récupération
3. QUAND un workflow est exécuté, LE Visual Builder DOIT s'intégrer avec le système Analytics pour la collecte de métriques
4. QUAND un workflow est sauvegardé, LE Visual Builder DOIT le stocker dans le même format que les workflows créés programmatiquement
5. QUAND des workflows existants sont chargés, LE Visual Builder DOIT pouvoir les visualiser et les éditer s'ils suivent le format standard