# 📊 SPÉCIFICATION GOOGLE SHEET POUR VERSIONING
## Structure Complete pour Sauvegarde par Étapes

**Date**: 6 septembre 2025  
**Version**: 2.0 avec versioning  
**Objectif**: Tracer chaque étape du pipeline modulaire

---

## 🎯 CONCEPT : VERSIONING PAR ÉTAPES

### Workflow de Sauvegarde
```
1. v1.0 - initial_generation        → Row X
2. v1.1 - selective_enhancement     → Row X+1
3. v1.2 - adversarial_enhancement   → Row X+2  
4. v1.3 - human_simulation          → Row X+3
5. v1.4 - pattern_breaking          → Row X+4
6. v2.0 - final_version             → Row X+5
```

Chaque version = **1 ligne complète** avec le contenu compilé de cette étape.

---

## 📋 STRUCTURE GOOGLE SHEET REQUISE

### Nom du Sheet : `Generated_Articles_Versioned`

| Colonne | Nom | Type | Description | Exemple |
|---------|-----|------|-------------|---------|
| **A** | Timestamp | DateTime | Format français DD/MM/YYYY HH:mm:ss | 06/09/2025 15:42:33 |
| **B** | Slug | String | Identifiant unique article | plaque-numero-maison |
| **C** | MC0 | String | Mot-clé principal | plaque numero de maison |
| **D** | T0 | String | Titre principal | Créer une plaque personnalisée |
| **E** | Personality | String | Personnalité IA utilisée | Marc |
| **F** | AntiDetection_Level | String | Niveau anti-détection | MVP |
| **G** | Compiled_Text | Long Text | **CONTENU FINAL COMPILÉ** | Texte complet organique... |
| **H** | Text_Length | Number | Longueur en caractères | 4582 |
| **I** | Word_Count | Number | Nombre de mots | 745 |
| **J** | Elements_Count | Number | Nombre d'éléments générés | 16 |
| **K** | LLM_Used | String | Modèle principal utilisé | claude |
| **L** | Validation_Status | String | Statut validation | completed |
| **M** | **Version** 🆕 | String | Numéro de version | v1.0, v1.1, v2.0 |
| **N** | **Stage** 🆕 | String | Étape du pipeline | initial_generation |
| **O** | **Stage_Description** 🆕 | String | Description détaillée étape | Génération base sans amélioration |
| **P** | **Parent_Article_ID** 🆕 | Number | ID article parent | 123 (vide pour v1.0) |
| **Q** | GPTZero_Score | Number | Score détecteur GPTZero | 25 |
| **R** | Originality_Score | Number | Score originalité | 87 |
| **S** | CopyLeaks_Score | Number | Score CopyLeaks | 12 |
| **T** | Human_Quality_Score | Number | Score qualité humaine | 92 |
| **U** | Full_Metadata_JSON | JSON | **Métadonnées complètes + historique** | {csvData, config, versionHistory} |

---

## 🔄 EXEMPLE CONCRET DE DONNÉES

### Article "plaque-numero-maison" - Toutes Versions

| A | B | M | N | O | P | G (extract) |
|---|---|---|---|---|---|-------------|
| 06/09/2025 15:42:33 | plaque-numero-maison | **v1.0** | initial_generation | Génération base sans amélioration | | Créer une plaque personnalisée... |
| 06/09/2025 15:43:15 | plaque-numero-maison | **v1.1** | selective_enhancement | Amélioration selective (standardEnhancement) - 12 modifications | 123 | Créer une plaque personnalisée élégante... |
| 06/09/2025 15:44:02 | plaque-numero-maison | **v1.2** | adversarial_enhancement | Amélioration adversarial (light) - 8 modifications | 123 | Concevoir une plaque personnalisée raffinée... |
| 06/09/2025 15:45:12 | plaque-numero-maison | **v1.3** | human_simulation | Simulation humaine (standardSimulation) - 15 modifications | 123 | Concevoir une plaque vraiment personnalisée... |
| 06/09/2025 15:46:08 | plaque-numero-maison | **v1.4** | pattern_breaking | Pattern Breaking (lightPatternBreaking) - 6 modifications | 123 | Concevoir une plaque véritablement personnalisée... |
| 06/09/2025 15:47:21 | plaque-numero-maison | **v2.0** | final_version | Version finale complète avec toutes améliorations | 123 | Concevoir une plaque véritablement personnalisée... |

---

## 🎛️ STAGES POSSIBLES

| Stage | Description | Version Typique |
|-------|-------------|----------------|
| `initial_generation` | Génération de base sans amélioration | v1.0 |
| `selective_enhancement` | Amélioration selective (tech/style/transitions) | v1.1 |
| `adversarial_enhancement` | Amélioration adversarial (anti-détection) | v1.2 |
| `human_simulation` | Simulation humaine (erreurs, fatigue, style) | v1.3 |
| `pattern_breaking` | Cassage de patterns IA | v1.4 |
| `final_version` | Version finale assemblée | v2.0 |

---

## 🔗 LINKAGE PARENT-ENFANT

### Principe
- **Article Parent** (v1.0) : `Parent_Article_ID` = vide
- **Versions Dérivées** (v1.1+) : `Parent_Article_ID` = ID de v1.0

### Retrouver toutes versions d'un article
```sql
-- Pseudo-requête Google Sheets
WHERE (ID = 123) OR (Parent_Article_ID = 123)
ORDER BY Version ASC
```

### Statistiques par Article
```sql
-- Compter versions par article
COUNT(*) WHERE Parent_Article_ID = 123 OR ID = 123
```

---

## 📊 AVANTAGES DU SYSTÈME

### ✅ **Traçabilité Complète**
- Chaque étape du pipeline visible
- Évolution du contenu tracée
- Métriques par étape

### ✅ **Comparaison Facile** 
- A/B test entre versions
- Impact de chaque amélioration
- Régression possible si nécessaire

### ✅ **Analytics Poussés**
- Efficacité par étape
- Patterns d'amélioration
- ROI des améliorations

### ✅ **Flexibilité**
- Activer/désactiver sauvegarde : `saveIntermediateSteps: false`
- Pipeline partiel possible
- Versioning optionnel

---

## 🚀 API POUR UTILISATION

### Endpoint Serveur
```bash
POST /api/workflow-modulaire
Content-Type: application/json

{
  "rowNumber": 2,
  "selectiveStack": "standardEnhancement", 
  "adversarialMode": "light",
  "humanSimulationMode": "standardSimulation",
  "patternBreakingMode": "lightPatternBreaking",
  "saveIntermediateSteps": true
}
```

### Réponse Type
```json
{
  "success": true,
  "message": "Workflow modulaire terminé avec succès (6 versions sauvegardées)",
  "stats": {
    "versionsCreated": 6,
    "parentArticleId": 123,
    "finalArticleId": 128,
    "duration": 125000
  },
  "versionHistory": [
    {"version": "v1.0", "stage": "initial_generation", "articleId": 123},
    {"version": "v1.1", "stage": "selective_enhancement", "articleId": 124},
    {"version": "v2.0", "stage": "final_version", "articleId": 128}
  ],
  "result": {
    "parentArticleId": 123,
    "finalArticleId": 128,
    "modificationsCount": 41,
    "finalWordCount": 756
  }
}
```

---

## 🎯 COMMANDES D'UTILISATION

### Via CLI (main_modulaire.js)
```bash
# Workflow complet avec sauvegarde
node lib/main_modulaire.js workflow 2 standardEnhancement light standardSimulation

# Les sauvegardes par étapes sont ACTIVÉES par défaut
# Pour désactiver : modifier saveIntermediateSteps: false dans le code
```

### Via Serveur
```bash
# Démarrer serveur
npm start

# Utiliser endpoint API
curl -X POST http://localhost:3000/api/workflow-modulaire \
  -H "Content-Type: application/json" \
  -d '{"rowNumber": 2, "saveIntermediateSteps": true}'
```

---

## 🔧 CONFIGURATION SHEET

### Permissions Requises
- **Google Sheets API** : Lecture/Écriture
- **Service Account** : Configuré dans .env
- **Sheet ID** : `1iA2GvWeUxX-vpnAMfVm3ZMG9LhaC070SdGssEcXAh2c`

### Variables Env Nécessaires
```bash
GOOGLE_SERVICE_ACCOUNT_EMAIL=your-service@project.iam.gserviceaccount.com
GOOGLE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n..."
```

---

**🎯 Cette spécification permet un suivi complet de chaque étape du pipeline modulaire avec traçabilité complète et analytics détaillés.**

---
*Spécification générée automatiquement le 6 septembre 2025*  
*Claude Code - Système de Versioning Modulaire*