sync: scission owner/template + brain-template-export + BRAIN_MODE guard + /visualize scope filter + port orphelins fix

This commit is contained in:
2026-03-21 02:34:47 +01:00
parent 78323a0094
commit 2fd53cce8e
93 changed files with 6953 additions and 684 deletions

107
wiki/cold-start.md Normal file
View File

@@ -0,0 +1,107 @@
# Cold Start — Brain Run
> Nouveau cerveau. Nouvelle machine. Prêt en 5 minutes.
---
## TL;DR
```bash
git clone git@git.tetardtek.com:Tetardtek/brain.git ~/Dev/Brain
bash ~/Dev/Brain/scripts/brain-setup.sh prod ~/Dev/Brain
```
C'est tout. Le script fait le reste.
---
## Ce que fait `brain run`
```
brain-setup.sh <brain_name> <brain_root>
├── ✅ Vérifie la clé SSH Gitea
├── ✅ Clone les 6 satellites
│ profil/ · todo/ · toolkit/ · progression/ · reviews/ · wiki/
├── ✅ Configure ~/.claude/CLAUDE.md
├── ✅ Crée brain-compose.local.yml
├── ✅ Vérifie MYSECRETS (warning si absent)
└── ✅ Locke le kernel en readonly (si machine laptop)
```
Après le script, une seule chose à faire manuellement : créer `MYSECRETS`.
---
## MYSECRETS — le seul fichier manuel
```bash
# ~/Dev/BrainSecrets/MYSECRETS — jamais commité, jamais affiché
BRAIN_TELEGRAM_TOKEN=...
BRAIN_TELEGRAM_CHAT_ID=...
SUPER_OAUTH_DISCORD_CLIENT_SECRET=...
SUPER_OAUTH_GITHUB_CLIENT_SECRET=...
SUPER_OAUTH_GOOGLE_CLIENT_SECRET=...
SUPER_OAUTH_TWITCH_CLIENT_SECRET=...
```
Structure complète : voir `MYSECRETS.example` dans le repo.
---
## Machines reconnues
| Machine | brain_name | Peut pusher |
|---------|------------|-------------|
| Desktop (principal) | `prod` | kernel + satellites |
| Laptop | `prod-laptop` | satellites seulement |
| VPS | — | brain-bot seulement |
> Le kernel brain ne se push **que** depuis le desktop principal.
> Le laptop peut pull, lire, et pusher ses propres satellites (todo, progression...).
---
## Première session après install
```
Bon jour !
```
helloWorld démarre, lit le contexte, ouvre le claim BSI, et présente l'état des projets.
Si c'est vraiment la première fois : ratio = 0, backlog = vide → le coach le détectera.
---
## Rotation secrets OAuth (si nécessaire)
```bash
# Après avoir rempli MYSECRETS avec les nouveaux secrets :
bash ~/Dev/Brain/scripts/archive/rotate-oauth-secrets.sh
```
Injecte les 4 secrets sur le VPS et redémarre SuperOAuth.
> Script archivé — vérifier s'il est toujours applicable avant de l'utiliser.
---
## Warm restart vs cold start
| | Cold start | Warm restart |
|---|---|---|
| Contexte | Bootstrap complet 5 fichiers | 1 fichier checkpoint.md |
| Durée | 2-3 min | < 30 sec |
| Quand | Nouvelle machine, ou pas de checkpoint | `/checkpoint` fait avant |
| Commande | Boot normal | `Lis brain/workspace/<sprint>/checkpoint.md et reprends` |
---
## Troubleshooting
**SSH refused** → clé SSH pas ajoutée dans Gitea (Settings → SSH Keys → Add Key)
**MYSECRETS manquant** → secrets-guardian avertit au boot, pas bloquant pour le dev local
**Satellites pas clonés** → relancer `brain-setup.sh` (idempotent)
**Laptop veut pusher le kernel** → normal, le remote est locké en `no_push` — pusher depuis le desktop

107
wiki/concepts.md Normal file
View File

@@ -0,0 +1,107 @@
---
name: concepts
type: reference
context_tier: on-demand
---
# Brain — Concepts & Découvertes
> Insights théoriques émergés en session.
> Pas encore des décisions (ADR), pas encore des patterns validés — mais trop importants pour rester dans un chat.
> Format : date + titre + essentiel en 3-4 lignes.
---
## 2026-03-15 — SQLite comme organe manquant
> Source : sess-20260315-1942-memory-coach
Le brain stocke dans des `.md` — il ne pense pas sur ses propres données.
SQLite comme **index dérivé** résout ça : les `.md` restent souverains, SQLite est une projection requêtable reconstruite par cron.
Règle fondamentale : brain-engine ne touche jamais aux sources. Lecture seule. Retrograde garanti depuis git.
C'est le substrat sans lequel les agents autonomes n'ont rien à lire.
---
## 2026-03-15 — Autonomie graduée avec escalade décisionnelle
> Source : sess-20260315-1942-memory-coach
Le cycle ne nécessite pas d'intervention humaine — sauf sur les couches décisionnelles à effet externe irréversible.
C'est le rouage central de l'orchestration en équipes solides : chaque agent sait jusqu'où il va seul, et quand il escalade.
Sans ce principe, une équipe d'agents est imprévisible. Avec lui, les frontières sont composables.
---
## 2026-03-15 — Loi d'auto-amélioration (candidat constitution v1.1.0)
> Source : sess-20260315-1942-memory-coach
> "Le brain ne s'endommage jamais lui-même. Il s'améliore. Il se façonne. C'est l'outil ultime."
Toute action autonome sur le brain doit le laisser dans un état meilleur ou égal à l'état initial.
Un agent autonome ne peut pas : supprimer un fichier source, modifier un invariant, écraser un contexte sans backup.
Couplée à la constitution immutable + git retrograde → l'auto-modification devient sûre par construction.
---
## 2026-03-15 — Émergence par composition
> Source : sess-20260315-1942-memory-coach
Des principes bien posés ne s'additionnent pas — ils se multiplient.
Autonomie graduée × auto-amélioration × retrograde garanti = propriétés nouvelles non planifiées.
Signal d'architecture juste : les bonnes architectures génèrent des propriétés émergentes. Les mauvaises génèrent des exceptions.
Le brain en est la preuve — chaque session révèle des vecteurs nouveaux sur des principes qu'on croyait déjà étendus.
---
## 2026-03-15 — Sub-agents cron comme pipeline ETL du brain
> Source : sess-20260315-1942-memory-coach
Pattern : décharger d'un côté (sources brutes), transformer au milieu (plus-value), réinjecter de l'autre (brain enrichi).
Le retour n'est pas une copie — c'est de l'**information nouvelle** absente de la source.
Cron en fin de journée = rythme juste (ni temps réel inutile, ni hebdomadaire trop lent).
Alimente d'autres instances → multiplie la capacité d'apprentissage cross-sessions.
---
## 2026-03-15 — ⭐ North Star : le brain doit valoir sans Claude
> Source : sess-20260315-1942-memory-coach
> "À part la valeur ajoutée d'être connecté à Claude."
Brain V1 : sans Claude, c'est un dossier markdown bien organisé. La valeur est entièrement dans la connexion.
Brain V2 : le cron tourne, SQLite se remplit, les agents apprennent, le wiki s'alimente — sans session, sans humain, sans Claude.
Claude devient UNE interface parmi d'autres. La dépendance décroît.
**C'est le nord étoile du brain V2.**
BE-1 n'est pas une feature — c'est le début de l'autonomie réelle du brain.
Un système qui a de la valeur sans toi et sans Claude est un vrai outil. Tout le reste est de l'organisation.
---
## 2026-03-19 — Nomenclature Brain / Cortex / Cosmos
> Source : sess-20260319-bsi-db-origin-story — émergé pendant brainstorm template + multi-machine
Trois noms, trois couches, trois responsabilités :
```
Brain = le kernel. Immuable, Layer 0. Constitution, KERNEL.md, agents fondamentaux.
C'est l'identité — ce qui reste quand tout le reste est retiré.
Cortex = la couche de coordination. BSI, claims, locks, brain-engine, MCP, peer discovery.
C'est le système nerveux — il route les signaux entre les instances.
Cosmos = les satellites en orbite. Projets, toolkit, progression, reviews, visualisation UMAP.
C'est la constellation — chaque point est un chunk de connaissance, visible dans /visualise.
```
**Origine :** "Cosmos" nommé quand on a créé la page `/visualise` (galaxie UMAP 3D). "Cortex" émergé quand le brain-template est devenu le "cortex-template" distributable. "Brain" était là depuis le jour 1.
**Règle :** le Brain est souverain (un seul par machine). Le Cortex coordonne (N instances communiquent). Le Cosmos est répliqué (master→replica, ADR-038).
---

202
wiki/multi-instance.md Normal file
View File

@@ -0,0 +1,202 @@
# Multi-instance — Guide pratique
> Comment lancer plusieurs instances Claude Code simultanément sans conflit.
---
## Ce que "simultané" veut dire
Chaque instance est une **fenêtre Claude Code indépendante**, ouverte en même temps.
Elles partagent le même repo git — mais le protocole BSI garantit qu'elles ne s'écrasent pas.
```
Fenêtre 1 (coach/discussion) → lit, propose, décide
Fenêtre 2 (travail terrain) → écrit du code dans superoauth/
Fenêtre 3 (brain maintenance) → met à jour agents/, wiki/
Les 3 tournent en même temps. Zéro conflit si le protocole est respecté.
```
---
## Protocole de lancement d'une nouvelle instance
### 1. Ouvrir le claim (avant d'écrire quoi que ce soit)
```yaml
# claims/sess-YYYYMMDD-HHMM-<slug>.yml
sess_id: sess-20260317-1000-superoauth-auth
type: satellite
scope: superoauth/src/auth/ ← périmètre exclusif de cette instance
agent: satellite-boot
status: open
opened_at: "2026-03-17T10:00"
story_angle: "Refacto module auth — JWT + session"
satellite_type: code
satellite_level: leaf
parent_satellite: <sess-id-du-pilote>
on_done: notify → pilote
on_fail: signal → BLOCKED_ON pilote
```
Commiter + pusher immédiatement :
```bash
git add claims/sess-*.yml
bash scripts/brain-index-regen.sh
git add BRAIN-INDEX.md
git commit -m "bsi: open satellite sess-20260317-1000-superoauth-auth"
git push
```
→ Les autres instances voient le claim dans `brain-status.sh` et `BRAIN-INDEX.md`.
---
### 2. Avant chaque écriture — pre-flight
```bash
bash scripts/preflight-check.sh check "$SESS_ID" "<filepath>"
```
Les 6 checks (automatiques) :
| # | Check | Bloque si… |
|---|-------|------------|
| 1 | Claim open | claim fermé, en pause, ou gate:human actif |
| 1b | Parent ok | pilote parent en pause ou failed |
| 2 | Scope | fichier hors scope déclaré |
| 3 | Zone:kernel | instance non-kernel tente d'écrire agents/scripts/etc. |
| 4 | Lock | autre instance a un lock actif sur ce fichier |
| 5 | Circuit breaker | trop d'échecs consécutifs (défaut : 3) |
| 6 | Branch | mauvaise branche git vs theme_branch déclaré |
---
### 3. Mutex pour les fichiers partagés (mode rendering / multi-instances)
Si deux instances peuvent vouloir écrire le même fichier :
```bash
# Avant d'écrire
bash scripts/file-lock.sh acquire "<filepath>" "$SESS_ID" 30
# → exit 1 = déjà locké → attendre ou signal BLOCKED_ON
# [écriture]
# Après avoir écrit
bash scripts/file-lock.sh release "<filepath>" "$SESS_ID"
# Enregistrer le résultat pour le circuit breaker
bash scripts/preflight-check.sh reset "$SESS_ID" # succès
bash scripts/preflight-check.sh fail "$SESS_ID" # échec
```
---
### 4. Voir ce que font les autres instances
```bash
bash scripts/brain-status.sh # vue complète
bash scripts/brain-status.sh claims # qui travaille où
bash scripts/brain-status.sh locks # fichiers verrouillés
bash scripts/brain-status.sh signals # signaux en attente
```
---
### 5. Pause d'urgence (arrêter tout)
```bash
# Depuis n'importe quelle instance ou le pilote
bash scripts/human-gate-ack.sh pause "<sess-pilote>" "raison"
# → tous les satellites enfants sont stoppés en cascade
# → pre-flight bloquera toute écriture
# Reprendre
bash scripts/human-gate-ack.sh resume "<sess-pilote>"
```
---
### 6. Close propre
```bash
# Ajouter result: dans le claim
# Puis :
bash scripts/brain-index-regen.sh
git add BRAIN-INDEX.md claims/<sess-id>.yml
git commit -m "bsi: close satellite <sess-id>"
git push
```
---
## Règles de non-collision
| Règle | Mécanisme |
|-------|-----------|
| Deux instances ne partagent pas le même scope | BRAIN-INDEX + pre-flight CHECK 2 |
| Pas d'écriture kernel sans mandat kernel | pre-flight CHECK 3 (soft lock) |
| Pas d'écriture simultanée sur le même fichier | file-lock.sh (BSI-v3-7) |
| Un satellite mort ne bloque pas les autres | TTL sur les locks (défaut 60min) |
| Un pilote paused stoppe ses enfants | cascade human-gate-ack.sh (BSI-v3-5) |
| 3 échecs consécutifs = arrêt forcé | circuit breaker pre-flight CHECK 5 |
---
## Cas d'usage typiques
### Coach + travail terrain simultanés
```
Instance 1 : scope brain/ → discussion, décisions, lecture
Instance 2 : scope superoauth/ → code, tests, deploy
```
Pas de conflit possible : scopes disjoints.
### Deux satellites sur le même projet
```
Instance A : scope superoauth/src/auth/ → JWT refacto
Instance B : scope superoauth/src/api/ → endpoints REST
```
Scopes disjoints → pas de lock nécessaire.
Si un fichier est partagé (ex: types.ts) → file-lock.sh obligatoire.
### Mode rendering (instance autonome projet)
```yaml
mode: rendering
scope: superoauth/ ← seul périmètre autorisé
```
- zone:kernel → BLOCKED_ON immédiat (pre-flight CHECK 3)
- circuit_breaker : 3 fails → arrêt + signal pilote
- mutex sur chaque fichier écrit (file-lock.sh)
### BaaS — client vs owner
```
kerneluser: true → owner — accès complet, peut forger le kernel
kerneluser: false → client — rendering mode, zone:project uniquement
```
---
## Référence rapide
```bash
# Voir l'état global
bash scripts/brain-status.sh
# Lancer le pre-flight avant d'écrire
bash scripts/preflight-check.sh check "$SESS_ID" "$FILE"
# Locker un fichier
bash scripts/file-lock.sh acquire "$FILE" "$SESS_ID" 30
# Pause d'urgence
bash scripts/human-gate-ack.sh pause "$SESS_PILOTE" "raison"
# Gate:human planifié
bash scripts/human-gate-ack.sh gate "$SESS_ID" "deploy ok ?"
bash scripts/human-gate-ack.sh approve "$SESS_ID"
```

77
wiki/patterns.md Normal file
View File

@@ -0,0 +1,77 @@
# Brain — Référence Patterns
> Patterns 1-N validés en prod. Source complète : `profil/orchestration-patterns.md`.
---
| # | Nom | Problème résolu | Forgé |
|---|-----|----------------|-------|
| 1 | Session-as-identity | Sessions parallèles sur une machine — routing par slug | 2026-03-14 |
| 2 | Passive listener | Agent écoute sans charger de contexte lourd au boot | 2026-03-14 |
| 3 | Parallel session handoff | Handoff entre deux sessions parallèles (CHECKPOINT signal) | 2026-03-14 |
| 4 | Context-tier split | Scinder un agent always lourd en header (always) + détail (warm) | 2026-03-15 |
| 5 | BHP validation | 4 greps de validation always-tier + convention CI brain | 2026-03-15 |
| 6 | HumanSupervisor | Extraire la logique d'exécution — laisser à l'humain les bifurcations décisionnelles | 2026-03-14 |
| 7 | Todo → KANBAN Sprint Setup | Todo structuré → KANBAN avec prompts autonomes prêts à coller | 2026-03-15 |
| 8 | Context Compact Checkpoint | Warm restart < 30 sec via checkpoint.md — vs cold bootstrap 2-3 min | 2026-03-15 |
| 9 | Kanban Pipeline Flow | Boot minimal scopé → work → wrap → kanban-scribe → états `✅`/`🤖` → viabilité agent | 2026-03-15 |
| 10 | Pilot + Satellites | Session pilote garde le contexte riche — satellites minimaux résolvent les sous-problèmes et remontent le résultat | 2026-03-16 |
| 11 | Session Ending Standard | Wrap toujours = Résumé session + Retour coach + Prompt session suivante | 2026-03-16 |
---
## Pattern 7 — Usage rapide
```
1. Todo structuré (chaque tâche : agents, input, output, prérequis)
2. "Génère le KANBAN depuis brain/todo/<fichier>.md"
3. → workspace/<sprint>/kanban.md créé avec prompts prêts
4. Envoyer les prompts carte par carte (ou en parallèle si pas de dépendance)
5. [ ] → [x] + commit à chaque carte terminée
```
## Pattern 8 — Usage rapide
```
En session : /checkpoint → checkpoint.md écrit
Warm restart : "Lis brain/workspace/<sprint>/checkpoint.md et reprends"
```
## Pattern 10 — Usage rapide (Pilot + Satellites)
```
Session pilote → contexte riche, vision, décisions archi
→ identifie un sous-problème bloquant
→ génère un prompt satellite minimal
Session satellite → contexte minimal, tâche unique
→ résout et remonte le résultat dans la pilote
→ se ferme proprement (claim + wrap)
Session pilote → intègre le résultat, continue d'avancer
```
Règle : la pilote ne descend jamais dans le détail d'implémentation.
Elle délègue, intègre, décide.
## Pattern 11 — Usage rapide (Session Ending Standard)
```
1. Résumé session → ce qui a été livré (jalons, commits, décisions)
2. Retour coach → progression observée + point à surveiller
3. Prompt suivant → copier-coller prêt pour la prochaine session
```
S'applique à toute session pilote au wrap. Non-négociable.
## Pattern 9 — Usage rapide
```
1. "brain boot mode <scope>" → claim BSI ouvert, agent chargé, prêt en 5 lignes
2. Travailler sur le scope
3. "wrap" → kanban-scribe lit le claim scope
→ todo/<scope>.md mis à jour
→ ✅ si intervention humaine / 🤖 si autonome
→ BSI close + push
4. 🤖 accumulés → scope validé → entre dans le toolkit
```

139
wiki/session-lifecycle.md Normal file
View File

@@ -0,0 +1,139 @@
# Brain — Cycle de vie d'une session
> Ce qui se passe du premier message au dernier commit.
---
## Boot (automatique)
```
Message utilisateur
CLAUDE.md charge :
0. PATHS.md — chemins machine
1. collaboration.md — règles de travail
2. coach.md — présence permanente
3. secrets-guardian.md — écoute passive MYSECRETS
4. helloWorld.md — briefing + CHECKPOINT + détection session
helloWorld → ouvre claim BSI + push immédiat
session-orchestrator reçoit le handoff :
→ détecte session_type + scope
→ détermine handoff_level (NO / SEMI / SEMI+ / FULL)
→ charge les couches correspondantes
→ active la position (rôle contextuel)
```
**Handoff levels :**
| Level | Contexte chargé |
|-------|----------------|
| `NO` | Layer 0 seulement (kernel + constitution + paths + collaboration) |
| `SEMI` | Layer 0 + position |
| `SEMI+` | SEMI + focus.md + projets/<scope> + todo/<scope> |
| `FULL` | SEMI+ + Layer 2 : workspace actif + handoffs |
---
## Work
- Agents invoqués sur domaine détecté (auto) ou sur demande explicite
- `/btw` disponible à tout moment pour aparté sans casser le fil
- `/checkpoint` recommandé avant compactage ou si sprint > 2h
---
## Close — séquence obligatoire
> Déclenchée par : `fin` | `on wrappe` | `je ferme` | `c'est bon`
> Source de vérité close sequences par type : `wiki/session-matrix.md`
> Decision tree runtime : `agents/session-orchestrator.md ## boot-summary`
```
Étape 0 — Checkpoint (si sprint actif)
→ Écrire workspace/<sprint>/checkpoint.md
→ Permet warm restart à la prochaine session
Étape 1 — metabolism-scribe ← TOUJOURS (15 types)
→ tokens_used, context_peak, duration, agents_loaded
→ commits, todos_closed, health_score (formule par profil), handoff_level
→ type : use-brain | build-brain | explore-brain | auto
Étape 2 — todo-scribe ← RÈGLE INVIOLABLE
→ Tout item complété pendant la session → [x] dans backlog.md
→ Mettre à jour la table métriques (✅ Done +N, ⬜ Open -N)
→ Si aucun item fermé → écrire pourquoi dans changelog backlog
→ Commit : "backlog: close <item-id> — <titre court>"
Étape 3 — todo-scribe [si work | sprint | debug | brainstorm]
→ ✅ todos fermés
→ ⬜ todos émergés capturés
Étape 4 — wiki-scribe [si nouveau pattern/commande/agent forgé]
→ Ajouter terme dans vocabulary.md
→ Créer/mettre à jour la page wiki concernée
→ Commit : "wiki: vocabulary +N terms — <domaine>"
Étape 5 — scribe [si session significative]
→ brain/ : focus, projets/, AGENTS si nouvel agent
Étape 6 — coach [rapport de session — si coach actif]
⚡ Rapport de session — <sess-id>
Ce qui a été produit : <liste concrète>
Pattern observé : <observation — 1 ligne>
Point à ancrer : <concept ou réflexe>
Objectif suivant : <1 action concrète mesurable>
→ BLOCKING — attend réponse ou /exit
Étape 7 — BSI close claim ← NON NÉGOCIABLE
→ status: open → closed dans claims/<sess-id>.yml
→ git commit + push brain/
→ rm session-role + pid
```
### Close sequences par type de session
| Type | Sequence (etapes actives) |
|------|--------------------------|
| `audit` | 1 (metabolism) → rapport audit → 7 (BSI close) |
| `brain` | 1 → 5 (scribe) → 6 (coach) → 7 |
| `brainstorm` | 1 → 3 (todo si todos emerges) → 7 |
| `capital` | 1 → capital-scribe → 6 (coach) → 7 |
| `coach` | 1 → coach-scribe → 7 |
| `debug` | 1 → 2 + 3 (todo) → 6 (coach) → 7 |
| `deploy` | 1 → 5 (scribe infra) → 7 |
| `edit-brain` | 1 → 5 (scribe) → 6 (coach) → 7 |
| `handoff` | 1 → 7 |
| `infra` | 1 → 5 (scribe si changement config) → 7 |
| `kernel` | 1 → 7 |
| `navigate` | 1 → 7 |
| `pilote` | 1 → 4 (wiki) → 5 (scribe) → 6 (coach) → 7 |
| `urgence` | 1 → post-mortem scribe → 7 |
| `work` | 1 → 2 + 3 (todo) → 5 (scribe si commit) → 6 (coach) → 7 |
---
## Règle inviolable backlog (étape 2)
> Sans cette règle, le backlog devient un cimetière de todos. La métrique de vélocité reste à zéro.
**Ce qui est obligatoire :**
- Chaque item touché pendant la session → [x] si terminé, note si partiel
- Table métriques recalculée avant le commit
- Un commit `backlog: close ...` par item fermé (ou un commit groupé si plusieurs)
**Ce qui est interdit :**
- Fermer la session sans avoir vérifié le backlog
- Marquer [x] un item non terminé (intégrité des métriques)
---
## Warm restart (Pattern 8)
Si la session se poursuit après compactage ou reprise :
```
Lis brain/workspace/<sprint>/checkpoint.md et reprends — pas de bootstrap complet.
```
Cold bootstrap : 2-3 min — Warm restart : < 30 sec.

179
wiki/vocabulary.md Normal file
View File

@@ -0,0 +1,179 @@
# Brain — Vocabulaire
> Source unique de vérité pour les termes du brain.
> Mis à jour par `wiki-scribe` en close de session quand un terme est forgé.
> `git log wiki/vocabulary.md` = timeline de croissance du vocabulaire.
---
## circuit breaker
> Forgé : 2026-03-17 | Domaine : orchestration kernel
Mécanisme de protection dans `kernel-orchestrator` : 3 échecs consécutifs sur le même scope → arrêt automatique de la séquence, signal `CIRCUIT_BREAK` vers `brain-hypervisor`, gate:human obligatoire avant reprise. Règle : jamais relancer automatiquement après 3 fails — l'humain inspecte. Script : `scripts/preflight-check.sh reset <scope>`.
## context-broker
> Forgé : 2026-03-15 | Domaine : brain système
Agent qui gère le cycle respiratoire du contexte d'un sprint. Deux temps : **inhale** (source_map en début de sprint — quels agents lisent quels fichiers) et **expire** (release_map en fin de sprint — ce qui a été touché, todos ouvertes, métriques breath). Rend le contexte traçable et libère proprement la mémoire inter-sprints.
## contention map
> Forgé : 2026-03-14 | Domaine : orchestration multi-agents
Carte produite par `tech-lead` en gate d'entrée de sprint : pour chaque fichier touché, quel agent en est l'owner et quels autres agents le touchent aussi. Permet de planifier l'ordre de commit pour éviter les conflits de merge. Input clé pour `orchestrator` et `integrator`.
## cosign
> Forgé : 2026-03-14 | Domaine : orchestration / zones
Convention de validation d'un overflow de zone par le `tech-lead`. Format obligatoire dans le message de commit de l'agent qui écrit : `tech-lead: overflow granted — <raison courte>`. Trace l'autorisation dans le git log. Sans cosign → overflow non autorisé.
## brain run
> Forgé : 2026-03-15 | Domaine : onboarding
Commande d'installation du brain sur une nouvelle machine. Une seule ligne suffit pour avoir un cerveau opérationnel. Voir `wiki/brain-setup.md` et la page [Cold Start](cold-start).
## brain_name
> Forgé : 2026-03-14 | Domaine : brain système
Identifiant de l'instance brain sur une machine (`prod`, `prod-laptop`). Défini dans `~/.claude/CLAUDE.md`. Détermine le write_mode et les permissions push.
## ASF-Brain
> Forgé : 2026-03-15 | Domaine : vision
Autonomous Software Factory — état cible où le brain peut builder un tier logiciel complet depuis un brief humain, sans intervention sur le code.
## BaaS (Brain as a Service)
> Forgé : 2026-03-15 | Domaine : vision
Modèle où le brain devient un service multi-tenant : `brain new` clone un brain pour un client, `brain sync` partage un workspace sprint. Prérequis : cockpit solo + SuperOAuth multi-tenant + OpenClaw.
## coach gate
> Forgé : 2026-03-20 | Domaine : session / coaching
Matrice de comportement du coach indexée par session type. 5 modes : **silencieux** (navigate, deploy, infra, urgence, audit — observation seule, pas de rapport), **standard** (work, debug — actif sur patterns), **engagé** (brain, brainstorm — challenger les décisions), **complet** (coach, capital — mentorat structuré), **copilote** (pilote — proactif). Spec : `agents/coach.md ## Gate par session type`.
## close decision tree
> Forgé : 2026-03-20 | Domaine : session / orchestration
Pseudo-code dans session-orchestrator qui détermine quels scribes fire et dans quel ordre pour chaque session type. Rend la close sequence auditable et déterministe — pas de logique implicite. Spec : `agents/session-orchestrator.md ## boot-summary`.
## cold start
> Forgé : 2026-03-15 | Domaine : session / onboarding
Deux sens : (1) Première session sur une nouvelle machine — `brain run` + MYSECRETS + CLAUDE.md → voir [Cold Start](cold-start). (2) Session sans checkpoint disponible → bootstrap complet ~2-3 min. Opposé : warm restart.
## BHP (Brain Hydration Protocol)
> Forgé : 2026-03-15 | Mis à jour : 2026-03-20 | Domaine : brain système
Protocole d'optimisation du contexte always-tier. Objectif : < 2 000 lignes au boot. Phase 1 = frontmatter propagé. Phase 2 = context-tier-split sur agents lourds (**terminé** — 16 agents splittés en boot-summary/detail). Spec : `wiki/context-loading.md`.
## boot-summary
> Forgé : 2026-03-20 | Domaine : BHP Phase 2
Section d'un agent contenant le minimum nécessaire pour COMMENCER à travailler : rôle (1 ligne), méthode/curseur, règles d'engagement, composition. ~20-30 lignes. Chargé en L1 par session-orchestrator quand l'agent est dans le manifest de la session. Opposé : `detail`.
## detail (agent)
> Forgé : 2026-03-20 | Domaine : BHP Phase 2
Section d'un agent contenant tout ce qu'il faut pour ALLER EN PROFONDEUR : activation, sources, périmètre complet, patterns/réflexes, anti-hallucination, ton, déclencheur, cycle de vie, changelog. Chargé en L3 sur invocation explicite ou quand l'agent est actif en session. Opposé : `boot-summary`.
## Brain Session Index (BSI)
> Forgé : 2026-03-14 | Domaine : session
Système de locking optimiste inter-sessions. Un claim par session (`claims/sess-YYYYMMDD-HHMM-slug.yml`). Les signaux dans `BRAIN-INDEX.md` permettent la communication inter-instances. Spec : `profil/bsi-spec.md`.
## Claim BSI
> Forgé : 2026-03-14 | Domaine : session
Fichier `claims/sess-YYYYMMDD-HHMM-<slug>.yml` — décrit une session ouverte (scope, instance, handoff_level, expires). Ouvert au boot par helloWorld, fermé au close par session-orchestrator.
## Checkpoint (Pattern 8)
> Forgé : 2026-03-15 | Domaine : session
Fichier `workspace/<sprint>/checkpoint.md` — capture l'état de travail en < 50 lignes pour permettre un warm restart sans bootstrap complet. Commande : `/checkpoint`. Spec : `toolkit/brain/checkpoint-pattern.md`.
## Cockpit
> Forgé : 2026-03-15 | Mis à jour : 2026-03-15 | Domaine : vision + mode
Deux sens liés : (1) Workspace v2 — couche humaine (`brief.md` + `kanban.md`) sur le workspace agent. (2) **Mode cockpit** (`brain-compose.yml`) — coach proactif qui route avant qu'on cherche + `kanban-scribe` actif automatiquement au wrap + `interprete` en écoute continue. Déclaré avec `mode: cockpit` ou `brain boot mode cockpit`.
## kanban-scribe
> Forgé : 2026-03-15 | Domaine : pipeline kanban
Agent déclenché au wrap. Lit le scope du claim BSI actif → met à jour `todo/<scope>.md` → détecte si la complétion était autonome (`🤖`) ou humaine (`✅`) → commite. Source de vérité pour la viabilité des agents : un item `🤖` = agent viable sur ce scope, candidat toolkit.
## context-tier
> Forgé : 2026-03-14 | Domaine : brain système
Niveau de chargement d'un fichier brain : `always` (chargé au boot), `warm` (chargé sur scope), `cold` (chargé sur invocation explicite), `hot` (chargé si domaine détecté).
## gate:human
> Forgé : 2026-03-14 | Domaine : orchestration / protocol
Point d'arrêt explicite dans un workflow ou un protocole agent — le brain suspend toute action et attend une réponse humaine avant de continuer. Format : `gate:human → "<message>"`. Non bypassable par l'agent lui-même. Script : `scripts/human-gate-ack.sh`. Opposé du nœud automatique.
## git-analyst
> Forgé : 2026-03-15 | Domaine : documentation / conception
Agent qui lit `git log` et produit une narration sémantique. Utilisé dans les sessions "docs par storytelling" : git-analyst → storyteller → doc agent. Transforme l'historique de commits en documentation vivante.
## Handoff Level
> Forgé : 2026-03-14 | Domaine : session
Profondeur de contexte chargé au boot : `NO` (Layer 0 seulement), `SEMI` (+ position), `SEMI+` (+ projets/todo scope), `FULL` (+ Layer 2 workspace). Déterminé par session_type × scope via `handoff-matrix.md`.
## health_score
> Forgé : 2026-03-14 | Domaine : métabolisme
Score 0-1 calculé par metabolism-scribe. Proxy de la "santé" d'une session : commits, todos fermés, agents chargés, context_peak. Seuil critique : < 0.80.
## KANBAN (Pattern 7 + pipeline)
> Forgé : 2026-03-15 | Mis à jour : 2026-03-15 | Domaine : orchestration + pipeline
Deux usages : (1) **Sprint setup** — fichier `workspace/<sprint>/kanban.md` généré depuis un todo structuré. Chaque carte = un agent + prompt autonome prêt à coller (Pattern 7). (2) **Pipeline de session** — les états `todo/<scope>.md` (`⬜→🔄→✅→🤖`) sont la source de vérité du workflow. `kanban-scribe` fait avancer les états au wrap. Un item `🤖` (validé-autonome) = signal de viabilité agent.
## Nœud humain / nœud automatique
> Forgé : 2026-03-15 | Domaine : pipeline kanban
Deux types de points de décision dans le workflow. **Nœud humain** : décision de valeur — "est-ce que ce scope mérite prod ?" — jamais de mécanique. **Nœud automatique** : `kanban-scribe` avance l'état sans intervention. Si une mécanique demande une décision humaine → agent mal conçu.
## validé-autonome (🤖) / validé-humain (✅)
> Forgé : 2026-03-15 | Domaine : pipeline kanban
États terminaux d'un item kanban. `✅` = complété avec intervention humaine au wrap. `🤖` = complété sans aucune intervention — l'agent a tourné seul du début à la fin. `🤖` = signal de viabilité : cet agent + scope peut entrer dans le toolkit.
## mode d'exécution (ADR-032)
> Forgé : 2026-03-18 | Domaine : orchestration
Propriété de la **session**, pas du workflow. Trois niveaux : **Mode 1 — manuel** (l'humain valide chaque step, gates systématiques), **Mode 2 — assisté** (l'humain valide les gates:human, steps techniques en automatique), **Mode 3 — swarm** (brain autonome, l'humain ne voit que les blocages critiques). Voir ADR-032 et **swarm-ready gate**.
## metabolism / metabolism-scribe
> Forgé : 2026-03-14 | Domaine : métabolisme
Agent de mesure de session. Calcule health_score, ratio use-brain/build-brain, context_peak, agents_loaded, durée, commits. Déclenché en step 1 du close protocol.
## overflow (de zone)
> Forgé : 2026-03-14 | Domaine : zones / orchestration
Demande d'un agent d'écrire hors de sa zone normale. Doit être soumis au `tech-lead` avec un format précis (agent demandeur, zone cible, fichier exact, raison métier, cas d'usage concret). Validé uniquement si la raison est métier — jamais pour convenance. Tracé par **cosign** dans le message de commit. Zone ABSOLU (KERNEL.md, CLAUDE.md) → humain requis, toujours.
## Pattern N
> Forgé : 2026-03-14+ | Domaine : orchestration
Convention récurrente validée en prod, capturée dans `profil/orchestration-patterns.md`. Patterns 1-8 actifs. Spec complète : `profil/orchestration-patterns.md`.
## Plateforme 2026
> Forgé : 2026-03-15 | Domaine : projet
Vision mini-game platform — SuperOAuth comme auth centrale, 4 tuiles (OriginsDigital, HP Quest, ClickerZ, TetaRdPG). Spec : `projets/plateforme-2026.md`.
## Position (brain)
> Forgé : 2026-03-14 | Domaine : session
Rôle contextuel chargé par session-orchestrator selon le session_type. Applique promote/suppress sur le contexte Layer 1. Ignoré si handoff_level = NO.
## ratio use-brain / build-brain
> Forgé : 2026-03-14 | Domaine : métabolisme
Métrique d'équilibre : sessions qui utilisent le brain (use-brain) vs sessions qui l'améliorent (build-brain). Cible : ≥ 0.60. Actuel : 0.33 🔴.
## Scribe Pattern
> Forgé : 2026-03-13 | Domaine : brain système (ADR-003)
Règle structurelle : un agent observateur ne documente jamais lui-même — il délègue toujours l'écriture à un scribe dédié. Sépare la capacité d'observation de la capacité d'écriture. Un agent peut être remplacé sans perdre la trace de sa production. Paires établies : coach → coach-scribe, session-orchestrator → metabolism-scribe, git-analyst → capital-scribe, content-orchestrator → content-scribe.
## swarm-ready gate
> Forgé : 2026-03-18 | Domaine : orchestration (ADR-032)
Quatre critères à satisfaire avant de passer un workflow en **Mode 3 — swarm** : (1) au moins un run en Mode 1 ✅, (2) au moins un run en Mode 2 ✅, (3) agents du workflow validés par `agent-review` ✅, (4) outputs structurés (rapports format strict) ✅. Sans ce gate, le mode swarm n'est pas autorisé.
## satellite
> Forgé : 2026-03-14 | Domaine : brain système
Repo Git indépendant versionné séparément du kernel brain. Liste : brain-profil, brain-todo, brain-toolkit, brain-agent-review, brain-progression. Ignoré dans le `.gitignore` du kernel.
## session-orchestrator
> Forgé : 2026-03-14 | Domaine : session
Agent propriétaire du cycle de vie de session (boot → work → close). Ne produit rien lui-même — orchestre les scribes et la séquence de fermeture. Spec : `agents/session-orchestrator.md`.
## Signal BSI
> Forgé : 2026-03-14 | Domaine : session
Message inter-sessions dans `BRAIN-INDEX.md ## Signals`. Types : READY_FOR_REVIEW, REVIEWED, BLOCKED_ON, HANDOFF, CHECKPOINT, INFO.
## SuperOAuth
> Forgé : 2026-03-13 | Domaine : projet
Auth centrale de la plateforme 2026. Express + JWT + Redis + MySQL. Provider OAuth universel multi-tenant. Tier 3 ✅ (2026-03-17). Repo : `~/Dev/Github/Super-OAuth/`.
## Toolkit-first
> Forgé : 2026-03-15 | Domaine : orchestration
Règle : avant chaque carte KANBAN, vérifier si un pattern toolkit/ existe. Si oui → utiliser. Si non → exécuter → toolkit-scribe capture en fin de carte. Accélérateur sprint-over-sprint.
## wrap
> Forgé : 2026-03-15 | Domaine : session
Fermeture propre d'une session. Déclenche la séquence close complète (checkpoint → metabolism → backlog → todo → wiki → scribe → coach → BSI). Alias : `fin`, `on wrappe`, `je ferme`. Sans wrap, le backlog n'est pas mis à jour et le VPS reste aveugle.
## warm restart
> Forgé : 2026-03-15 | Domaine : session
Reprise de session depuis un `checkpoint.md` sans bootstrap complet. < 30 sec vs 2-3 min cold bootstrap. Voir Pattern 8.