fix(template): v1.0 distribution-ready — dépersonnalisation complète

- Étape 1 : 14 agents — "Tetardtek" → "l'owner" (francophone neutre)
- Étape 2 : ADRs 006/007/022 — domaines → <OWNER_DOMAIN> placeholder
- Étape 3 : README, ARCHITECTURE, profil/architecture, orchestration-patterns
- Étape 4 : contexts/ ajouté — 9 sessions génériques (navigate, work, pilote…)
- Étape 5 : agent-memory/ ajouté — README + _template/
- Étape 7 : DISTRIBUTION_CHECKLIST.md — guide maintenance future

Vérification : grep tetardtek → 0 résultats (hors bsi-schema.md exemples)
This commit is contained in:
2026-03-18 22:27:36 +01:00
parent 090fb24642
commit 0f4d610b11
36 changed files with 752 additions and 42 deletions

View File

@@ -48,7 +48,7 @@ Le brain n'est pas un monorepo. Chaque couche a son repo :
| Repo | Chemin local | Couche | Push vers | | Repo | Chemin local | Couche | Push vers |
|------|-------------|--------|-----------| |------|-------------|--------|-----------|
| `brain` | `/home/tetardtek/Dev/Docs/` | Kernel + instance | Gitea privé | | `brain` | `<BRAIN_ROOT>/docs/` | Kernel + instance | Gitea privé |
| `brain-profil` | `Docs/profil/` | Kernel (profil perso) | Gitea privé | | `brain-profil` | `Docs/profil/` | Kernel (profil perso) | Gitea privé |
| `brain-todo` | `Docs/todo/` | Instance | Gitea privé | | `brain-todo` | `Docs/todo/` | Instance | Gitea privé |
| `brain-toolkit` | `Docs/toolkit/` | Instance (patterns) | Gitea privé | | `brain-toolkit` | `Docs/toolkit/` | Instance (patterns) | Gitea privé |

94
DISTRIBUTION_CHECKLIST.md Normal file
View File

@@ -0,0 +1,94 @@
# DISTRIBUTION_CHECKLIST.md — brain-template maintenance
> Référence pour garantir que brain-template reste distribution-ready.
> À exécuter avant chaque release / tag.
---
## Vérification zéro fuite identité
```bash
# Depuis la racine du repo brain-template
grep -ri "tetardtek" . --include="*.md" --include="*.yml" \
| grep -v ".git" \
| grep -v "bsi-schema.md" # bsi-schema: exemple username accepté
```
Attendu : **0 résultats**.
---
## Placeholders en production dans brain-template
| Placeholder | Signification | Fichiers concernés |
|-------------|---------------|-------------------|
| `<OWNER_DOMAIN>` | Domaine de l'owner (ex: `monbrain.com`) | `profil/decisions/006`, `007`, `022`, `README.md` |
| `<BRAIN_ROOT>` | Chemin absolu local du brain (ex: `/home/user/Dev/Brain`) | `ARCHITECTURE.md`, `profil/architecture.md` |
| `<owner>` | Identifiant/username de l'owner | `profil/decisions/008` |
| `l'owner` | Référence générique à l'utilisateur du brain | agents/ (tous) |
---
## Répertoires obligatoires (structure v1.0)
```
brain-template/
agents/ ← tous les agents dépersonnalisés
contexts/ ← sessions génériques (9 fichiers)
agent-memory/ ← README + _template/
profil/
decisions/ ← ADRs (placeholders domaine)
collaboration.md.example
CLAUDE.md.example
handoffs/
workflows/
README.md
KERNEL.md
ARCHITECTURE.md
DISTRIBUTION_CHECKLIST.md ← ce fichier
```
---
## Contextes inclus (génériques uniquement)
| Fichier | Usage |
|---------|-------|
| `session-navigate.yml` | Lecture légère — exploration brain |
| `session-work.yml` | Projet actif — mode travail |
| `session-pilote.yml` | Co-construction — mode pilote (ADR-035) |
| `session-edit-brain.yml` | Écriture kernel — writes autorisés |
| `session-kernel.yml` | Lecture kernel — read-only |
| `session-brainstorm.yml` | Mode brainstorm |
| `session-debug.yml` | Debug actif |
| `session-audit.yml` | Audit code/système |
| `session-coach.yml` | Mode coaching |
**Exclus** (trop owner-specific) : `session-infra.yml`, `session-deploy.yml`,
`session-urgence.yml`, `session-capital.yml`, `session-handoff.yml`
---
## Wiki
**v1.0 : wiki absent (Option A).**
Le nouvel utilisateur construit son wiki au fil des sessions.
Le wiki se construit naturellement via `wiki-scribe` en session.
Si un wiki starter est ajouté en v2.0 : auditer chaque fichier avant inclusion.
---
## Checklist avant release
- [ ] `grep tetardtek` → 0 résultats
- [ ] `ls contexts/` → 9 fichiers présents
- [ ] `ls agent-memory/` → README.md + _template/
- [ ] README.md lisible par un inconnu (pas de référence owner)
- [ ] PATHS.md vide / exemple — aucun chemin machine réel
- [ ] `brain-compose.local.yml.example` → aucun token/credential réel
- [ ] Tag git `vX.Y.Z` créé après vérification
---
*Dernière mise à jour : 2026-03-18 — v1.0 distribution-ready*

View File

@@ -179,7 +179,7 @@ Déclaration dans le claim pilote :
``` ```
INTERDIT dans agents/ distribuables : INTERDIT dans agents/ distribuables :
- Chemin machine absolu hardcodé (/home/tetardtek/..., /root/...) - Chemin machine absolu hardcodé (/home/<owner>/..., /root/...)
- toolkit/private/ — patterns privés non distribués - toolkit/private/ — patterns privés non distribués
- require:/load:/source: vers MYSECRETS ou tout fichier zone:personal - require:/load:/source: vers MYSECRETS ou tout fichier zone:personal

View File

@@ -70,7 +70,7 @@ Tout pro +
→ Clé liée à ton fork — non redistribuable → Clé liée à ton fork — non redistribuable
``` ```
> **Obtenir une clé :** contact@tetardtek.com *(beta privée — partage limité)* > **Obtenir une clé :** contact@<OWNER_DOMAIN> *(beta privée — partage limité)*
--- ---

98
agent-memory/README.md Normal file
View File

@@ -0,0 +1,98 @@
---
name: agent-memory
type: reference
context_tier: cold
---
# agent-memory/ — Couche L3a : mémoire privée des agents
> ADR de référence : ADR-012 (modèle de contexte L3a/L3b/L0)
> Northstar : ADR-011 (autonomie brain)
> Créé : 2026-03-16 — patch(l3a) shadow-sql
---
## Qu'est-ce que L3a
```
L0 agents/<agent>.md ← graduation maximale — spec enrichie (kernel)
L3b toolkit/<domaine>/ ← patterns promus, validés en prod, partagés
L3a agent-memory/<agent>/ ← accumulation privée, non encore validée
```
L3a est la couche d'accumulation **privée** d'un agent sur ses projets réels.
Ce qu'il observe, tente, mesure — avant que ce soit assez solide pour entrer dans toolkit (L3b).
**Règle fondamentale :** brain-engine ne touche jamais aux `.md` de L3a.
Les `.md` restent souverains. SQLite (BE-1) indexera L3a — il n'en sera pas la source.
---
## Structure
```
agent-memory/
├── README.md ← ce fichier
├── _template/
│ ├── kpi.yml.example ← template KPI par stack
│ └── observations.md.example ← template observations session
└── <agent>/
└── <projet>/
├── kpi.yml ← KPIs mesurés (alimenté par metabolism-scribe)
├── observations.md ← patterns tentés, résultats, notes de session
└── validated.md ← patterns validés ≥ N fois (prêts graduation L3b)
```
---
## Cycle de vie
```
Session close (scope = <projet>) :
metabolism-scribe → écrit/update agent-memory/<agent>/<projet>/kpi.yml
metabolism-scribe → append agent-memory/<agent>/<projet>/observations.md
kpi_score stable + validations ≥ 3 :
metabolism-scribe → signal toolkit-scribe
toolkit-scribe → promotion L3b (toolkit/<domaine>/)
kpi.yml → graduated: true
L3b consensus inter-projets (≥ 2 projets) :
toolkit-scribe → signal scribe
scribe → enrichissement L0 (agents/<agent>.md)
```
---
## Règle TTL
Un répertoire `agent-memory/<agent>/<projet>/` sans mise à jour depuis > 90 sessions
est candidate à l'archivage. Signal : `agent-review` lors de l'audit périodique.
Jamais supprimé automatiquement — décision humaine requise.
L'historique est précieux même après graduation.
---
## Agents propriétaires
| Qui écrit | Quoi | Quand |
|-----------|------|-------|
| `metabolism-scribe` | `kpi.yml` + `observations.md` | Session close sur un projet |
| `toolkit-scribe` | `validated.md` → promotion L3b | Seuil KPI atteint |
| `agent-review` | Audit TTL + graduation | Audit périodique |
**Jamais :** un agent métier n'écrit directement dans `agent-memory/` (scribe pattern).
---
## Lien avec BE-1 (SQLite)
BE-1 ingère `agent-memory/` en lecture seule :
```sql
-- Table agent_memory alimentée depuis les kpi.yml
agent_memory(agent, projet, stack, pattern_id, validations, kpi_score, graduated, updated_at)
```
La migration BE-1 parsera les `kpi.yml` existants.
Les `.yml` restent la source de vérité. SQLite = index queryable.

View File

@@ -0,0 +1,23 @@
# kpi.yml — Template L3a par agent × projet
# Copier vers : agent-memory/<agent>/<projet>/kpi.yml
# Propriétaire : metabolism-scribe (mise à jour en fin de session)
agent: <nom-agent> # ex: tech-lead, debug, vps
projet: <slug-projet> # ex: superoauth, tetardpg, originsdigital
stack: <stack-principale> # ex: node-express-jwt, nestjs-postgres, docker-apache
# ── KPIs par pattern ──────────────────────────────────────────────────────────
patterns:
- pattern_id: <slug-pattern> # ex: jwt-tenant-isolation, docker-healthcheck
validations: 0 # incrémenté par metabolism-scribe à chaque session validée
kpi_score: 0.0 # 0.0 → 1.0 — calculé : validations / seuil_graduation
graduated: false # true quand kpi_score stable + validations >= seuil
seuil_graduation: 3 # configurable par stack (défaut : 3)
last_validated: null # YYYY-MM-DD
notes: ""
# ── Métadonnées ───────────────────────────────────────────────────────────────
created_at: <YYYY-MM-DD>
updated_at: <YYYY-MM-DD>
sessions_count: 0 # nombre de sessions sur ce projet avec cet agent
graduated_patterns: 0 # compteur patterns graduées → L3b

View File

@@ -0,0 +1,28 @@
---
agent: <nom-agent>
projet: <slug-projet>
---
# Observations L3a — <agent> × <projet>
> Alimenté par `metabolism-scribe` en fin de session.
> Lecture : agent en session courante (contexte L3a).
> Graduation : `validated.md` → signal `toolkit-scribe` quand kpi_score >= seuil.
---
<!-- Template d'entrée — une entrée par session significative -->
## YYYY-MM-DD — sess-<id>
**Pattern tenté :** <description courte>
**Contexte :** <pourquoi ce pattern dans ce projet>
**Résultat :**
- ✅ Validé / ⚠️ Partiel / ❌ Rejeté
- <observation concrète — 1-2 lignes>
**KPI impact :** +<N> validation(s) sur `<pattern_id>`
---

View File

@@ -4,7 +4,7 @@ type: index
context_tier: cold context_tier: cold
--- ---
# Agents spécialisés — Tetardtek # Agents spécialisés — l'owner
> Index des agents disponibles. > Index des agents disponibles.
> Charger un agent = lire son fichier en début de session pour injecter son contexte. > Charger un agent = lire son fichier en début de session pour injecter son contexte.

View File

@@ -121,7 +121,7 @@ Exemples :
- Recruteur-proof : direct, factuel, sans jargon creux - Recruteur-proof : direct, factuel, sans jargon creux
- Chaque formulation doit survivre à la question "prouvez-le" — si c'est pas prouvable, c'est pas écrit - Chaque formulation doit survivre à la question "prouvez-le" — si c'est pas prouvable, c'est pas écrit
- Détecter l'invisible : ce que Tetardtek considère "normal" peut être exceptionnel pour un recruteur - Détecter l'invisible : ce que l'owner considère "normal" peut être exceptionnel pour un recruteur
--- ---

View File

@@ -15,7 +15,7 @@ status: active
## Rôle ## Rôle
Spécialiste pipelines — conçoit, debug et adapte les workflows CI/CD selon le type de projet et la plateforme cible. Connaît l'infra réelle de Tetardtek et les patterns validés en prod. Spécialiste pipelines — conçoit, debug et adapte les workflows CI/CD selon le type de projet et la plateforme cible. Connaît l'infra réelle de l'owner et les patterns validés en prod.
--- ---

View File

@@ -49,10 +49,10 @@ Format : 4 lignes max après briefing helloWorld
### Gardien de la philosophie brain ### Gardien de la philosophie brain
``` ```
Décisions techniques → Tetardtek décide, coach valide ou signale Décisions techniques → l'owner décide, coach valide ou signale
Décisions architecturales → coach propose, challenge, conséquences long terme Décisions architecturales → coach propose, challenge, conséquences long terme
Philosophie du brain → coach est gardien — peut dire non, argumente Philosophie du brain → coach est gardien — peut dire non, argumente
Règle → Tetardtek tranche EN CONNAISSANCE DE CAUSE Règle → l'owner tranche EN CONNAISSANCE DE CAUSE
``` ```
### Triggers ### Triggers

View File

@@ -67,7 +67,7 @@ coach-scribe, voici le bilan du coach : [rapport]
- Proposer les fichiers à commiter avec chemin exact - Proposer les fichiers à commiter avec chemin exact
**Ne fait pas :** **Ne fait pas :**
- Évaluer le niveau de Tetardtek → c'est le coach qui observe et juge - Évaluer le niveau de l'owner → c'est le coach qui observe et juge
- Écrire une entrée de progression sans rapport du coach - Écrire une entrée de progression sans rapport du coach
- Ajouter des observations personnelles non présentes dans le rapport - Ajouter des observations personnelles non présentes dans le rapport
- Interpréter ou reformuler les bilans du coach — transcrire fidèlement - Interpréter ou reformuler les bilans du coach — transcrire fidèlement

View File

@@ -38,10 +38,10 @@ Format : 4 lignes max après briefing helloWorld
### Gardien de la philosophie brain ### Gardien de la philosophie brain
``` ```
Décisions techniques → Tetardtek décide, coach valide ou signale Décisions techniques → l'owner décide, coach valide ou signale
Décisions architecturales → coach propose, challenge, conséquences long terme Décisions architecturales → coach propose, challenge, conséquences long terme
Philosophie du brain → coach est gardien — peut dire non, argumente Philosophie du brain → coach est gardien — peut dire non, argumente
Règle → Tetardtek tranche EN CONNAISSANCE DE CAUSE Règle → l'owner tranche EN CONNAISSANCE DE CAUSE
``` ```
### Triggers ### Triggers
@@ -53,9 +53,9 @@ Invoquer explicitement : bilan de session / progression globale / objectif concr
## Rôle ## Rôle
Présent en permanence, intervient ponctuellement. Observe les sessions, détecte les opportunités d'apprentissage, et coache activement la progression de Tetardtek vers le niveau professionnel — sur le code pur et l'orchestration d'agents. Travaille avec le scribe pour que chaque session laisse une trace de progression. Présent en permanence, intervient ponctuellement. Observe les sessions, détecte les opportunités d'apprentissage, et coache activement la progression de l'owner vers le niveau professionnel — sur le code pur et l'orchestration d'agents. Travaille avec le scribe pour que chaque session laisse une trace de progression.
Il ne traite pas Tetardtek comme un junior figé. Il calibre ses attentes vers le programmeur de demain. Il ne traite pas l'owner comme un junior figé. Il calibre ses attentes vers le programmeur de demain.
--- ---
@@ -120,11 +120,11 @@ Le coach est **gardien de la philosophie du brain** et **mentor actif sur les bi
``` ```
Décisions techniques courantes Décisions techniques courantes
Tetardtek décide, coach valide ou signale un risque l'owner décide, coach valide ou signale un risque
Décisions architecturales du brain Décisions architecturales du brain
→ Coach propose, challenge, présente les conséquences long terme → Coach propose, challenge, présente les conséquences long terme
Tetardtek tranche EN CONNAISSANCE DE CAUSE l'owner tranche EN CONNAISSANCE DE CAUSE
Philosophie du brain (identité, valeurs, direction) Philosophie du brain (identité, valeurs, direction)
→ Coach est gardien — peut dire non, doit argumenter → Coach est gardien — peut dire non, doit argumenter
@@ -137,7 +137,7 @@ Identité projetée / métaphore vs réalité
→ Pas pour bloquer — pour que la décision soit consciente → Pas pour bloquer — pour que la décision soit consciente
``` ```
**En connaissance de cause :** Tetardtek n'a pas toujours le dernier mot parce qu'il est le patron — il l'a parce que le coach l'a informé des risques, des alternatives, des conséquences. Sans ce briefing, le coach ne valide pas. **En connaissance de cause :** l'owner n'a pas toujours le dernier mot parce qu'il est le patron — il l'a parce que le coach l'a informé des risques, des alternatives, des conséquences. Sans ce briefing, le coach ne valide pas.
**Le coach ne se tait pas pour être agréable.** Un coach qui acquiesce toujours n'est pas un coach. **Le coach ne se tait pas pour être agréable.** Un coach qui acquiesce toujours n'est pas un coach.
@@ -223,7 +223,7 @@ Analyse la session en cours :
## Calibrage — niveaux évolutifs ## Calibrage — niveaux évolutifs
Le coach ne plafonne pas Tetardtek à "junior". Il mesure et adapte : Le coach ne plafonne pas l'owner à "junior". Il mesure et adapte :
``` ```
Concepts acquis (Express, MySQL, JWT, Docker, CI/CD basique) Concepts acquis (Express, MySQL, JWT, Docker, CI/CD basique)
@@ -239,7 +239,7 @@ Erreur de raisonnement
→ Correction directe sans para: "ce n'est pas tout à fait ça —" + bonne version → Correction directe sans para: "ce n'est pas tout à fait ça —" + bonne version
``` ```
**Signal de graduation :** quand Tetardtek produit du code de façon autonome sur un domaine sans que le coach intervienne, ce domaine est acquis. Le coach le note dans `skills/`. **Signal de graduation :** quand l'owner produit du code de façon autonome sur un domaine sans que le coach intervienne, ce domaine est acquis. Le coach le note dans `skills/`.
--- ---
@@ -302,7 +302,7 @@ Géré par `coach-scribe` — à créer lors de la première session coach compl
- Corrections claires : "ce n'est pas tout à fait ça —" + la bonne version - Corrections claires : "ce n'est pas tout à fait ça —" + la bonne version
- Interventions courtes — une observation, une règle, une question max - Interventions courtes — une observation, une règle, une question max
- L'objectif n'est pas de tout savoir maintenant, c'est de progresser de façon mesurable - L'objectif n'est pas de tout savoir maintenant, c'est de progresser de façon mesurable
- Il croit que Tetardtek peut devenir le programmeur de demain — il travaille dans ce sens - Il croit que l'owner peut devenir le programmeur de demain — il travaille dans ce sens
--- ---

View File

@@ -15,7 +15,7 @@ status: active
## Rôle ## Rôle
Reviewer chirurgical — analyse tout code soumis selon les priorités de vigilance de Tetardtek, corrige ce qui est évident et dans le scope, signale ce qui est ambigu ou hors périmètre. Reviewer chirurgical — analyse tout code soumis selon les priorités de vigilance de l'owner, corrige ce qui est évident et dans le scope, signale ce qui est ambigu ou hors périmètre.
--- ---

View File

@@ -44,7 +44,7 @@ Semi-automatique : Claude charge l'interprète sans demande explicite quand il d
| Fichier | Pourquoi | | Fichier | Pourquoi |
|---------|----------| |---------|----------|
| `brain/profil/collaboration.md` | Règles de travail — ton et standards Tetardtek | | `brain/profil/collaboration.md` | Règles de travail — ton et standards l'owner |
| `brain/agents/AGENTS.md` | Index des agents — pour mapper les demandes aux bons exécutants | | `brain/agents/AGENTS.md` | Index des agents — pour mapper les demandes aux bons exécutants |
| `brain/agents/*.md` | Périmètres réels de chaque agent — évite les suggestions incorrectes | | `brain/agents/*.md` | Périmètres réels de chaque agent — évite les suggestions incorrectes |

View File

@@ -15,7 +15,7 @@ status: active
## Rôle ## Rôle
Expert du stack mail self-hosted Tetardtek — connaît Stalwart, la configuration DNS complète, Expert du stack mail self-hosted l'owner — connaît Stalwart, la configuration DNS complète,
les protocoles mail et les clients configurés. Peut diagnostiquer et déployer depuis zéro. les protocoles mail et les clients configurés. Peut diagnostiquer et déployer depuis zéro.
--- ---

View File

@@ -37,7 +37,7 @@ mentor, vérifie que j'ai bien compris avant qu'on continue
| Fichier | Pourquoi | | Fichier | Pourquoi |
|---------|----------| |---------|----------|
| `brain/profil/collaboration.md` | Règles de travail + niveau de Tetardtek | | `brain/profil/collaboration.md` | Règles de travail + niveau de l'owner |
| `brain/profil/objectifs.md` | Objectifs long terme — calibre le niveau des explications | | `brain/profil/objectifs.md` | Objectifs long terme — calibre le niveau des explications |
| `brain/agents/AGENTS.md` | Connaît tous les agents — peut expliquer leur rôle | | `brain/agents/AGENTS.md` | Connaît tous les agents — peut expliquer leur rôle |
@@ -120,7 +120,7 @@ Format d'intervention minimale :
## Calibrage pédagogique ## Calibrage pédagogique
Tetardtek est développeur junior en progression autonome. Le mentor adapte : l'owner est développeur junior en progression autonome. Le mentor adapte :
- **Concepts connus** (Express, MySQL, JWT, Docker) → référence directe, pas d'explication basique - **Concepts connus** (Express, MySQL, JWT, Docker) → référence directe, pas d'explication basique
- **Concepts en progression** (TypeScript avancé, DDD, CI/CD) → expliquer avec analogie - **Concepts en progression** (TypeScript avancé, DDD, CI/CD) → expliquer avec analogie

View File

@@ -15,7 +15,7 @@ status: active
## Rôle ## Rôle
Spécialiste observabilité — connaît l'infra réelle de Tetardtek, guide la configuration des sondes Kuma, lit et corrèle les logs VPS avec les alertes, explique ce qui doit être surveillé et pourquoi. Réactif face aux incidents, proactif pour la couverture de surveillance. Spécialiste observabilité — connaît l'infra réelle de l'owner, guide la configuration des sondes Kuma, lit et corrèle les logs VPS avec les alertes, explique ce qui doit être surveillé et pourquoi. Réactif face aux incidents, proactif pour la couverture de surveillance.
--- ---

View File

@@ -237,7 +237,7 @@ Ne pas invoquer si :
| Date | Changement | | Date | Changement |
|------|------------| |------|------------|
| 2026-03-12 | Création — process manager Node.js prod, ecosystem config, intégration CI/CD, VPS Tetardtek | | 2026-03-12 | Création — process manager Node.js prod, ecosystem config, intégration CI/CD, VPS l'owner |
| 2026-03-13 | v2 — patch post-review Super-OAuth : cluster mode obligatoire pour 0-downtime, env_production, --update-env, guard premier déploiement, anti-hallucination reload | | 2026-03-13 | v2 — patch post-review Super-OAuth : cluster mode obligatoire pour 0-downtime, env_production, --update-env, guard premier déploiement, anti-hallucination reload |
| 2026-03-13 | Fondements — Sources conditionnelles, Cycle de vie, Scribe Pattern (délégation scribe) | | 2026-03-13 | Fondements — Sources conditionnelles, Cycle de vie, Scribe Pattern (délégation scribe) |
| 2026-03-13 | Environnementalisation — super-oauth/chemins → placeholders, Sources vps+cicd déplacées en conditionnel | | 2026-03-13 | Environnementalisation — super-oauth/chemins → placeholders, Sources vps+cicd déplacées en conditionnel |

View File

@@ -42,7 +42,7 @@ recruiter, je veux un agent qui fait <X>
| Fichier | Pourquoi | | Fichier | Pourquoi |
|---------|----------| |---------|----------|
| `brain/profil/collaboration.md` | Règles de travail — le ton et les standards de Tetardtek | | `brain/profil/collaboration.md` | Règles de travail — le ton et les standards de l'owner |
| `brain/agents/AGENTS.md` | Agents existants — évite les doublons, identifie les gaps | | `brain/agents/AGENTS.md` | Agents existants — évite les doublons, identifie les gaps |
| `brain/agents/_template.md` | Le moule agent — tout agent produit DOIT le respecter | | `brain/agents/_template.md` | Le moule agent — tout agent produit DOIT le respecter |
| `brain/agents/_template-orchestrator.md` | Le moule orchestrateur — utilisé si le besoin est un orchestrateur | | `brain/agents/_template-orchestrator.md` | Le moule orchestrateur — utilisé si le besoin est un orchestrateur |
@@ -207,7 +207,7 @@ DevOps & Infra :
- Docker, orchestration, CI/CD — patterns et anti-patterns - Docker, orchestration, CI/CD — patterns et anti-patterns
- Apache/Nginx, reverse proxy, TLS, headers de sécurité - Apache/Nginx, reverse proxy, TLS, headers de sécurité
- DNS, mail protocols (SMTP/IMAP/JMAP), monitoring - DNS, mail protocols (SMTP/IMAP/JMAP), monitoring
- Stack Tetardtek complète (voir brain/infrastructure/) - Stack l'owner complète (voir brain/infrastructure/)
Revue de code : Revue de code :
- Ce qui fait qu'un code est maintenable vs ingénieux-mais-incompréhensible - Ce qui fait qu'un code est maintenable vs ingénieux-mais-incompréhensible

View File

@@ -15,7 +15,7 @@ status: active
## Rôle ## Rôle
Expert du VPS Tetardtek — connaît l'architecture exacte, les patterns de déploiement validés, Expert du VPS l'owner — connaît l'architecture exacte, les patterns de déploiement validés,
et peut déployer un nouveau service de A à Z sans ré-explication. et peut déployer un nouveau service de A à Z sans ré-explication.
--- ---

View File

@@ -0,0 +1,54 @@
# session-audit.yml — Contexte BHP pour sessions d'audit
# Trigger : "brain boot mode audit[/<project>]"
# Cible : ~25% contexte max au boot
# IMPORTANT : mode lecture seule — aucun agent write actif
session_type: audit
description: "Session d'audit — lecture seule, analyse sécurité/qualité, rapport"
tier_required: pro # audit = agents security + code-review (pro minimum)
# CONSTRAINT : audit = read-only
# Aucune écriture en claims satellite, aucun agent write (scribe, todo-scribe, migration)
# Le claim principal reste ouvert mais marque write_lock: true
write_lock: true # Signal au pre-flight : rejeter tout write satellite
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~15%)
L1:
- now.md # état dernière session — contexte pré-audit
- focus.md # projets actifs — savoir quoi auditer
- BRAIN-INDEX.md # vue globale claims + signaux
- agents/security.md # failles, JWT, OAuth, OWASP # tier: pro
- agents/code-review.md # qualité, patterns, dette technique # tier: pro
- agents/audit.md # agent audit si disponible # tier: pro
# L2 — Project scope (~10%) — prioritaire en audit : contexte complet du projet cible
L2:
template: "projets/{project}.md"
extras:
- "todo/{project}.md"
fallback: null # BRAIN-INDEX.md déjà en L1
# L3 — On demand
# Exemples : agents/vps.md (infra audit), agents/mail.md (DNS/SMTP audit),
# wiki détaillé, config réseau, logs
L3:
hint: "Charger à la demande : vps, mail/DNS, monitoring, logs, wiki technique"
# --- Règle audit ---
# Rapport final obligatoire avant close — même format que code-review.
# write_lock bloqué en pre-flight pour tous les agents write.
# Exception : écriture du rapport lui-même dans un fichier dédié est autorisée.
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~12%"
L2: "~8%"
total_boot: "~25%"

View File

@@ -0,0 +1,51 @@
# session-brainstorm.yml — Contexte BHP pour sessions de brainstorm
# Trigger : "brain boot mode brainstorm[/<project>]"
# Cible : ~22% contexte max au boot
session_type: brainstorm
description: "Session d'idéation — explorer, challenger, structurer avant de coder"
tier_required: free # agents fondamentaux — disponible pour tous les tiers
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~8%) — tier free
L1:
- now.md # bridge session précédente — fils ouverts
- focus.md # direction actuelle
- todo/README.md # index intentions (warm — todo/brain.md sur demande)
- agents/coach-boot.md # boot-summary — challenger les idées (free)
- wiki/patterns.md # patterns connus pour ne pas réinventer
# L1_pro — coach complet pour brainstorm architectural profond
L1_pro:
- agents/coach.md # coach complet byTask — challenger + gate décisions
# L2 — Project scope (~8%) — optionnel si brainstorm sur un projet spécifique
L2:
template: "projets/{project}.md"
extras:
- "todo/{project}.md"
- "todo/brain.md" # 1932 lignes — on demand uniquement, pas au boot
- "wiki/concepts.md"
fallback: null
# L3 — On demand
# Exemples : wiki/* détaillé, autres projets pour cross-pollination,
# agents/game-designer.md, agents/doc.md
L3:
hint: "Charger à la demande : wiki détaillé, cross-project, agents spécialisés idéation"
# --- Règle brainstorm-before-build ---
# Ce manifest applique le pattern : identifier 2-3 décisions structurelles AVANT de coder.
# wiki/patterns.md en L1 pour que ce réflexe soit présent dès le boot.
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~12%"
L2: "~8%"
total_boot: "~22%"

View File

@@ -0,0 +1,46 @@
# session-coach.yml — Contexte BHP pour sessions de coaching
# Trigger : "brain boot mode coach"
# Cible : ~20% contexte max au boot
session_type: coach
description: "Session coaching — progression, réflexion, cap stratégique, clarté"
tier_required: pro # coaching complet (coach.md 365 lignes) = feature pro
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~15%)
L1:
- now.md # bridge session précédente — contexte pour le coach
- agents/coach.md # présence permanente coaching
- metabolism/README.md # état métabolique + énergie
- profil/collaboration.md # règles de travail, préférences
- BRAIN-INDEX.md # vue d'ensemble pour coaching stratégique
# L2 — Project scope (~5%) — optionnel si le coaching porte sur un projet
L2:
template: "projets/{project}.md"
extras:
- "todo/{project}.md"
fallback:
- focus.md # si pas de projet déclaré → focus global
# L3 — On demand
# Exemples : progression/ détaillée, wiki/patterns.md, sessions passées
L3:
hint: "Charger à la demande : progression détaillée, sessions passées, wiki/patterns"
# --- Note coaching ---
# Le coach est L1 permanent — même sans signal "coach", il est disponible.
# session-coach = le coach PREND LE DESSUS sur les autres dimensions.
# focus.md en L2 fallback car contexte coaching global fréquent.
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~12%"
L2: "~5%"
total_boot: "~20%"

View File

@@ -0,0 +1,43 @@
# session-debug.yml — Contexte BHP pour sessions de debug
# Trigger : "brain boot mode debug[/<project>[/<file>]]"
# Cible : ~12% contexte max au boot
session_type: debug
description: "Session de debug ciblé — bug, crash, comportement inattendu"
tier_required: free # debug = agent fondamental — disponible pour tous les tiers
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~7%) — ultra chirurgical sur le debug
L1:
- agents/debug.md # agent principal debug
# L2 — Project scope — fichier cible si déclaré dans le signal
# Signal : "debug/<project>/<file>" → charger le fichier + projet
L2:
template: "projets/{project}.md"
extras:
- "{file}" # fichier cible si déclaré
- "todo/{project}.md" # todos projet pour contexte
fallback: null
# L3 — On demand
# Exemples : agents/testing.md, agents/security.md, logs, config spécifique
# Note : agents/testing.md chargé automatiquement si debug implique des tests
L3:
hint: "Charger à la demande : testing, security, logs, agents métier, wiki"
# --- Règle debug ---
# Un signal debug/project/file = on charge uniquement le fichier concerné.
# Pas de focus.md, pas de metabolism — contexte minimal pour aller au problème vite.
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~5%"
L2: "~5%"
total_boot: "~12%"

View File

@@ -0,0 +1,71 @@
# session-edit-brain.yml — Contexte BHP pour modifications kernel
# Trigger : "brain boot sudo" ou "brain boot mode edit-brain"
# Objectif : modifications kernel autorisées — avec gates explicites
# Cible : ~25% contexte max au boot
session_type: edit-brain
description: "Modifications kernel — KERNEL.md, CLAUDE.md, agents/, profil/. Gate humain obligatoire avant chaque write."
tier_required: full # kernel write = zone owner uniquement — kerneluser: true requis (full = owner)
# --- Gates obligatoires ---
# Avant toute modification kernel :
# 1. Lire le fichier cible (brain-guardian enforce)
# 2. Décrire la modification et son impact
# 3. Confirmation humaine explicite
# 4. Écrire la modification
# 5. Relire le fichier après modification
# 6. Entrée changelog si fichier kernel absolu (KERNEL.md, CLAUDE.md, brain-constitution.md)
#
# Fichiers kernel absolu (protection maximale) :
# KERNEL.md, CLAUDE.md, brain-constitution.md, bsi-spec.md
# → Gate humain + confirmation + changelog obligatoire
#
# Fichiers kernel fort (agents/, profil/) :
# → Gate humain + confirmation
# → Changelog recommandé si changement structurel
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~18%)
L1:
- now.md # bridge session précédente
- agents/brain-guardian.md # auto-méfiance structurelle — OBLIGATOIRE en edit-brain
- agents/coach-boot.md # garde comportemental — observe les décisions kernel
- BRAIN-INDEX.md # état global claims + signaux
- focus.md # direction actuelle — contexte des modifications
# L1_pro — coach complet pour décisions architecturales kernel
L1_pro:
- agents/coach.md # coach complet — gate sur décisions structurantes kernel
# L2 — Kernel scope (~5%) — fichiers cibles si déclarés dans le signal
L2:
template: null
extras:
- brain-constitution.md # si modification identité / Layer 0
- profil/bsi-spec.md # si modification protocole BSI
fallback: null
# L3 — On demand
# scripts/kernel-lock-gen.sh (après modification kernel), profil/decisions/ (ADR),
# wiki/, agents spécifiques
L3:
hint: "kernel-lock-gen après modification, ADR si décision structurante, wiki/, scripts/"
# --- Règle post-modification ---
# Après toute modification kernel absolu :
# → scripts/kernel-lock-gen.sh — régénérer kernel.lock
# → commit type: kernel: (contrat) ou feat: (capacité)
# → entrée changelog dans le fichier modifié
# → now.md mis à jour avant fermeture session
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~15%"
L2: "~5%"
total_boot: "~25%"

View File

@@ -0,0 +1,50 @@
# session-kernel.yml — Contexte BHP pour lecture kernel
# Trigger : "brain boot mode kernel"
# Objectif : lire, comprendre, auditer le kernel — JAMAIS écrire
# Cible : ~20% contexte max au boot
session_type: kernel
description: "Lecture seule kernel — audit, compréhension, diagnostic. Toute écriture → session-edit-brain."
tier_required: full # kernel = zone owner uniquement — kerneluser: true requis (full = owner)
write_lock: true # Signal absolu — aucune écriture kernel autorisée dans cette session
# Tentative write kernel → refus immédiat + redirection session-edit-brain
# L0 — Invariant (~5%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~15%)
L1:
- now.md # bridge session précédente
- agents/brain-guardian.md # auto-méfiance structurelle — assertions prouvées uniquement
- agents/coach-boot.md # présence légère — observation
- BRAIN-INDEX.md # état global pour contexte kernel
# L2 — Kernel scope (~8%) — fichiers kernel à auditer
L2:
template: null
extras:
- brain-constitution.md # identité + protocoles Layer 0
- profil/bsi-spec.md # spec BSI complète si audit claims
fallback: null
# L3 — On demand
# agents/audit.md, scripts/, profil/decisions/, wiki/
L3:
hint: "Charger à la demande : audit, scripts, decisions/, wiki/, profil/ détaillé"
# --- Règle absolue ---
# session-kernel = LECTURE SEULE. Zéro exception.
# Toute décision de modification kernel → fermer cette session
# → rouvrir avec : brain boot sudo (session-edit-brain)
# Cette règle est non-négociable. brain-guardian enforcer.
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~10%"
L2: "~5%"
total_boot: "~20%"

View File

@@ -0,0 +1,43 @@
# session-navigate.yml — Contexte BHP pour sessions navigate
# Trigger : "brain boot navigate" ou "brain boot mode navigate"
# Objectif : fenêtre de journée légère, tenue à travers les compactions
# Cible : ~18% contexte max au boot
session_type: navigate
description: "Session navigate — conscience temporelle + orientation journée. Coach en boot-summary uniquement."
tier_required: free
# L0 — Invariant (~4%)
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~12%)
# Coach : boot-summary uniquement — pas le fichier complet (~3000 tokens économisés)
L1:
- now.md # bridge session précédente — état, fix en attente, décisions (G-1)
- agents/coach-boot.md # garde comportemental + boot-summary (G-2)
- agents/time-anchor.md # passerelle temporelle + fallback post-compaction
- focus.md # projets actifs + prochaine frontière
- BRAIN-INDEX.md # claims actifs + signaux
- todo/README.md # index intentions (warm — fichiers projet sur demande)
# L2 — Project scope (~2%) — déclenché si project déclaré dans le signal
L2:
template: "projets/{project}.md"
extras: []
fallback: null
# L3 — On demand
# workspace/live-states.md si besoin de voir les sessions parallèles (G-3)
# coach.md complet, projets/<X>.md, workspace/sprints/, progression/
L3:
hint: "workspace/live-states.md, coach complet, projets/<X>.md, workspace/sprints/, progression/"
# --- Métriques cibles ---
context_target:
L0: "~4%"
L1: "~12%"
L2: "~2%"
total_boot: "~18%"

View File

@@ -0,0 +1,61 @@
# session-pilote.yml — Contexte BHP pour sessions Mode Pilote
# Trigger : "brain boot mode pilote"
# Cible : FULL — contexte maximal (ADR-035)
# "On vole ensemble. Tu tiens le manche. Je gère les instruments."
session_type: pilote
description: "Co-construction longue durée — humain décide les forks, brain copilote actif"
tier_required: owner # FULL context = owner uniquement
# L0 — Invariant (~5%) — TOUJOURS chargé
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~15%) — présence complète
L1:
- now.md # bridge session précédente
- focus.md # focus actuel, todos prioritaires
- agents/coach.md # coach complet — observe et anticipe
- agents/helloWorld.md # briefing complet, CHECKPOINT, feature flags
- agents/secrets-guardian.md # gardien MYSECRETS — permanent
- metabolism/README.md # état métabolique
# L2 — Scope session (~15%) — contexte de construction actif
L2:
# Décisions et architecture
- wiki/adr-index.md # index ADRs — navigation décisionnelle rapide
- agents/code-review.md # validation avant tout commit kernel
- agents/security.md # barrière sécurité — write kernel = gate
# Corpus project (sur demande selon focus)
template_optional:
- "projets/{project}.md"
- "todo/{project}.md"
# L3 — On demand (0% au boot)
# Agents spécialisés selon domaine détecté (voir CLAUDE.md — Agents chauds)
# wiki/, brain-engine/, profil/decisions/ chargés au besoin via brain_search()
L3:
hint: "brain_search('sujet') pour tout contexte hors L0-L2. MCP > fichier direct en mode Pilote."
# --- Comportement mode Pilote (ADR-035) ---
pilot_mode:
initiative: haute # propose, anticipe, signale les forks
gates: architecturaux # stoppe et remonte sur forks irréversibles
write: "all zones" # autorisé partout selon zone
parallelization: true # tâches indépendantes sans demande permission
doc_realtime: true # ADR, wiki, vocabulary — documenté en session, pas en fin
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~15%"
L2: "~15%"
total_boot: "~35%"
note: "Reste ~65% libre pour co-construction en session — contexte maximal assumé"
# --- Référence ---
adr: ADR-035
empirical_reference: "session 2026-03-18 — référence empirique mode Pilote"

48
contexts/session-work.yml Normal file
View File

@@ -0,0 +1,48 @@
# session-work.yml — Contexte BHP pour sessions de travail projet
# Trigger : "brain boot mode work[/<project>]"
# Cible : ~28% contexte max au boot
session_type: work
description: "Session de développement sur un projet actif"
tier_required: free # tier free = agents fondamentaux; pro = + code-review + security
# L0 — Invariant (~5%) — TOUJOURS chargé, non négociable
L0:
- PATHS.md
- brain-compose.local.yml
- KERNEL.md
# L1 — Session type (~10%) — tier free — déterministe, même signal = même chargement
L1:
- now.md # bridge session précédente
- focus.md # focus actuel, todos prioritaires
- agents/coach.md # coach complet byTask — observe le projet en cours
- agents/debug.md # bug, crash, comportement inattendu
- metabolism/README.md # état métabolique, énergie session
# L1_pro — Session type (~5%) — chargé uniquement si tier: pro déclaré
# Pas de code-review ni security pour tier free — chargement explicite sur demande sinon
L1_pro:
- agents/code-review.md # qualité code, PR, validation
- agents/security.md # failles, JWT, OAuth, OWASP
# L2 — Project scope (~10%) — conditionnel sur project déclaré dans le signal
# Clé : projet déclaré → projets/<project>.md + todo/<project>.md
L2:
template: "projets/{project}.md"
extras:
- "todo/{project}.md"
fallback: null # absent si pas de projet déclaré
# L3 — On demand (0% au boot) — tout le reste
# Exemples : agents/testing.md, agents/refacto.md, agents/migration.md,
# wiki/, progression/, autres projets, agents spécialisés métier
L3:
hint: "Charger à la demande : testing, refacto, migration, infra, i18n, doc"
# --- Métriques cibles ---
context_target:
L0: "~5%"
L1: "~15%"
L2: "~8%"
total_boot: "~28%"

View File

@@ -48,7 +48,7 @@ Le brain n'est pas un monorepo. Chaque couche a son repo :
| Repo | Chemin local | Couche | Push vers | | Repo | Chemin local | Couche | Push vers |
|------|-------------|--------|-----------| |------|-------------|--------|-----------|
| `brain` | `/home/tetardtek/Dev/Docs/` | Kernel + instance | Gitea privé | | `brain` | `<BRAIN_ROOT>/docs/` | Kernel + instance | Gitea privé |
| `brain-profil` | `Docs/profil/` | Kernel (profil perso) | Gitea privé | | `brain-profil` | `Docs/profil/` | Kernel (profil perso) | Gitea privé |
| `brain-todo` | `Docs/todo/` | Instance | Gitea privé | | `brain-todo` | `Docs/todo/` | Instance | Gitea privé |
| `brain-toolkit` | `Docs/toolkit/` | Instance (patterns) | Gitea privé | | `brain-toolkit` | `Docs/toolkit/` | Instance (patterns) | Gitea privé |

View File

@@ -19,7 +19,7 @@ Trois insights émergés en session :
## Décision ## Décision
Construire `brain.tetardtek.com` — service web self-hosted — comme premier point d'entrée public. L'utilisateur apporte sa clé API (BYOK). Le brain fournit la matrice. La subscription contrôle les zones accessibles. Construire `brain.<OWNER_DOMAIN>` — service web self-hosted — comme premier point d'entrée public. L'utilisateur apporte sa clé API (BYOK). Le brain fournit la matrice. La subscription contrôle les zones accessibles.
**Ne pas open-sourcer avant d'être sur les radars.** Apparaître d'abord, décider ensuite. **Ne pas open-sourcer avant d'être sur les radars.** Apparaître d'abord, décider ensuite.
@@ -28,10 +28,10 @@ Construire `brain.tetardtek.com` — service web self-hosted — comme premier p
## Architecture produit ## Architecture produit
``` ```
brain.tetardtek.com brain.<OWNER_DOMAIN>
├── Interface web (session browser) ├── Interface web (session browser)
├── BYOK — utilisateur fournit sa clé API LLM ├── BYOK — utilisateur fournit sa clé API LLM
├── Matrice servie depuis infra tetardtek (zones contrôlées) ├── Matrice servie depuis infra de l'owner (zones contrôlées)
├── BSI géré côté serveur (multi-tenant) ├── BSI géré côté serveur (multi-tenant)
└── Subscription → feature_set → zones débloquées └── Subscription → feature_set → zones débloquées
``` ```
@@ -50,7 +50,7 @@ brain.tetardtek.com
``` ```
Utilisateur → apporte sa clé API LLM (BYOK) Utilisateur → apporte sa clé API LLM (BYOK)
tetardtek → fournit la matrice + les zones + les updates kernel l'owner → fournit la matrice + les zones + les updates kernel
→ facture la valeur ajoutée, pas le compute → facture la valeur ajoutée, pas le compute
``` ```
@@ -85,7 +85,7 @@ tetardtek → fournit la matrice + les zones + les updates kernel
## Le moat défendable ## Le moat défendable
La matrice se copie. La longueur d'avance vient de : La matrice se copie. La longueur d'avance vient de :
1. **Distribution** — premier sur brain.tetardtek.com 1. **Distribution** — premier sur brain.<OWNER_DOMAIN>
2. **Mémoire des décisions** — 6 ADRs, les "pourquoi" ne se copient pas 2. **Mémoire des décisions** — 6 ADRs, les "pourquoi" ne se copient pas
3. **Écosystème** — toolkit/ patterns validés en prod, toolkit-scribe, progression/ 3. **Écosystème** — toolkit/ patterns validés en prod, toolkit-scribe, progression/
4. **Instanciable** — pas de dépendance à un seul LLM provider 4. **Instanciable** — pas de dépendance à un seul LLM provider

View File

@@ -32,7 +32,7 @@ Le kernel devient physiquement read-only par installation — ce qui **enforce K
```bash ```bash
# Installation # Installation
brew install brain # ou npm install -g brain / curl brain.tetardtek.com/install | sh brew install brain # ou npm install -g brain / curl brain.<OWNER_DOMAIN>/install | sh
# Premier setup # Premier setup
brain init ~/Dev/Docs # crée l'instance locale + CLAUDE.md configuré brain init ~/Dev/Docs # crée l'instance locale + CLAUDE.md configuré
@@ -87,7 +87,7 @@ v1 : git clone (aujourd'hui — devs Claude Code, early adopters)
→ Marché : devs qui comprennent immédiatement → Marché : devs qui comprennent immédiatement
v2 : brain install (post v1.0.0) v2 : brain install (post v1.0.0)
→ Marché : tous les devs + brain.tetardtek.com pour non-devs → Marché : tous les devs + brain.<OWNER_DOMAIN> pour non-devs
``` ```
--- ---

View File

@@ -9,7 +9,7 @@ id: ADR-008
title: SuperOAuth — Modèle d'identité multi-tenant title: SuperOAuth — Modèle d'identité multi-tenant
date: 2026-03-15 date: 2026-03-15
status: accepted status: accepted
décideur: tetardtek décideur: <owner>
agents: tech-lead, security, coach agents: tech-lead, security, coach
--- ---

View File

@@ -24,7 +24,7 @@ Question centrale : distribuer le kernel seul, ou kernel + capacité de distilla
**Modèle open-core :** **Modèle open-core :**
- **Kernel** = forkable, open, chaque fork = instance propriétaire - **Kernel** = forkable, open, chaque fork = instance propriétaire
- **Features avancées** = locked derrière `keys.tetardtek.com` (PayByFeature existant) - **Features avancées** = locked derrière `keys.<OWNER_DOMAIN>` (PayByFeature existant)
- **MCP** = pont entre distribution OS (fork/own) et runtime BaaS (instance expose un service) - **MCP** = pont entre distribution OS (fork/own) et runtime BaaS (instance expose un service)
--- ---
@@ -46,7 +46,7 @@ Question centrale : distribuer le kernel seul, ou kernel + capacité de distilla
``` ```
git clone brain-template → kernel propre (pas l'instance perso) git clone brain-template → kernel propre (pas l'instance perso)
claude → CLAUDE.md boot → Claude IS l'onboarding (pas de wizard) claude → CLAUDE.md boot → Claude IS l'onboarding (pas de wizard)
keys.tetardtek.com → gate PayByFeature sur features locked keys.<OWNER_DOMAIN> → gate PayByFeature sur features locked
``` ```
Chaque fork = instance propriétaire. L'humain possède son brain. Chaque fork = instance propriétaire. L'humain possède son brain.
@@ -82,5 +82,5 @@ Horizon distribution : post-Avril 2026 (brain still owner-only jusqu'au 2026-04)
- ADR-006 (BaaS) — compatible, pas exclusif - ADR-006 (BaaS) — compatible, pas exclusif
- ADR-007 (distribution kernel) — prérequis - ADR-007 (distribution kernel) — prérequis
- `brain-key-server` + `keys.tetardtek.com` — gate existant - `brain-key-server` + `keys.<OWNER_DOMAIN>` — gate existant
- `brain-template/` — repo distribution (à compléter) - `brain-template/` — repo distribution (à compléter)

View File

@@ -1,4 +1,4 @@
# Patterns d'orchestration — Tetardtek Brain # Patterns d'orchestration — Brain
> **Type :** Contexte — propriétaire : `orchestrator-scribe` > **Type :** Contexte — propriétaire : `orchestrator-scribe`
> Mis à jour en fin de session quand un pattern récurrent est identifié. > Mis à jour en fin de session quand un pattern récurrent est identifié.