Files
rpa_vision_v3/.kiro/specs/self-healing-workflows/tasks.md
Dom a7de6a488b 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>
2026-03-31 14:04:41 +02:00

10 KiB

Plan d'Implémentation - Workflows Auto-Réparateurs

Auteur : Dom, Alice Kiro
Date : 15 décembre 2024

  • 1. Configurer la structure du module de guérison

    • Créer le répertoire core/healing/ avec ses sous-répertoires
    • Définir les interfaces de base et les modèles de données
    • Exigences: Toutes
  • 2. Implémenter les modèles de données

    • 2.1 Créer la dataclass RecoveryContext
      • Définir tous les champs requis avec les types appropriés
      • Exigences: 1.1, 2.1, 3.1
    • 2.2 Créer la dataclass RecoveryResult
      • Définir les champs de résultat incluant success, new_element, strategy_used
      • Exigences: 1.3, 2.3, 3.4
    • 2.3 Créer la dataclass RecoveryPattern
      • Définir les champs de stockage des motifs
      • Exigences: 4.1, 4.2
  • 3. Implémenter le Référentiel d'Apprentissage

    • 3.1 Créer la classe LearningRepository
      • Implémenter le stockage et la récupération des motifs
      • Persistance basée sur JSON
      • Exigences: 4.1, 4.2
    • 3.2 Implémenter la logique de correspondance des motifs
      • Faire correspondre les motifs par workflow_id, node_id et contexte
      • Exigences: 4.2
    • 3.3 Implémenter le suivi des succès
      • Incrémenter le compteur de succès lors de la réutilisation
      • Décrémenter la confiance en cas d'échec
      • Exigences: 4.3, 4.4
    • * 3.4 Écrire un test de propriété pour le stockage des motifs
      • Propriété 2: Stockage des motifs d'apprentissage
      • Valide: Exigences 4.1
    • * 3.5 Écrire un test de propriété pour la réutilisation des motifs
      • Propriété 5: Cohérence de la réutilisation des motifs
      • Valide: Exigences 4.2, 4.3
    • * 3.6 Écrire un test de propriété pour l'élagage
      • Propriété 10: Exactitude de l'élagage du référentiel
      • Valide: Exigences 4.4
  • 4. Implémenter le Calculateur de Confiance

    • 4.1 Créer la classe ConfidenceScorer
      • Implémenter le calcul de similarité textuelle
      • Implémenter le calcul de similarité de position
      • Exigences: 1.2, 2.4
    • 4.2 Implémenter le scoring combiné
      • Combiner le texte, la position et le succès historique
      • Exigences: 1.2, 2.4, 4.3
    • * 4.3 Écrire un test de propriété pour la plage de confiance
      • Propriété 3: Validité du score de confiance
      • Valide: Exigences 1.2, 2.4
    • * 4.4 Écrire un test de propriété pour la similarité des éléments
      • Propriété 9: Validité du score de similarité des éléments
      • Valide: Exigences 1.2, 2.4
  • 5. Implémenter les Stratégies de Récupération

    • 5.1 Créer l'interface de base RecoveryStrategy
      • Définir les méthodes can_handle et attempt_recovery
      • Exigences: 5.1, 5.3
    • 5.2 Implémenter SemanticVariantsStrategy
      • Générer des variantes sémantiques
      • Essayer les variantes par ordre de similarité
      • Exigences: 1.1, 1.2, 1.3
    • 5.3 Implémenter SpatialFallbackStrategy
      • Étendre la région de recherche de manière incrémentale
      • Sélectionner le meilleur candidat par confiance
      • Exigences: 2.1, 2.2, 2.3, 2.4
    • 5.4 Implémenter TimingAdaptationStrategy
      • Appliquer un backoff exponentiel
      • Suivre les tentatives de retry
      • Exigences: 3.1, 3.2, 3.3, 3.4
    • 5.5 Implémenter FormatTransformationStrategy
      • Transformer les formats de date, téléphone et texte
      • Exigences: 1.1
  • 6. Implémenter le Moteur de Guérison

    • 6.1 Créer la classe SelfHealingEngine
      • Orchestrer les stratégies de récupération
      • Prioriser basé sur le succès historique
      • Exigences: 5.1, 5.3
    • 6.2 Implémenter la sélection de stratégie
      • Filtrer les stratégies par can_handle
      • Ordonner par taux de succès historique
      • Exigences: 5.3
    • 6.3 Implémenter la boucle de tentative de récupération
      • Essayer les stratégies jusqu'au succès ou épuisement
      • Respecter la limite max_recovery_time
      • Exigences: 3.3, 5.3
    • 6.4 Implémenter l'apprentissage du succès
      • Stocker les motifs réussis
      • Mettre à jour les scores de confiance
      • Exigences: 1.3, 4.1, 4.3
    • * 6.5 Écrire un test de propriété pour les tentatives max
      • Propriété 1: Application des tentatives de récupération max
      • Valide: Exigences 3.3
    • * 6.6 Écrire un test de propriété pour les limites de temps
      • Propriété 4: Limites de temps de récupération
      • Valide: Exigences 3.3
    • * 6.7 Écrire un test de propriété pour l'apprentissage
      • Propriété 2: Apprentissage du succès
      • Valide: Exigences 4.1, 4.3
  • 7. Implémenter le Logger de Récupération

    • 7.1 Créer la classe RecoveryLogger
      • Enregistrer toutes les tentatives de récupération
      • Suivre les métriques par stratégie
      • Exigences: 6.1, 6.2, 6.3
    • 7.2 Implémenter la collecte de métriques
      • Compter les succès/échecs par stratégie
      • Calculer les taux de succès
      • Exigences: 6.2
    • 7.3 Implémenter la génération d'insights
      • Générer des insights actionnables
      • Identifier les motifs dans les échecs
      • Exigences: 6.4
    • 7.4 Implémenter les alertes
      • Détecter les échecs répétés
      • Alerter sur les faibles taux de succès
      • Exigences: 6.3
    • * 7.5 Écrire un test de propriété pour la complétude du logging
      • Propriété 8: Complétude du logging de récupération
      • Valide: Exigences 6.1, 6.3
  • 8. Implémenter l'Intégration d'Exécution

    • 8.1 Créer la classe SelfHealingIntegration
      • Intégrer avec ExecutionLoop
      • Gérer les échecs d'exécution
      • Exigences: Toutes
    • 8.2 Implémenter les mises à jour de définition de workflow
      • Mettre à jour le workflow avec les corrections réussies
      • Persister les changements
      • Exigences: 1.4, 2.3
    • 8.3 Implémenter la gestion de configuration
      • Configuration de guérison par workflow
      • Activation/désactivation de stratégie
      • Exigences: 5.1, 5.2, 5.3, 5.4
    • * 8.4 Écrire un test de propriété pour les mises à jour de workflow
      • Propriété 6: Mises à jour de définition de workflow
      • Valide: Exigences 1.4, 2.3
    • * 8.5 Écrire un test de propriété pour les seuils de sécurité
      • Propriété 7: Application des seuils de sécurité
      • Valide: Exigences 5.2
  • 9. Créer la démo et la documentation

    • 9.1 Créer demo_self_healing.py
      • Démontrer toutes les stratégies de guérison
      • Montrer le monitoring et les insights
      • Exigences: Toutes
    • 9.2 Créer SELF_HEALING_IMPLEMENTATION.md
      • Documentation technique complète
      • Exigences: Documentation
    • 9.3 Créer SELF_HEALING_QUICKSTART.md
      • Guide de démarrage rapide
      • Exigences: Documentation
  • 10. Implémenter la Guérison Progressive dans Target Resolver (Fiche #10)

    • 10.1 Ajouter un compteur de tentatives de guérison au TargetResolver
      • Initialiser le compteur healing_attempt dans init
      • Créer la méthode _healing_profile() pour les niveaux de tolérance
      • Exigences: 7.1, 7.2
    • 10.2 Implémenter le système d'alias de rôles
      • Définir les constantes ROLE_ALIASES et TYPE_ALIASES
      • Améliorer _resolve_by_role avec l'expansion d'alias
      • Exigences: 7.3
    • 10.3 Améliorer la correspondance de texte floue
      • Faire accepter à _find_element_by_text un min_ratio configurable
      • Appliquer les seuils flous du profil de guérison
      • Exigences: 7.2, 7.4
    • 10.4 Améliorer la recherche spatiale avec des multiplicateurs de padding
      • Appliquer pad_mul aux calculs ROI dans _build_anchor_and_roi_and_container
      • Mettre à l'échelle les zones de recherche spatiale basées sur la tentative de guérison
      • Exigences: 7.4
    • 10.5 Ajouter des métadonnées de guérison aux détails de résolution
      • Inclure healing_attempt, healing_profile dans ResolvedTarget
      • Suivre les alias de rôles et les seuils utilisés
      • Exigences: 7.5
    • * 10.6 Écrire un test de propriété pour la progression de guérison
      • Propriété 1: Progression des tentatives de guérison
      • Valide: Exigences 7.2, 7.3, 7.4
    • * 10.7 Écrire un test de propriété pour l'expansion d'alias de rôle
      • Propriété 3: Expansion d'alias de rôle
      • Valide: Exigences 7.3
  • 11. Implémenter l'Intégration de Guérison dans Action Executor (Fiche #10)

    • 11.1 Améliorer la boucle de retry avec activation de guérison
      • Incrémenter target_resolver.healing_attempt pendant les retries
      • Appliquer un backoff exponentiel entre les tentatives de guérison
      • Exigences: 8.1, 8.2, 8.3
    • 11.2 Implémenter la gestion du compteur de guérison
      • Réinitialiser healing_attempt à 0 en cas de succès
      • Assurer un nettoyage approprié dans les blocs finally
      • Exigences: 8.4
    • 11.3 Ajouter la collecte de métriques de guérison
      • Enregistrer les niveaux de tentative de guérison et les résultats
      • Enregistrer toutes les tentatives de guérison quand les retries max sont atteints
      • Exigences: 8.5
    • * 11.4 Écrire un test de propriété pour la réinitialisation du compteur
      • Propriété 2: Réinitialisation du compteur de guérison
      • Valide: Exigences 8.4
    • * 11.5 Écrire un test de propriété pour le timing de backoff
      • Propriété 6: Cohérence du timing de backoff
      • Valide: Exigences 8.2
  • 12. Créer des tests de guérison complets

    • 12.1 Créer test_auto_healing_fiche10.py
      • Tester les scénarios de progression de guérison
      • Tester la résolution d'alias de rôle avec des doublons
      • Tester la relaxation des seuils flous
      • Exigences: 7.1, 7.2, 7.3, 7.4
    • 12.2 Créer des scénarios de test d'intégration
      • Guérison de bout en bout avec changements d'UI
      • Séquences de guérison multi-tentatives
      • Mesure de l'impact sur les performances
      • Exigences: Toutes
    • * 12.3 Écrire un test de propriété pour les métriques de guérison
      • Propriété 7: Enregistrement des métriques de guérison
      • Valide: Exigences 7.5
  • 13. 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.