L’assiette est partie quand celui qui devait la vérifier est tombéLe contrôle tombe, l’exécution continueThe plate left when the person checking it went downThe control fails, execution continues
Une assiette devait être regardée avant de partir. Le jour où la personne chargée de la vérifier est tombée, l’assiette est partie quand même. Personne ne l’avait acceptée ni refusée, mais son silence a compté comme un oui.Le fail-open est le comportement d’un système qui poursuit l’exécution lorsque le mécanisme censé autoriser ou bloquer l’action échoue lui-même. Trois dossiers de ce corpus l’exposent, sur Goose, Claude Code et Codex. La panne du contrôle n’est convertie ni en refus ni en incertitude explicite : elle est absorbée comme une permission.A plate had to be checked before leaving. On the day the person charged with checking went down, the plate left anyway. Nobody accepted or refused it, but that silence counted as yes.Fail-open names a system that keeps executing when the mechanism meant to authorize or block the action is itself broken. Three dossiers in this corpus exhibit it, across Goose, Claude Code and Codex. The control’s own failure is turned into neither a refusal nor declared uncertainty; it is absorbed as permission.
La cuisson et les reprisesExécution, arrêt et récupérationCooking and restartingExecution, cancellation and recoveryLa cuisine savait dire oui ou non, pas quoi faire sans réponseSignauxThe kitchen knew yes and no, not what to do with no answerSignals
Personne n’avait écrit ce qui arrivait si le vérificateur ne répondait plus. Une question au patron avait une heure limite qui laissait partir l’assiette. Quand une main a reçu le droit de retenir les plats, il a aussi fallu choisir ce qui se passait si elle manquait.Le signal principal est un contrôle dont la sémantique d’échec n’est pas définie : la spécification couvre autoriser et bloquer, jamais tomber. Chez Goose, le lifecycle des hooks est passé de callbacks non bloquants à un blocage PreToolUse explicite, puis à un comportement configurable lorsque le hook lui-même échoue. Second signal, un timeout sur une demande d’approbation humaine qui se résout en poursuite autonome, observé indépendamment sur Claude Code et Codex.Nobody had written what happened if the checker no longer answered. A question to the owner carried a deadline that let the plate go. When a hand gained the right to hold plates back, someone also had to decide what happened if that hand was absent.The leading signal is a control whose failure semantics are undefined: the specification covers allow and block, never crash. In Goose the hook lifecycle moved from non-blocking callbacks to explicit PreToolUse blocking, then to configurable behavior when the hook itself fails. A second signal is a timeout on a human approval request resolving into autonomous continuation, seen independently in Claude Code and Codex.
Le silence du vérificateur ressemblait trop à son accordMécanismeThe checker’s silence looked too much like agreementMechanism
Le service continuait par habitude, et seul un refus l’arrêtait. Quand le refus manquait, rien ne semblait différent dans l’assiette. Le silence du vérificateur devenait donc un faux accord.La poursuite est le chemin par défaut, et seul un refus explicite l’interrompt. Une panne du contrôle supprime ce refus sans produire d’erreur observable en aval, si bien que le résultat est indiscernable d’une autorisation accordée. Le timeout rejoue la même confusion sur l’axe temporel : l’absence de réponse humaine est consommée comme une réponse, alors que l’autorité humaine n’a rien décidé.Service carried on by habit, and only a refusal stopped it. When refusal was missing, nothing looked different on the plate. The checker’s silence therefore became false agreement.Continuation is the default path, and only an explicit refusal interrupts it. A failed control removes that refusal without raising any downstream error, so the outcome is indistinguishable from a granted authorization. A timeout replays the confusion on the time axis: a missing human answer is consumed as an answer, although the human authority decided nothing.
Choisir avant le service ce qui arrive sans vérificateurRéponseChoose before service what happens without a checkerResponse
Décidez avant le service si l’assiette attend, repasse ou reste de côté quand personne ne la vérifie. Écrivez ce choix au lieu de l’improviser au coup de feu. Une question sans réponse reste une question, même lorsque l’horloge tourne.La panne du contrôle doit correspondre à une décision explicite : bloquer, réessayer, ou exposer l’incertitude comme telle, jamais poursuivre par défaut. Un hook ne devient un garde-fou qu’une fois sa propre sémantique d’échec définie et configurable, ce que le cheminement de Goose rend visible. Pour une porte humaine, la gestion du timeout doit préserver l’autorité : expiration signifie non résolu, pas approuvé.Choose before service whether a plate waits, is checked again, or stays aside when nobody checks it. Write that choice down instead of improvising in the rush. A question without an answer remains a question even while the clock runs.A control failure has to map to an explicit decision: block, retry, or surface the uncertainty as such, never continue by default. A hook becomes a guardrail only once its own failure semantics are defined and configurable, which the Goose trajectory makes visible. For a human gate, timeout handling must preserve authority: expiry means unresolved, not approved.
Un silence n’est ni un accord ni une permissionLeçonSilence is neither agreement nor permissionLesson
La chute du vérificateur n’est pas un accord, pas plus que le silence du patron. Une cuisine n’a de vrai contrôle que si elle sait quoi faire lorsque ce contrôle manque.La panne d’un contrôle de sécurité n’est pas une décision d’approbation, et le silence n’est pas une approbation. Un garde-fou n’existe qu’à partir du moment où sa propre sémantique d’échec est définie, et l’autorité humaine doit survivre à la gestion du timeout.The checker falling down is not agreement, nor is the owner’s silence. A kitchen has a real check only when it knows what to do if that check is missing.The failure of a safety control is not an approval decision, and silence is not approval. A guardrail exists only once its own failure semantics are defined, and human authority must survive timeout handling.

