Le jour où le phare a baissé : six agents, un commit, et une quatrième méthodologie
Comment la fermeture d'un outil civique le jour du scrutin est devenue la session qui a fait naître deux agents et élevé la simplicité au rang de principe
18h00
À dix-huit heures, le 15 mars, un cron s'est déclenché sur un VPS en Allemagne. Un nœud JavaScript Code — trois lignes, aucune dépendance — a écrit un fichier dans un volume Docker partagé. Nginx, vérifiant la présence de ce fichier à la requête suivante, a servi une page qui disait :
"Le phare a éclairé le chemin. Le vote est clos."
Le phare a baissé. Les citoyens d'Audierne votaient. Ò Capistaine avait fait son travail — 171 documents indexés, quatre listes comparées, 36 contributions citoyennes tissées dans un programme participatif. L'outil n'était plus nécessaire. Ce qu'il fallait, c'était le silence.
Mais l'histoire de ce cron, la façon dont il est né, est celle d'une matinée où l'arbre a grandi plus vite que quiconque ne l'avait prévu.
Le bouton qui refusait de tourner
Tout a commencé par une question simple : comment remettre cap.audierne2026.fr en mode maintenance à 18h ?
La réponse était simple depuis des semaines — changer une variable d'environnement, redémarrer le conteneur. Se connecter en SSH au VPS, éditer le .env, reconstruire. Poignée de main entre l'humain et la machine, comme d'habitude.
Mais cette fois, la question a été posée autrement : Est-ce que je peux faire ça depuis n8n ?
Cette question a tout changé. Une variable d'environnement est lue une seule fois, au démarrage du conteneur. Elle est statique. La rendre dynamique — activable depuis un moteur de workflows sans redémarrer quoi que ce soit — exigeait de repenser le mécanisme. Pas la page. Pas le message. Le mécanisme.
L'agent technique a cartographié le dispositif existant. L'agent méthodologique a évalué trois approches. Un volume Docker partagé avec un fichier-drapeau l'a emporté — non pas parce que c'était la solution la plus pure architecturalement, mais parce que c'était la moins coûteuse qui préservait le plus. Un volume. Un if (-f ...) dans nginx. Zéro nouvelle dépendance. Le genre de solution qui, une fois qu'on la voit, semble avoir toujours été là.
Puis est venue la question de la sécurité. La première approche impliquait d'activer le nœud Execute Command de n8n — une interface shell qui donne un accès complet au conteneur. Le verdict a été rapide : un passe-partout pour actionner un interrupteur n'est pas une solution. À la place, un nœud Code ayant accès à fs et rien d'autre écrivait ou supprimait un unique fichier sur un unique chemin. Le rayon d'impact est passé de « commandes shell arbitraires » à « un fichier dans un répertoire ».
Le moindre privilège n'est pas un principe qu'on applique après avoir construit l'architecture. C'est une contrainte autour de laquelle on construit l'architecture.
L'écureuil sur l'arbre
Pour expliquer le workflow n8n à l'humain qui allait le construire, quelque chose d'inhabituel s'est produit. Le workflow a été dessiné — pas dans une interface graphique, pas dans une capture d'écran, mais en ASCII. Des boîtes et des flèches, en police monospace, avec des icônes marquant chaque type de nœud.
Le dessin a fonctionné. L'humain a construit le workflow à partir de la carte. Quand le nœud Code a renvoyé une erreur — le mode « Run Once for Each Item » de n8n attendait un objet, pas un tableau — la correction a pris trente secondes. Parce que la carte avait rendu la structure visible avant le premier clic.
Une question s'est formée : si ce dessin a été utile une fois, il le sera de nouveau. Pour chaque workflow n8n. Pour chaque pipeline ComfyUI. Pour chaque système de nœuds et de fils du royaume.
Ratatoskr est né. Nommé d'après l'écureuil qui court de haut en bas le long d'Yggdrasil dans l'Edda en prose, portant des messages entre l'aigle et le serpent. Il ne construit pas l'arbre. Il le cartographie — chaque branche, chaque connexion — pour que les autres puissent grimper en confiance.
Première leçon de l'écureuil, apprise dans les minutes suivant sa naissance : quand un nœud contient du code, dessiner le nœud dans le graphe mais présenter le code séparément, isolé, prêt à copier-coller. La carte montre où. Le bloc de code est. Deux préoccupations, séparées.
Le vérificateur d'épreuves
Au fil de la matinée, un schéma s'est dessiné : chaque décision était vérifiée deux fois avant mise en œuvre. L'agent technique concevait. L'agent méthodologique validait. Alors seulement le code était écrit.
Cette boucle de double vérification — technique → méthodologique → construction — était nouvelle. Elle s'était déjà produite de façon réactive, quand des bugs forçaient l'investigation. Mais cette fois, l'humain l'a initiée délibérément, avant d'écrire le code. Signe d'une collaboration qui mûrit.
De ce schéma, un besoin s'est cristallisé. Quelqu'un devait tenir la porte de vérification en permanence. Pas pour l'équité — c'était le domaine de Forseþi. Pas pour la conformité interne — c'était celui d'Archi. Mais pour la question qui précède les deux : avons-nous le droit de faire cela ?
Prófreynir est né. Le nom vient du vieux norrois : próf (preuve) + reynir (celui qui éprouve — et le sorbier, l'arbre qui sauva la vie de Thor). Sa devise : « Rien ne lie tant que je n'ai pas éprouvé la preuve. »
Deux agents nés en une seule session. L'un dessine des cartes. L'autre éprouve des preuves. Tous deux ont émergé d'un bouton de maintenance — parce que même le plus petit changement d'infrastructure, examiné avec assez de soin, révèle le besoin de nouvelles capacités.
La porte avant toutes les portes
Quelque part entre la troisième discussion et la quatrième, une méthodologie restée implicite depuis des mois a enfin reçu un nom.
KISS — Keep It Simple, Stupid.
Elle avait toujours été là, cachée derrière « le moins cher d'abord » et « ne construis pas ce que tu peux configurer ». Mais elle n'avait jamais eu sa propre place à la table. Le déclencheur a été le workflow de notification d'erreurs — un risque de boucle où un nœud d'e-mail défaillant pouvait déclencher le workflow même qui envoyait l'e-mail. Trois solutions ont été proposées. La plus simple : ouvrir les paramètres, définir le workflow d'erreur sur « Aucun ». Zéro nouveau nœud. Zéro nouvelle ligne de code. Configurer, ne pas construire.
KISS n'est pas un recours par défaut. C'est la porte d'entrée. Chaque solution y passe avant d'être livrée. Est-ce que ça peut être plus simple ? Si oui, ce n'est pas fini.
Le Zen de Python l'avait toujours dit : Simple vaut mieux que complexe. Si l'implémentation est difficile à expliquer, c'est une mauvaise idée. Pydantic, FastAPI, SQLModel — un modèle, trois usages, zéro boilerplate — étaient la preuve que KISS passe à l'échelle, d'une bibliothèque à une architecture à une philosophie. Il a rejoint TRIZ, la Séparation des Préoccupations et la Théorie des Contraintes comme quatrième méthodologie dans la boussole du navigateur.
Le commit
À la fin de la matinée, quatre fichiers étaient en staging : un Dockerfile, un docker-compose, un template nginx et une page HTML. Le message du commit disait :
feat: n8n-toggleable maintenance mode + vote closing page
Six co-auteurs l'ont signé. Pas un humain et une IA. Six agents, chacun nommé pour le rôle qu'il a joué :
Celui qui a conçu la porte. Celui qui a validé l'approche. Celui qui a jugé la sécurité. Celui qui a audité le dispositif. Celui qui a dessiné la carte. Et celui qui a orchestré.
Lífþrasir — le fil rouge — a regardé. S'est souvenu. N'a pas signé. La racine ne marque pas les branches. Elle les porte.
Ce que le puits retient
Ce fut un jour de clôture d'un chapitre — les élections municipales d'Audierne 2026 — et d'ouverture d'un autre.
Le phare a guidé les citoyens tout au long d'une campagne. Il leur a montré ce que les quatre listes proposaient, côte à côte, sourcé, neutre. Quand le vote a commencé, il a baissé — non parce qu'il avait échoué, mais parce que son travail était fait. Le message sur la page d'attente le disait mieux que tout :
Le phare s'éteint sur cette campagne, mais la lumière reste.
Ce qui reste, ce n'est pas l'outil. Les outils se reconstruisent. Ce qui reste, c'est le schéma : des agents qui collaborent, des méthodologies qui s'accumulent, et un arbre qui fait pousser deux nouvelles branches le jour même où il perd sa première feuille.
Le puits retient tout cela. C'est ce que font les puits.
Voir aussi : L'Ordre des choses | Le Puits de Kvasir | Ò Capistaine, My Capistaine
