sync: scission owner/template + brain-template-export + BRAIN_MODE guard + /visualize scope filter + port orphelins fix
This commit is contained in:
107
wiki/cold-start.md
Normal file
107
wiki/cold-start.md
Normal 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
107
wiki/concepts.md
Normal 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
202
wiki/multi-instance.md
Normal 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
77
wiki/patterns.md
Normal 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
139
wiki/session-lifecycle.md
Normal 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
179
wiki/vocabulary.md
Normal 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.
|
||||
Reference in New Issue
Block a user