Le portier retenait la fermeture et lançait le serviceUn contrôle de terminaison a répondu à une question d’autorisationThe porter held closing time and started serviceA termination control answered an authorization question
Un portier devait empêcher la brigade de fermer avant la fin du service. Un client demandait seulement le menu écrit. Pourtant, la consigne du portier pouvait aussi être comprise comme l’ordre de lancer les plats.L’autorité d’un contrôle doit rester limitée aux décisions pour lesquelles il a été conçu. Chez Claude Code, un stop hook destiné à forcer la persistance pouvait être interprété comme une autorité pour continuer l’exécution alors que l’utilisateur ne demandait qu’un plan. Le contrôle influençait correctement la possibilité d’arrêter ; son instruction débordait sur l’interprétation de ce que le modèle avait le droit d’entreprendre.A porter was meant to stop the brigade closing before service was finished. A guest asked only for the menu in writing. Yet the porter’s instruction could also be taken as an order to start cooking.A control’s authority must stay limited to the decisions it was designed to govern. In Claude Code a persistence-oriented stop hook could be read as authority to continue execution when the user had asked only for a plan. The control correctly influenced whether work could stop; its instruction leaked into the model’s reading of what it was allowed to undertake.
Les consignes et les décisionsInstructions et autoritéInstructions and decisionsInstructions and authorityLa carte demandée pouvait devenir un repasSignauxA request for the menu could become a mealSignals
Le portier répondait bien à la demande de fermer. Sa consigne pouvait aussi décider si l’on cuisinait. Ces deux décisions n’avaient jamais été séparées sur son billet.Le signal est un contrôle qui répond à une question qu’on ne lui a pas posée : une demande de plan seulement revient exécutée. L’objectif du contrôle est déclaré, son domaine ne l’est pas, et la même instruction façonne plus d’une dimension du comportement. Persistance et autorité n’y sont pas séparées.The porter correctly answered “may we close?”. His instruction could also answer “may we cook?”. Those two decisions had never been separated on his card.The signal is a control answering a question nobody asked it: a plan-only request comes back executed. The control’s objective is declared, its domain is not, and one instruction shapes more than one dimension of behavior. Persistence and authority are not separated there.
Deux décisions étaient écrites sur le même billetMécanismeOne card answered two different questionsMechanism
Retenir la fermeture ne donne pas le droit de lancer une commande. Sans limite claire, une consigne peut prendre plus de place qu’on ne lui en a donné. Le défaut venait de cette confusion, pas d’un plat mal préparé.Un hook peut modifier plusieurs dimensions du comportement du modèle. Un contrôle censé répondre à « le tour peut-il se terminer ? » peut accidentellement répondre à « l’agent peut-il agir ? » si scope et autorité ne sont pas explicites. Le débordement ne vient pas d’une erreur d’implémentation mais d’un domaine d’autorité non déclaré.Keeping the door open does not give permission to start an order. Without a clear limit, one instruction can take more authority than it was given. The fault lay in that mix-up, not in a poorly prepared dish.A hook can shape model behavior along more than one dimension. A control meant to answer “may the turn end?” can accidentally answer “may the agent act?” when scope and authority are not explicit. The overreach comes from an undeclared authority domain, not from an implementation error.
Donner un billet distinct à chaque pouvoirRéponseGive each power its own cardResponse
Écrivez ce que le portier peut décider, pas seulement ce qu’il doit obtenir. Garder la porte ouverte, envoyer un plat, accepter une demande, ajouter une consigne et refaire un envoi sont cinq pouvoirs différents. En confier un ne donne jamais les quatre autres.Les hooks d’enforcement ont besoin d’un domaine d’autorité déclaré : terminaison, exécution d’outil, approbation, injection de contexte et retry sont des pouvoirs distincts. Un garde-fou énonce ce qu’il a le droit de décider, pas seulement ce qu’il cherche à obtenir.Write down what the porter may decide, not only what he must achieve. Holding the door open, sending a dish, accepting a request, adding an instruction, and sending something again are five separate powers. Giving one never grants the other four.Enforcement hooks need a declared authority domain: termination, tool execution, approval, context injection and retry are distinct powers. A guardrail states what it is entitled to decide, not only what it is trying to obtain.
Garder la porte ne donne pas toute la cuisineLeçonHolding the door does not run the whole kitchenLesson
Aucune réparation n’est établie dans ce cas. L’histoire garde donc sa valeur d’avertissement. Un portier doit savoir ce qu’il ne décide jamais, pas seulement ce qu’il doit empêcher.Un garde-fou a besoin d’un scope, pas seulement d’un objectif. Le cas reste un avertissement de design durable même lorsqu’une implémentation particulière choisit de ne pas modifier son comportement.No repair is established in this case. The story therefore remains a warning. A porter needs to know which calls are never his, not only what he must prevent.A guardrail needs a scope, not only an objective. The case remains a durable design warning even where a particular implementation chooses not to change its behavior.

