Chapitre 2

Le Jour des Protocoles

15 mars 2026

Chapitre 2 — Le Jour des Protocoles

Sources :

  • git -C /home/tetardtek/Dev/Brain log --after="2026-03-14" --before="2026-03-16" --oneline
  • /home/tetardtek/Dev/Brain/agents/secrets-guardian.md — section Changelog + protocoles
  • /home/tetardtek/Dev/Brain/toolkit/bact/patterns/security.yml — dates captured

Le 15 mars 2026, le brain n’est pas encore une plateforme — c’est encore un chantier qui tient debout par la force des conventions. Et ce jour-là, les conventions ont montré leurs limites.

Vers 5h47 du matin, un commit silencieux change quelque chose de structurel dans secrets-guardian. Pas une feature. Un patch. La distinction est importante : patch: secrets-guardian — secret-write structurel (placeholder+sed), handoff + prompts Tier 1. Le problème est identifié : les valeurs secrètes peuvent transiter dans les paramètres des outils Claude — Edit, Write, Bash — et personne ne le vérifie. Les règles comportementales ne suffisent pas. La règle devient architecturale. Le pattern placeholder + injection silencieuse est formalisé et inscrit dans l’agent comme loi non-négociable.

Trois heures plus tard, à 11h34, un deuxième patch tombe : fix(secrets-guardian): 3 gaps Surface 4. Trois failles sont comblées simultanément — le trigger .env.example proactif (ne pas attendre une violation, bloquer dès la détection), l’interdiction explicite de grep/cat sur MYSECRETS dans Bash, et la règle sur la génération de secrets : openssl rand ne s’affiche jamais. Ces trois gaps coexistaient depuis la création de l’agent. Il aura fallu ce jour pour les nommer et les fermer.

Dans l’après-midi, un troisième incident est traité différemment. À 18h14, un commit corrige la Surface 3 : security: replace VPS IP by $VPS_HOST in handoffs + agents. Une IP publique traînait dans les fichiers trackés par git. La correction est chirurgicale — remplacement par variable, sans rotation, sans incident critique, mais l’événement est enregistré. La Surface 3 (commandes shell) vient d’être cartographiée dans les faits.

Parallèlement, en milieu d’après-midi, le pipeline kanban prend forme. À 17h12 : feat(pipeline): kanban workflow v1 — boot mode + kanban-scribe + cockpit mode. Ce n’est pas un outil accessoire — c’est l’ossature de comment le brain pilote les sprints multi-sessions. Le kanban-scribe devient le mécanisme d’enregistrement automatique des états de livraison, câblé au cockpit.


Ce qui a été construit

  • Protocole secret-write : règle architecturale (pas comportementale) — placeholder obligatoire, injection sed silencieuse, unset val. Inscrit dans secrets-guardian section dédiée. (commit a634a6e, 05h47)
  • Surface 4 — 3 gaps fermés : .env.example proactif, grep MYSECRETS interdit, génération secrets pipe-only. (commit 81fea95, 11h34)
  • Surface 3 — VPS IP retirée du git : $VPS_HOST en remplacement, pattern documenté dans secrets-guardian. (commit 9be6529, 18h14)
  • Kanban workflow v1 : pipeline boot mode + kanban-scribe + cockpit mode opérationnel. (commit 3f9a85a, 17h12)

Décisions clés

Les règles comportementales ne sont pas suffisantes. Un agent peut être bien intentionné et quand même laisser passer une valeur dans un paramètre d’outil. Le patch du 15 mars tranche la question : la règle doit être structurelle, inscrite dans le pattern d’écriture lui-même, pas dans une liste de consignes.

La détection doit être proactive, pas réactive. Le gap .env.example révèle un problème de temporalité : attendre qu’une violation se produise, c’est déjà trop tard. Le trigger devient bloquant dès la détection du fichier.

La traçabilité des décisions de sécurité prime sur la fluidité. Chaque surface (code, chat, shell, outputs) reçoit son protocole dédié. Ce n’est pas une checklist — c’est une taxonomie opérationnelle qui permet de dire exactement où une fuite peut se produire et comment la traiter.