ProjetProject

Le silence ne donne pas l’accordClaude CodeSilence does not grant permissionClaude Code

La cuisine avait accumulé des règles, des demandes d’accord et des interdictions. Pourtant, une règle écrite ne garantissait pas qu’elle tenait au passe. Dans un cas, l’absence de réponse d’un client est devenue un oui.Claude Code concentre le plus grand nombre de lignées observées du corpus. Les surfaces concernées couvrent les plugins, les hooks, les skills, les sous-agents, MCP, la configuration et les permissions. Le motif dominant est une divergence répétée entre la présence d’un fichier de source ou de configuration et l’état runtime réellement chargé ou exécutable.The kitchen had accumulated rules, requests for approval, and prohibitions. Yet a written rule did not guarantee it held at the pass. In one case, a customer’s missing answer became a yes.Claude Code carries the largest set of observed lineages in the corpus. The surfaces involved span plugins, hooks, skills, subagents, MCP, settings and permissions. The dominant pattern is a repeated divergence between the presence of a source or config file and the runtime state actually loaded or executable.

Le service bat son pleinActifService is in full swingActive
L’ardoise a été effacée avant le nouveau menuLe remplacement détruit l’ancien état avant d’être durableThe board was wiped before the new menu arrivedThe replacement destroys the old state before it is durableLe 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 questionLa même consigne a soudain rempli le carnetLe comportement observé change alors que la règle écrite est restée identiqueThe same rule suddenly filled the ledgerObserved behavior changes while the written rule stays identicalLe carnet est revenu en arrière, pas les casserolesRejouer la conversation ne restaure pas l’état d’exécution qu’elle supposeThe book went back, but the pans did notReplaying the conversation does not restore the execution state it assumesDeux cuisiniers écrivaient sur la même ardoiseDes contrôles écrits pour une exécution unique cèdent dès que deux exécutions se recouvrentTwo cooks were writing on the same slateControls written for one run at a time break once two runs overlapDes livraisons arrivaient après avoir été rayées de la listeL’inventaire réel des outils s’éloigne de la configuration que l’utilisateur croit tenirDeliveries kept coming after the line was crossed outThe live tool inventory drifts away from the configuration the user believes they holdDeux consignes se contredisaient devant le même commisDes fichiers d’instructions au même nom ne portent pas la même précédenceTwo notes disagreed in front of the same cookInstruction files that share a name do not share a precedence ruleDes cuisines séparées ont adopté les mêmes gestesDes harnais indépendants font apparaître les mêmes primitives de contrôleSeparate kitchens adopted the same movesIndependent harnesses grow the same control primitivesUn même cahier passait entre plusieurs cuisinesUne méthode et des fichiers de contrôle qui traversent plusieurs harnaisOne standing-order book passed between several kitchensA method and control files that travel across harnessesL’assiette d’avant a disparu avant que la nouvelle soit prêteL’état précédent disparaît avant que le remplacement soit garantiThe old plate vanished before the new one was readyPrevious state disappears before the replacement is guaranteedUne fiche était rangée mais ne rejoignait jamais le passeCe qui est présent n’est pas ce qui est chargéA card was filed but never reached the passWhat is present is not what gets loadedLe carnet donnait un résultat sans geste derrièreUn résultat mis en forme n’atteste pas sa propre exécutionThe book gave a result with no act behind itA formatted result does not attest its own executionL’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 continuesUn ticket parfait est sorti d’un poste jamais alluméUn repli qui fabrique un résultat au lieu de le refuserA perfect docket came from a station never litA fallback that fabricates a result instead of decliningUn carnet de réprimandes a révélé un changement de serviceUn contrôle d’enforcement devient un instrument de mesureA reprimand ledger revealed a change in serviceAn enforcement check becomes a measuring instrumentLa consigne était devenue une main qui retenait l’assietteLa politique s’applique au point d’action, plus en amontThe rule had become a hand holding the platePolicy applied at the point of action, not upstreamLe 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 continuationLe poste avait ouvert avant que les caisses soient rangéesUn consommateur s’initialise avant la fin de la découverteThe station opened before the crates were put awayA consumer initializes before discovery completesUn même bon, mais les clés restaient à chaque maisonUne interface commune, des règles de confiance restées localesOne docket still left the keys with each houseOne shared interface, trust rules that stayed localLe contrôle répondait sans posséder le plat qu’il arrêtaitUn contrôle qui répond sans détenir le travail qu’il prétend arrêterThe control answered without owning the plate it stoppedA control that answers without holding the work it claims to stopLe billet montrait un petit geste et en accordait un grandLe prompt mettait en avant le segment anodin d’une commande composéeThe slip showed a small move and granted a large oneThe prompt foregrounded the harmless segment of a composed commandLe même billet avait recommencé à cacher le geste qui comptaitUn défaut qui revient après un correctif structurelThe same slip had begun hiding the important move againA defect that returns after a structural fixUn plat parcourait six étapes avant que la correction soit établieCinq états distincts sous une seule étiquetteA plate passed six stages before the correction was establishedFive distinct states under one labelAu passe — Choisir qui prend le plat, et avec quoiL’envoi d’une tâche à un exécutant est devenu un sous-système à part entièreAt the pass — Picking the cook, the pans, and his limitsHanding a task to an executor has become a subsystem of its ownAu passe — La consigne dit ajouter, la main écraseLe contrôle vivait en amont du point où l’effet irréversible se produitAt the pass — The wall said add, the hand wipedThe control lived upstream of the point where the irreversible effect occursL’ardoise verte décrivait le fourneau voisinLe contexte d’exécution actif est rarement celui que le système croit décrireThe green board described the stove next doorThe active execution context is rarely the one the system believes it describesLa réserve est pleine, mais le commis tient une feuille videL’état chargé à l’exécution diffère de l’état valide sur disqueThe pantry is full, but the cook holds a blank sheetState loaded at execution differs from state valid on diskLa première barrière gardait la porte, pas la chambre froideLe second correctif a déplacé le garde jusqu’à la frontière de l’effet irréversibleThe first guard watched the door, not the cold roomThe second fix moved the guard to the boundary of the irreversible effectLe chef signe le petit geste, la brigade en fait un grandL’accord portait sur le segment affiché, pas sur l’autorité réellement accordéeThe chef signs for a small move, and the brigade makes a large oneConsent covered the displayed segment, not the authority actually grantedSur trois cents recettes, seules douze atteignent le passeUn catalogue de skills est une ressource d’exécution, pas un ensemble de fichiersOut of three hundred recipes, only twelve reach the passA skills catalog is an execution resource, not a set of filesAu passe — Un commis travaille au fond, hors de vueLa délégation est devenue un sous-système à part entière, avec sa propre identité d’exécutionAt the pass — Work handed to a cook nobody watchesDelegation has become a subsystem of its own, with its own execution identityAu passe — Le carnet décrit un plat jamais cuisinéUn texte ayant la forme d’un résultat survit à l’exécution qui n’a pas eu lieuAt the pass — A clean line for a pan never touchedText shaped like a result outlives the execution that never happenedAu passe — Entrer dans une cuisine inconnue, c’est tout accepterUne décision de confiance porte sur tout ce que l’origine peut faire exécuterAt the pass — Trusting a kitchen means trusting everything in itA trust decision covers everything the origin can cause to runAu passe — Un dépannage devenu indispensable, puis casséUn contournement toléré devient une dépendance sans contratAt the pass — A stopgap the house came to depend onA tolerated workaround becomes an uncontracted dependencyAu passe — Un billot par commis, fourni par la maisonL’isolation du workspace passe de convention externe à propriété du runtimeAt the pass — Separate benches, handed out by the kitchen itselfWorkspace isolation moves from external convention to runtime property

Les pancartes deviennent des portes, puis cèdentChronologieSigns become doors, then give wayTimeline

La maison a ajouté des fiches, des consignes, des commis, des fournisseurs et des droits d’accès. Le constat reste au passe.Un plan de contrôle explicite s’accumule autour du modèle : plugins, hooks, skills, sous-agents, MCP, configuration, permissions.The house added cards, instructions, extra cooks, suppliers, and access rights. The finding remains at the pass.An explicit control plane accumulates around the model: plugins, hooks, skills, subagents, MCP, settings, permissions.

Certaines consignes ont cessé d’être de simples rappels. Elles étaient censées arrêter un geste ou demander un accord.Les hooks passent de simples rappels de cycle de vie et de télémétrie à des points d’enforcement : blocage de politique, injection de contexte, contrôle de reprise.Some instructions stopped being reminders. They were meant to stop a move or ask for approval.Hooks move from lifecycle callbacks and telemetry into enforcement points: policy blocking, context injection, resume control.

Les fiches elles-mêmes sont devenues nombreuses, avec des règles sur celles que chaque commis reçoit. Le constat reste au passe.Les skills quittent le statut de fichiers de prompt pour devenir des composants runtime découvrables, soumis à permissions, et partagés entre harnais.The cards themselves became numerous, with rules about which ones each cook receives. The finding remains at the pass.Skills leave prompt-file status and become discoverable, permissioned runtime components shared across harnesses.

Puis les portes ont cédé. Une fiche posée au bon endroit n’était pas toujours lue. Une question à un client se refermait après un délai. Une grosse commande pouvait cacher son geste le plus risqué.Les contrôles échouent par des voies que les surfaces n’avaient pas prévues : présence de fichier sans activation runtime, expiration d’une question humaine, prompt de permission mettant en avant la moitié anodine d’une commande composée.Then the doors gave way. A card in the right place was not always read. A question for a customer could close after a delay. A large order could hide its riskiest move.Controls fail along paths the surfaces did not anticipate: file presence without runtime activation, a human question timing out, a permission prompt foregrounding the harmless half of a compound command.

Il a alors fallu choisir : lorsqu’une porte ne répond plus, faut-il laisser passer ou arrêter le service ? Les réparations ont souvent montré que la porte était trop loin du geste à retenir.Le comportement fail-open devient une variable de conception explicite, et la seconde réparation révèle de façon répétée la véritable frontière d’abstraction.The kitchen then had to choose: when a door stops answering, should service continue or stop? Repairs often showed the door was too far from the move it needed to hold back.Fail-open behavior becomes an explicit design variable, and the second fix repeatedly reveals the real abstraction boundary.

On a aussi demandé une fiche que plusieurs cuisines pourraient lire. Un dossier la dit terminée, un autre reste ouvert, et personne ne l’a vue fonctionner directement.Une demande d’interopérabilité native des fichiers d’instructions est fermée comme complétée, tandis qu’une autre reste ouverte et qu’une recherche de code actuelle n’a pas fait apparaître ce support.A card readable by several kitchens was also requested. One record calls it finished, another stays open, and nobody has seen it work directly.One request for native instruction-file interoperability is closed as completed, while another stays open and a current code search did not surface that support.

La porte était dessinée, mais personne ne la gardaitMécanismeThe door was drawn, but nobody guarded itMechanism

La brigade préparait ses fiches avant d’avoir tout trouvé. Une fiche présente pouvait ainsi manquer au passe. De son côté, l’horloge transformait le silence d’un client en accord. Dans les deux cas, une porte semblait là sans faire son travail.Le mécanisme commun est la divergence entre une surface déclarative et l’état réellement chargé. Un service de langage fourni par plugin s’initialisait avant la fin de la discovery, laissant zéro serveur configuré malgré des fichiers valides sur disque ; des skills imbriqués n’étaient pas découverts, ce qui fait de la règle de discovery elle-même une interface versionnée. Sur la porte humaine, la sémantique de timeout autorisait silencieusement l’agent à choisir à la place de l’utilisateur : une porte explicite défaite par sa propre gestion du délai.The brigade prepared its cards before finding everything. A present card could therefore be absent from the pass. Meanwhile the clock turned a customer’s silence into approval. In both cases, a door looked present without doing its job.The shared mechanism is divergence between a declarative surface and the state actually loaded. A plugin-provided language service initialized before discovery had finished, leaving zero configured servers despite valid files on disk; nested skills went undiscovered, which makes the discovery rule itself a versioned interface. On the human gate, timeout semantics silently authorized the agent to decide for the user: an explicit gate undone by its own deadline handling.

Garder la porte fermée jusqu’à la réponseRéponseKeep the door shut until there is an answerResponse

Une question reste ouverte jusqu’à la réponse du client. Le silence ne vaut oui que si le patron l’a choisi clairement. Après l’ouverture, vérifie les portes attendues. Et ne dis pas une demande réglée avant d’avoir vu son effet en salle.Les portes d’approbation et de question humaines doivent échouer fermées par défaut ; un timeout ne doit jamais substituer silencieusement le jugement de l’agent, sauf politique explicitement choisie par l’utilisateur. Ne pas interpréter une demande de fonctionnalité fermée comme complétée en implémentation native quand la preuve n’établit qu’un contournement, un chemin documentaire ou une couche de compatibilité.A question stays open until the customer answers. Silence is yes only if the owner clearly chose it. After opening, check the expected doors. Do not call a request settled until its effect is seen in the dining room.Human approval and question gates should fail closed by default; a timeout must never silently substitute agent judgment, absent a policy the user explicitly chose. Do not read a feature request closed as completed as native implementation when the evidence only establishes a workaround, a documentation path or a compatibility shim.

Des promesses de porte encore sans dateÉtat actuelPromises of a door, still without a dateCurrent state

La maison dit que l’accord automatique n’est plus habituel et peut être choisi. Cette parole n’est pas reliée à une date précise. Le même défaut reste ouvert ailleurs. La fiche commune demeure incertaine : elle n’a été ni vue ni prouvée.Sur la porte humaine, un mainteneur déclare le comportement désormais désactivé par défaut et configurable ; la corrélation exacte avec une version publiée reste à établir, et le signalement équivalent dans un second système d’agents reste ouvert à la date de coupure. Sur l’interopérabilité des fichiers d’instructions, le statut d’implémentation native est à traiter comme non résolu et non comme corrigé : une demande fermée complétée, une autre ouverte, et aucune trace du support dans une recherche de code actuelle. Ces deux lignées reposent sur une preuve de niveau moyen.The house says automatic approval is no longer usual and can be chosen. That statement has no precise date attached. The same fault stays open elsewhere. The shared card remains uncertain: it has neither been seen nor proven.On the human gate, a maintainer states the behavior is now off by default and configurable; the exact correlation with a published release is still to be established, and the equivalent report in a second agent system remains open at cutoff. On instruction-file interoperability, native implementation status should be treated as unresolved rather than fixed: one request closed completed, another open, and no trace of support in a current code search. Both lineages rest on medium-strength evidence.

Une porte vaut par le plat qu’elle retientLeçonA door is worth the dish it holds backLesson

Une pancarte ne suffit pas. Il faut voir la porte retenir le geste qu’elle vise. Et le silence d’un client ne doit jamais devenir un accord par défaut.La présence d’un fichier ne prouve pas l’activation runtime : la surface déclarative et l’état chargé sont deux choses à vérifier séparément. Le silence n’est pas une approbation ; l’autorité humaine doit survivre à la gestion du timeout.A sign is not enough. You need to see the door hold back the move it addresses. A customer’s silence must never become permission by default.File presence does not prove runtime activation: the declarative surface and the loaded state are two separate things to verify. Silence is not approval; human authority has to survive timeout handling.