# Task 2: Améliorer SuggestionManager - ✓ COMPLÉTÉ ## Résumé Le SuggestionManager a été amélioré avec succès pour supporter la détection et la suggestion de workflows en mode assisté. ## Modifications apportées ### Fichier modifié - `geniusia2/core/suggestion_manager.py` ### Nouvelles méthodes ajoutées 1. **check_workflow_match(session_actions, workflows)** - Vérifie périodiquement si les actions courantes correspondent à un workflow - Applique les ajustements de priorité - Retourne le meilleur match si confiance > 80% 2. **create_workflow_suggestion(workflow_match)** - Crée une suggestion détaillée avec toutes les étapes restantes - Inclut un aperçu des 3 prochaines étapes - Gère le timeout de 10 secondes 3. **_track_workflow_rejection(workflow_id)** - Enregistre les rejets par workflow - Ajuste automatiquement la priorité après 3 rejets - Formule: confiance * (0.9 ^ (rejets // 3)) 4. **_track_workflow_acceptance(workflow_id)** - Récompense les workflows acceptés - Réduit le compteur de rejets de 2 - Supprime l'ajustement si rejets < 3 5. **_apply_priority_adjustment(match)** - Applique l'ajustement de priorité au score de confiance - Maintient la confiance dans [0, 1] ### Modifications existantes - **__init__**: Ajout du paramètre `workflow_matcher` et initialisation des dictionnaires de tracking - **accept_suggestion**: Intégration du tracking d'acceptation pour les workflows - **reject_suggestion**: Intégration du tracking de rejet pour les workflows - **get_stats**: Ajout des statistiques de rejets et ajustements ## État des données ### Nouveaux attributs de classe ```python self.workflow_matcher: WorkflowMatcher self.workflow_rejections: Dict[str, int] # workflow_id -> count self.workflow_priority_adjustments: Dict[str, float] # workflow_id -> multiplier ``` ## Tests ✓ 8/8 tests passés: - Syntaxe correcte - Toutes les méthodes présentes - Imports corrects - Paramètres __init__ corrects - Logique de tracking des rejets - Logique de tracking des acceptations - Intégration accept/reject - Couverture des requirements ## Requirements couverts - ✓ **1.4**: Vérification périodique avec check_workflow_match() - ✓ **1.5**: Suggestions détaillées avec create_workflow_suggestion() - ✓ **3.3**: Tracking des rejets et ajustement après 3 rejets - ✓ **3.5**: Filtrage par fenêtre (via WorkflowMatcher) ## Exemple d'utilisation ```python # Vérifier les matchs périodiquement match = suggestion_manager.check_workflow_match(session_actions, workflows) # Créer une suggestion si match trouvé if match: suggestion = suggestion_manager.create_workflow_suggestion(match) # L'utilisateur accepte ou rejette if user_accepts: suggestion_manager.accept_suggestion() # Réduit les rejets else: suggestion_manager.reject_suggestion() # Incrémente les rejets ``` ## Impact sur le système ### Ajustement de priorité - 0 rejets: confiance × 1.0 (100%) - 3 rejets: confiance × 0.9 (90%) - 6 rejets: confiance × 0.81 (81%) - 9 rejets: confiance × 0.729 (73%) ### Récompenses - Chaque acceptation réduit le compteur de rejets de 2 - Si rejets < 3, l'ajustement est supprimé ## Prochaines étapes Le SuggestionManager est maintenant prêt pour: - **Task 3**: Intégration dans l'Orchestrator - **Task 4**: Amélioration du GUI Overlay - **Task 5**: Amélioration du TaskReplayEngine ## Fichiers créés - `test_suggestion_manager_simple.py`: Tests de validation - `SUGGESTION_MANAGER_IMPROVEMENTS.md`: Documentation détaillée - `TASK_2_SUMMARY.md`: Ce résumé --- **Status**: ✓ COMPLÉTÉ **Date**: 2025-11-19 **Tests**: 8/8 passés