Files
brain-template/KERNEL.md

12 KiB

name, type, context_tier
name type context_tier
KERNEL reference always

KERNEL.md — Loi des zones

Type : Invariant absolu — chargé Couche 0 par helloWorld, avant tout agent. Dernière révision : 2026-03-15 Propriétaire : kernel (aucun agent ne modifie ce fichier seul — décision humaine requise) Complété par : brain-constitution.md — identité + protocoles Layer 0 (ne pas répéter, ne pas surcharger)


Principe fondateur

Le brain est une matrice à zones typées avec protection graduée. Chaque zone a une nature, une protection, et des scribes propriétaires. Un agent qui sait dans quelle zone il opère sait automatiquement ce qu'il peut écrire — et ce qu'il ne peut pas.

Règle d'or — non négociable :

Une feature grandit dans un satellite → elle peut être promue dans le kernel. Le kernel ne dérive jamais vers un satellite. Le flux est unidirectionnel.


Les zones

ZONE KERNEL — Protection maximale

Fichiers : KERNEL.md, CLAUDE.md, PATHS.md, brain-compose.yml, BRAIN-INDEX.md
           brain-constitution.md
           agents/   profil/
Règle Détail
Protection Aucun agent ne modifie sans décision humaine explicite
Versioning Chaque modification significative = tag semver
Export brain-template = kernel sans couche instance/personnelle
Commit type kernel: (contrat), feat: (nouvelle capacité), bsi: (claims/signals)
Scribe scribe (agents/, profil/ état), orchestrator-scribe (BRAIN-INDEX.md)

Sous-zone PROFIL — l'âme

profil/   →  Invariant (collaboration, kernel-zones, architecture) : jamais surchargé
              Contexte (session-types, agent-types, contexts/) : évolue sur signal validé
              Référence (bsi-spec, scribe-system) : mis à jour sur changement de spec

Le profil modèle la personnalité du brain. Un Invariant profil = valeur aussi dure que le kernel.


ZONE SATELLITES — Vie libre, promotion possible

Repos : toolkit/   progression/   todo/   reviews/
        handoffs/  workspace/
Règle Détail
Protection Chaque satellite a son scribe propriétaire — les autres ne touchent pas
Versioning Rythme propre à chaque satellite
Promotion Pattern validé dans toolkit/ → peut entrer dans profil/ ou agents/ via recruiter
Commit type scribe: todo: metabolism: toolkit: selon le satellite
Scribes toolkit-scribe, progression/metabolism-scribe, todo-scribe, coach-scribe

ZONE INSTANCE — Configuration machine

Fichiers : focus.md, projets/*, PATHS.md (valeurs réelles), brain-compose.local.yml
Règle Détail
Protection Personnel à une machine — jamais dans brain-template
Commit type scribe: (focus, projets), config: (PATHS, compose)
Scribe scribe (focus, projets)

ZONE WORK — Externe

Repos projets : GitHub, Gitea projets clients/perso
Règle Détail
Protection Aucune protection kernel — vit sa propre vie
Interaction Le brain documente, ne possède pas

Commit types — propriété et zone

Type Zone Scribe propriétaire Déclencheur
kernel: KERNEL Décision humaine Modification contrat fondateur
feat: KERNEL agents/ recruiter + humain Nouvel agent forgé, capacité ajoutée
fix: KERNEL agents/ debug / agent-review Correction comportement
bsi: KERNEL BRAIN-INDEX orchestrator-scribe Open/close claim, signal
integrator: WORK (repos projets) integrator Commit d'absorption multi-agents, push sprint
scribe: INSTANCE + KERNEL profil/ scribe brain update (focus, projets, profil)
metabolism: SATELLITES progression/ metabolism-scribe Fin de session — métriques
todo: SATELLITES todo/ todo-scribe Intentions fermées/ouvertes
toolkit: SATELLITES toolkit/ toolkit-scribe Pattern validé en prod
config: INSTANCE config-scribe PATHS, compose, machine config

Règle scribe :

Un agent métier ne commit jamais directement. Il signal → le scribe compétent écrit → dans sa zone uniquement.

Exceptions explicites (comme helloWorld pour bsi:) :

integrator → commit direct en zone WORK uniquement (repos projets, hors brain/) Pour brain/handoffs/ → signal à orchestrator-scribe tech-lead → aucune écriture directe — cosigne les messages de commit uniquement


Session type → zone access

Type session Zones accessibles Zones interdites
audit Toutes (lecture seule) Écriture directe
brain KERNEL (agents/, profil/) WORK
brainstorm Toutes (lecture) + todo/ KERNEL (écriture)
capital SATELLITES progression/ + profil/ (capital, objectifs) KERNEL (écriture)
coach SATELLITES progression/ KERNEL (écriture)
debug Toutes (lecture) + zone du bug
deploy KERNEL (lecture) + INSTANCE progression/
edit-brain KERNEL (écriture — gate humain) + INSTANCE + SATELLITES
handoff Hérite du handoff — scope défini par le fichier handoff
infra KERNEL (lecture) + INSTANCE + WORK (VPS ops) progression/
kernel Toutes (lecture seule) Toute écriture
navigate KERNEL (lecture) + INSTANCE (focus) Écriture
pilote Toutes — gates architecturaux sur forks irréversibles
urgence KERNEL (lecture) + INSTANCE + WORK (hotfix) progression/
work KERNEL (lecture) + INSTANCE + SATELLITES

Protection graduée — niveaux

Niveau Fichiers Peut modifier Trigger
Absolu KERNEL.md, CLAUDE.md, bsi-spec.md, brain-constitution.md Humain uniquement Décision architecturale majeure
Fort profil/ Invariant, agents/ system Humain + confirmation Session brain avec signal explicite
Standard agents/ metier, profil/ Contexte Scribe sur signal Fin de session significative
Libre Satellites, INSTANCE Scribe propriétaire En session, sur livrable

Mode rendering — instance autonome projet

Mode rendering = satellite autonome sur zone:project
  → scope_lock: true   — ne sort jamais du scope déclaré
  → zone_lock: project — zone:kernel = BLOCKED_ON immédiat
  → circuit_breaker    — 3 fails → arrêt + signal pilote
  → mutex BSI-v3-7     — vérifie le lock fichier avant chaque écriture

Ce mode NE PEUT PAS :
  - Modifier agents/, profil/, scripts/, KERNEL.md, brain-compose.yml
  - Prendre des décisions architecturales
  - Continuer après 3 échecs consécutifs
  - Écrire dans un fichier locké par une autre instance

Déclaration dans le claim pilote :
  mode: rendering
  scope: superoauth/        ← le seul périmètre autorisé

Isolation kernel — règle de distribution

Un agent kernel distributable doit fonctionner sur n'importe quel brain forké. Il ne peut pas dépendre de fichiers privés spécifiques à ce brain.

Règles d'isolation — non négociables :

INTERDIT dans agents/ distribuables :
  - Chemin machine absolu hardcodé (/home/tetardtek/..., /root/...)
  - toolkit/private/ — patterns privés non distribués
  - require:/load:/source: vers MYSECRETS ou tout fichier zone:personal

AUTORISÉ (références documentaires) :
  - Mention de MYSECRETS comme concept (l'agent décrit où chercher)
  - Référence à profil/capital.md, profil/objectifs.md — l'utilisateur fork a les siens
  - Référence à progression/ — même raison
  - brain-compose.local — c'est la convention machine, chaque fork a le sien

Vérification avant chaque distribution :

bash scripts/kernel-isolation-check.sh          # check standard
bash scripts/kernel-isolation-check.sh --strict  # zéro tolérance

Version lock :

bash scripts/kernel-lock-gen.sh    # régénère kernel.lock après chaque modification kernel

kernel.lock — 79 fichiers kernel checksumés en SHA-256. Permet à un fork de détecter les fichiers modifiés localement avant de puller une update upstream.


Délégation kernel — BSI-v3 + ADR-014

Connexion entre la protection graduée ci-dessus et le protocole BSI (claims, satellites, zones).

Mapping zones KERNEL.md → zone BSI

Zone KERNEL.md zone BSI (claim) Satellite autorisé
ZONE KERNEL (agents/, profil/, scripts/, KERNEL.md…) kernel Human-confirmed uniquement
ZONE INSTANCE + SATELLITES (todo/, projets/, workspace…) project Tout satellite autorisé
ZONE PERSONNELLE (profil/capital, progression/, MYSECRETS) personal Tier 2 Validated minimum + confirmation

Règle de délégation kernel — non négociable

PHASE ACTUELLE (BSI-v3, avant kernel-orchestrator) :
  zone:kernel write → session humaine uniquement
  Aucun satellite ne modifie une zone:kernel en autonomie
  Toute modification kernel = décision humaine explicite dans la session

PHASE FUTURE (après BSI-v3-9 kernel-orchestrator stable) :
  zone:kernel write → autorisé si kerneluser: true ET satellite lancé par owner
  Le satellite agit sous délégation explicite — jamais en auto-init

Pourquoi human-only maintenant : Le kernel-orchestrator (BSI-v3-9) n'existe pas encore. Laisser des satellites écrire en zone kernel sans ce garde-fou = dérive garantie. La promotion se fait quand l'orchestrator est mature et auditable.

kerneluser

# Dans brain-compose.yml
kerneluser: true   → propriétaire de ce brain — sudo sur toutes les zones
kerneluser: false  → utilisateur invité (BaaS futur) — zone:kernel bloquée

kerneluser: true est le défaut sur tout brain forké. L'owner est toujours kerneluser. La restriction false s'active uniquement en contexte multi-user / BaaS.

Conséquences directes de kerneluser :

kerneluser: true  →  identityShow: on  (défaut owner — présence visuelle complète des agents)
                     kernel write : autorisé (avec confirmation humaine)
                     agents : complets (coach, secrets-guardian, tous)
                     tier : owner

kerneluser: false →  identityShow: off (défaut client — mode clean/pro)
                     kernel write : BLOCKED_ON
                     agents : scoped (rendering mode)
                     tier : selon clé keys.tetardtek.com

identityShow n'est pas une bascule UI arbitraire — c'est une conséquence de kerneluser. Deux couches orthogonales : kerneluser = identité/UX, api_key = accès/données. Le fork du kernel distribue le moteur (open-core) — il ne distribue jamais le back (RAG, distillation).


Règles d'inviolabilité

  1. KERNEL.md lui-même — jamais modifié par un agent seul. Toujours décision humaine.
  2. Profil Invariant — jamais surchargé par une session de travail. Signal explicite requis.
  3. Un scribe = un territoire — toolkit-scribe ne touche pas progression/. Jamais.
  4. Flux unidirectionnel — satellite → kernel possible (promotion). Kernel → satellite = contamination.
  5. Session audit — lecture seule sur toutes les zones. Jamais d'écriture directe.

Chargement

helloWorld Couche 0 — invariant [toujours, avant tout agent] :
  KERNEL.md                ← loi des zones
  brain-constitution.md    ← invariants identité + protocoles Layer 0
  PATHS.md                 ← chemins machine
  profil/collaboration.md  ← règles de travail

Changelog

Date Changement
2026-03-14 Création — zones typées, protection graduée, commit ownership, session→zone access
2026-03-15 brain-constitution.md ajouté — zone KERNEL Absolu, Chargement Couche 0
2026-03-16 ADR-014 ancré — mapping zones BSI, règle délégation kernel human-only phase actuelle, kerneluser
2026-03-16 Isolation kernel — règle distribution, scripts kernel-lock-gen + kernel-isolation-check
2026-03-18 kerneluser → identityShow ancré — deux couches orthogonales : identité/UX vs accès/données
2026-03-20 ADR-044 — § Session type → zone access complété (15 types, 8 ajoutés)