# Changelog
## [1.7.3] - 2025-05-13
### Fixed
- **Conformité stricte JSON-RPC 2.0 pour le mode MCP:**
- Implémentation de la fonction `mcpLog` pour une gestion standardisée des logs en mode MCP
- Remplacement de tous les `console.error` par des logs conformes au protocole JSON-RPC
- Format homogène pour toutes les sorties du serveur MCP
- **Détection intelligente des modes CLI et MCP:**
- Préservation du fonctionnement CLI même avec `MCP_EXECUTION=true` ou `--mcp`
- Activation du mode MCP uniquement quand nécessaire
- **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
## [1.7.2] - 2025-05-12
### Fixed
- **Correction du mode MCP pour `generateFeature`:**
- Amélioration de la fonction `adaptResultForMarkdown` pour extraire correctement les user stories quelle que soit leur structure
- Renforcement de la fonction `createRule3Structure` avec 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
- **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 `--mcp` ou `MCP_EXECUTION=true` lorsqu'aucune commande CLI spécifique n'est demandée
### Improved
- **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
## [1.7.1] - 2025-05-12
### Refactor
- **Réduction de la complexité cognitive dans le code critique:**
- Refactorisation de `json-parser.js` pour réduire la complexité cognitive de 31 à < 15 (lint ID: 4aef1b1a-e476-4b16-8ae0-5da4f62d9058)
- Refactorisation de `_createRule3Structure` dans `mcp-router.js` en 6 sous-fonctions avec responsabilités uniques (lint ID: 6e6877fb-de75-4a5b-9376-41bab2df4a4b)
- Amélioration de la robustesse de `server/index.js` avec gestion optimisée des erreurs et chaînage optionnel (?.) (lint ID: 2a5bf084-b3b6-46ad-9e0e-68205cc8bc7c)
### Improved
- **Validation de la structure RULE 3 dans l'interface MCP:**
- Test réussi avec `test-mcp-rule3.js` validant la création correcte de la structure de dossiers
- Optimisation de `test-mcp-rule3.js` avec les nouveaux utilitaires MCP (nettoyage automatique des ressources)
- Conformité complète avec la spécification RULE 3 pour tous les modes d'exécution
- **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)
### Documentation
- **Refonte majeure de la documentation architecture:**
- Création de `docs/architecture/mcp-server-architecture.md` pour détailler l'architecture MCP complète
- Ajout de `docs/architecture/markdown-generation.md` documentant le système de génération markdown
- Création de `docs/guides/mcp-integration.md` pour faciliter l'intégration avec les clients MCP
- Mise à jour de `docs/development/testing-guide.md` pour 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
- **Nouvelle documentation de développement:**
- Création de `docs/development/KNOWN_ISSUES.md` listant tous les problèmes connus et la dette technique
- Création de `docs/development/REFACTORING-PLAN.md` avec un plan détaillé de refactorisation TDD
- Création de `docs/development/TEST-REFACTORING.md` détaillant les tests à corriger
- Création de `docs/development/ROADMAP.md` avec la feuille de route des versions futures
- 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)
## [1.7.0] - 2025-05-12
### Refactor
- **Modularisation complète du CLI:**
- Réduction de `cli.js` de 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 coordination
- `cli/utils.js` - Utilitaires et fonctions de support CLI
- `cli/backlog.js` - Génération de backlogs
- `cli/feature.js` - Génération de features
- Maintien de la rétro-compatibilité avec l'API existante via un module de compatibilité
### Improved
- **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.json` pour 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)
### Added
- **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
- 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
## [1.6.2] - 2025-05-12
### Refactor
- **Réduction de complexité cognitive:**
- Refactorisé la méthode `handleInvoke` dans `mcp-server.js` en extrayant trois méthodes privées (`_handleToolNotFound`, `_sendSuccessResponse`, `_handleToolExecutionError`) pour améliorer la lisibilité et la maintenabilité.
- Refactorisé la fonction `handleToolsCall` dans `mcp-router.js` en extrayant trois méthodes (`_extractToolParams`, `_getToolHandler`, `_handleToolError`) pour réduire sa complexité cognitive.
- Refactorisé la fonction `handleGenerateBacklog` dans `mcp-router.js` en extrayant trois méthodes auxiliaires (`_cleanupApiClient`, `_prepareBacklogResponse`, `_handleBacklogGenerationError`).
- Refactorisé la fonction `_cleanupApiClient` en extrayant des sous-fonctions (`_resetClientProperties`, `_forceGarbageCollection`) pour réduire sa complexité.
- Refactorisé la fonction `initializeYargs` dans `server/index.js` en extrayant des fonctions dédiées pour chaque commande et configuration.
- Amélioré la méthode `extractBacklogData` dans `schema-validator.js` en extrayant des méthodes privées (`_isWrapperMCP`, `_logExtractionDebug`) et en ajoutant une documentation claire.
### Documentation
- 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.
## [1.6.1] - 2025-05-11
### Fixed
- Refactored `parseJsonResponse` function in `server/lib/utils/json-parser.js` to 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 `generateBacklog` command 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).
- Ensured robust error handling for file system assertions by wrapping them in a `try...catch` block and properly calling `done(error)`.
- Reinstated a missing check for the existence of `backlog.json` in the output directory.
- These changes resolved persistent test failures and ensure reliable testing of the `generateBacklog` MCP stdio interface.
## [1.6.0] - 2025-05-11
### Fixed
- **MCP `generateBacklog` (stdio Interface):**
- Resolved `chalk is not defined` error in `server/lib/mcp-router.js` by restoring missing `require` statements.
- Fixed `TypeError: ToolExecutionError is not a constructor` and `Right-hand side of 'instanceof' is not an object` in `server/lib/mcp-router.js` by correctly handling the direct JSON data return from `backlog-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.json` to 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 `generateBacklog` process significantly improved, now matching CLI output.
## [1.5.0] - 2025-05-11
### Fixed
- **Markdown Output Structure:**
- Corrected path generation in `server/lib/markdown/index.js` to prevent nested `.agile-planner-backlog/.agile-planner-backlog` directories.
- Ensured `epics` and `orphan-stories` folders are created directly under the main `.agile-planner-backlog` directory, removing the intermediate project slug folder, to comply with RULE 3.
- **Markdown Generation Error:**
- Resolved `TypeError: userStoryMap.set is not a function` in `server/lib/markdown/index.js` by correctly initializing `userStoryMap` as `new Map()`.
### Refactor
- **Linting:**
- Removed redundant `try...catch` block around `fs-extra.ensureDirSync` in `server/lib/cli.js` to allow error propagation.
- Refactored a `console.log` statement in `server/lib/markdown/index.js` to avoid nested template literals.
## [1.4.6] - 2025-05-11
### Refactoring et robustesse
- Centralisation de la gestion d’erreur dans `generateBacklog` et `generateBacklogDirect` via `handleBacklogError`
- 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
## [1.4.5] - 2025-05-10
### Refactoring et documentation
- 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
## [1.4.4] - 2025-05-10
### Réorganisation du Projet et Amélioration de la Maintenance
- ✅ 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
### Correction complète des Tests - Approche TDD Wave 8
- ✅ Création de 9 nouveaux tests ultra-minimaux selon l'approche TDD Wave 8
- `validators-factory.ultra-minimal.test.js`
- `errors.ultra-minimal.test.js`
- `backlog-generator.minimal.test.js`
- `epic-formatter.ultra-minimal.test.js`
- `schema-validator.ultra-minimal.test.js`
- `mcp-router.ultra-minimal.test.js`
- `cli.ultra-minimal.test.js`
- `format-user-story.ultra-minimal.test.js`
- `rule3-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'importation
- `fix-jest-syntax.js` - Correction automatique de la syntaxe Jest 29.7.0
- `fix-module-imports.js` - Correction des imports directs depuis les modules source
- `verify-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épendances
- `backlog-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.md` avec les progrès réalisés (71,2% des composants critiques testés)
### Améliorations et corrections
- ✅ 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.js` pour vérification et création automatique
- Test unitaire `rule3-structure.test.js` pour validation
- Création correcte des fichiers .md dans les répertoires appropriés
- ✅ 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
- ✅ 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
## [1.4.3] - 2025-05-09
### TDD Wave 8 - Compatibilité Multi-LLM & Structure RULE 3
- ✅ 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.js` pour valider la compatibilité Windsurf, Claude et Cursor
- ✅ Correction du bug dans `feature-generator.js` qui causait des erreurs en cascade
- ✅ Résolution de l'erreur `truncatedOutput is not defined` dans 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.md` avec les étapes de résolution
### Tests TDD pour structure RULE 3
- ✅ 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.json` pour compatibilité optimale (chemin utilisateur + structure RULE 3)
### Qualité du code
- ✅ 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.js` pour une meilleure robustesse
- ✅ Utilisation des optional chaining pour améliorer la qualité du code
## [1.1.6] - 2025-05-08
### Amélioré
- 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é
### Corrigé
- 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
## [1.4.2] - 2025-05-08
### TDD Wave 8 - Approche critique
- 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/'
## [1.4.1] - 2025-05-08
### MCP Context7 & Test Validation
- 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
## [1.4.0] - 2025-05-08
### TDD Wave 8 - Refactorisation des tests
- 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)
## v1.3.3 (2025-05-08)
### Tests & Qualité
- 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
## v1.3.1 (2025-05-08)
### Ajouté
- 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
### Amélioré
- 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
### Corrigé
- 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
## v1.2.3 (2025-05-08)
### Améliorations
- 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
## v1.2.1 (2023-11-20)
### Améliorations
- 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 de `npm test` et `npx jest`
- Identification des fichiers obsolètes dans `OBSOLETE-FILES.md` pour faciliter le nettoyage futur
### Corrections
- 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`
## v1.2.0 (2025-05-06)
### Nouvelles fonctionnalités
- 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
### Améliorations
- 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)
### Corrections
- Correction d'un problème critique dans la fonction `generateMarkdownFilesFromResult` empê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)