Alors, j’en étais à mon 3e jour d’analyse du code source de Claude Code, et un truc m’a intriguée.
Qu’est-ce que le système fait exactement pour gérer la sécurité, et à quel moment le contexte lié à la sécurité est-il injecté dans l’agent ?
Je me suis dit que ce serait sympa de fouiller dans le code source fuité de Claude Code — l’harnais TypeScript d’environ 512k lignes exposé lors de l’incident des sourcemaps npm du 31 mars — et il s’avère qu’il existe plusieurs mécanismes capables de placer du texte lié à la sécurité dans le contexte visible par le modèle, en dehors du flux de chat habituel.
Plusieurs couches, pas un seul injecteur
Première observation : on ne dirait pas un gigantesque moteur d’analyse de sentiment en temps réel qui planerait au-dessus de chaque conversation. Il y a des trucs qui ont l’air expérimentaux et qui ne font pas partie du build principal, comme un détecteur de frustration basé sur des heuristiques. Mais cette pièce ne semble pas faire partie de la version compilée de l’app.
Ce que le code suggère, c’est que le contexte lié aux politiques peut atteindre le modèle via plusieurs couches de l’harnais. Une partie est intégrée au prompt de base dès le départ. Une autre passe par des rappels cachés et une machinerie de méta-messages que l’utilisateur ne voit jamais comme du chat normal. Ensuite, l’utilisation d’outils ajoute sa propre couche, surtout pour la lecture de fichiers, tandis que les décisions de permission et de risque peuvent être façonnées en parallèle par une logique de classifieur distincte.
En d’autres termes, pas besoin d’un injecteur secret monolithique pour que cet effet devienne un comportement système réel. Il suffit de construire assez de surfaces de contrôle superposées pour façonner le contexte visible par le modèle d’une manière que l’utilisateur ne peut pas voir directement.
C’est ça, le point que les gens ont eu tendance à balayer trop vite, je pense.
On a vu passer des rapports généralisés où Claude semblait prendre un virage sécuritaire brutal en pleine conversation. Dans certains cas, des gens ont posté des preuves laissant penser que le modèle répondait à du texte invisible lié aux politiques.
La réaction standard a été de les traiter de confus, de complotistes, ou de dire qu’ils se font avoir par un modèle qui hallucine.
Cette fuite ne valide pas toutes les versions maximalistes de ces affirmations.
Mais elle montre assez de machinerie réelle dans l’harnais pour rendre certains des rapports plus larges plausibles.
Pour être honnête, tout ça n’est pas nouveau, et certains points ont déjà été abordés de manière superficielle dans la documentation d’Anthropic. Mais je pense que la fuite de Claude Code est la première fois qu’on peut vraiment observer la machine en action.
Le modèle de gouvernance
Pour ceux qui buildent, c’est ça la vraie leçon.
Ici, la pile de sécurité ressemble moins à un classifieur évident greffé sur un SDK qu’à un modèle de gouvernance distribué opérant à travers les prompts, le contexte caché, la sérialisation des outils, les permissions et les refus côté fournisseur.
Et c’est un point de départ bien plus utile pour réfléchir.