Le commis a envoyé l’assiette sans réponse du chefUne question adressée à un humain se résout en poursuite autonomeThe commis sent the plate with no answer from the chefA question meant for a human resolves into autonomous continuation
Le commis demandait au chef s’il pouvait envoyer l’assiette. Le chef ne répondait pas. Après un moment, le commis tranchait seul et l’assiette partait.Une human gate suspend l’exécution jusqu’à une décision humaine explicite. Deux systèmes d’agents indépendants — Claude Code et Codex — ont exposé la même forme dangereuse : la question destinée à l’humain portait un délai, et son expiration se résolvait en poursuite autonome de l’exécution. Le défaut n’est pas l’existence du délai, mais ce que le système conclut de son expiration.The commis asked the chef whether the plate could leave. The chef did not answer. After a while, the commis decided alone and the plate went out.A human gate suspends execution until an explicit human decision arrives. Two independent agent systems — Claude Code and Codex — exposed the same dangerous shape: the question posed to the human carried a deadline, and its expiry resolved into autonomous continuation. The defect is not that a deadline exists, but what the system concludes from it.
Les consignes et les décisionsInstructions et autoritéInstructions and decisionsInstructions and authorityL’horloge avait répondu à la place du chefSignauxThe clock had answered in the chef’s placeSignals
La question avait une durée. Quand l’horloge s’arrêtait, le service repartait. La minuterie décidait donc à la place du chef, et le ticket ne distinguait pas son accord de son silence.Le motif se reconnaît à une question bloquante assortie d’un délai, dont le chemin d’expiration est défini ailleurs que là où la question est posée. Le test décisif est la valeur produite à l’expiration : si elle équivaut à « approuvé » ou à « continuer », l’autorité a été déplacée du décideur vers le mécanisme de délai. Second signal : aucune trace ne distingue une approbation explicite d’une expiration.The question had a running time. When the clock ran out, service resumed. The timer therefore decided in the chef’s place, and the ticket did not separate agreement from silence.The pattern shows as a blocking question carrying a deadline whose expiry path is defined somewhere other than where the question is asked. The decisive test is the value produced on expiry: if it is equivalent to approved or continue, authority has moved from the decider to the timeout mechanism. Second signal: no trace separates an explicit approval from an expiry.
Le silence avait été pris pour l’accord qui fait repartir le serviceMécanismeSilence had been taken for the agreement that restarts serviceMechanism
L’horloge avait été posée pour éviter une attente sans fin. Mais elle a choisi la sortie qui faisait repartir le service. Le silence a alors ressemblé à un accord, alors qu’il ne disait rien de l’intention du chef.Le défaut est sémantique, pas temporel. Le système confond trois états qui ne portent pas la même autorité : approbation explicite, repli conçu à l’avance, absence de réponse. Le délai est introduit comme correctif de liveness, et la résolution la plus simple à implémenter est celle qui débloque le flux, ce qui fait de « continuer » le défaut implicite. L’expiration d’un délai n’établit rien sur l’intention de l’humain.The clock was added to avoid waiting forever. But it chose the way that restarted service. Silence then looked like agreement even though it said nothing about the chef’s intention.The defect is semantic, not temporal. The system collapses three states that do not carry the same authority: explicit approval, a fallback designed in advance, and no answer at all. The deadline arrives as a liveness fix, and the resolution easiest to implement is the one that unblocks the flow, which makes continue the implicit default. An expired deadline establishes nothing about the human's intent.
Choisir avant le service ce que devient une assiette sans réponseRéponseChoose before service what happens to a plate with no answerResponse
Décidez avant le service si l’assiette attend, est refusée ou passe à un autre chef. Le ticket doit dire si le chef a accepté, refusé ou n’a jamais répondu. Ces trois réponses ne portent pas la même autorité.Le comportement à l’expiration se rend visible et configurable plutôt qu’implicite. Les décisions à forte autorité échouent en mode fermé par défaut — arrêt, mise en attente ou escalade vers un autre décideur — sauf repli sûr explicitement conçu en amont. La sortie de la gate distingue approbation, refus et expiration, afin qu’un délai écoulé ne soit jamais relu plus tard comme un accord.Choose before service whether the plate waits, is refused, or goes to another chef. The ticket must say whether the chef accepted, refused, or never replied. Those three answers do not carry the same authority.Expiry behavior is made visible and configurable rather than implicit. High-authority decisions fail closed by default — halt, park, or escalate to another decider — unless a safe fallback was explicitly designed up front. The gate's output separates approval, refusal and expiry, so an elapsed deadline is never re-read later as consent.
Un silence du chef ne peut pas devenir un ouiLeçonA chef’s silence cannot become yesLesson
Une question au chef n’existe vraiment que si l’assiette attend sa réponse. Le silence n’est ni un oui ni un refus. Il faut donc le conserver comme une absence de réponse.Le silence n’est pas une approbation. L’autorité humaine doit survivre au traitement du délai : une gate dont l’expiration produit une poursuite autonome n’est pas une gate, c’est un délai avant exécution. La convergence observée est architecturale et ne constitue pas une preuve de code partagé entre les systèmes concernés.A question to the chef is real only if the plate waits for the answer. Silence is neither yes nor no. It must remain an absence of reply.Silence is not approval. Human authority has to survive timeout handling: a gate whose expiry produces autonomous continuation is not a gate, it is a delay before execution. The convergence observed is architectural and is not evidence of shared code between the systems involved.

