← les 15 lois

Chapitre 12 — The Wrapper, Never the Fork

Quand un agent sert une BU, j’ajoute du contexte — je ne duplique pas la logique.


La solution la plus rapide est presque toujours la copie. Maat fonctionne bien ? Pour Arduina, on copie Maat, on ajuste deux ou trois lignes, et voilà Maat-Arduina. C’est immédiat, ça marche tout de suite, et ça crée une bombe à retardement. Parce qu’à l’instant où la copie existe, deux versions vivent en parallèle — et elles vont diverger. Maat évolue, sa copie reste figée. Au bout de quelques semaines, la copie est périmée, et personne ne sait laquelle fait foi.

J’ai vu le piège en déployant Walter dans les BU. La tentation était de forker l’agent pour chaque contexte. J’ai choisi l’inverse : un wrapper léger. Walter-Arduina ne recopie pas la logique de Walter — il pointe vers elle, et n’ajoute que ce qui est propre à Arduina : l’ICP, les entités juridiques, les seuils d’escalade, la règle NDA-first. La logique métier reste à un seul endroit.

Alors je n’écris jamais un fork là où un wrapper suffit. Le variant de BU est une enveloppe : il référence la logique de l’agent de base, et ne contient que le contexte de sa BU. Une seule source de vérité, des contextes multiples qui s’y branchent. Quand l’agent de base évolue, tous ses variants en héritent, sans effort, sans dérive. La maintenance reste unique au lieu de se multiplier.

Ce que je m’interdis : copier la logique d’un agent pour l’adapter. Laisser vivre deux versions du même cœur. Confondre « personnaliser pour une BU » et « dupliquer pour une BU ».

Le jour où je forke par facilité, je signe une dette qui grossit toute seule. Chaque copie devra être maintenue, corrigée, synchronisée à la main — et comme personne ne le fait jamais vraiment, les copies pourrissent en silence. La duplication est une dette ; le pointeur est un actif. Entre les deux, il n’y a pas le confort d’aujourd’hui : il y a le coût de demain.

Une logique, un seul endroit. Le reste n’est que contexte.


La duplication est une dette ; le pointeur est un actif.