127 lines
4.1 KiB
Markdown
127 lines
4.1 KiB
Markdown
# Memory Integrity — Règle fondamentale d'écriture
|
|
|
|
> Décision architecturale — session 2026-03-13
|
|
> Complémentaire de `context-hygiene.md` (chargement) et `scribe-pattern.md` (qui écrit quoi)
|
|
|
|
---
|
|
|
|
## Principe fondateur
|
|
|
|
**`context-hygiene.md` governe ce qu'on CHARGE.**
|
|
**`memory-integrity.md` governe ce qu'on ÉCRIT.**
|
|
|
|
Un système dont la mémoire est corrompue est pire qu'un système sans mémoire.
|
|
Chaque entrée mémoire doit être atomique, attribuable, et réversible.
|
|
|
|
---
|
|
|
|
## Règle dure — Un commit = un agent = un scope
|
|
|
|
```
|
|
❌ Un commit qui touche brain/ + progression/ + toolkit/
|
|
→ impossible de savoir quel agent a écrit quoi
|
|
→ impossible de réverter un seul agent sans tout défaire
|
|
|
|
✅ Un commit par repo, par agent, par action
|
|
→ git blame = audit complet de provenance
|
|
→ réverter = chirurgical, sans dommage collatéral
|
|
```
|
|
|
|
---
|
|
|
|
## Déclaration de scope — obligatoire pour tout agent écrivant
|
|
|
|
Tout agent qui écrit dans le brain, le toolkit ou la progression doit déclarer explicitement :
|
|
|
|
```markdown
|
|
## Écrit où
|
|
|
|
| Repo | Fichiers cibles | Jamais ailleurs |
|
|
|------|----------------|-----------------|
|
|
| `brain/` | `focus.md`, `projets/<X>.md` | Pas `toolkit/`, pas `progression/` |
|
|
```
|
|
|
|
Sans cette déclaration → scope indéfini → dérive mémoire garantie.
|
|
|
|
---
|
|
|
|
## Chargement conditionnel — mémoire sélective
|
|
|
|
Un agent n'a pas besoin de tout savoir au démarrage.
|
|
Il charge ce dont il a besoin **au moment exact où il en a besoin**.
|
|
|
|
```
|
|
Trigger : "je m'apprête à écrire"
|
|
→ charger brain/profil/memory-integrity.md
|
|
→ vérifier : est-ce que ce fichier est dans mon scope déclaré ?
|
|
→ OUI → écrire
|
|
→ NON → signal "hors scope — déléguer à <agent compétent>"
|
|
```
|
|
|
|
Ce pattern s'applique à tout fichier de référence qui n'est utile qu'à un moment précis — pas à toute la session.
|
|
|
|
---
|
|
|
|
## Validation avant commit — checklist git-analyst
|
|
|
|
Avant tout commit, valider :
|
|
|
|
```
|
|
□ Chaque fichier modifié appartient au scope déclaré de l'agent qui l'a écrit
|
|
□ Un seul repo par commit (brain/ OU progression/ OU toolkit/)
|
|
□ CLAUDE.md modifié → ENTRYPOINT.md + CLAUDE.md.example mis à jour
|
|
□ Nouvel agent créé → AGENTS.md + CLAUDE.md + ENTRYPOINT.md mis à jour
|
|
□ Aucune entrée mémoire inventée — tout ce qui est écrit est prouvé ou signalé
|
|
```
|
|
|
|
---
|
|
|
|
## Empoisonnement mémoire — comment ça arrive
|
|
|
|
```
|
|
Agent hallucine → écrit une fausse info → commitée sans validation
|
|
→ la fausse info devient "vérité" dans le brain
|
|
→ les sessions suivantes se basent dessus
|
|
→ l'erreur se propage et se calcifie
|
|
|
|
Défenses :
|
|
1. Anti-hallucination dans chaque agent (niveau de confiance explicite)
|
|
2. Validation scope avant commit (git-analyst)
|
|
3. Commits atomiques (réversibilité chirurgicale si erreur détectée)
|
|
```
|
|
|
|
---
|
|
|
|
## Architecture des repos — frontières d'identité
|
|
|
|
| Repo | Nature | Exportable | Contenu |
|
|
|------|--------|-----------|---------|
|
|
| `toolkit/` | Universel | ✅ tel quel | Patterns validés en prod |
|
|
| `brain/agents/` | Universel | ✅ tel quel | Agents spécialisés |
|
|
| `brain/todo/` | Mixte | ⚠️ partiel | brain.md universel, projets personnels |
|
|
| `brain/profil/` | Personnel | ❌ strippé | Identité, objectifs, capital |
|
|
| `brain/projets/` | Personnel | ❌ strippé | Projets spécifiques |
|
|
| `progression/` | Personnel | ❌ jamais | Journal, skills, milestones |
|
|
|
|
Cette séparation est intentionnelle — elle rend le `claude-brain-template` générable par suppression des couches personnelles.
|
|
|
|
---
|
|
|
|
## Qui charge ce fichier
|
|
|
|
| Agent | Quand | Trigger |
|
|
|-------|-------|---------|
|
|
| `git-analyst` | Au démarrage | Toujours — c'est sa grille de validation |
|
|
| `recruiter` | Sur trigger | Quand il forge un agent qui écrit |
|
|
| `agent-review` | Sur trigger | Critère de review : "scope déclaré ?" |
|
|
|
|
Les scribes **n'ont pas besoin de charger ce fichier** — ils l'appliquent via leur section `## Écrit où`. Le principe vit dans leur structure.
|
|
|
|
---
|
|
|
|
## Changelog
|
|
|
|
| Date | Changement |
|
|
|------|------------|
|
|
| 2026-03-13 | Création — émergé de la réflexion commit granulaire + mémoire sélective |
|