> ⚠️ **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`. # 🧪 DOCTRINE SANDBOX-FIRST OLYMPUS > **Type** : loi de fonctionnement (référence absolue) > **Version** : v1.0 — 28/04/2026 > **Statut** : doctrine active. Toute violation = à signaler. > **Pour qui** : Claude (toutes versions), tous les chats, tout dev humain. --- ## ⚡ Principe central > **Tout nouvel outil que Claude fabrique pour Vivien naît dans la sandbox, jamais ailleurs. Il ne passe en officiel qu'après validation explicite de Vivien.** Pour toi (Vivien) en mots simples : > *Quand Claude crée une page, un bouton, un widget, un nouveau truc — il le met dans un dossier « brouillon » par défaut. Tu peux y accéder, le tester. Une fois que tu valides, c'est moi (Claude) qui le déplace dans le vrai endroit du Cockpit. Avant ça, ça reste en brouillon.* --- ## 🎯 Pourquoi cette doctrine Avant cette règle, Claude créait des outils (widgets, endpoints, pages) qui se retrouvaient : 1. **Soit nulle part** (juste un lien dans le chat, perdu après) 2. **Soit en prod direct** (dans le Cockpit, sans validation) Les deux sont mauvais : - « Nulle part » = Vivien perd la trace - « Prod direct » = pas de phase de test, surcharge le Cockpit La sandbox est le **bon milieu** : visible, utilisable, testable, mais pas en officiel tant que pas validé. --- ## 📂 Emplacements officiels de la sandbox | Type d'outil | Sandbox | Officiel (après validation) | |---|---|---| | Page HTML statique | `01_SERVEUR/NEXUS/Cockpit/statique/_sandbox/` | `01_SERVEUR/NEXUS/Cockpit/statique/` | | Mini-application | `01_SERVEUR/NEXUS/Cockpit/apps/_sandbox/` | `01_SERVEUR/NEXUS/Cockpit/apps/` | | Module Python | `01_SERVEUR/NEXUS/AXIOM/_sandbox/` (à créer) | `01_SERVEUR/NEXUS/AXIOM/` | | Connecteur MCP | `AGORA/connecteurs_maison/_sandbox/` (à créer) | `AGORA/connecteurs_maison/` | --- ## 🔄 Workflow standard ### Étape 1 — Création Claude fabrique un nouvel outil. **Par défaut**, il le crée dans le dossier sandbox approprié. Il l'inscrit immédiatement dans le **CATALOGUE_FONCTIONS.md** avec le statut `🧪 sandbox`. ### Étape 2 — Notification Claude annonce à Vivien : > « J'ai créé X dans la sandbox. Lien : http://127.0.0.1~~:10001~~ → :10001/statique/_sandbox/X.html · Tu peux tester. » ### Étape 3 — Test par Vivien Vivien ouvre le lien depuis le **widget Atelier OLYMPUS** (visible depuis ZEUS). Il teste, donne du feedback. ### Étape 4 — Validation ou itération - **Si OK** → Vivien dit « valide X » → Claude **déplace** le fichier dans l'emplacement officiel + met à jour le catalogue (statut `✅ actif`). - **Si KO** → Claude itère dans la sandbox (sans toucher l'officiel). ### Étape 5 — Archivage si abandon Si Vivien dit « jette X » → Claude **archive** dans `09_ARCHIVES/sandbox_abandons_TIMESTAMP/` (Mona Lisa : pas de suppression). Statut `📦 archivé` dans le catalogue. --- ## 🚦 Cas particuliers ### Outil critique au système Si Claude doit créer un outil **bloquant** (ex : auto-fix au boot CERBER), exception possible mais : 1. Claude doit annoncer explicitement « je dépasse la sandbox parce que X » 2. Snapshot Mona Lisa avant 3. Validation **a posteriori** de Vivien dans la session ### Modification d'outil existant Modifier un outil **déjà en officiel** suit Mona Lisa (snapshot + modif). Pas besoin de passer par la sandbox. ### Hotfix urgent Si Vivien demande un fix critique sur un outil officiel, Claude le fait directement (toujours avec snapshot). --- ## 🧰 Outils support de la doctrine - **CATALOGUE_FONCTIONS.md** : `MNEMOSYNE/02_ETAT/CATALOGUE_FONCTIONS.md` — index de tout ce qui existe - **Atelier OLYMPUS** : `01_SERVEUR/NEXUS/Cockpit/statique/atelier_olympus.html` — vue HTML du catalogue - **Endpoint `/api/atelier/inventory`** : scan filesystem + génération JSON - **Tuile Cockpit « 🧪 Atelier »** : accès rapide depuis le Cockpit --- ## 🔗 Lien avec les autres doctrines | Doctrine | Lien avec Sandbox-First | |---|---| | **Mona Lisa** | Snapshot avant tout passage prod ; archivage des abandons | | **Auto-Cohérence (R29)** | Catalogue maintenu auto par drift_audit | | **Vocabulaire Tolérant (R34)** | « sandbox » est le terme officiel — pas « brouillon », pas « WIP », pas « test » | --- ## 📝 Historique | Date | Version | Changement | Auteur | |---|---|---|---| | 28/04/2026 | v1.0 | Création — formalisation après échange avec Vivien sur le manque de visibilité des outils créés | Claude Sonnet 4.6 + Vivien | --- **Fin de la doctrine.**