feat(template): ADRs 018-035 — 14 décisions architecturales manquantes
Synchronise le template avec les décisions fondatrices 2025-2026 : - 018 : migration Rust strangler fig toolkit - 023 : Cortex/Cosmos product vision - 025 : cortex composition operator - 026 : IPC context packet access matrix - 027 : ambient autonomy engine - 028 : learning loop detect-iterate - 029 : Cosmos frontend brain - 030 : boot mode empirical validation - 031 : distribution model - 032 : execution mode vs workflow - 033/033a : embedding language strategy + zone filter - 034 : infra separation local/VPS/template - 035 : session pilote mode (ADR-035) Dépersonnalisation : keys/brain.<OWNER_DOMAIN>, deciders: [<owner>]
This commit is contained in:
129
profil/decisions/adr-033-embedding-language-strategy.md
Normal file
129
profil/decisions/adr-033-embedding-language-strategy.md
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
scope: kernel
|
||||
id: ADR-033
|
||||
title: Stratégie embedding — multilinguisme et distribution brain-template
|
||||
status: accepted
|
||||
date: 2026-03-18
|
||||
deciders: [human, coach]
|
||||
tags: [embedding, distribution, multilingual, brain-template]
|
||||
---
|
||||
|
||||
# ADR-033 — Stratégie embedding : multilinguisme et distribution brain-template
|
||||
|
||||
## Contexte
|
||||
|
||||
Le brain-engine embarque un pipeline d'embedding (chunks → vecteurs → UMAP → Cosmos).
|
||||
Tout le contenu actuel est en FR. Brain-template (ADR-031) sera distribué à des utilisateurs
|
||||
potentiellement non-FR.
|
||||
|
||||
Deux problèmes distincts ont émergé lors du brainstorm 2026-03-18 :
|
||||
|
||||
1. **Problème de distribution** : un utilisateur EN installe brain-template → peut-il avoir
|
||||
un brain opérationnel dans sa langue ?
|
||||
|
||||
2. **Problème de collaboration** : deux instances brain (FR + EN) veulent co-travailler
|
||||
sémantiquement → leurs espaces embedding sont-ils commensurables ?
|
||||
|
||||
---
|
||||
|
||||
## Options explorées
|
||||
|
||||
| Option | Description | Verdict |
|
||||
|--------|-------------|---------|
|
||||
| A — Modèle multilingue (multilingual-e5) | Un espace commun FR+EN+… | Upgrade path v2 |
|
||||
| B — Modèles séparés par langue | Silos, pas de cross-lingual | ❌ Éliminé |
|
||||
| C — Kernel traduit EN+FR en parallèle | Double maintenance garantie | ❌ Éliminé |
|
||||
| D — Template structurel, contenu souverain | Chaque instance dans sa langue | ✅ Retenu v1 |
|
||||
|
||||
---
|
||||
|
||||
## Décision
|
||||
|
||||
### V1 — Option D : template structurel, instances souveraines
|
||||
|
||||
**brain-template distribue :**
|
||||
- Schéma frontmatter (language-agnostic)
|
||||
- Scripts bash/Python (language-agnostic)
|
||||
- Workflow templates (structure)
|
||||
- Agents `.md` en FR (langue du kernel owner)
|
||||
|
||||
**Chaque instance :**
|
||||
- Forge ses agents dans sa langue dès le premier sprint
|
||||
- Embarque son propre pipeline embedding avec le modèle de son choix
|
||||
- Est sémantiquement souveraine — aucune dépendance au brain FR d'origine
|
||||
|
||||
**Un utilisateur EN installe brain-template :**
|
||||
```
|
||||
1. Clone le template (agents FR comme référence de structure)
|
||||
2. Forge ses agents EN via recruiter (le FR est un exemple, pas une contrainte)
|
||||
3. Son brain est 100% EN, embedding 100% EN, Cosmos 100% EN
|
||||
4. Opérationnel — aucune rupture sémantique
|
||||
```
|
||||
|
||||
**Ce qui ne change pas pour le brain FR owner :**
|
||||
- Le brain existant n'est pas re-embeddé
|
||||
- Le modèle embedding actuel reste en place
|
||||
- Aucune action requise à la distribution du template
|
||||
|
||||
---
|
||||
|
||||
### V2 — Option A : upgrade multilingual (condition d'activation)
|
||||
|
||||
**Condition de déclenchement :**
|
||||
> Première instance non-FR qui veut co-travailler sémantiquement avec le brain FR.
|
||||
> Pas avant.
|
||||
|
||||
**Quand ce moment arrive :**
|
||||
```
|
||||
1. Migrer brain-engine vers multilingual-e5-large (ou équivalent)
|
||||
2. Re-embedder tous les chunks existants (~30 min, opération batch)
|
||||
3. Les deux instances partagent désormais un espace embedding commun
|
||||
4. Cross-lingual search actif : query EN trouve contenu FR et vice-versa
|
||||
```
|
||||
|
||||
**Ce que ça débloque :**
|
||||
- Brain A (FR) et Brain B (EN) cherchent dans un espace commun
|
||||
- Cosmos multi-instance : deux nébuleuses dans le même espace UMAP
|
||||
- Collaboration sémantique sans perdre la souveraineté de chaque instance
|
||||
|
||||
---
|
||||
|
||||
## Zone filter — découplé (ADR-033a, sujet séparé)
|
||||
|
||||
La question du **zone filter** (quels contenus sont indexés selon leur zone) est indépendante
|
||||
du choix de modèle. Elle sera traitée dans un brainstorm dédié.
|
||||
|
||||
Hypothèse de départ pour ADR-033a :
|
||||
```
|
||||
kernel → toujours indexé (open-core, vocabulaire partagé)
|
||||
project → TTL basé sur l'activité du sprint
|
||||
personal → jamais indexé (bact, collaboration, progression)
|
||||
session → sélectif (checkpoint utile, contenu brut non)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Conséquences
|
||||
|
||||
**Immédiat (V1) :**
|
||||
- Brain-template peut être distribué sans changer l'infrastructure embedding actuelle
|
||||
- Aucun re-embedding du brain FR owner requis
|
||||
- Les utilisateurs non-FR sont pleinement autonomes dans leur langue
|
||||
|
||||
**Futur (V2) :**
|
||||
- Migration multilingual-e5 planifiée — opération batch de ~30 min
|
||||
- Déclenchée sur signal concret (premier besoin de collaboration cross-lingual)
|
||||
- Pas d'over-engineering préventif
|
||||
|
||||
**Philosophie retenue :**
|
||||
> Chaque brain est souverain dans sa langue. La collaboration sémantique est une
|
||||
> option d'upgrade, pas un prérequis à la distribution.
|
||||
|
||||
---
|
||||
|
||||
## Références
|
||||
|
||||
- ADR-031 — Distribution model (brain-template)
|
||||
- ADR-029 — Cosmos frontend brain
|
||||
- `wiki/brain-engine.md` — pipeline embedding actuel
|
||||
- `wiki/cosmos.md` — visualisation UMAP
|
||||
Reference in New Issue
Block a user