# 🏗️ REFACTORISATION ARCHITECTURE - GÉNÉRATION PAR ÉTAPES ## 📁 **NOUVELLE STRUCTURE FICHIERS** ``` lib/ ├── Main.js ← ORCHESTRATEUR PRINCIPAL ├── ContentGeneration.js ← ORCHESTRATEUR GÉNÉRATION (4 étapes) ├── generation/ │ ├── InitialGeneration.js ← ÉTAPE 1: Génération base (Claude) │ ├── TechnicalEnhancement.js ← ÉTAPE 2: Amélioration technique (GPT-4) │ ├── TransitionEnhancement.js ← ÉTAPE 3: Fluidité transitions (Gemini) │ └── StyleEnhancement.js ← ÉTAPE 4: Style personnalité (Mistral) └── [autres fichiers existants...] ``` ## 🎯 **PRINCIPE D'ARCHITECTURE** ### **1 FICHIER = 1 ÉTAPE = 1 RESPONSABILITÉ** - Chaque fichier a **UN SEUL OBJECTIF** - Chaque fichier a **UN LLM PRINCIPAL** - Chaque fichier **TESTABLE INDÉPENDAMMENT** ### **MAIN ENTRY POINT PAR FICHIER** Chaque fichier expose une fonction principale claire : - `InitialGeneration.js` → `generateInitialContent()` - `TechnicalEnhancement.js` → `enhanceTechnicalTerms()` - `TransitionEnhancement.js` → `enhanceTransitions()` - `StyleEnhancement.js` → `applyPersonalityStyle()` ## 🔄 **FLUX D'ORCHESTRATION** ``` Main.js:handleFullWorkflow() ↓ ContentGeneration.js:generateWithSelectiveEnhancement() ↓ InitialGeneration.js:generateInitialContent() [Claude] ↓ TechnicalEnhancement.js:enhanceTechnicalTerms() [GPT-4] ↓ TransitionEnhancement.js:enhanceTransitions() [Gemini] ↓ StyleEnhancement.js:applyPersonalityStyle() [Mistral] ↓ RÉSULTAT FINAL ``` ## 📋 **INTERFACES STANDARDISÉES** ### **INPUT/OUTPUT CHAQUE ÉTAPE** ```javascript // INPUT standardisé { content: { "|tag1|": "contenu1", "|tag2|": "contenu2" }, csvData: { mc0, t0, personality, ... }, context: { step, totalSteps, metadata } } // OUTPUT standardisé { content: { "|tag1|": "contenu_amélioré1", "|tag2|": "contenu_amélioré2" }, stats: { processed: 15, enhanced: 8, duration: 2500 }, debug: { llmProvider: "claude", tokens: 1200 } } ``` ## ⚡ **AVANTAGES ARCHITECTURE** ### **DÉVELOPPEMENT** - ✅ Debug par étape indépendante - ✅ Tests unitaires par fichier - ✅ Ajout/suppression d'étapes facile - ✅ Code plus lisible et maintenable ### **PRODUCTION** - ✅ Bypass d'étapes si problème - ✅ Monitoring précis par étape - ✅ Optimisation performance individuelle - ✅ Rollback par étape possible ## 🔧 **MIGRATION PROGRESSIVE** ### **PHASE 1**: Créer nouvelle structure - Créer dossier `generation/` et fichiers - Garder ancien code fonctionnel ### **PHASE 2**: Migrer étape par étape - InitialGeneration.js d'abord - Puis TechnicalEnhancement.js - Etc. ### **PHASE 3**: Nettoyer ancien code - Supprimer SelectiveEnhancement.js - Mettre à jour imports ## 🎨 **EXEMPLE STRUCTURE FICHIER** ```javascript // generation/InitialGeneration.js const { callLLM } = require('../LLMManager'); const { tracer } = require('../trace'); /** * ÉTAPE 1: GÉNÉRATION INITIALE * Responsabilité: Créer le contenu de base avec Claude * Input: hierarchy, csvData * Output: contenu généré initial */ async function generateInitialContent(hierarchy, csvData) { return await tracer.run('InitialGeneration.generateInitialContent()', async () => { // Logique génération initiale // Claude uniquement }); } // Helper functions locales function createBasePrompt() { /* ... */ } function parseInitialResponse() { /* ... */ } module.exports = { generateInitialContent, // ← MAIN ENTRY POINT createBasePrompt, // ← Helpers si besoin externe parseInitialResponse }; ```