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>
13 KiB
13 KiB
Plan d'Implémentation - Intégration ActionExecutor/WorkflowPipeline
Auteur : Dom, Alice Kiro
Date : 20 décembre 2024
-
1. Créer ExecutionEngine - Orchestrateur Central
- 1.1 Implémenter la classe ExecutionEngine
- Coordonner WorkflowPipeline, ActionExecutor, TargetResolver
- Gérer le pipeline d'exécution complet
- Intégrer la gestion d'erreurs et les métriques
- Exigences: 1.1, 1.2, 1.3
- 1.2 Implémenter execute_workflow_step()
- Pipeline complet : contexte → match → action → exécution → résultat
- Gestion des cas : no_match, workflow_complete, erreurs
- Exigences: 1.1, 1.5
- 1.3 Implémenter _execute_action_integrated()
- Résolution de cible intégrée si nécessaire
- Exécution physique avec contexte
- Capture des métriques de performance
- Exigences: 1.2, 4.1, 4.2
- * 1.4 Écrire des tests de propriété pour l'intégration de base
- Propriété 1: Intégration WorkflowPipeline-ActionExecutor
- Propriété 2: Ordre de résolution de cible
- Valide: Exigences 1.1, 1.2
- 1.1 Implémenter la classe ExecutionEngine
-
2. Implémenter ExecutionContextManager
- 2.1 Créer la classe ExecutionContextManager
- Gestion du cache de contexte par workflow
- Intégration avec VariableManager et HistoryTracker
- Exigences: 2.1, 2.2, 2.3
- 2.2 Implémenter prepare_execution_context()
- Créer contexte riche avec état, variables, historique
- Validation de l'intégrité du contexte
- Exigences: 2.1, 2.2, 2.3
- 2.3 Implémenter update_context_after_execution()
- Mise à jour des variables modifiées
- Ajout à l'historique d'exécution
- Mise à jour des métriques
- Exigences: 2.4
- 2.4 Implémenter _validate_context_integrity()
- Détection et correction des incohérences
- Réparation automatique des variables et historique
- Exigences: 2.5
- 2.5 Créer ExecutionContext dataclass
- Tous les champs nécessaires avec métadonnées
- Méthodes utilitaires pour métriques et flags
- Exigences: 2.1, 2.2, 2.3
- * 2.6 Écrire des tests de propriété pour la gestion du contexte
- Propriété 6: Contexte d'écran disponible
- Propriété 7: Accès aux variables du workflow
- Propriété 8: Historique des actions maintenu
- Propriété 9: Mise à jour du contexte
- Propriété 10: Détection d'incohérences du contexte
- Valide: Exigences 2.1, 2.2, 2.3, 2.4, 2.5
- 2.1 Créer la classe ExecutionContextManager
-
3. Implémenter RobustnessEngine
- 3.1 Créer les stratégies de récupération spécialisées
- SpatialFallbackStrategy pour TargetNotFoundError
- SemanticVariantStrategy pour UIElementChangedError
- UIRefreshStrategy, DynamicAdaptationStrategy, RelearningStrategy
- Exigences: 3.1, 3.2, 3.3
- 3.2 Implémenter RobustnessEngine
- Mapping des erreurs aux stratégies
- Séquence de récupération avec logging
- Exigences: 3.1, 3.4, 3.5
- 3.3 Implémenter handle_execution_error()
- Classification des erreurs
- Application séquentielle des stratégies
- Escalade après échec de toutes les stratégies
- Exigences: 3.1, 3.4
- 3.4 Implémenter adapt_to_interface_change()
- Analyse des changements d'interface
- Adaptation du contexte et des stratégies
- Exigences: 3.3
- * 3.5 Écrire des tests de propriété pour la robustesse
- Propriété 11: Récupération automatique des échecs temporaires
- Propriété 12: Stratégies alternatives de résolution
- Propriété 13: Adaptation dynamique aux changements d'interface
- Propriété 14: Escalade avec contexte complet
- Propriété 15: Logging des récupérations réussies
- Valide: Exigences 3.1, 3.2, 3.3, 3.4, 3.5
- 3.1 Créer les stratégies de récupération spécialisées
-
4. Implémenter PerformanceOptimizer
- 4.1 Créer PerformanceOptimizer avec caches
- LRUCache pour analyses d'interface et exécutions d'actions
- ROIPriorityManager pour priorisation des zones
- Exigences: 8.2, 8.3, 8.4
- 4.2 Implémenter optimize_execution()
- Vérification du cache pour actions similaires
- Optimisation de l'analyse d'interface
- Priorisation des régions d'intérêt
- Adaptation aux ressources disponibles
- Exigences: 8.2, 8.3, 8.4, 8.5
- 4.3 Implémenter _optimize_interface_analysis()
- Cache d'analyse par signature d'état
- Réutilisation intelligente des analyses
- Exigences: 8.2
- 4.4 Implémenter _adapt_to_resources()
- Adaptation selon la pression mémoire/CPU
- Utilisation de l'accélération GPU si disponible
- Exigences: 8.5
- * 4.5 Écrire des tests de propriété pour les performances
- Propriété 35: Réutilisation des analyses d'interface
- Propriété 36: Optimisation par cache des actions similaires
- Propriété 37: Priorisation des zones d'intérêt
- Propriété 38: Adaptation aux ressources limitées
- Valide: Exigences 8.2, 8.3, 8.4, 8.5
- 4.1 Créer PerformanceOptimizer avec caches
-
5. Implémenter le système de métriques intégré
- 5.1 Étendre ExecutionEngine avec capture de métriques
- Mesure des temps de résolution et d'exécution
- Calcul des métriques de succès/échec
- Exigences: 4.1, 4.2, 4.3, 4.4
- 5.2 Créer MetricsCollector
- Collection automatique des métriques de performance
- Agrégation des métriques par workflow et action
- Exigences: 4.3, 4.4
- 5.3 Implémenter la génération de rapports
- Rapport de performance complet par workflow
- Métriques détaillées par étape
- Exigences: 4.5
- * 5.4 Écrire des tests de propriété pour les métriques
- Propriété 16: Mesure du temps de résolution
- Propriété 17: Mesure du temps d'exécution
- Propriété 18: Calcul des métriques de succès
- Propriété 19: Enregistrement des métriques d'échec
- Propriété 20: Rapport de performance complet
- Valide: Exigences 4.1, 4.2, 4.3, 4.4, 4.5
- 5.1 Étendre ExecutionEngine avec capture de métriques
-
6. Implémenter l'intégration d'apprentissage
- 6.1 Créer LearningIntegration
- Enregistrement des paramètres de succès
- Renforcement des patterns de matching
- Apprentissage à partir des récupérations
- Exigences: 5.1, 5.2, 5.3
- 6.2 Implémenter l'adaptation des modèles
- Détection des évolutions d'interface
- Adaptation automatique des modèles de reconnaissance
- Exigences: 5.4
- 6.3 Implémenter l'optimisation basée sur les patterns
- Détection des patterns récurrents
- Optimisation des stratégies de résolution
- Exigences: 5.5
- * 6.4 Écrire des tests de propriété pour l'apprentissage
- Propriété 21: Enregistrement des paramètres de succès
- Propriété 22: Renforcement des patterns de matching
- Propriété 23: Apprentissage à partir des récupérations
- Propriété 24: Adaptation des modèles aux évolutions d'interface
- Propriété 25: Optimisation basée sur les patterns récurrents
- Valide: Exigences 5.1, 5.2, 5.3, 5.4, 5.5
- 6.1 Créer LearningIntegration
-
7. Implémenter le système de traçabilité et audit
- 7.1 Créer AuditTrailManager
- Création d'enregistrements d'audit détaillés
- Enregistrement complet des actions et paramètres
- Exigences: 6.1, 6.2
- 7.2 Implémenter la documentation du raisonnement
- Capture des décisions prises par le système
- Explication du raisonnement pour chaque choix
- Exigences: 6.3
- 7.3 Implémenter la capture du contexte d'erreur
- Contexte complet pour toutes les erreurs
- Stack traces avec métadonnées d'exécution
- Exigences: 6.4
- 7.4 Implémenter la génération de traces complètes
- Trace complète pour audit de bout en bout
- Corrélation entre toutes les étapes d'exécution
- Exigences: 6.5
- * 7.5 Écrire des tests de propriété pour la traçabilité
- Propriété 26: Création d'enregistrements d'audit
- Propriété 27: Enregistrement complet des actions
- Propriété 28: Documentation du raisonnement
- Propriété 29: Capture du contexte d'erreur
- Propriété 30: Trace complète pour audit
- Valide: Exigences 6.1, 6.2, 6.3, 6.4, 6.5
- 7.1 Créer AuditTrailManager
-
8. Implémenter le système d'extensibilité
- 8.1 Créer l'architecture de plugins
- Interface pour nouveaux types d'actions
- Système de plugins pour stratégies personnalisées
- Exigences: 7.1, 7.2
- 8.2 Implémenter le support des post-conditions personnalisées
- Framework pour définir des post-conditions spécifiques
- Validation automatique des post-conditions
- Exigences: 7.3
- 8.3 Implémenter le support des métriques personnalisées
- Framework pour ajouter de nouvelles métriques
- Intégration avec le système de métriques existant
- Exigences: 7.4
- * 8.4 Écrire des tests de propriété pour l'extensibilité
- Propriété 31: Intégration de nouveaux types d'actions
- Propriété 32: Support des stratégies personnalisées
- Propriété 33: Définition de post-conditions personnalisées
- Propriété 34: Ajout de métriques personnalisées
- Valide: Exigences 7.1, 7.2, 7.3, 7.4
- 8.1 Créer l'architecture de plugins
-
9. Créer les modèles de données complets
- 9.1 Implémenter StepExecutionResult
- Résultat complet avec tous les champs nécessaires
- Méthodes de classe pour différents types de résultats
- Exigences: 1.3, 4.5, 6.5
- 9.2 Implémenter ActionExecutionResult
- Résultat détaillé d'exécution d'action
- Métriques et contexte intégrés
- Exigences: 1.3, 4.2
- 9.3 Implémenter RecoveryResult et RecoveryAttempt
- Modèles pour la gestion des récupérations
- Historique complet des tentatives
- Exigences: 3.4, 3.5
- 9.4 Implémenter OptimizedActionPlan
- Plan d'action optimisé avec cache et adaptations
- Métadonnées d'optimisation
- Exigences: 8.2, 8.3, 8.5
- * 9.5 Écrire des tests de propriété pour les modèles de données
- Propriété 3: Capture complète des résultats
- Valide: Exigences 1.3
- 9.1 Implémenter StepExecutionResult
-
10. Intégration et tests de bout en bout
- 10.1 Intégrer ExecutionEngine dans WorkflowPipeline
- Remplacer la logique d'exécution existante
- Assurer la compatibilité ascendante
- Exigences: 1.1, 1.5
- 10.2 Intégrer avec ActionExecutor existant
- Étendre ActionExecutor pour supporter le contexte riche
- Préserver toutes les fonctionnalités existantes
- Exigences: 1.2, 1.4
- 10.3 Tests d'intégration de bout en bout
- Workflows complets avec tous les composants intégrés
- Scénarios de récupération d'erreurs
- Tests de performance avec optimisations
- Toutes les exigences
- * 10.4 Écrire des tests de propriété pour l'intégration complète
- Propriété 4: Gestion des échecs d'action
- Propriété 5: Progression automatique du workflow
- Valide: Exigences 1.4, 1.5
- 10.1 Intégrer ExecutionEngine dans WorkflowPipeline
-
11. Validation de non-régression
- 11.1 Valider que toutes les fonctionnalités WorkflowPipeline sont préservées
- Exécuter tous les tests existants de WorkflowPipeline
- Vérifier que les contrats d'API sont inchangés
- Toutes les exigences
- 11.2 Valider que toutes les fonctionnalités ActionExecutor sont préservées
- Exécuter tous les tests existants d'ActionExecutor
- Vérifier la compatibilité avec les actions existantes
- Toutes les exigences
- 11.3 Tests de performance comparatifs
- Benchmarks avant/après intégration
- Vérifier que les performances sont maintenues ou améliorées
- Exigences: 8.1, 8.2, 8.3, 8.4, 8.5
- 11.4 Tests de charge et stress
- Exécution parallèle de multiples workflows
- Gestion des ressources sous charge
- Exigences: 8.5
- 11.1 Valider que toutes les fonctionnalités WorkflowPipeline sont préservées
-
12. Point de contrôle final - S'assurer que tous les tests passent
- S'assurer que tous les tests passent, demander à l'utilisateur si des questions se posent.
NOTES IMPORTANTES
Préservation de la Qualité
- L'intégration doit préserver toutes les fonctionnalités existantes
- Aucune régression dans WorkflowPipeline ou ActionExecutor
- Performances maintenues ou améliorées
Architecture Modulaire
- Chaque composant doit être testable indépendamment
- Interfaces claires entre tous les composants
- Extensibilité pour futures améliorations
Robustesse
- Gestion d'erreurs complète à tous les niveaux
- Récupération automatique des échecs temporaires
- Adaptation dynamique aux changements d'interface
Performance
- Optimisations intelligentes avec cache
- Réutilisation des analyses coûteuses
- Adaptation aux ressources disponibles
Observabilité
- Métriques complètes de performance
- Traçabilité complète pour audit
- Apprentissage intégré pour amélioration continue