- Conformité stricte JSON-RPC 2.0 pour le mode MCP:
- Implémentation de la fonction
mcpLogpour une gestion standardisée des logs en mode MCP - Remplacement de tous les
console.errorpar des logs conformes au protocole JSON-RPC - Format homogène pour toutes les sorties du serveur MCP
- Implémentation de la fonction
- Détection intelligente des modes CLI et MCP:
- Préservation du fonctionnement CLI même avec
MCP_EXECUTION=trueou--mcp - Activation du mode MCP uniquement quand nécessaire
- Préservation du fonctionnement CLI même avec
- Problèmes de linting dans les tests:
- Correction des apostrophes françaises dans les fichiers de test
- Résolution des erreurs de parsing liées aux caractères accentués
- Correction du mode MCP pour
generateFeature:- Amélioration de la fonction
adaptResultForMarkdownpour extraire correctement les user stories quelle que soit leur structure - Renforcement de la fonction
createRule3Structureavec gestion d'erreurs détaillée et logs de diagnostic - Résolution des problèmes de création de la structure RULE 3 pour les features générées via MCP
- Compatibilité multi-LLM améliorée pour le traitement des formats de données variables
- Amélioration de la fonction
- Résolution du problème d'ouverture de Notepad sur Windows:
- Normalisation des flux stderr/stdout en mode MCP pour éviter l'ouverture involontaire d'applications externes
- Détection intelligente du mode MCP qui préserve le fonctionnement du CLI
- Désactivation des codes couleur ANSI en mode MCP pour une meilleure compatibilité multiplateforme
- Forcing du mode MCP avec
--mcpouMCP_EXECUTION=truelorsqu'aucune commande CLI spécifique n'est demandée
- Robustesse du système de génération:
- Logs de diagnostic détaillés pour faciliter l'identification des problèmes en mode MCP
- Fallbacks et validations robustes des paramètres d'entrée
- Sauvegarde des fichiers d'information pour référence et débogage
- Meilleure traçabilité de l'exécution en mode MCP
- Réduction de la complexité cognitive dans le code critique:
- Refactorisation de
json-parser.jspour réduire la complexité cognitive de 31 à < 15 (lint ID: 4aef1b1a-e476-4b16-8ae0-5da4f62d9058) - Refactorisation de
_createRule3Structuredansmcp-router.jsen 6 sous-fonctions avec responsabilités uniques (lint ID: 6e6877fb-de75-4a5b-9376-41bab2df4a4b) - Amélioration de la robustesse de
server/index.jsavec gestion optimisée des erreurs et chaînage optionnel (?.) (lint ID: 2a5bf084-b3b6-46ad-9e0e-68205cc8bc7c)
- Refactorisation de
- Validation de la structure RULE 3 dans l'interface MCP:
- Test réussi avec
test-mcp-rule3.jsvalidant la création correcte de la structure de dossiers - Optimisation de
test-mcp-rule3.jsavec les nouveaux utilitaires MCP (nettoyage automatique des ressources) - Conformité complète avec la spécification RULE 3 pour tous les modes d'exécution
- Test réussi avec
- Amélioration de la suite de tests:
- Création d'utilitaires dédiés aux tests MCP dans
tests/utils/mcp-test-utils.js - Optimisation des tests d'intégration pour éviter les fuites de processus et améliorer la fiabilité
- Script d'exécution ciblée des tests critiques avec
scripts/run-critical-tests.js - Stratégie de test en deux niveaux (tests critiques et tests alternatifs)
- Création d'utilitaires dédiés aux tests MCP dans
- Refonte majeure de la documentation architecture:
- Création de
docs/architecture/mcp-server-architecture.mdpour détailler l'architecture MCP complète - Ajout de
docs/architecture/markdown-generation.mddocumentant le système de génération markdown - Création de
docs/guides/mcp-integration.mdpour faciliter l'intégration avec les clients MCP - Mise à jour de
docs/development/testing-guide.mdpour inclure les tests MCP end-to-end - Ajout de diagrammes Mermaid pour visualiser l'architecture et les flux MCP
- Mise à jour des dates de modification dans tous les documents
- Création de
- Nouvelle documentation de développement:
- Création de
docs/development/KNOWN_ISSUES.mdlistant tous les problèmes connus et la dette technique - Création de
docs/development/REFACTORING-PLAN.mdavec un plan détaillé de refactorisation TDD - Création de
docs/development/TEST-REFACTORING.mddétaillant les tests à corriger - Création de
docs/development/ROADMAP.mdavec la feuille de route des versions futures
- Création de
- Mise à jour des commentaires JSDoc dans les fichiers refactorisés
- Documentation du pattern d'extraction de méthode appliqué pour réduire la complexité cognitive
- Amélioration de la tracabilité des erreurs dans les logs
- Suppression des documents obsolètes et archivage du plan de refactorisation original
- Conformité complète avec RULE 2 (documentation complète avant commit)
- Modularisation complète du CLI:
- Réduction de
cli.jsde 608 lignes à 31 lignes (bien en-dessous de la limite de 500 lignes) - Création d'une structure modulaire avec séparation claire des responsabilités :
cli/index.js(85 lignes) - Point d'entrée et coordinationcli/utils.js- Utilitaires et fonctions de support CLIcli/backlog.js- Génération de backlogscli/feature.js- Génération de features
- Maintien de la rétro-compatibilité avec l'API existante via un module de compatibilité
- Réduction de
- Améliorations de robustesse:
- Gestion intelligente du client API entre les différents modes d'exécution
- Correction du problème avec
backlog-last-dump.jsonpour les tests et audits - Meilleure gestion des fichiers générés avec l'option
auditMode - Support des trois modes de fonctionnement : CLI interactif, CLI non-interactif, MCP (stdio)
- Tests d'intégration améliorés:
- Test d'intégration end-to-end pour le mode CLI
- Test d'intégration end-to-end pour le mode MCP (stdio)
- Tests pouvant être exécutés en mode rapide ou complet via la variable d'environnement SKIP_INTEGRATION
- Documentation complète des modules CLI avec JSDoc
- Mise à jour des commentaires pour refondation syntaxe moderne
- Amélioration de la lisibilité du code et des messages logs
- Réduction de complexité cognitive:
- Refactorisé la méthode
handleInvokedansmcp-server.jsen extrayant trois méthodes privées (_handleToolNotFound,_sendSuccessResponse,_handleToolExecutionError) pour améliorer la lisibilité et la maintenabilité. - Refactorisé la fonction
handleToolsCalldansmcp-router.jsen extrayant trois méthodes (_extractToolParams,_getToolHandler,_handleToolError) pour réduire sa complexité cognitive. - Refactorisé la fonction
handleGenerateBacklogdansmcp-router.jsen extrayant trois méthodes auxiliaires (_cleanupApiClient,_prepareBacklogResponse,_handleBacklogGenerationError). - Refactorisé la fonction
_cleanupApiClienten extrayant des sous-fonctions (_resetClientProperties,_forceGarbageCollection) pour réduire sa complexité. - Refactorisé la fonction
initializeYargsdansserver/index.jsen extrayant des fonctions dédiées pour chaque commande et configuration. - Amélioré la méthode
extractBacklogDatadansschema-validator.jsen extrayant des méthodes privées (_isWrapperMCP,_logExtractionDebug) et en ajoutant une documentation claire.
- Refactorisé la méthode
- Mise à jour de la documentation dans les fichiers refactorisés pour améliorer la compréhension du code.
- Ajout de commentaires explicatifs pour les nouvelles méthodes extraites.
- Refactored
parseJsonResponsefunction inserver/lib/utils/json-parser.jsto significantly reduce its Cognitive Complexity from 31 to within acceptable limits (target < 15). This was achieved by extracting parsing logic into helper functions (tryDirectParse,tryParseFromMarkdown,tryParseFirstJsonObject) and iterating through them. This improves code maintainability and readability. (Related to lint ID:4aef1b1a-e476-4b16-8ae0-5da4f62d9058) - MCP E2E Test (
tests/integration/mcp.e2e.test.js):- Corrected assertions for the
generateBacklogcommand to align with actual output:- Updated expected success message to French:
"Backlog généré avec succès". - Removed incorrect assertion for
result.outputPath(validated by file system checks).
- Updated expected success message to French:
- Ensured robust error handling for file system assertions by wrapping them in a
try...catchblock and properly callingdone(error). - Reinstated a missing check for the existence of
backlog.jsonin the output directory. - These changes resolved persistent test failures and ensure reliable testing of the
generateBacklogMCP stdio interface.
- Corrected assertions for the
- MCP
generateBacklog(stdio Interface):- Resolved
chalk is not definederror inserver/lib/mcp-router.jsby restoring missingrequirestatements. - Fixed
TypeError: ToolExecutionError is not a constructorandRight-hand side of 'instanceof' is not an objectinserver/lib/mcp-router.jsby correctly handling the direct JSON data return frombacklog-generator.js. - Ensured full and correct generation of all markdown files (
epic.md,feature.md,[story-slug].md) and directory structure according to RULE 3 when invoked via MCP stdio. - Corrected the output path for
backlog-last-dump.jsonto be saved in the root of the specified output path, aligning behavior with CLI and fixing MEMORY[1045ac32-1491-4647-a1eb-9e920a769771] and MEMORY[e599048a-f87f-4c93-8816-ad563570cc62]. - Overall stability and output consistency of the MCP stdio
generateBacklogprocess significantly improved, now matching CLI output.
- Resolved
- Markdown Output Structure:
- Corrected path generation in
server/lib/markdown/index.jsto prevent nested.agile-planner-backlog/.agile-planner-backlogdirectories. - Ensured
epicsandorphan-storiesfolders are created directly under the main.agile-planner-backlogdirectory, removing the intermediate project slug folder, to comply with RULE 3.
- Corrected path generation in
- Markdown Generation Error:
- Resolved
TypeError: userStoryMap.set is not a functioninserver/lib/markdown/index.jsby correctly initializinguserStoryMapasnew Map().
- Resolved
- Linting:
- Removed redundant
try...catchblock aroundfs-extra.ensureDirSyncinserver/lib/cli.jsto allow error propagation. - Refactored a
console.logstatement inserver/lib/markdown/index.jsto avoid nested template literals.
- Removed redundant
- Centralisation de la gestion d’erreur dans
generateBacklogetgenerateBacklogDirectviahandleBacklogError - Plus aucune duplication de logique d’erreur
- Robustesse et conformité TDD renforcées
- README mis à jour pour documenter le format d’erreur unifié
- Nécessite la mise à jour des tests d’intégration si des assertions vérifient le format d’erreur
- Ajout des tests d’intégration end-to-end :
tests/integration/cli.e2e.test.js(mode CLI)tests/integration/mcp.e2e.test.js(mode MCP stdio)
- Documentation d’architecture complète Mermaid (macro et modules détaillés)
- Suppression de toute référence à MVP, itérations, scripts obsolètes dans la doc
- Alignement strict avec la RULE 3 (structure backlog = epics/features/user-stories/orphan-stories)
- Mise à jour des exemples et guides utilisateur
- ✅ Restructuration complète du projet pour améliorer la maintenabilité
- ✅ Réorganisation de la documentation dans des répertoires dédiés (guides, development, api, architecture)
- ✅ Déplacement des fichiers de test vers les répertoires appropriés (tests/mock)
- ✅ Implémentation de l'association intelligente des features avec les epics existantes
- ✅ Création d'un plan de réorganisation détaillé dans
docs/reorganisation-plan.md - ✅ Mise à jour du README principal pour refléter la nouvelle structure
- 📝 Documentation améliorée de la navigation entre les différents documents
- ✅ Création de 9 nouveaux tests ultra-minimaux selon l'approche TDD Wave 8
validators-factory.ultra-minimal.test.jserrors.ultra-minimal.test.jsbacklog-generator.minimal.test.jsepic-formatter.ultra-minimal.test.jsschema-validator.ultra-minimal.test.jsmcp-router.ultra-minimal.test.jscli.ultra-minimal.test.jsformat-user-story.ultra-minimal.test.jsrule3-structure.test.js- Test de validation de la structure RULE 3
- ✅ Développement de scripts d'automatisation pour la correction des tests et la validation de structure:
fix-tests.js- Correction automatique des chemins d'importationfix-jest-syntax.js- Correction automatique de la syntaxe Jest 29.7.0fix-module-imports.js- Correction des imports directs depuis les modules sourceverify-rule3-structure.js- Vérification et création automatique de la structure RULE 3
- ✅ Création de tests super-minimaux pour isoler efficacement les problèmes :
backlog-super-minimal.test.js- Test de validation de la structure du module sans dépendancesbacklog-ultra-mini.test.js- Test avec mocks pour isoler les dépendances problématiques
- ✅ Résolution de plus de 60 chemins d'importation incorrects après la réorganisation
- ✅ Correction des variables avec tirets (transformation en camelCase)
- ✅ Documentation détaillée du processus de correction dans
docs/development/test-fix-plan.md - ✅ Mise à jour de
TEST-ROADMAP.mdavec les progrès réalisés (71,2% des composants critiques testés)
- ✅ Création d'utilitaires dédiés pour la manipulation de fichiers (
file-utils.js) - ✅ Application des principes SOLID dans la réorganisation du code
- ✅ Suppression des fichiers temporaires et redondants
- ✅ Automation complète de la structure RULE 3 pour la génération de backlog
- Script
verify-rule3-structure.jspour vérification et création automatique - Test unitaire
rule3-structure.test.jspour validation - Création correcte des fichiers .md dans les répertoires appropriés
- Script
- ✅ Association intelligente de features aux epics appropriées
- ✅ Correction des problèmes d'import via modules façade dans les tests
- Résolution du problème dans
format-user-story.test.js - Import direct depuis les modules sources pour éviter les conflits de mock
- Résolution du problème dans
- ✅ Identification et documentation des problèmes fondamentaux de tests
- Syntaxe obsolète des mocks Jest (
resolves()→mockResolvedValue()) - Importations via modules façade causant des problèmes avec les mocks
- Syntaxe obsolète des mocks Jest (
- ✅ Correction systématique des tests pour Jest 29.7.0 (
.resolves()→.mockResolvedValue()et.returns()→.mockReturnValue()) - ✅ Implémentation des tests ultra-minimaux pour tous les composants critiques (10 fichiers)
- ✅ Test dédié
multi-llm-compatibility.ultra-minimal.test.jspour valider la compatibilité Windsurf, Claude et Cursor - ✅ Correction du bug dans
feature-generator.jsqui causait des erreurs en cascade - ✅ Résolution de l'erreur
truncatedOutput is not defineddans les scripts de test - ✅ Correction de la génération de fichiers selon la structure RULE 3 (
.agile-planner-backlog/) - ✅ Résolution du problème de chemin de sortie (
outputPath) ignoré lors de la génération - 📝 Documentation complète des progrès de compatibilité dans
MULTI_LLM_COMPATIBILITY.md - 📝 Stratégie de test documentée dans
TEST-ROADMAP.mdavec les étapes de résolution
- ✅ Création de tests spécifiques pour valider la structure RULE 3 (
rule3-structure.test.js) - ✅ Test MCP dédié pour vérifier le respect de la structure avec paramètre
outputPath - ✅ Intégration des tests selon la méthodologie TDD (tests écrits avant l'implémentation)
- ✅ Double génération de
backlog.jsonpour compatibilité optimale (chemin utilisateur + structure RULE 3)
- ✅ Application de l'opérateur de coalescence nullish (
??) pour améliorer la lisibilité - ✅ Correction des problèmes de linting dans les tests et scripts
- ✅ Restructuration du script
run-final-tests.jspour une meilleure robustesse - ✅ Utilisation des optional chaining pour améliorer la qualité du code
- Compatibilité multi-LLM assurée pour:
- Windsurf (PRIORITÉ 1)
- Claude.ai (PRIORITÉ 2)
- Cursor (PRIORITÉ 3)
- Tests MCP corrigés et améliorés
- Nettoyage des mocks entre les tests
- Test spécifique de compatibilité multi-LLM ajouté
- Problèmes de linting dans les scripts
- Erreurs dans les tests MCP
- Format des réponses JSON-RPC pour conformité MCP
- Agile Planner MCP Server
- Tests ultra-minimaux pour les 5 composants les plus critiques
- Validation complète du routeur MCP et de la conformité Context7
- Stratégie incrémentale pour améliorer progressivement la couverture de tests
- Identification et suppression des tests obsolètes (tests/e2e/cli.test.js)
- Audit complet de l'architecture avec rapports détaillés dans le dossier 'reports/'
- Validation complète de la conformité au protocol MCP selon les standards Context7
- Tests isolés ultra-minimaux pour garantir la robustesse des composants critiques
- Vérification systématique de la gestion des erreurs MCP (validation des paramètres et formats de réponse)
- Correction des problèmes de linting dans les scripts de validation
- Création de scripts d'exécution ciblés pour les tests critiques (
run-critical-tests.js) - Documentation complète de la validation MCP dans le guide de test
- Standardisation des mocks pour tous les tests: création de setupTests.js centralisé avec mocks communs
- Configuration optimisée de Jest pour éviter les conflits entre les différentes options (resetMocks, restoreMocks, clearMocks)
- Nouveau script d'exécution test:wave8 garantissant la cohérence entre npm test et npx jest
- Stratégie d'isolation des tests documentée dans test-resolution-strategy.md
- Résolution méthodique des conflits entre sinon et jest pour les mocks
- Robustesse des tests unitaires : mocks explicites OpenAI et Groq avec baseURL, reset des mocks entre sous-tests
- Correction du nom de la fonction mockée (deliver_backlog)
- Refactorisation complète des tests unitaires conformément aux principes Wave 8
- Standardisation des mocks pour les dépendances externes (fs-extra, chalk, etc.)
- Correction systématique des chemins d'importation pour la nouvelle structure
- Réorganisation hiérarchique des tests en modules (validators, formatters, utils, generators)
- Isolation stricte des tests unitaires pour assurer leur fiabilité et leur maintenabilité
- Uniformisation des patterns d'assertion pour mieux identifier la source des erreurs
- Création d'un plan de refactorisation détaillé conforme à TDD Wave 8 (dans
test-refactoring-plan.md) - Mise à jour du guide de test avec la stratégie de résolution TDD Wave 8
- Documentation détaillée sur la convention d'import des modules dans les tests (README du dossier tests)
- Tests ultra-minimaux pour les composants les plus critiques
- Guide complet pour les contributeurs (CONTRIBUTING.md)
- Exemples de documentation avec Mermaid pour visualiser l'architecture
- Support pour la nouvelle syntaxe des mocks Jest 29.7.0
- Réduction de la duplication de code dans les tests
- Isolation explicite des tests pour éviter les effets de bord
- Réduction de la complexité cognitive des fonctions de test
- Meilleure organisation des fixtures de test
- Optimisation des imports dans les fichiers de test
- Problème de double import dans les tests
- Erreurs liées aux mocks de fs-extra
- Dépendances circulaires entre les modules
- Variables inutilisées et problèmes de linting
- Correction des variables inutilisées et optimisation des closures
- Résolution de problèmes de qualité de code signalés par l'IDE
- Support complet des formats backlog 'epic' (singulier) et 'epics' (pluriel)
- Normalisation automatique des backlogs pour garantir la rétrocompatibilité
- Refactorisation des validateurs pour réduire la complexité cognitive
- Meilleure gestion des erreurs dans la validation des objets imbriqués
- Amélioration des messages d'erreur pour faciliter le débogage
- Compatibilité complète avec les spécifications MCP 2025
- Documentation détaillée sur l'utilisation et la configuration
- Outils de conversion pour les backlogs existants
- Meilleure organisation des modules pour faciliter la maintenance
- Configuration des tests unitaires pour garantir la qualité du code
- Optimisation du générateur de backlog pour améliorer les performances
- Amélioration du routeur MCP pour une meilleure gestion des requêtes
- Mise à jour de l'index principal pour une meilleure intégration
- Amélioration des exemples d'user stories pour une meilleure compréhension
- Ajout d'exemples de migration pour faciliter la transition vers le nouveau système
- Mise à jour des tests pour assurer la qualité du code
- Refactorisation du système de validation avec le pattern Strategy
- Création de validateurs spécialisés pour chaque entité (UserStory, Feature, Epic, Iteration, Backlog)
- Implémentation d'une Factory pour faciliter l'accès aux validateurs
- Documentation du pattern Strategy dans
design.md - Amélioration de la couverture de tests (100% pour les nouveaux validateurs)
- Ajout d'exemples d'utilisation des validateurs dans
examples/validators-usage.js - Ajout d'un exemple d'intégration progressive dans
examples/migration-integration.js - Création d'un guide de test (
TESTING-GUIDE.md) pour clarifier l'utilisation denpm testetnpx jest - Identification des fichiers obsolètes dans
OBSOLETE-FILES.mdpour faciliter le nettoyage futur
- Amélioration de la précision des messages d'erreur pour les validateurs
- Réduction de la complexité cognitive dans plusieurs fonctions
- Compatibilité avec l'ancien système de validation pour faciliter la migration progressive
- Réduction de la complexité cognitive des fonctions de validation
- Documentation complète de l'architecture des validateurs dans
server/lib/utils/validators/README.md
- Implémentation de la structure hiérarchique epic > feature > user story
- Ajout de métadonnées et d'instructions AI pour faciliter le travail collaboratif avec les IA
- Refactorisation majeure du module markdown-generator pour améliorer la maintenabilité et la robustesse
- Division du module monolithique (1124 lignes) en 7 modules spécialisés respectant la limite de 500 lignes par fichier
- Préservation complète de la structure hiérarchique lorsqu'elle est appelée via l'outil MCP generateBacklog
- Ajout de la licence MIT avec clause Commons sur le modèle de claude-task-master
- Mise à jour des changelogs pour correspondre précisément à la version actuelle
- Création d'exemples détaillés dans le dossier examples/ montrant le format exact des sorties
- Enrichissement de la documentation dans les README en anglais et français
- Ajout de liens vers le guide d'utilisation optimal (OPTIMAL_USAGE_GUIDE.MD)
- Correction d'un problème critique dans la fonction
generateMarkdownFilesFromResultempêchant la création correcte des liens entre fichiers - Normalisation des chemins relatifs pour assurer la compatibilité cross-platform
- Résolution d'un problème d'encodage des caractères spéciaux dans les fichiers markdown
- Amélioration de la robustesse des appels MCP
- Gestion de l'ID unique pour les entités (forced 'lowercase')
- Tests unitaires pour tous les composants (story, feature, epic, iteration, MVP)