Files
rpa_vision_v3/.kiro/specs/multi-anchor-constraints/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

5.6 KiB

Plan d'Implémentation - Multi-Anchor Constraints (Fiche #11)

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

Statut: Implémentation Core Complète

L'implémentation principale du système multi-anchor avec contraintes est complète. Les fonctionnalités suivantes sont opérationnelles:

  • Multi-anchor resolution avec fallback automatique
  • Hard constraints (within_container_text, min_area)
  • Weighted scoring avec pondérations configurables
  • Tie-breaking stable et déterministe
  • Audit trail complet avec métriques de performance
  • Tests unitaires et property-based tests

Tâches Restantes

  • 2.3 Écrire un test de propriété pour la résolution de conteneur

    • Propriété 3: Cohérence de la résolution de conteneur
    • Valide: Exigences 4.1, 4.4
    • Implémenter test property-based pour vérifier que la résolution de conteneur est cohérente
  • 3.3 Écrire un test de propriété pour la strictesse des contraintes

    • Propriété 2: Strictesse des contraintes strictes
    • Valide: Exigences 2.1, 2.4
    • Implémenter test property-based pour vérifier qu'aucun élément violant les contraintes n'est sélectionné
  • 3.4 Écrire un test de propriété pour le filtrage complet des contraintes

    • Propriété 7: Complétude du filtrage des contraintes
    • Valide: Exigences 2.2, 2.3
    • Implémenter test property-based pour vérifier que tous les types de contraintes filtrent correctement
  • 4.4 Écrire un test de propriété pour la complétude de l'évaluation multi-anchor

    • Propriété 1: Complétude de l'évaluation multi-anchor
    • Valide: Exigences 1.1, 1.3
    • Implémenter test property-based pour vérifier que toutes les ancres sont tentées
  • 4.5 Écrire un test de propriété pour la résilience du fallback d'ancrage

    • Propriété 6: Résilience du fallback d'ancrage
    • Valide: Exigences 1.3, 1.4
    • Implémenter test property-based pour vérifier le fallback quand les ancres échouent
  • 5.3 Écrire un test de propriété pour la monotonicité du scoring pondéré

    • Propriété 4: Monotonicité du scoring pondéré
    • Valide: Exigences 3.1, 3.2, 3.3, 3.4
    • Implémenter test property-based pour vérifier que les scores respectent la monotonicité
  • 6.3 Écrire un test de propriété pour le déterminisme du tie-breaking

    • Propriété 5: Déterminisme du tie-breaking
    • Valide: Exigences 5.5
    • Implémenter test property-based pour vérifier la stabilité du tie-breaking
  • 8.1 Implémenter la réutilisation de l'analyse des éléments UI

    • Éviter de re-analyser les mêmes éléments entre les ancres
    • Réutiliser les calculs de distance et d'alignement
    • Exigences: 8.2, 8.4
  • 8.2 Implémenter le cache des résolutions de conteneur

    • Cacher les résolutions de conteneur dans la même résolution
    • Éviter les lookups redondants de conteneur
    • Exigences: 8.3
  • 8.3 Ajouter les métriques de performance détaillées

    • Mesurer les durées de résolution, scoring, contraintes séparément
    • Compter les cache hits/misses pour les conteneurs
    • Exigences: 8.5
  • 8.4 Écrire un test de propriété pour la cohérence de l'optimisation des performances

    • Propriété 9: Cohérence de l'optimisation des performances
    • Valide: Exigences 8.2, 8.4
    • Implémenter test property-based pour vérifier que les optimisations n'affectent pas la cohérence
  • 10.1 Intégrer avec le système de guérison existant

    • S'assurer que les nouvelles fonctionnalités fonctionnent avec les profils de guérison
    • Tester l'interaction avec healing_attempt et les seuils relaxés
    • Exigences: Toutes
  • 10.2 Tests de performance avec des UI states complexes

    • Vérifier que la résolution multi-anchor reste sous 50ms
    • Mesurer l'impact mémoire des nouvelles fonctionnalités
    • Exigences: 8.1
  • 10.3 Tests d'intégration de bout en bout

    • Scénarios réels avec panels Login/Settings
    • Cas complexes avec multiples ancres et contraintes
    • Exigences: Toutes
  • 11. 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 d'Implémentation

Fonctionnalités Complètes

  1. Multi-Anchor System: La méthode _evaluate_all_anchor_candidate_combinations implémente l'évaluation complète de toutes les combinaisons ancre-candidat avec fallback automatique.

  2. Hard Constraints: La méthode _apply_hard_constraints filtre strictement les candidats selon les contraintes within_container_text et min_area.

  3. Weighted Scoring: La méthode _score_candidate_sniper utilise des pondérations configurables pour proximity, alignment, container, et roi_iou.

  4. Stable Tie-Breaking: Les méthodes _create_stable_sort_key et _select_best_candidate_with_tiebreak assurent un départage déterministe.

  5. Container Resolution: La méthode _container_bbox_from_text trouve intelligemment les conteneurs par texte.

  6. Audit Trail: Les métadonnées complètes sont incluses dans resolution_details avec toutes les informations de performance et de débogage.

Tests Existants

  • Tests unitaires complets dans test_fiche11_multi_anchor_constraints.py
  • Tests property-based partiels (4 propriétés sur 10 implémentées)
  • Tests d'intégration avec scénarios réels

Architecture

Le système s'intègre parfaitement dans l'architecture existante de TargetResolver sans casser la compatibilité. Les nouvelles fonctionnalités sont activées via les champs hard_constraints et weights de TargetSpec.