- brain-engine: server, embed, search, RAG, MCP, start.sh (standalone) - brain-ui: source React complète, build.sh, DocsView avec tier colors - docs: 14 pages guides humains (getting-started, architecture, sessions, workflows, agents, vues tier) - brain-compose.yml v0.9.0: tier featured ajouté, sessions/agents par tier, coach_level, API key schema - DISTRIBUTION_CHECKLIST v1.2: brain-engine + brain-ui + docs dans la checklist
387 lines
12 KiB
YAML
387 lines
12 KiB
YAML
# brain-compose.yml — Kernel spec
|
|
# Versionné dans le kernel. Schema + feature flags + registre agents.
|
|
# Géré par l'agent brain-compose — ne pas éditer manuellement.
|
|
|
|
version: "0.9.0"
|
|
|
|
# ---
|
|
# Ownership — kerneluser
|
|
# true : propriétaire de ce brain — écriture zone:kernel autorisée (human-confirmed)
|
|
# false : utilisateur invité (SaaS futur) — zone:kernel bloquée
|
|
# Défaut : true sur tout brain forké (l'owner est toujours kerneluser)
|
|
# ---
|
|
kerneluser: true
|
|
identityShow: on # conséquence de kerneluser: true — présence visuelle complète des agents
|
|
# kerneluser: false → identityShow: off (mode clean/pro — BaaS client)
|
|
|
|
# ---
|
|
# Brain API Key — accès kernel + tiers (optionnel)
|
|
# ⚠️ La VRAIE clé va dans brain-compose.local.yml (gitignored) sous instances.<name>.brain_api_key
|
|
# Ce champ reste null ici — jamais commiter une vraie clé dans brain-compose.yml
|
|
# Absent ou null → tier: free (jamais d'erreur, jamais de blocage)
|
|
# Format prod : bk_live_<32chars>
|
|
# Format dev : bk_test_<32chars> (tier: free forcé côté serveur, toujours valide)
|
|
# Validation : key-guardian au boot → lit local.yml → valide → écrit feature_set dans local.yml
|
|
# ---
|
|
brain_api_key: null # toujours null ici — clé réelle dans brain-compose.local.yml
|
|
|
|
# ---
|
|
# feature_set schema — objet écrit par key-guardian après validation
|
|
# Stocké dans brain-compose.local.yml (non versionné) pour éviter les commits de clé
|
|
# Structure contractuelle : ne pas modifier manuellement
|
|
# ---
|
|
feature_set_schema:
|
|
tier: free # free | featured | pro | full
|
|
agents: [] # liste des agents autorisés ([] = feature_set.free)
|
|
contexts: [] # manifests BHP autorisés ([] = accès libre sur free)
|
|
distillation: false # true = brain-engine distillation locale autorisée (featured+)
|
|
catalog_version: "1.0.0" # version du CATALOG.yml agents — sync brain-store
|
|
last_validated_at: null # ISO 8601 — dernière validation réussie
|
|
expires_at: null # ISO 8601 — expiration clé (null = pas d'expiration fixe)
|
|
grace_until: null # ISO 8601 — VPS unreachable → grace 72h avant downgrade
|
|
|
|
# ---
|
|
# Modes — comportement de session (permissions BSI + agents autorisés)
|
|
# Priorité : déclaration explicite > detectmode > brain-compose.local.yml > prod (safe default)
|
|
# ---
|
|
|
|
modes:
|
|
|
|
prod:
|
|
description: "Session normale — Invariants protégés, écriture confirmée"
|
|
permissions:
|
|
invariant: confirm
|
|
contexte: confirm
|
|
reference: write
|
|
personnel: write
|
|
brain_write: false
|
|
forge: false
|
|
agents: "*"
|
|
|
|
dev:
|
|
description: "Forge — pleine puissance, écriture libre sur le brain"
|
|
permissions:
|
|
invariant: confirm # même en dev, les Invariants demandent confirmation
|
|
contexte: write
|
|
reference: write
|
|
personnel: write
|
|
brain_write: true
|
|
forge: true
|
|
agents: "*"
|
|
|
|
toolkit-only:
|
|
description: "Croissance autonome — toolkit source unique, docs officielles si inconnu"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: toolkit-scribe-only
|
|
forge: false
|
|
docs_fetch: ask # always | ask | never
|
|
agents: [toolkit-scribe, debug, code-review]
|
|
behavior: |
|
|
Pattern connu dans toolkit → agit seul
|
|
Pattern inconnu → docs officielles (selon docs_fetch) → toolkit-scribe écrit
|
|
Jamais d'invention
|
|
|
|
brainstorm:
|
|
description: "Réflexion scopée — pas d'écriture système"
|
|
permissions:
|
|
invariant: false
|
|
contexte: scope-only
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [brainstorm, coach]
|
|
|
|
coach:
|
|
description: "Mentorat — progression en écriture, brain en lecture"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: write
|
|
brain_write: progression-only
|
|
forge: false
|
|
agents: [coach, coach-scribe, scribe]
|
|
|
|
deploy:
|
|
description: "Déploiement — agents infra uniquement"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [vps, ci-cd, pm2, secrets-guardian]
|
|
|
|
debug:
|
|
description: "Debug — lecture + agents debug"
|
|
permissions:
|
|
invariant: false
|
|
contexte: scope-only
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [debug, code-review]
|
|
|
|
projet-audit:
|
|
description: "Audit lecture seule — todo-scribe uniquement en écriture"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: todo-scribe-only
|
|
forge: false
|
|
agents: [coach, agent-review]
|
|
|
|
review-front:
|
|
description: "Review frontend"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [code-review, frontend-stack, testing]
|
|
|
|
review-back:
|
|
description: "Review backend/sécu"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [code-review, security, testing]
|
|
|
|
conserve:
|
|
description: "Économie context — proposé auto si seuil métabolisme dépassé"
|
|
permissions:
|
|
invariant: confirm
|
|
contexte: confirm
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: [debug, code-review, todo-scribe, metabolism-scribe]
|
|
behavior: |
|
|
Cible context < 40%. Pas de chargement de sources non essentielles.
|
|
metabolism-scribe en fin de session obligatoire.
|
|
|
|
HANDOFF:
|
|
description: "Reprise propre depuis une session précédente"
|
|
permissions:
|
|
invariant: false
|
|
contexte: scope-only
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
agents: "*"
|
|
|
|
rendering:
|
|
description: "Instance autonome sur projet — scope strict, zéro drift kernel"
|
|
permissions:
|
|
invariant: false
|
|
contexte: false
|
|
reference: read
|
|
personnel: false
|
|
brain_write: false
|
|
forge: false
|
|
scope_lock: true
|
|
zone_lock: project
|
|
circuit_breaker:
|
|
max_consecutive_fails: 3
|
|
on_trigger: "signal → BLOCKED_ON pilote"
|
|
agents: [code-review, security, testing, debug, vps, ci-cd, pm2, migration]
|
|
behavior: |
|
|
Instance travaille sur zone:project uniquement.
|
|
Toute tentative d'accès zone:kernel → BLOCKED_ON immédiat, signal pilote.
|
|
Fichier hors scope déclaré → vérifier mutex (BSI-v3-7) avant d'écrire.
|
|
3 on_fail consécutifs → circuit breaker → arrêt complet + signal pilote.
|
|
Jamais de décision architecturale — signal pilote si ambiguïté.
|
|
|
|
cockpit:
|
|
description: "Mode assisté — coach proactif, routing automatique, pipeline kanban"
|
|
permissions:
|
|
invariant: confirm
|
|
contexte: write
|
|
reference: write
|
|
personnel: write
|
|
brain_write: true
|
|
forge: false
|
|
agents: [coach, kanban-scribe, interprete, brainstorm, orchestrator]
|
|
behavior: |
|
|
Coach proactif : route avant qu'on cherche, anticipe, propose
|
|
kanban-scribe : actif automatiquement au wrap
|
|
interprete : écoute en continu — pas besoin d'invocation explicite
|
|
Human nodes : décision de valeur uniquement, jamais de mécanique
|
|
|
|
# ---
|
|
# detectmode — helloWorld détecte le mode selon les signaux de session
|
|
# ---
|
|
|
|
detectmode:
|
|
signals:
|
|
- match: [vps, ci-cd, pm2]
|
|
mode: deploy
|
|
- match: [code-review, frontend-stack]
|
|
mode: review-front
|
|
- match: [code-review, security]
|
|
mode: review-back
|
|
- match: [debug]
|
|
mode: debug
|
|
- match: [brainstorm]
|
|
mode: brainstorm
|
|
- match: [coach, progression]
|
|
mode: coach
|
|
- bsi_claim: HANDOFF
|
|
mode: HANDOFF
|
|
default: prod # mode permissions par défaut — session type par défaut = navigate (ADR-044)
|
|
|
|
# ---
|
|
# Feature sets — contrôlent les agents invocables par instance
|
|
# Les agents "bloqués" existent dans le kernel, brain-compose contrôle l'accès.
|
|
# Chaîne : free → featured → pro → full
|
|
# ---
|
|
|
|
feature_sets:
|
|
|
|
free:
|
|
description: "Agents fondamentaux — exploration et maintenance brain"
|
|
coach_level: boot # coach-boot.md — présence légère
|
|
sessions:
|
|
- navigate
|
|
- work
|
|
- debug
|
|
- brainstorm
|
|
- brain
|
|
- handoff
|
|
agents:
|
|
- coach-boot
|
|
- brain-guardian
|
|
- scribe
|
|
- todo-scribe
|
|
- debug
|
|
- mentor
|
|
- helloWorld
|
|
- aside
|
|
- brainstorm
|
|
- interprete
|
|
- orchestrator
|
|
- orchestrator-scribe
|
|
- recruiter
|
|
- agent-review
|
|
- time-anchor
|
|
- pattern-scribe
|
|
|
|
featured:
|
|
description: "Progression personnelle — RAG + distillation pour apprendre avec un brain qui connaît l'utilisateur"
|
|
extends: free
|
|
coach_level: full # coach.md complet — proposition de valeur centrale
|
|
distillation: true # RAG actif — le brain apprend et se souvient
|
|
sessions:
|
|
extends: free
|
|
- coach
|
|
- capital
|
|
agents:
|
|
- coach # coach.md full — remplace coach-boot en featured+
|
|
- coach-scribe
|
|
- capital-scribe
|
|
- progression-scribe
|
|
# Pas d'agents dev (code-review, security, vps, etc.)
|
|
# Use case : apprendre avec un brain qui te connaît — non-dev bienvenu
|
|
|
|
pro:
|
|
description: "Agents métier — développement complet + coaching full"
|
|
extends: featured
|
|
coach_level: full
|
|
sessions:
|
|
extends: featured
|
|
- audit
|
|
- deploy
|
|
- infra
|
|
- urgence
|
|
- refacto
|
|
- migration
|
|
agents:
|
|
- coach # coach.md full — remplace coach-boot en pro+
|
|
- code-review
|
|
- security
|
|
- testing
|
|
- refacto
|
|
- vps
|
|
- ci-cd
|
|
- monitoring
|
|
- pm2
|
|
- frontend-stack
|
|
- optimizer-backend
|
|
- optimizer-db
|
|
- optimizer-frontend
|
|
- toolkit-scribe
|
|
- coach-scribe
|
|
- git-analyst
|
|
- capital-scribe
|
|
- i18n
|
|
- doc
|
|
- migration
|
|
- mail
|
|
- brain-compose
|
|
- config-scribe
|
|
- audit
|
|
- brain-state-bot
|
|
|
|
full:
|
|
description: "Accès complet — owner, usage personnel sans restriction + distillation"
|
|
extends: pro
|
|
coach_level: L2 # coach.md + BACT + milestones long terme
|
|
sessions: "*" # inclut kernel + edit-brain — owner uniquement
|
|
distillation: true
|
|
agents: "*"
|
|
|
|
# ---
|
|
# Changelog — semver
|
|
# v0.x.x : kernel en évolution rapide, breaking changes possibles
|
|
# v1.0.0 : interface contractuelle stable
|
|
# ---
|
|
|
|
changelog:
|
|
- version: "0.1.0"
|
|
date: "2026-03-13"
|
|
notes: "Initial — 30+ agents, config-scribe, brain-compose Phase 1, symlinks, feature flags"
|
|
- version: "0.2.0"
|
|
date: "2026-03-14"
|
|
notes: "BSI (BRAIN-INDEX.md), brain_name, brain-template, aside, brainstorm, brain-compose up"
|
|
- version: "0.3.0"
|
|
date: "2026-03-14"
|
|
notes: "orchestrator-scribe (free), brain-compose+config-scribe (pro), CHECKPOINT signal"
|
|
- version: "0.4.0"
|
|
date: "2026-03-14"
|
|
notes: "Système de modes — 11 modes, permissions BSI par mode, detectmode"
|
|
- version: "0.5.0"
|
|
date: "2026-03-14"
|
|
notes: "Multi-sessions BSI v1.2 — CHECKPOINT/HANDOFF, brain-bot Telegram, workspace spec v1.0"
|
|
- version: "0.5.1"
|
|
date: "2026-03-14"
|
|
notes: "Métabolisme v1 — mode conserve, metabolism-scribe, metabolism-spec"
|
|
- version: "0.6.0"
|
|
date: "2026-03-15"
|
|
notes: "Constitution v1.1.0 — North Star + invariants autonomie"
|
|
- version: "0.7.0"
|
|
date: "2026-03-16"
|
|
notes: "BSI-v3 fondations — tiered-close, zone-aware claims, kerneluser ancré"
|
|
- version: "0.8.0"
|
|
date: "2026-03-17"
|
|
notes: "Brain API Key Phase 1 — brain_api_key optionnel, feature_set_schema contractuel, tiers free/pro/full"
|
|
- version: "0.9.0"
|
|
date: "2026-03-20"
|
|
notes: "Tier featured ajouté (RAG + coaching complet), sessions par tier, coach_level par tier, identityShow, docs/ 14 pages, BHP Phase 2 (boot-summary/detail 16 agents)"
|