--- type: doctrine titre: "📜 PROTOCOLE — Migration documentaire OLYMPUS" dossier: 01_LOIS etage: long source: true # SOURCE (autorite) - les projections (Chroma/graphe) en derivent maj: 2026-05-20 hash: ddae6187 --- > ⚠ **OBSOLÈTE PARTIEL — audit 2026-05-13** : ce doc rĂ©fĂ©rence des ports morts (~~:9011~~ → :10001, ~~:9010~~ → :10001, etc.). Le seul port valide pour la sphĂšre/cockpit est **:10001** (NEXUS). Mis Ă  jour par 114-GAMEDIVINE. Voir `MNEMOSYNE/01_LOIS/DOCTRINE_PORTS_OLYMPUS.md`. # 📜 PROTOCOLE — Migration documentaire OLYMPUS > **Type** : protocole rĂ©utilisable (mĂ©mo CODEX) > **Créé** : 25/04/2026 — session migration v10.0.3 → v10.1.0 > **Auteur mĂ©thode** : Claude (Dev+UX) sur demande de Vivien > **RĂ©utilisable pour** : toute future migration de version majeure ou mineure d'OLYMPUS --- ## 🎯 Quand utiliser ce protocole Activer ce protocole quand : - Vivien dit "migration", "passage Ă  v10.x.0", "harmonisation" - Un chantier touche Ă  plusieurs documents (CODEX, GOD, MEMORY, etc.) - Un changement de doctrine ou vocabulaire est en cours - L'autre chat dispatcher / chats parallĂšles doivent ĂȘtre resynchronisĂ©s --- ## 📋 Étapes (ordre stricte) ### Phase A — Doctrine (toujours en premier) | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | A1 | MAJ HTML d'architecture (vocabulaire + schĂ©ma + ports + protocoles) | Read + Edit | Vivien | 30 min | | A2 | CrĂ©er/MAJ PROTOCOLE de travail (ce document) | Write | auto | 20 min | | A3 | CrĂ©er/MAJ VOCABULAIRE_OLYMPUS.md (source unique) | Write | Vivien | 30 min | ### Phase B — Audit (avant de modifier) | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | B1 | Compter les endpoints API rĂ©els (`Grep` sur `@app.get` `@app.post` + `@router.*`) | Grep | rapport | 45 min | | B2 | Auditer cohĂ©rence vocabulaire (chercher widget / tuile / app / module et lister conflits) | Grep | rapport | 45 min | | B3 | Auditer chemins en dur (`F:\` `C:\` chemins) → repĂ©rer les obsolĂštes | Grep | rapport | 30 min | ### Phase C — Marquage obsolĂšte (avant suppression) | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | C1 | Lister tous les docs/pages/fichiers Ă  marquer obsolĂštes | Glob | rapport | 15 min | | C2 | Appeler `obsolete_marker.py` ou ajouter banner manuel sur chaque | Bash | auto | 25 min | ### Phase D — RĂ©organisation MNEMOSYNE | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | D1 | CrĂ©er dossier `09_ARCHIVES/v10.0.x/` | Bash | auto | 5 min | | D2 | DĂ©placer obsolĂštes dedans | Bash | auto | 30 min | | D3 | VĂ©rifier que rien n'est cassĂ© (NEXUS tourne toujours) | Bash | auto | 10 min | | D4 | MAJ `MNEMOSYNE/CODEX.html` (rĂ©gĂ©nĂ©ration) | Bash POST `/api/codex/regenerate` | auto | 15 min | ### Phase E — Code | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | E1 | MAJ `codex_module.py` pour pointer vers nouveaux fichiers | Edit | auto | 30 min | | E2 | Bump version (chercher v10.0.x dans le code, remplacer par v10.1.0) | Grep + Edit | auto | 20 min | ### Phase F — Structure | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | F1 | CrĂ©er structure AGORA vide (modules_maison, connecteurs_maison, ARSENAL) | Bash mkdir | auto | 10 min | | F2 | CrĂ©er `AGORA/_index.json` (catalogue maĂźtre) | Write | Vivien | 20 min | | F3 | CrĂ©er `AGORA/README.md` (doc usage) | Write | auto | 20 min | ### Phase G — Synchro chats parallĂšles | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | G1 | PrĂ©parer prompt pour autre chat (vocabulaire + doctrine + lien HTML) | Write | Vivien avant envoi | 45 min | | G2 | CrĂ©er fichier dĂ©diĂ© dans `06_PROJETS/OLYMPUS/PROMPT_.md` | Write | auto | 10 min | ### Phase H — Documentation finale | # | Étape | Outils | Validation | Estimation | |---|---|---|---|---| | H1 | CrĂ©er `CHANGELOG_v.md` | Write | auto | 20 min | | H2 | CrĂ©er `MIGRATION_GUIDE_v_TO_v.md` | Write | auto | 30 min | | H3 | VĂ©rification finale (lire chaque doc, screenshot HTML) | Read + capture | Vivien | 20 min | --- ## ⚖ RĂšgles strictes 1. **Toujours backup avant** — copier dans `99_BACKUP//` ou `09_ARCHIVES/v/` avant tout dĂ©placement 2. **Doctrine Mona Lisa** — rien ne s'efface, on archive uniquement 3. **Validation Vivien** entre phases A et B (obligatoire), entre H et fin (obligatoire) 4. **Convention 3 voix** dans tous les rapports (Dev+UX / Limites / Bonus / Reco) 5. **Estimer le temps** pour chaque Ă©tape AVANT de la lancer 6. **Reporter le temps rĂ©el** aprĂšs chaque Ă©tape (utile pour calibrer estimations futures) 7. **Ne JAMAIS toucher au code fonctionnel** pendant la migration documentaire (sĂ©parer doc et code) 8. **RĂ©gĂ©nĂ©rer le CODEX** aprĂšs rĂ©organisation (sinon les chats voient l'ancien Ă©tat) 10. **đŸ”„ PATTERN "URL STABLE + CONTENU ÉVOLUTIF" (ajout 25/04/2026 — Vivien)** : > Quand un document maĂźtre Ă©volue (ex: GOD_OLYMPUS v10.0.1 → v10.1.0), **NE PAS** crĂ©er un nouveau fichier avec un nouveau nom et modifier 50 boutons partout. > > **Bonne pratique** : > 1. **Garder le nom de fichier original** (ex: `GOD_OLYMPUS_v10.0.1.html`) comme **adresse stable** > 2. **Remplacer son contenu** par le nouveau (ex: contenu v10.1.0) > 3. **Backup l'ancien contenu** dans `09_ARCHIVES/_predates_/backup_avant_replacement/` avant Ă©crasement (Mona Lisa) > 4. **Tous les boutons existants** chargent automatiquement le nouveau contenu, **zĂ©ro lien Ă  modifier** > 5. **Le titre dans le doc** prĂ©cise la version rĂ©elle (ex: `GOD v10.1.0`) → pas de confusion Ă  la lecture > > **Avantage** : 0 lien cassĂ©, 0 boutton Ă  patcher, sĂ©mantique URL = ressource stable, sĂ©mantique contenu = version actuelle. > **Pattern pro Ă©quivalent** : `latest.json` dans GitHub Releases, `:latest` Docker tags, `current` symlink Linux, `index.html` en web. 9. **đŸ”„ RÈGLE DES MODIFS PÉRIPHÉRIQUES (ajout 25/04/2026 — Vivien)** : > Toute modification d'un fait (chiffre, version, port, nom, terme, structure) **DOIT ĂȘtre accompagnĂ©e d'un audit automatique des modifs pĂ©riphĂ©riques** dans tous les fichiers/Ă©crans/docs oĂč ce fait est mentionnĂ©. > > **Vivien ne doit JAMAIS avoir Ă  signaler "tu as oubliĂ© de mettre Ă  jour X"** — c'est ton job de chercher en cascade. > > **ProcĂ©dure systĂ©matique** : > 1. Quand on change une donnĂ©e — ex : `473 endpoints` → `457 endpoints`, ou `v10.0.3` → `v10.1.0`, ou `19 modules` → `19 modules` > 2. Lancer un `Grep` global sur l'ancienne valeur (TOUS dossiers, TOUS fichiers : `.html`, `.md`, `.py`, `.json`, `.js`...) > 3. Lister ce qu'on trouve, dĂ©cider ce qu'on MAJ, ce qu'on archive (historique), ce qu'on laisse > 4. **Annoncer Ă  Vivien** la liste des changements en cascade avant de les appliquer > 5. Appliquer puis vĂ©rifier > > **Endroits classiques Ă  vĂ©rifier en cascade pour OLYMPUS** : > - `Cockpit/index.html` (tuiles avec chiffres affichĂ©s) > - `Cockpit/statique/ZEUS.html` (tuiles raccourci, headers) > - `Cockpit/statique/cockpit_classique.html` > - `Cockpit/statique/TODO_CHAT.html` > - `MNEMOSYNE/CODEX.html` (auto-rĂ©gĂ©nĂ©rĂ©, mais Ă  forcer) > - `MNEMOSYNE/01_LOIS/*.md` et `*.html` > - `MNEMOSYNE/06_PROJETS/OLYMPUS/*` (HERITAGE, GOD, RECAP) > - `~/.claude/projects/.../memory/MEMORY.md` > - `Desktop/OLYMPUS/*.html` (raccourcis bureau) > - `AXIOM/codex_module.py` (gĂ©nĂ©rateur CODEX) > - Tous les `.bat` de boot --- ## đŸ›Ąïž Garde-fous (anti-casse) - **Snapshot avant phase D** (rĂ©organisation MNEMOSYNE) — `mirror_sync.py` vers Bureau + USB - **Test que NEXUS tourne** avant chaque phase et aprĂšs — ouvrir `http://127.0.0.1~~:10001~~ → :10001/api/health` - **Si un test Ă©choue** → STOP, restaurer depuis backup, demander Ă  Vivien - **Pas de migration en session de travail active** — toujours quand Vivien est dispo pour valider --- ## 🆕 v10.1.0 — Outils de pĂ©rennisation (Drift Detection + Data Binding) Ne plus patcher en dur les chiffres dans tous les fichiers Ă  chaque migration. Pattern pro : ### 1. Source unique de vĂ©ritĂ© (SSoT) 📄 `C:\OLYMPUS\OLYMPUS_STATE.json` — TOUT chiffre/version OLYMPUS dĂ©coule de lĂ . ### 2. Drift Detection (scan automatique) 📄 `C:\OLYMPUS\01_SERVEUR\NEXUS\AXIOM\drift_audit.py` ```bash python drift_audit.py # rapport colorĂ© python drift_audit.py --json # sortie JSON python drift_audit.py --strict # exit 1 si drift dĂ©tectĂ© ``` **À lancer SYSTÉMATIQUEMENT** : - Avant et aprĂšs chaque modification de OLYMPUS_STATE.json - Avant chaque commit - Au dĂ©but de chaque session migration (vĂ©rifier l'Ă©tat) ### 3. Data binding HTML (auto-MAJ visuelle) 📄 `C:\OLYMPUS\01_SERVEUR\NEXUS\Cockpit\statique\js\auto-info.js` Au lieu d'Ă©crire `457 endpoints` en dur, Ă©crire : ```html 457 ``` Au load, le JS appelle `/api/info` et remplace par la valeur canonique. **Pages dĂ©jĂ  cĂąblĂ©es (v10.1.0)** : `Cockpit/index.html`, `Cockpit/statique/ZEUS.html`. **ClĂ©s disponibles** : `version`, `endpoints_count`, `modules_count`, `tranches_count`, `olympus_maison`, `arsenal_total`, `tuiles_garage`, `widgets_cockpit`, `port`. ### 4. Workflow recommandĂ© pour future migration ``` 1. Modifier OLYMPUS_STATE.json (changer version + chiffres) 2. python drift_audit.py # voir TOUS les fichiers qui driftent 3. Patcher en dur les fichiers code/JSON/MD non-bindables 4. Pour les HTML : data-bind suffit, /api/info auto-MAJ 5. Restart NEXUS pour activer le nouveau /api/info 6. python drift_audit.py --strict # vĂ©rification finale 7. RĂ©gĂ©nĂ©rer CODEX (curl POST /api/codex/regenerate) ``` --- ## 🔁 Auto-rĂ©fĂ©rence (si tĂąche similaire) Quand un chat reçoit une demande type : - *"On migre vers v10.x.0"* - *"Harmonise tout"* - *"Fais un audit puis MAJ"* - *"VĂ©rifie cohĂ©rence"* → Le chat doit lire ce protocole en PREMIER, l'appliquer phase par phase, et **dĂ©clarer** qu'il l'utilise dans sa rĂ©ponse initiale (ex: *"J'applique PROTOCOLE_MIGRATION_DOCUMENTAIRE phases A→H"*). --- ## 📚 RĂ©fĂ©rence dans CODEX Le `codex_module.py` doit gĂ©nĂ©rer une section : ```md ## Protocoles disponibles - 📜 [PROTOCOLE_MIGRATION_DOCUMENTAIRE.md](MNEMOSYNE/01_LOIS/PROTOCOLE_MIGRATION_DOCUMENTAIRE.md) → Pour migrations de versions et harmonisations doctrinales ``` --- ## 📝 Historique d'application | Date | Version | Phases appliquĂ©es | DurĂ©e totale | RĂ©alisĂ© par | |---|---|---|---|---| | 25/04/2026 | v10.0.3 → v10.1.0 | A1, A2, A3, B1-B3, C, D, E, F, G, H | (en cours) | Claude Opus | --- **Fin du protocole.** --- _Migre F:->C: par docs_portability_light 2026-05-10_