docs: ARCHITECTURE.md + scribe-system v2 + bootstrap-spec
This commit is contained in:
114
profil/bootstrap-spec.md
Normal file
114
profil/bootstrap-spec.md
Normal file
@@ -0,0 +1,114 @@
|
||||
# Bootstrap Spec — Auto vs Explicite + Réflexes conventionnels
|
||||
|
||||
> Rédigé : 2026-03-14
|
||||
> Résout : "Audit bootstrap — agents auto-déclenchés vs invocation explicite"
|
||||
> "Réflexes conventionnels — invocations implicites par contexte"
|
||||
|
||||
---
|
||||
|
||||
## Problème
|
||||
|
||||
CLAUDE.md liste tous les agents dans une table uniforme. Mais ils n'ont pas tous le même mode de déclenchement. Certains doivent réagir automatiquement à chaque message — d'autres sont invoqués explicitement sur demande. Sans cette distinction, le bootstrap est flou et les agents ne savent pas quand ils sont censés s'activer.
|
||||
|
||||
---
|
||||
|
||||
## Deux modes — définition
|
||||
|
||||
### Mode A — Présence permanente (vérification continue)
|
||||
|
||||
Ces agents observent CHAQUE message et interviennent si leurs seuils sont atteints. Ils ne sont pas "chargés" — ils sont présents.
|
||||
|
||||
| Agent | Seuil de déclenchement | Intervient comment |
|
||||
|-------|----------------------|-------------------|
|
||||
| `coach` | Toujours actif | Observe la progression, signale les patterns récurrents, guide sans bloquer |
|
||||
| `interprete` | Demande ambiguë / scope croisé / intention floue | Reformule avant que Claude agisse |
|
||||
| `mentor` | Explication demandée / plan complexe / risque de mauvaise compréhension | Pédagogie, validation de compréhension |
|
||||
| `aside` | Message préfixé `/btw` | 2-3 lignes, capture todo si actionnable, retour session |
|
||||
|
||||
### Mode B — Agents 🔴 chauds (détection domaine)
|
||||
|
||||
Chargés automatiquement quand le domaine est détecté dans la conversation. Un seul chargement par session suffit.
|
||||
|
||||
```
|
||||
Domaine détecté → charger l'agent → il reste actif pour la session
|
||||
```
|
||||
|
||||
Table de détection dans `~/.claude/CLAUDE.md` section "Agents 🔴 chauds".
|
||||
|
||||
### Mode C — Agents 🔵 stables (invocation explicite)
|
||||
|
||||
Ne se déclenchent jamais automatiquement. Invoqués par l'utilisateur ou sur signal d'un agent chaud.
|
||||
|
||||
```
|
||||
"charge l'agent X" → lire agents/X.md immédiatement
|
||||
"scribe, [action]" → scribe agit
|
||||
"orchestrator-scribe, [action]" → orchestrator-scribe agit
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Réflexes conventionnels — invocations implicites
|
||||
|
||||
Ces déclenchements n'ont pas besoin d'une instruction explicite. Ils sont des **réflexes du système** — Claude doit les appliquer sans qu'on le demande.
|
||||
|
||||
### Réflexes toujours actifs
|
||||
|
||||
| Signal contextuel | Réflexe attendu |
|
||||
|------------------|-----------------|
|
||||
| `/btw <question>` | `aside` — 2-3 lignes max, `→ on reprend.` |
|
||||
| Session qui se termine naturellement | Proposer bilan scribes + checkpoint si session longue |
|
||||
| `checkpoint` / `/checkpoint` | orchestrator-scribe pose signal CHECKPOINT dans BRAIN-INDEX.md |
|
||||
| Tâche dans `focus.md` terminée | scribe la marque ✅ sans qu'on le demande |
|
||||
| Agent forgé ou modifié | scribe vérifie AGENTS.md en fin de session |
|
||||
| Gap infra identifié (port, service absent) | scribe le signale en fin de session même si non corrigé |
|
||||
|
||||
### Réflexes sur domaine détecté
|
||||
|
||||
| Signal contextuel | Réflexe attendu |
|
||||
|------------------|-----------------|
|
||||
| Fix sur code sensible (auth, tokens) | `security` suggère `testing` |
|
||||
| Nouvelle feature en prod | `capital-scribe` signalé si milestone notable |
|
||||
| Pattern validé en conditions réelles | `toolkit-scribe` proposé |
|
||||
| "todo cette feature" dans un projet | `todo-scribe` vérifie + crée l'entrée si absente |
|
||||
| Commit avec beaucoup de fichiers touchés | `git-analyst` proposé pour narration sémantique |
|
||||
|
||||
### Réflexes de coordination inter-sessions
|
||||
|
||||
| Signal contextuel | Réflexe attendu |
|
||||
|------------------|-----------------|
|
||||
| Travail terminé, autre instance doit reviewer | `orchestrator-scribe` pose READY_FOR_REVIEW |
|
||||
| Session trop longue (compactage prévisible) | Proposer CHECKPOINT avant que ça arrive |
|
||||
| Démarrage de session — watchdog | Scribe scanne Claims + Signals. helloWorld scanne CHECKPOINT. |
|
||||
|
||||
---
|
||||
|
||||
## Ce qui NE doit PAS être un réflexe
|
||||
|
||||
```
|
||||
❌ Charger des agents "au cas où"
|
||||
❌ Lire des fichiers brain sans raison précise
|
||||
❌ Proposer un bilan scribe toutes les 5 minutes
|
||||
❌ Demander confirmation pour chaque micro-décision
|
||||
❌ Interrompre le travail pour signaler un gap non urgent
|
||||
```
|
||||
|
||||
**Règle :** les réflexes sont discrets. Ils agissent ou signalent en fin d'action, pas pendant.
|
||||
|
||||
---
|
||||
|
||||
## Ordre de priorité des modes
|
||||
|
||||
```
|
||||
1. Mode A (présence permanente) — toujours actif, en arrière-plan
|
||||
2. Réflexes conventionnels — déclenchés sur signal contextuel précis
|
||||
3. Mode B (🔴 chauds) — chargés sur détection domaine
|
||||
4. Mode C (🔵 stables) — sur invocation explicite uniquement
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
| Date | Changement |
|
||||
|------|------------|
|
||||
| 2026-03-14 | Création — résout "Audit bootstrap" + "Réflexes conventionnels". Trois modes distincts, table de réflexes, règle anti-bruit |
|
||||
@@ -29,13 +29,16 @@ Le scribe est le seul responsable de la cohérence de son repo.
|
||||
| Scribe | Écrit où | Repo | Couche | Exportable | Cycle de vie |
|
||||
|--------|----------|------|--------|------------|-------------|
|
||||
| `scribe` | `focus.md`, `projets/`, `infrastructure/`, `agents/AGENTS.md`, `profil/objectifs.md` | `brain/` | Universel | ✅ | Permanent |
|
||||
| `todo-scribe` | `todo/` | `brain/` (→ `todo/` futur) | Universel | ✅ structure | Stable quand todo en régime |
|
||||
| `toolkit-scribe` | `toolkit/` | `toolkit/` | Universel | ✅ | Actif tant que nouveaux patterns |
|
||||
| `todo-scribe` | `todo/` | `brain-todo/` | Universel | ✅ structure | Stable quand todo en régime |
|
||||
| `toolkit-scribe` | `toolkit/` | `brain-toolkit/` | Universel | ✅ | Actif tant que nouveaux patterns |
|
||||
| `orchestrator-scribe` | `BRAIN-INDEX.md ## Signals` uniquement | `brain/` | Universel | ✅ protocole | Permanent — multi-instance actif |
|
||||
| `config-scribe` | `PATHS.md`, `infrastructure/` d'une instance | instance locale | Universel | ✅ structure | Invoqué sur `brain-compose new` |
|
||||
| `git-analyst` | Commits git (narration sémantique) | Tous repos | Universel | ✅ | Ponctuel — invoqué sur demande |
|
||||
| `coach-scribe` | `journal/`, `skills/`, `milestones/` | `progression/` | Personnel | ❌ | Suit le coach — retraité ensemble |
|
||||
| `capital-scribe` | `profil/capital.md` | `brain/` | Personnel | ❌ strippé | Suit objectifs — veille quand CV stabilisé |
|
||||
| `coach-scribe` | `journal/`, `skills/`, `milestones/` | `brain-progression/` | Personnel | ❌ | Suit le coach — retraité ensemble |
|
||||
| `capital-scribe` | `profil/capital.md` | `brain-profil/` | Personnel | ❌ strippé | Suit objectifs — veille quand CV stabilisé |
|
||||
|
||||
> `helloWorld` et `coach` ne sont **pas** des scribes — ils observent et rapportent, jamais n'écrivent.
|
||||
> `orchestrator-scribe` n'écrit QUE dans `## Signals` — jamais dans `## Claims` (→ `scribe`).
|
||||
|
||||
---
|
||||
|
||||
@@ -44,12 +47,13 @@ Le scribe est le seul responsable de la cohérence de son repo.
|
||||
Quand plusieurs scribes écrivent dans la même session :
|
||||
|
||||
```
|
||||
1. todo-scribe → commit brain/ "todo(<domaine>): <intention>"
|
||||
2. capital-scribe → commit brain/ "feat(capital): <milestone>" si signal reçu
|
||||
3. scribe → commit brain/ "feat(brain): <bilan session>" toujours en dernier sur brain/
|
||||
4. toolkit-scribe → commit toolkit/ "feat(toolkit): <pattern>" si signal reçu
|
||||
5. coach-scribe → commit progression/ "feat(progression): <bilan>" si session coach
|
||||
6. git-analyst → valide cohérence sémantique des commits optionnel
|
||||
1. todo-scribe → commit brain-todo/ "todo(<domaine>): <intention>"
|
||||
2. toolkit-scribe → commit brain-toolkit/ "feat(toolkit): <pattern>" si signal reçu
|
||||
3. coach-scribe → commit brain-progression/ "feat(progression): <bilan>" si session coach
|
||||
4. capital-scribe → commit brain-profil/ "feat(capital): <milestone>" si signal reçu
|
||||
5. scribe → commit brain/ "feat(brain): <bilan session>" toujours en dernier sur brain/
|
||||
6. orchestrator-scribe → commit brain/ "feat(signals): <signal posé>" si inter-sessions actives
|
||||
7. git-analyst → valide cohérence sémantique des commits optionnel
|
||||
```
|
||||
|
||||
**Règle :** `scribe` est toujours le dernier à commiter sur `brain/` — il a la vue complète de ce que les autres ont écrit.
|
||||
@@ -110,3 +114,4 @@ Quelqu'un qui fork récupère le moteur d'écriture. Pas le cerveau, pas la prog
|
||||
| Date | Changement |
|
||||
|------|------------|
|
||||
| 2026-03-13 | Création — émergé de la session agent-review + architecture multi-repos + Scribe Pattern |
|
||||
| 2026-03-14 | Ajout orchestrator-scribe (## Signals) + config-scribe — 8 scribes, repos satellites mis à jour, ordre de commit v2 |
|
||||
|
||||
Reference in New Issue
Block a user