{"ok": true, "version": "v1.0", "doctrine": "Tout ce qu'un chat OLYMPUS peut faire pour parler/orchestrer/déléguer.", "sections": {"1_COMMUNICATION_INTER_CHATS": {"but": "Parler à un autre chat (1018, 114, 104, cowork-dispatch)", "endpoints": [{"verb": "POST", "url": "/api/hermes/ask", "body": "{\"from_chat\":\"118\",\"to_chat\":\"114\",\"question\":\"...\"}", "explication": "Demande synchrone à un chat existant. Wake via claude --resume natif (~30s-5min). Réponse via FUSION_INBOX."}, {"verb": "POST", "url": "/api/hermes/broadcast", "body": "{\"from_chat\":\"118\",\"to_chats\":[\"114\",\"1018\"],\"question\":\"...\"}", "explication": "Demande à PLUSIEURS chats en parallèle."}, {"verb": "POST", "url": "/api/hermes/notif/post", "body": "{\"from_id\":\"118\",\"to_ids\":[\"114\"],\"title\":\"[T1]...\",\"body\":\"...\"}", "explication": "Notif structurée [T0/T1/T2] dans FUSION_INBOX. Pour livraisons, alertes, bumps."}, {"verb": "GET", "url": "/api/hermes/notif/unread?chat_id=118-WINDOWS", "body": "", "explication": "Lire tes messages non lus."}, {"verb": "GET", "url": "/api/hermes/who", "body": "", "explication": "Qui est ACTIF/OUVERT/DORMANT (perception chats)."}, {"verb": "GET", "url": "/api/hermes/memoire?limit=20", "body": "", "explication": "Derniers résumés de tours des autres chats."}], "regle": "Tout autre canal est DEPRECIE (L9). Pas d'écriture directe dans FUSION_INBOX.md."}, "2_ORCHESTRATION_PYRAMIDE": {"but": "Faire faire une tâche par la pyramide NIV_0/1/2 (L26)", "endpoints": [{"verb": "POST", "url": "/api/orchestrate", "body": "{\"prompt\":\"...\",\"force_delegate\":null}", "explication": "Pyramide auto. NIV_0 décide : faire OU déléguer Ollama. Retourne final_answer."}, {"verb": "POST", "url": "/api/orchestrate/spawn_visible", "body": "{\"initial_prompt\":\"...\",\"parent_chat_id\":\"118\",\"depth\":1}", "explication": "Crée un VRAI onglet Claude visible dans Desktop sidebar (max_depth=3)."}, {"verb": "GET", "url": "/api/orchestrate/health", "body": "", "explication": "Vérif que claude.exe + NEXUS accessibles."}, {"verb": "GET", "url": "/api/orchestrate/example", "body": "", "explication": "Exemples curl prêts à copier-coller."}], "regle": "max_depth=3 (anti-incendie récursion infinie). Toujours auditer caller."}, "3_DELEGATION_OLLAMA_ESCLAVE": {"but": "Déléguer une tâche routinière à un Ollama local (0$ + L27)", "endpoints": [{"verb": "POST", "url": "/api/brain/claude_subprocess", "body": "{\"prompt\":\"parse ce texte\",\"model\":\"mistral\",\"timeout_s\":60}", "explication": "Spawn esclave sur Ollama local. Gratuit. ~10s warm."}, {"verb": "POST", "url": "/api/sphere/delegate", "body": "{\"prompt\":\"...\"}", "explication": "Délégation directe Ollama (sans pipeline complexe)."}, {"verb": "POST", "url": "/api/sphere/assist_pipeline", "body": "{\"prompt\":\"...\"}", "explication": "Pipeline scrape+structure via Ollama (briques)."}, {"verb": "GET", "url": "/api/sphere/delegation_force", "body": "", "explication": "Slider 0-10 (LGS barre Goku/Végéta). 0=jamais déléguer, 10=tout déléguer. Défaut=5."}], "regle": "L27 : avant délégation → check slider. Si > 0 → annonce '🤖 délégué Ollama : <prompt>' (transparence)."}, "4_TASK_MEMORY_TLEVELS": {"but": "Gérer ta TODO, tes T-levels, ta mémoire de tâches", "endpoints": [{"verb": "GET", "url": "/api/todo/<MY_ID>", "body": "", "explication": "Tes projets/steps. status: pending/in_progress/done."}, {"verb": "POST", "url": "/api/todo/<MY_ID>/project/<P>/step/add", "body": "[{\"title\":\"[T1] desc\"}]", "explication": "Ajoute une step."}, {"verb": "POST", "url": "/api/todo/<MY_ID>/project/<P>/step/<S>/done", "body": "", "explication": "Marque DONE quand fini."}, {"verb": "GET", "url": "/api/tlevels/<MY_ID>/tree", "body": "", "explication": "Ta hiérarchie T0 (mission fond) · T1 actifs · T2 sous · T3 privé."}], "regle": "L17 cycle : LIRE TODO/INBOX → RÉPONDRE Vivien → ÉCRIRE step done + nouvelle si besoin."}, "5_GUICHETS_DOCUMENTATION": {"but": "Voir TOUS les endpoints avec doc auto + tests", "endpoints": [{"verb": "GET", "url": "http://127.0.0.1:10001/docs", "body": "", "explication": "Swagger UI : TOUS endpoints groupés par tag, cliquables, 'Try it out' pour tester."}, {"verb": "GET", "url": "/openapi.json", "body": "", "explication": "Schéma JSON brut de tous les endpoints (pour scripts)."}, {"verb": "GET", "url": "/api/discover?concept=<X>", "body": "", "explication": "P3 obligatoire : avant TOUT nouveau code, scan si concept existe déjà."}, {"verb": "GET", "url": "/api/hermes/help", "body": "", "explication": "Ce que tu lis maintenant. Annuaire complet HERMES + orchestration + délégation."}], "regle": "L5 : P3 systématique avant tout code (évite doublon)."}}, "doctrine_resume": ["L9 HERMES = canal UNIQUE inter-chats (tout autre déprécié)", "L10 INBOX = 1 SEUL fichier FUSION_INBOX.md", "L17 CYCLE : LIRE → RÉPONDRE → ÉCRIRE chaque tour", "L26 HIÉRARCHIE : NIV_0 dispatche · NIV_1 raisonne · NIV_2 Ollama exécute", "L27 DÉLÉGATION : tâche routinière → Ollama d'office (slider Goku/Végéta dans LGS)"], "pour_aller_plus_loin": "GET /api/hermes/protocole (doctrine complète HERMES)", "doctrine_rappel_global": ["Scan triple AVANT action : T1 MCPs facade (mcp__olympus-*) > T2 HTTP /api/* > T3 Bash/Python ad-hoc (DOCTRINE_GOD_OUTILS)", "Aucun chat ne doit ignorer les outils de Dieu (Vivien 15/05)", "AVANT TOUT CODE : GET /api/discover?concept=<X> (P3 systematique)", "Canal officiel inter-chats = HERMES v3 : POST /api/hermes/write {from_chat,to_chat,mode,content} avec mode=ask|wake|peek (doctrine MNEMOSYNE/01_LOIS/HERMES_1_ENDPOINT.md)", "Modes HERMES : ask=commande directe (spawn claude.exe, 30s-2min) · wake=visible Desktop · peek=trace lecture passive (dedup 5min, instantane)", "Annuaire : GET /api/hermes/who (chats vivants) · Etat : GET /api/hermes/status · Sante : GET /api/hermes/health", "Reveil auto : ecris @<chat_id> dans ta reponse, le watcher declenche HERMES write mode=ask vers ce chat AUTO (depth max 3). Doc : FONCTIONS_NEXUS/WAKE_AUTO.md", "TODO/PROJETS = LE FIL (loi Vivien 11/06) : formulaire T0/T1/T2 par projet, chaque ligne SIGNEE — GET /api/fil/apercu avant de creer, POST /api/fil/projet/<id>/remplir {parent,titre,par}. ECRITURE GELEE (HTTP 409) sur /api/todo, /api/tlevels, /api/projects -> SEUL le FIL ecrit (lecture toleree). AUTO-CAPTURE (14/06) : un robot lit ton travail et pose tes todos claires dans le projet CAPTURE_AUTO chaque nuit (3h) -> rien ne se perd. Doctrine : MNEMOSYNE/01_LOIS/DOCTRINE_FIL_FORMULAIRE.md"], "_middleware": "doctrine_v2_asgi"}