Le 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 completes
Le poste a ouvert à l’heure et le cuisinier a trouvé ses bacs vides. Les caisses, pleines et bien étiquetées, étaient encore dans le couloir. Le poste a donc tenu le service sans rien dans ses bacs.Un service de langage fourni par plugin s’est initialisé avant la fin de la discovery des plugins, laissant le runtime avec zéro serveur configuré malgré des fichiers valides sur disque. Les plugins ont été chargés quelques millisecondes plus tard, sans que la surface attendue soit reprise. L’ordre d’initialisation, et non le contenu de la configuration, a déterminé ce qui était actif au moment des premières opérations.The station opened on time and the cook found empty trays. The full, correctly labelled crates were still in the corridor. The station therefore worked service with nothing in its trays.A plugin-provided language service initialized before plugin discovery had finished, leaving the runtime with zero configured servers despite valid files on disk. The plugins loaded a few milliseconds later, and the expected surface was never picked up. Initialization order, not configuration content, decided what was active for the first operations.
Les ustensiles et les machinesOutils, configuration et runtimeUtensils and machinesTools, configuration and runtimeLes caisses étaient bonnes, les bacs restaient videsSignauxThe crates were right while the trays stayed emptySignals
Le livreur montrait des caisses correctes et le cuisinier des bacs vides. Les deux disaient vrai. Rien ne cassait ni ne criait ; le poste travaillait simplement avec rien.Le motif se reconnaît à une contradiction entre l’artefact et l’état observé : configuration valide sur disque, zéro entrée active dans le processus. La validation statique passe, puisque les fichiers sont corrects, et l’échec est silencieux : le résultat est un ensemble vide, pas une erreur. Le comportement dépend de l’ordre de démarrage et non du contenu, donc il ne se reproduit pas par relecture du fichier.The delivery person showed correct crates and the cook showed empty trays. Both told the truth. Nothing broke or shouted; the station simply worked with nothing.The pattern shows as a contradiction between artifact and observed state: valid configuration on disk, zero active entries in the process. Static validation passes, since the files are correct, and the failure is silent: the outcome is an empty set, not an error. Behavior depends on start order rather than content, so re-reading the file reproduces nothing.
Un bac vide ne criait pas qu’il manquait une caisseMécanismeAn empty tray did not shout that a crate was missingMechanism
On avait vérifié les caisses, jamais les bacs. Comme la marchandise était bonne, on croyait le poste prêt. Un bac vide ressemblait à un poste tranquille et le compte n’était jamais refait.La vérification porte sur l’artefact — le fichier existe, il est valide — alors que la propriété utile est l’état du processus au moment de l’usage. Un instantané unique est pris avant la fin de la discovery et n’est jamais réévalué, de sorte qu’un chargement postérieur de quelques millisecondes ne corrige rien. L’absence se matérialise en ensemble vide, indistinguable d’une configuration délibérément vide, ce qui supprime le signal d’erreur qui aurait déclenché l’investigation.The crates had been checked, never the trays. Since the goods were good, the station seemed ready. An empty tray looked like a quiet station and the count was never taken again.Verification targets the artifact — the file exists, it parses — while the useful property is process state at the moment of use. A single snapshot is taken before discovery completes and is never re-evaluated, so a load arriving milliseconds later corrects nothing. The absence materializes as an empty set, indistinguishable from a deliberately empty configuration, which removes the error signal that would have prompted investigation.
Ouvrir les bacs avant le premier platRéponseOpen the trays before the first orderResponse
Rangez les caisses avant l’ouverture, ou revenez le faire avant le premier plat. Ouvrez les bacs pour savoir si le poste est prêt. La parole du livreur ne remplace pas ce qui est sous la main.Les contrôles chargés après le démarrage ont besoin de health checks post-initialisation vérifiant que la surface attendue répond réellement. Quand c’est possible, préférer un enregistrement dynamique à un instantané unique de découverte, afin qu’un composant arrivé tard soit repris. Un ensemble vide au démarrage se traite comme un état distinct d’une configuration vide déclarée, afin qu’il produise un signal.Put away the crates before opening, or come back before the first dish. Open the trays to know whether the station is ready. The delivery person’s word does not replace what is within reach.Controls loaded after startup need post-initialization health checks confirming that the expected surface actually answers. Where possible, prefer dynamic registration to a single discovery snapshot, so a component arriving late is still picked up. An empty set at startup is treated as a state distinct from a declared empty configuration, so that it raises a signal.
La marchandise dans le couloir ne prépare aucun platLeçonGoods in the corridor cook nothingLesson
Avoir des caisses ne veut pas dire que le poste a ce qu’il lui faut. La préparation se vérifie dans les bacs au moment du service. Ce qui compte est sous la main quand tombe la première commande.La présence d’un fichier valide ne prouve pas l’activation runtime : seule une vérification effectuée après initialisation établit que le contrôle est réellement en place. Le mécanisme se généralise aux skills, serveurs MCP, plugins, hooks et à tout contrôle chargé après le démarrage ; la classe de défaut est l’ordre d’initialisation, pas le type de composant.Having crates is not the same as giving a station what it needs. Readiness is checked in the trays at service time. What matters is within reach when the first order lands.A valid file's presence does not prove runtime activation: only a check performed after initialization establishes that the control is really in place. The mechanism generalizes to skills, MCP servers, plugins, hooks and anything loaded after startup; the fault class is initialization order, not component type.

