Files
brain-template/profil/decisions/012-context-model-l3a-graduation.md
Tetardtek 60d9cf7332 feat(kernel): sync CORTEX kernel — sessions, modes, ADRs, clean personal files
Ajout : 11 session-*.yml, modes soft locks, coach-boot + time-anchor, ADR-008→024.
Retrait : focus.md, BRAIN-INDEX.md, SUPERVISOR-STATE.md, claims/, todo/.
brain-template = kernel distribuable propre.
2026-03-17 23:14:04 +01:00

136 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: ADR-012
type: decision
context_tier: cold
---
# ADR-012 — Modèle de contexte : L3a (mémoire privée agent) + protocole de graduation
> Date : 2026-03-15
> Statut : actif
> Décidé par : session sess-20260315-2031-kernel-audit — brainstorm coach + tech-lead
---
## Contexte
Le brain dispose de :
- L0 : kernel (invariant, permanent)
- L1 : session state (TTL session)
- L2 : agent workspace (TTL sprint)
- toolkit/ (patterns validés, partagés) — ce qu'on appelait implicitement L3
Ce qui manquait : une couche entre le travail d'un agent et sa promotion dans le toolkit partagé.
Sans elle, la graduation est manuelle, tardive, ou jamais faite.
---
## Insight fondateur
**Le toolkit est L3b. Il existait déjà. Ce qui manquait : L3a.**
```
L3a agent/memory/<projet>/ ← accumulation privée, non encore validée
L3b toolkit/<domaine>/ ← patterns promus, partagés, validés en prod
L0 agents/<agent>.md ← graduation maximale — spec enrichie
```
L3a est la couche d'accumulation privée de l'agent — ce qu'il observe, tente, apprend sur un projet spécifique — avant que ce soit assez solide pour être partagé.
---
## Décision
Introduire L3a comme couche officielle du modèle de contexte.
```
Structure :
brain/agent-memory/<agent>/<projet>/
observations.md ← ce que l'agent a observé (patterns tentés, résultats)
validated.md ← patterns validés N fois sur ce projet
kpi.yml ← KPIs par stack : { stack, validations, kpi_score, graduated }
Graduation automatique :
kpi_score stable + validations ≥ N → signal toolkit-scribe → promotion L3b
L3b consensus inter-projets → signal scribe → enrichissement L0
```
---
## Protocole de graduation
```
Sprint close :
agent observe pattern → écrit dans L3a/<agent>/<projet>/observations.md
Pattern validé en prod :
N = 3 validations minimum (configurable par stack)
metabolism-scribe incrémente kpi.yml
Seuil atteint :
trigger → toolkit-scribe → L3b (toolkit/<domaine>/)
agent gagne flag variance sur cette stack
tech-lead gate optionnel sur cette stack pour cet agent
Variance débloquée :
l'agent peut proposer des variantes de pattern (pas seulement "le" pattern)
"j'ai build ça N fois — voici 3 approches selon le contexte"
```
---
## Différence L3a vs L3b
| | L3a | L3b |
|--|-----|-----|
| Scope | Agent × projet | Brain global |
| Ownership | L'agent | toolkit-scribe |
| Accès | Privé (agent en session) | Partagé (tous agents) |
| Contenu | Observations + tentatives | Patterns validés en prod |
| TTL | Permanent (mémoire accumulée) | Permanent (validé) |
| Graduation | → L3b sur seuil KPI | → L0 sur consensus |
---
## Lien avec SQLite (BE-1)
SQLite est le medium naturel pour tracker L3a :
```sql
CREATE TABLE agent_memory (
agent TEXT,
projet TEXT,
stack TEXT,
pattern_id TEXT,
validations INTEGER,
kpi_score REAL,
graduated BOOLEAN,
created_at TEXT
);
```
Requête graduation : `SELECT * FROM agent_memory WHERE validations >= 3 AND graduated = 0`
---
## Conséquences
**Positives :**
- Le tech-lead se décharge progressivement par stack × agent graduée
- Les agents accumulent une expertise réelle mesurable, pas déclarative
- La variance est earned, pas donnée — l'agent propose des alternatives parce qu'il les a vécues
- BE-1 (SQLite) devient la fondation naturelle de L3a tracking
**Négatives / trade-offs :**
- brain/agent-memory/ est un nouveau répertoire satellite à gérer
- La graduation automatique requiert metabolism-scribe enrichi
- Risque : L3a devient une décharge si rien n'est jamais gradué → TTL ou nettoyage requis
---
## Références
- ADR-011 : North Star autonomie — L3a est une brique vers l'autonomie agent
- ADR-003 : Scribe pattern — graduation via toolkit-scribe (non-contamination)
- `todo/brain.md` : BE-1 SQLite — substrate de L3a tracking
- Session source : sess-20260315-2031-kernel-audit