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:
99
profil/decisions/adr-032-execution-mode-vs-workflow.md
Normal file
99
profil/decisions/adr-032-execution-mode-vs-workflow.md
Normal file
@@ -0,0 +1,99 @@
|
||||
---
|
||||
scope: kernel
|
||||
name: adr-032-execution-mode-vs-workflow
|
||||
type: adr
|
||||
context_tier: cold
|
||||
---
|
||||
|
||||
# ADR-032 — Séparation workflow / mode d'exécution — fondation swarm-ready
|
||||
|
||||
> Date : 2026-03-18
|
||||
> Statut : actif
|
||||
> Décidé par : brainstorm coach + humain (sess-20260318-1808-agent-audit)
|
||||
|
||||
---
|
||||
|
||||
## Contexte
|
||||
|
||||
En préparant les premiers swarms d'agents, deux questions ont émergé :
|
||||
- Où déclarer les contrats d'interface entre agents (input/output) ?
|
||||
- Qu'est-ce que "swarm-ready" signifie concrètement ?
|
||||
|
||||
L'option A proposait de mettre le mode d'exécution dans le fichier workflow.
|
||||
L'option B propose de séparer le QUOI (workflow) du COMMENT (mode d'exécution).
|
||||
|
||||
---
|
||||
|
||||
## Décision
|
||||
|
||||
Le **workflow** déclare QUOI faire (séquence de steps, agents, gates).
|
||||
Le **mode d'exécution** déclare COMMENT l'humain est impliqué — propriété de la session, pas du workflow.
|
||||
|
||||
```yaml
|
||||
# Dans la session (overlay)
|
||||
workflow: superoauth-tier3
|
||||
execution_mode: assisted # manual | assisted | swarm
|
||||
```
|
||||
|
||||
Le même workflow peut être exécuté en mode manual, assisté ou swarm selon la confiance acquise.
|
||||
Le workflow ne change pas — la confiance évolue.
|
||||
|
||||
---
|
||||
|
||||
## Les 3 modes d'exécution
|
||||
|
||||
| Mode | Humain | Condition |
|
||||
|------|--------|-----------|
|
||||
| `manual` | Lit chaque BSI claim, envoie à l'agent, valide avant next | Découverte — premier run d'un workflow |
|
||||
| `assisted` | Brain orchestre + signale, humain a la vue de l'intérieur, intervient si besoin | Construction de confiance — le mode le plus formateur |
|
||||
| `swarm` | Gate à l'entrée du workflow + validation du livrable final | Confiance acquise sur ce workflow |
|
||||
|
||||
Le mode `assisted` est le plus précieux cognitivement : l'humain voit ce que le brain voit, construit la confiance sur ce que le brain peut faire seul.
|
||||
|
||||
---
|
||||
|
||||
## Définition formelle de swarm-ready
|
||||
|
||||
Un workflow est **swarm-ready** quand :
|
||||
1. Il a été exécuté en mode `manual` (découverte) ✅
|
||||
2. Il a été exécuté en mode `assisted` (confiance construite) ✅
|
||||
3. Les agents impliqués ont des périmètres validés en conditions réelles ✅
|
||||
4. Le livrable final est structuré et consommable sans reformat humain ✅
|
||||
|
||||
→ `swarm-ready` est une déclaration de confiance sur un **workflow**, pas sur un agent isolé.
|
||||
|
||||
---
|
||||
|
||||
## Ce que ça implique
|
||||
|
||||
**Agents :** ne déclarent pas leur mode d'exécution. Restent atomiques.
|
||||
**Workflows :** déclarent les steps, agents, gates. Ne déclarent pas le mode.
|
||||
**Sessions :** overlayent le mode d'exécution sur le workflow.
|
||||
**BACT :** recevra un pattern `agentic.yml` — template de workflow swarm-capable avec contrats I/O par step.
|
||||
|
||||
---
|
||||
|
||||
## Alternatives considérées
|
||||
|
||||
| Option | Raison du rejet |
|
||||
|--------|----------------|
|
||||
| Mode déclaré dans le workflow | Rigidifie — le même workflow ne pourrait pas évoluer de manual → swarm sans réécriture |
|
||||
| Contrats I/O dans le fichier agent | Casse la granularité atomique — un agent utilisé dans 2 workflows différents aurait 2 "profils" |
|
||||
| Nouveau répertoire `swarms/` | Doublon avec `workflows/` — la distinction est dans le mode, pas dans la structure |
|
||||
|
||||
---
|
||||
|
||||
## Conséquences
|
||||
|
||||
- `workflows/_template.yml` → à enrichir avec contrats I/O optionnels par step
|
||||
- `contexts/session-*.yml` → à enrichir avec `execution_mode:` optionnel quand workflow déclaré
|
||||
- Les workflows existants (`superoauth-tier3`, `brain-engine`, etc.) → rétrospectivement classés mode `manual` (découverte)
|
||||
- `bact/patterns/agentic.yml` → à créer (pattern swarm workflow)
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
| Date | Changement |
|
||||
|------|------------|
|
||||
| 2026-03-18 | Création — brainstorm coach, décision structurante swarm-ready |
|
||||
Reference in New Issue
Block a user