# 📘 Guide du Selective Enhancement

## 🎯 Qu'est-ce que c'est ?

Le **Selective Enhancement** est un système modulaire qui améliore le contenu généré en appliquant des **couches d'amélioration** successives. Chaque couche utilise un LLM différent spécialisé pour un type d'amélioration.

---

## 🏗️ Architecture en 3 niveaux

### Niveau 1 : Les Stacks Prédéfinis
Ce sont des **"recettes"** qui définissent quelles couches appliquer et dans quel ordre.

```javascript
// Exemple de stack prédéfini
{
  name: 'standardEnhancement',
  description: 'Amélioration technique et style (OpenAI + Mistral)',
  layers: [
    { type: 'technical', llm: 'gpt-4o-mini', intensity: 0.9 },
    { type: 'style', llm: 'mistral-small', intensity: 0.8 }
  ],
  layersCount: 2
}
```

### Niveau 2 : Les Couches (Layers)
Chaque couche a 3 paramètres clés :

- **type** : Ce que la couche améliore
  - `technical` : Précision technique, termes métier
  - `transitions` : Fluidité entre phrases
  - `style` : Personnalité, ton, vocabulaire

- **llm** : Le modèle utilisé
  - `gpt-4o-mini` : Excellent pour précision technique
  - `mistral-small` : Excellent pour style et personnalité
  - `gemini-pro` : Bon pour fluidité (actuellement désactivé)

- **intensity** : Force de l'amélioration (0.5 à 1.5)
  - `0.6` : Légère amélioration
  - `1.0` : Amélioration normale
  - `1.2` : Amélioration forte

### Niveau 3 : L'Exécution
Quand vous choisissez un stack, voici ce qui se passe :

```
1. Charge la configuration du stack
   └─> standardEnhancement = [technical + style]

2. Applique Couche 1 : technical (gpt-4o-mini)
   ├─ Avant : "Nos produits sont de qualité"
   └─ Après : "Nos panneaux PMMA garantissent une durabilité optimale"

3. Applique Couche 2 : style (mistral-small)
   ├─ Avant : "Nos panneaux PMMA garantissent une durabilité optimale"
   └─ Après : "Nos panneaux PMMA, c'est la garantie d'une durabilité qui tient dans le temps"

4. Résultat final = contenu amélioré par les 2 couches
```

---

## 📦 Stacks Disponibles

### 1. `lightEnhancement` (Rapide)
- **1 couche** : Technique uniquement
- **Durée** : ~15-20s
- **Usage** : Tests rapides, contenu déjà bon

### 2. `standardEnhancement` (Équilibré) ⭐ RECOMMANDÉ
- **2 couches** : Technique + Style
- **Durée** : ~30-40s
- **Usage** : Production standard, bon compromis qualité/vitesse

### 3. `fullEnhancement` (Complet)
- **2 couches** : Technique intense + Style
- **Durée** : ~35-45s
- **Usage** : Contenu premium, qualité maximale

### 4. `personalityFocus` (Style prioritaire)
- **2 couches** : Style fort + Technique légère
- **Durée** : ~30-40s
- **Usage** : Quand la personnalité est importante

### 5. `adaptive` (Intelligent)
- **Analyse automatique** du contenu
- **Couches variables** selon les besoins détectés
- **Durée** : Variable
- **Usage** : Quand vous ne savez pas quoi choisir

---

## 🚀 Comment l'utiliser ?

### Dans le code (Main.js)
```javascript
await handleModularWorkflow({
  rowNumber: 2,
  selectiveStack: 'standardEnhancement',  // ← Choisir le stack ici
  adversarialMode: 'light',
  source: 'production'
});
```

### Via API
```javascript
POST /api/workflow/execute
{
  "rowNumber": 2,
  "selectiveStack": "standardEnhancement",  // ← Choisir le stack ici
  "adversarialMode": "light"
}
```

### Via Interface Web
```
production-runner.html → Sélection stack dans le dropdown
```

---

## 📊 Logs détaillés (après modification)

Voici ce que vous verrez maintenant dans les logs :

```
📦 APPLICATION STACK SELECTIVE: standardEnhancement (2 couches)
   📊 12 éléments | Description: Amélioration technique et style
   🔍 Configuration du stack:
      Couche 1: technical | LLM: gpt-4o-mini | Intensité: 0.9
      Couche 2: style | LLM: mistral-small | Intensité: 0.8

   🔧 === COUCHE 1/2 ===
      Type: technical | LLM: gpt-4o-mini | Intensité: 0.9
      Éléments en entrée: 12
      📝 Échantillon AVANT (t0): Nos produits sont de qualité...
      🤖 LLM spécifié: gpt-4o-mini
      🔬 Branche: Technical Enhancement
      📝 Config technique: LLM=gpt-4o-mini, Intensity=0.9
      ✅ Technical enhancement terminé: 8 modifications
      📝 Échantillon APRÈS (t0): Nos panneaux PMMA garantissent...
      ✅ RÉSULTAT: 8 éléments modifiés (66.7% du total)
      ⏱️  Durée: 2340ms

   🔧 === COUCHE 2/2 ===
      Type: style | LLM: mistral-small | Intensité: 0.8
      Éléments en entrée: 12
      📝 Échantillon AVANT (t0): Nos panneaux PMMA garantissent...
      🤖 LLM spécifié: mistral-small
      🎨 Branche: Style Enhancement
      📝 Config style: LLM=mistral-small, Intensity=0.8
      ✅ Style enhancement terminé: 6 modifications
      📝 Échantillon APRÈS (t0): Nos panneaux PMMA, c'est la garantie...
      ✅ RÉSULTAT: 6 éléments modifiés (50.0% du total)
      ⏱️  Durée: 1890ms

✅ === STACK SELECTIVE standardEnhancement TERMINÉ ===
   📊 Couches réussies: 2/2
   🔄 Modifications totales: 14
   ⏱️  Durée totale: 4230ms

   📋 RÉCAPITULATIF PAR COUCHE:
      ✅ Couche 1: technical (gpt-4o-mini) - 8 modifs en 2340ms
      ✅ Couche 2: style (mistral-small) - 6 modifs en 1890ms
```

---

## ❓ FAQ

### Q: Pourquoi 2 couches dans standardEnhancement ?
**R:** Chaque LLM est spécialisé. GPT-4o-mini excelle en précision technique, Mistral en style. En combinant les deux, on obtient un contenu techniquement précis ET bien écrit.

### Q: Quelle est la différence entre standardEnhancement et fullEnhancement ?
**R:** fullEnhancement utilise des intensités plus fortes (1.0 au lieu de 0.9) donc des modifications plus poussées. Utile pour du contenu premium.

### Q: Puis-je créer mes propres stacks ?
**R:** Oui ! Modifiez `PREDEFINED_STACKS` dans `lib/selective-enhancement/SelectiveLayers.js`

### Q: Comment savoir quel stack choisir ?
**R:**
- **Production standard** → `standardEnhancement`
- **Tests rapides** → `lightEnhancement`
- **Qualité max** → `fullEnhancement`
- **Pas sûr** → `adaptive` (analyse automatique)

### Q: Les modifications sont-elles cumulatives ?
**R:** Oui ! Couche 1 modifie le contenu → Couche 2 modifie le résultat de Couche 1 → Résultat final = contenu doublement amélioré.

---

## 🔧 Configuration technique

### Fichiers impliqués
```
lib/selective-enhancement/
├── SelectiveCore.js       ← Moteur d'application des couches
├── SelectiveLayers.js     ← Définition des stacks prédéfinis
├── TechnicalLayer.js      ← Implémentation couche technique
├── StyleLayer.js          ← Implémentation couche style
└── TransitionLayer.js     ← Implémentation couche transitions
```

### Mapping LLM → Type de couche
```javascript
{
  'technical': 'gpt-4o-mini',      // Précision technique
  'transitions': 'gemini-pro',     // Fluidité (désactivé)
  'style': 'mistral-small',        // Personnalité
  'all': 'claude-sonnet-4-5'       // Polyvalent
}
```

---

## 🎓 Résumé

**Configuration effective = Stack choisi**

Quand vous faites :
```javascript
selectiveStack: 'standardEnhancement'
```

Cela charge automatiquement :
```javascript
{
  layers: [
    { type: 'technical', llm: 'gpt-4o-mini', intensity: 0.9 },
    { type: 'style', llm: 'mistral-small', intensity: 0.8 }
  ]
}
```

Et applique les 2 couches **séquentiellement** sur votre contenu.

**C'est aussi simple que ça !** 🎉
