7.3 KiB
Requirements - Amélioration GUI et Logs
Introduction
GeniusIA v2 nécessite une interface utilisateur claire et des logs lisibles pour permettre à l'utilisateur de comprendre ce qui se passe et faciliter le debugging. L'interface actuelle manque de visibilité et les logs sont trop techniques.
Glossary
- GUI: Interface graphique utilisateur (Graphical User Interface)
- System Tray: Zone de notification dans la barre des tâches (Ubuntu)
- Popup: Fenêtre modale temporaire pour dialogues
- Human Logs: Messages simples destinés à l'utilisateur
- Technical Logs: Logs détaillés pour debugging
- Mode: État opérationnel (Shadow/Suggestions/Copilote/Autonome)
- Fine-tuning: Processus d'amélioration du modèle d'embeddings
Requirements
Requirement 1: Interface Minimaliste
User Story: En tant qu'utilisateur, je veux une interface discrète qui ne me dérange pas, pour pouvoir travailler normalement tout en gardant un œil sur l'IA.
Acceptance Criteria
- WHEN l'application démarre THEN la GUI SHALL créer une fenêtre de 300x400 pixels maximum
- WHEN l'utilisateur clique sur minimiser THEN la GUI SHALL se réduire dans la barre des tâches Ubuntu
- WHEN l'application tourne THEN la GUI SHALL afficher une icône dans le system tray
- WHEN l'utilisateur clique sur l'icône system tray THEN la GUI SHALL afficher un menu avec options (Afficher/Masquer/Quitter)
- WHEN la fenêtre est fermée THEN l'application SHALL continuer à tourner en arrière-plan
Requirement 2: Logs Humains Lisibles
User Story: En tant qu'utilisateur, je veux voir ce que l'IA fait en langage simple, pour comprendre son comportement sans jargon technique.
Acceptance Criteria
- WHEN une action est observée THEN la GUI SHALL afficher un message simple comme "👀 J'observe vos actions..."
- WHEN un pattern est détecté THEN la GUI SHALL afficher "🎯 Tiens ! Vous avez fait 3 fois la même chose"
- WHEN un workflow est appris THEN la GUI SHALL afficher "📚 J'apprends: [nom du workflow]"
- WHEN le mode change THEN la GUI SHALL afficher "✅ Mode [nouveau mode] activé"
- WHEN une erreur survient THEN la GUI SHALL afficher un message compréhensible sans stack trace
Requirement 3: Historique des Logs
User Story: En tant qu'utilisateur, je veux voir les dernières actions pour comprendre ce qui s'est passé récemment.
Acceptance Criteria
- WHEN des logs sont affichés THEN la GUI SHALL montrer les 5 dernières actions visibles
- WHEN l'utilisateur scrolle THEN la GUI SHALL permettre de voir jusqu'à 30 actions
- WHEN l'historique dépasse 30 actions THEN le système SHALL supprimer les plus anciennes
- WHEN un nouveau log arrive THEN la GUI SHALL auto-scroller vers le bas si déjà en bas
- WHEN l'utilisateur scrolle manuellement THEN la GUI SHALL ne pas auto-scroller
Requirement 4: Dialogues Interactifs
User Story: En tant qu'utilisateur, je veux que l'IA me demande mon avis avant de changer de comportement, pour garder le contrôle.
Acceptance Criteria
- WHEN un pattern est détecté THEN la GUI SHALL afficher un popup "Est-ce que je peux essayer ?"
- WHEN un popup est affiché THEN l'application SHALL continuer à fonctionner (non-bloquant)
- WHEN 10 secondes passent sans réponse THEN le popup SHALL se fermer automatiquement
- WHEN l'utilisateur clique "Oui" THEN le système SHALL basculer en mode Suggestions
- WHEN l'utilisateur clique "Non" THEN le système SHALL rester en mode Shadow
Requirement 5: Indicateurs de Statut
User Story: En tant qu'utilisateur, je veux voir l'état actuel de l'IA en un coup d'œil, pour savoir ce qu'elle fait.
Acceptance Criteria
- WHEN la GUI est affichée THEN elle SHALL montrer le mode actuel avec icône (👀/💡/🤖/⚡)
- WHEN des actions sont observées THEN la GUI SHALL afficher le compteur d'actions
- WHEN le fine-tuning est en cours THEN la GUI SHALL afficher "🧠 Apprentissage en cours..."
- WHEN le fine-tuning est terminé THEN la GUI SHALL afficher "✅ Modèle amélioré"
- WHEN aucune activité THEN la GUI SHALL afficher "💤 En attente..."
Requirement 6: Logs Techniques pour Debugging
User Story: En tant que développeur, je veux des logs détaillés dans un fichier, pour pouvoir debugger les problèmes.
Acceptance Criteria
- WHEN l'application tourne THEN le système SHALL écrire les logs techniques dans
geniusia2/logs/debug.log - WHEN un événement survient THEN le log SHALL inclure timestamp, niveau, composant et message
- WHEN une erreur survient THEN le log SHALL inclure la stack trace complète
- WHEN le fichier dépasse 10MB THEN le système SHALL créer un nouveau fichier avec rotation
- WHEN les logs sont écrits THEN ils SHALL être flushés immédiatement pour éviter les pertes
Requirement 7: Communication GUI-Orchestrator
User Story: En tant que système, je dois pouvoir envoyer des messages de l'Orchestrator vers la GUI, pour tenir l'utilisateur informé.
Acceptance Criteria
- WHEN l'Orchestrator détecte un événement THEN il SHALL envoyer un message à la GUI via signal Qt
- WHEN un message est envoyé THEN il SHALL inclure type, contenu et timestamp
- WHEN la GUI reçoit un message THEN elle SHALL l'afficher dans les 100ms
- WHEN un dialogue est nécessaire THEN l'Orchestrator SHALL déclencher un popup via la GUI
- WHEN l'utilisateur répond THEN la GUI SHALL notifier l'Orchestrator via callback
Requirement 8: Statistiques Visibles
User Story: En tant qu'utilisateur, je veux voir ce que l'IA a appris, pour comprendre sa progression.
Acceptance Criteria
- WHEN la GUI est affichée THEN elle SHALL montrer le nombre d'actions observées aujourd'hui
- WHEN des workflows sont détectés THEN la GUI SHALL afficher le nombre de workflows
- WHEN le fine-tuning collecte des exemples THEN la GUI SHALL afficher "X exemples collectés"
- WHEN le fine-tuning est déclenché THEN la GUI SHALL afficher une barre de progression
- WHEN les stats sont affichées THEN elles SHALL se mettre à jour en temps réel
Requirement 9: Compatibilité Ubuntu
User Story: En tant qu'utilisateur Ubuntu, je veux que l'interface fonctionne nativement, sans problèmes d'affichage.
Acceptance Criteria
- WHEN l'application démarre sur Ubuntu THEN la GUI SHALL utiliser le thème système
- WHEN l'icône system tray est créée THEN elle SHALL être visible dans la barre supérieure
- WHEN des popups sont affichés THEN ils SHALL respecter le window manager Ubuntu
- WHEN la fenêtre est redimensionnée THEN elle SHALL respecter les contraintes de taille
- WHEN l'application se ferme THEN elle SHALL libérer proprement les ressources système
Requirement 10: Messages Contextuels
User Story: En tant qu'utilisateur, je veux que les messages soient adaptés au contexte, pour mieux comprendre ce qui se passe.
Acceptance Criteria
- WHEN un workflow est détecté pour la première fois THEN le message SHALL expliquer ce qu'est un workflow
- WHEN le mode progressif propose de basculer THEN le message SHALL expliquer ce que ça change
- WHEN une erreur survient THEN le message SHALL suggérer une action corrective
- WHEN le fine-tuning démarre THEN le message SHALL expliquer pourquoi
- WHEN l'utilisateur n'a pas d'activité depuis 5 min THEN la GUI SHALL afficher un message d'encouragement