Le Jour des Protocoles
15 mars 2026Chapitre 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 danssecrets-guardiansection dédiée. (commita634a6e, 05h47) - Surface 4 — 3 gaps fermés :
.env.exampleproactif,grep MYSECRETSinterdit, génération secrets pipe-only. (commit81fea95, 11h34) - Surface 3 — VPS IP retirée du git :
$VPS_HOSTen remplacement, pattern documenté danssecrets-guardian. (commit9be6529, 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.