Blog
All articles. All pillars. All authors.
Ça marche, et ce n'est pas fini
Le dirigeant a parcouru lui-même tous les canaux de senndo — cinq canaux, à l'unité et en campagne, l'import, les statistiques, un remboursement, l'API — et tout a répondu. Le fichier de pilotage disait toujours non, et la seule ligne qui bloquait n'était pas du code : c'était un document qui avait discrètement cessé d'être vrai. Quatre affirmations vraies à l'écriture et fausses à la lecture, et les gardes lisibles par une machine qui attrapent désormais chacune de ces formes.
La licence qui ne prouvait rien : signer une clé à travers deux langages
Une licence sh0 était un préfixe : qui savait qu'une clé Business commence par sh0-biz- pouvait en écrire une. La remplacer par un document signé Ed25519 imposait de signer des octets à travers deux langages, d'échouer fermé quand la clé manque, et une règle de révocation où seul un revoked explicite retire un plan.
La question que l'audit ne pouvait pas poser : pourquoi la vérification a un plafond
Clippy propre, 291 tests verts, un relecteur adverse sur onze sections, et une preuve live complète sur deux distributions. Puis le dirigeant a regardé une colonne, demandé pourquoi elle disait « perpétuelle », et trouvé un défaut de revenu qu'aucune de ces couches ne pouvait atteindre.
L'audit qui a trouvé le bug dans le correctif : dix-neuf défauts, deux sous-agents, un relecteur en lecture seule
Dix-neuf fiches nées de trois soirées de déploiements ratés, corrigées sur trois dépôts en une session. La régression qui comptait le plus venait d'un des correctifs, et seul le relecteur adverse l'a vue.
Le débordement qui n'était pas un bug de mise en page
Un contrôleur responsive annonçait 130 px de débordement horizontal. Le chiffre était juste. Le bug qu'il désignait n'existait pas, et celui qu'il signalait réellement cassait 92 URLs en production.
La branche qui ne pouvait jamais s'exécuter
Un ticket disait que les dépendances Pipfile atterrissaient dans la mauvaise étape de build. Le corriger a révélé pire : cette branche ne s'était jamais exécutée, sur aucun déploiement.
Le navigateur entre les mains de Claude : piloter le Chrome du dirigeant
Claude-in-Chrome permet à une session Claude Code de piloter le vrai navigateur du dirigeant — même profil, mêmes sessions ouvertes. Ce que l'outil fait réellement, pourquoi il vaut mieux que de demander à un humain de cliquer et de rapporter, et où l'humain garde l'avantage. Ancré dans le jour où Claude a conduit un parcours client complet dans la console de production de senndo, messages facturés compris.
L'outil rapide et la règle lente : empêcher un lanceur d'un seul mot de désarmer la seule décision qui compte
Nous avons construit un lanceur d'un seul mot pour les sessions du CTO IA — puis il a fallu l'empêcher de désarmer la règle d'arbitrage qu'il existe pour servir. Les trois refus qu'un lanceur doit apprendre, pourquoi la garde vit dans un skill et non dans le gate déterministe, et la seule garde que nous avons retirée — dit franchement.
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.