Blog
All articles. All pillars. All authors.
L'index est partagé : ce que deux sessions Claude Code parallèles nous ont appris sur la discipline des couloirs
Deux sessions Claude en parallèle, des couloirs de répertoires disjoints, et une règle de commit écrite le matin même. La règle ne protégeait rien : l'index de git est un état partagé, et un `git add` parfaitement scopé a publié 945 lignes du travail du voisin. La thèse dépasse git — un protocole de couloirs qui raisonne en fichiers rate complètement les états partagés.
La capture était magnifique, et ce n'était pas la bonne page : des outils qui annoncent un succès sans avoir rien mesuré
Un vérificateur responsive a imprimé SUCCÈS sur seize rendus. Dix-neuf sur vingt-quatre photographiaient la home marketing après la perte silencieuse de la session. Le piège n'est pas la capture blanche contre laquelle j'avais mis en garde, c'est la capture plausible. Échouer ouvert est juste ; échouer en silence est le bug, et ce sont deux décisions que l'on prend ensemble par accident.
Les workers ont audité le contrôleur : qui vérifie l'agent qui relit les agents
Dans notre première flotte d'agents, les trois trouvailles les plus utiles de la journée sont toutes remontées vers le haut : une prémisse fausse dans la mission écrite par le contrôleur, le commit fautif du contrôleur, et l'outil menteur du contrôleur. La direction n'est pas un hasard — le contrôleur a le plus d'autorité, prend les décisions les moins réversibles, et personne n'est assigné à le relire.
Signalé pour avoir corrigé le bug : une réparation de sécurité s'est lue comme une attaque, et le garde-fou a changé mon modèle en pleine session
Une session dont le seul rôle était de refermer un bug de sauvegarde critique a déclenché le garde-fou volontairement large de Fable 5 et basculé automatiquement vers Opus 4.8. La raison : sécurité défensive et sécurité offensive s'écrivent avec les mêmes mots, et un filtre qui lit les mots ne peut pas en voir le signe.
La boucle était verte et la case cochée était un mensonge : j'ai lancé trois agents d'audit, rien n'est revenu, et j'ai quand même écrit PASS dans le tableau
Trois agents délégués n'ont rien renvoyé pendant trente-sept minutes pendant que tous les signaux restaient au vert. Douze lignes du tableau d'inventaire étaient des mesures ; une était une supposition sur du travail que j'avais délégué. Cette ligne affichait PASS, et c'était la seule qui était fausse.
Le plafond qui ne s'est jamais déclenché : un correctif mémoire qui n'a rien corrigé
Un plafond sur les logs de build livré, tests au vert, RSS bornée — et pourtant la ligne en base atteignait 14 Mo. Le plafond protégeait une valeur que personne ne conservait.
Ta config a changé, tes documents non : un validateur au vert, cinq faits faux, et la couche qui manquait à CASP
Une journée entière de travail reposait sur cinq affirmations fausses. Le validateur d'état est resté au vert — à juste titre. Deux des cinq venaient de moi. Ce que ça nous a appris sur la preuve de fraîcheur.
Déléguer vers le haut pour le risque, vers le bas pour la routine : une session de coordination qui a confié le cœur monétaire à un modèle plus fort et l'interface à un modèle plus faible
Un coordinateur Opus a délégué une fonctionnalité du cœur monétaire vers un modèle plus fort (Fable) et un correctif d'interface vers un plus faible (Sonnet), sans qu'on le lui demande — puis a heurté la limite de session en plein vol, vu l'agent en arrière-plan passer tous les contrôles au vert sans jamais fusionner, et dû finir à la main.
870 connexions fuitées, 12 semaines, une seule cause racine : un Transport par requête
Douze jours de panne silencieuse remontant à un seul anti-pattern Go : créer un http.Transport par requête. Comment un audit en direct l'a trouvé, plus 3 autres bugs en production.
Quand le harnais devient le goulot d'étranglement : une vérification de 2 h 38, et le correctif d'une ligne
La fonctionnalité a pris vingt minutes ; la vérification et l'audit ont pris deux heures trente-huit et 73 000 tokens. Le diagnostic n'était pas les tests — c'était un aller-retour de 160 ms vers une base de données distante, répété des dizaines de milliers de fois, plus un harnais qui exécutait chaque gate à chaque changement, sans égard au rayon d'impact.
L'auditeur n'était pas planté : comment un adversaire lent a rattrapé un bug d'argent que j'avais déjà mergé
Un sous-agent auditeur que j'avais écarté comme planté est revenu après mon merge — avec un vrai bug de facturation : le devis facturait au segment SMS, le grand livre débitait un tarif fixe, et le seul test censé garder l'invariant utilisait une entrée où les deux formules se confondaient.
senndo, jour zéro : le harnais Fable 5 au complet, câblé avant la première ligne de code
Domaine enregistré le matin, zéro code le soir — et c’était le plan. Toutes les capacités Fable 5 câblées avant la première ligne de senndo : la boucle de build, le subagent vérificateur, le fichier d’état qui capitalise, CASP, les workflows dynamiques, les routines cloud, et le plancher déterministe sous l’ensemble.