Files
brain-template/profil/decisions/025-cortex-composition-operator.md
Tetardtek 8c95b70314 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>]
2026-03-18 22:38:36 +01:00

4.7 KiB
Raw Permalink Blame History

scope, name, title, status, date, deciders
scope name title status date deciders
kernel ADR-025 CORTEX — opérateur de composition × et frontière kernel/instance accepted 2026-03-18
<owner>

ADR-025 — CORTEX : opérateur de composition × et frontière kernel/instance

Formule canonique

Cosmos = CORTEX( Brain(tier | featureFlags) × (satellites + BE + distillation + RAG + coach + BACT) )
Composant Ce que c'est Vit où
CORTEX Kernel forkable — invariant, contractuel brain-template/
Brain(tier|flags) CORTEX instancié — config user, gates brain-compose.yml
× Opérateur de composition — contrat entre CORTEX et ses services profil/routing.yml (à définir)
satellites Repos projets qui orbitent le brain instance locale
BE brain-engine — MCP, RAG, embed VPS / local
distillation Fine-tuning local sur contenu propre instance locale
RAG Recherche sémantique sur les fichiers brain brain-engine
coach Agent coach (speech + contextuel + BACT) kernel + tier
BACT Brain Accumulation & Context Transfer — progression long-terme instance-local uniquement
Cosmos UI — interface de configuration et d'expérience brain-ui / SaaS

Règle BACT — non négociable

BACT est toujours instance-local. Il ne se distribue jamais dans un fork.

Chaque owner construit son propre BACT depuis zéro. Le BACT du propriétaire (l'owner) ne shippe pas dans brain-template. Double bénéfice : vie privée préservée + fossé concurrentiel impossible à cloner.


Cas d'usage — frontière par tier

Owner (l'owner)

Cosmos = CORTEX(
  Brain(tier=full, featureFlags=*)
  × (satellites_perso + BE + distillation + RAG + coach[L2] + BACT[accumulé])
)
  • BACT accumulé depuis le début — exclusif, non transférable
  • Distillation activée sur tout
  • Coach L2 — connaît l'historique complet
  • Cosmos — routing configurable via UI

fork(user × tier=free)

CORTEX_fork(
  Brain(tier=free)
  × (leurs_satellites + RAG[local] + coach_boot)
)
  • Kernel identique — même protocoles, mêmes agents libres
  • Distillation : logique présente dans le kernel, activation bloquée
  • Coach-boot — speech protocol, zéro contexte accumulé
  • BACT : commence à zéro, leur appartient, peut croître si tier upgrade
  • Pas de Cosmos

fork(user × tier=pro)

Cosmos_light = CORTEX_fork(
  Brain(tier=pro)
  × (leurs_satellites + BE + RAG + coach[full] + distillation[coach_only] + BACT[le leur])
)
  • Coach full — speech + contexte session
  • Distillation activée sur le coach uniquement
  • BACT démarre vide, accumule leur progression
  • Cosmos light — UI routing disponible

fork(user × tier=full)

Cosmos = CORTEX_fork(
  Brain(tier=full)
  × (leurs_satellites + BE + distillation[tout] + RAG + coach[L2] + BACT[le leur])
)
  • Distillation sur tout leur contenu
  • Coach L2 alimenté par leur propre BACT
  • Cosmos complet

PCG appliqué à la distillation

Le modèle PCG (Protocol × Context × Gate) s'applique à chaque service :

Distillation (P) = la logique, l'algorithme    → kernel, shippe dans tout fork
Distillation (C) = sur quoi elle s'applique    → dépend du tier
Distillation (G) = peut-on l'activer           → gated par tier

Principe : les free users reçoivent la transparence — ils voient la logique, ils ne peuvent pas l'allumer. Open-source dans l'esprit, sustainable dans le modèle.


L'opérateur × — pièce manquante

Le × est le composant le moins défini du système. C'est lui qui transforme une liste de services en un système cohérent.

Ce qu'il définit :

  • Qui peut spawner qui (routing inter-agents)
  • Quel contexte passe d'un agent à l'autre (format du context packet)
  • Quels signaux remontent et vers qui
  • Comment Brain parle à ses satellites

Où il vit :

  • Spec invariante (format) → kernel (profil/ipc-spec.md — à créer)
  • Routing instance (qui parle à qui) → profil/routing.ymléditable via Cosmos

Ce que Cosmos expose pour × :

  • Agent graph — éditeur visuel du routing
  • Session builder — contexte par session
  • Ambient layer — agents background on/off
  • Pattern review — approve/reject apprentissage

Ce que cet ADR ne définit pas encore

  • Format exact du context packet (IPC spec) → ADR-026
  • Ambient layer — agents background protocol → ADR-027
  • Boucle d'apprentissage complète (detect → approve → update) → ADR-028

Changelog

Date Note
2026-03-18 Création — formule canonique Cosmos, règle BACT, cas d'usage par tier, PCG sur distillation, opérateur × identifié comme pièce manquante