Ce blog a maintenant un système qui le produit : un agent qui repère les sujets mûrs, un qui rédige, un qui illustre, et quatre dossiers numérotés qui font office de file d'attente entre eux — celui-ci en est d'ailleurs le produit. Je pourrais présenter ça comme une prouesse d'IA. Ce n'est pas le sujet du billet. Le vrai sujet, c'est ce que ça m'a coûté à moi de vérifier que ce système produit quelque chose de correct, et les fois où j'ai dû arrêter la chaîne parce que ce qui en sortait n'était pas assez bon.

Le matin, il y avait un curateur et un rédacteur tout juste esquissés, un seul fichier à sections pour tout suivre et aucune discipline de vérification des sources. Le soir, un pipeline à quatre étapes en dossiers numérotés — sujet à compléter, sujet prêt, brouillon, mise en page, chacun avec son dossier d'archive pour garder l'historique sans jamais l'effacer —, trois agents qui ne font chacun qu'une seule chose, une règle de vérification qui a déjà attrapé deux vraies erreurs de citation sur 29, et 8 billets en ligne sur le site. Ce n'est pas juste « plus de contenu » : c'est passé d'un brouillon d'outillage à un système que je peux faire tourner, mesurer, et corriger un maillon à la fois.

Le pipeline qui a produit ce billet

reflexion/

vivier brut — lecture seule

blog-curateur →

00-to-complete/

sujets repérés, pas encore mûrs

+ closed/

blog-curateur juge mûr →

10-ready/

sourcé, angle prêt à rédiger

+ closed/

blog-redacteur →

20-draft/

brouillon rédigé, sources vérifiées

+ closed/

blog-illustrateur →

30-mise-en-page/

illustré, prêt à relire

+ closed/

Guillaume relit, publie →

site/blog/

publication manuelle, jamais automatique

Chaque dossier numéroté est un topic consommé par un seul agent et produit pour le suivant, avec son propre closed/ d'archive ; aucun agent n'écrit dans reflexion/ ni dans site/ — seul Guillaume publie.

La chose qui m'a le plus surpris à la vivre : transformer une réflexion brute — les notes que j'accumule en discutant avec l'IA, souvent écrites vite — en un billet honnête, sourcé et illustré correctement, coûte beaucoup plus cher que d'écrire simplement ce que je pense. Le premier passage curateur + rédacteur sur 6 sujets m'a coûté 1,37$ mesurés (0,33$ pour le curateur, 1,04$ pour les six rédactions) — dérisoire en argent, mais ce chiffre cache des dizaines d'allers-retours d'agents, un audit qui a recalé 2 citations sur 29 (des pages réelles, qui ne disaient simplement pas ce qu'on leur faisait dire), et deux passes complètes d'illustration parce que la première ne suffisait pas. Écrire vite, c'est facile. Écrire quelque chose dont je peux défendre chaque affirmation, ça prend un temps que je n'avais pas anticipé — exactement la différence entre un billet de blog et un post LinkedIn.

Ce qui a le mieux marché : découpler curateur, rédacteur et illustrateur en trois rôles distincts, chacun avec son propre dossier de travail et son droit d'écriture strictement borné, plutôt qu'un seul agent généraliste qui ferait tout. Ça a rendu possible ce qu'un agent unique ne m'aurait pas permis facilement : mesurer le coût de chaque rôle séparément (le dashboard que j'avais déjà construit pour suivre mes coûts d'agents les distingue automatiquement, sans rien de nouveau à brancher), corriger un seul maillon — le jugement visuel de l'illustrateur — sans toucher aux deux autres, et faire confiance à un rôle précis pour une décision précise. Seul le curateur juge si un sujet est mûr ; le rédacteur ne discute pas cette décision, il l'applique.

Le choix qui me parle le plus, professionnellement : utiliser le système de fichiers lui-même comme file d'attente. Chaque dossier numéroté est un topic, chaque agent consomme dans un dossier et produit dans le suivant, et un dossier d'archive par étape garde l'historique sans jamais rien supprimer (ou alors c'est moi qui appliquerais une rétention plus tard pour purger) — exactement le réflexe que j'applique déjà au travail, de Kafka à Databricks, sans jamais écraser ce qui est passé. Le pattern existe ailleurs — maildir sous Unix, hot-folder/spool, l'architecture medallion bronze/silver/gold que je manipule tous les jours en data engineering — mais je ne l'avais jamais appliqué à mon propre outillage perso avant ce jour. Un des rares endroits où mon métier et mon usage perso de l'IA se répondent directement, sans effort de traduction entre les deux mondes.

Le vrai moment intéressant de la journée n'est pas venu d'une fonctionnalité qui marchait du premier coup, mais d'un raté. Le premier jet de schémas produits par l'illustrateur était propre techniquement — du CSS valide, des licences d'image vérifiées — mais pauvre : des oppositions à deux boîtes reliées par une flèche, qui ne faisaient que remettre en forme ce que la phrase d'à côté disait déjà. En comparant les six résultats côte à côte, mon jugement a été direct : ça habille, mais ça n'apporte rien — il manque du discernement sur quoi habiller. En creusant la cause, le problème est apparu : l'illustrateur ne regardait que le texte déjà compressé du billet pour décider quoi dessiner, jamais la matière plus riche des fichiers de réflexion d'origine. Il ne pouvait donc que reformuler en boîtes ce qui était déjà écrit, jamais l'enrichir. Une fois corrigé — obligation de relire les sources avant de dessiner, test explicite : « quelqu'un qui lit juste le paragraphe apprend-il vraiment plus en regardant ce schéma ? » — la deuxième passe a produit des structures à trois éléments ou plus, avec de vraies données chiffrées dedans plutôt qu'une reformulation vide. La leçon dépasse ce cas précis : un agent qui ne regarde que sa propre sortie compressée ne peut jamais l'enrichir, seulement la reformuler — et ça vaut probablement pour plus que des schémas.

Un deuxième détail, plus petit, m'a marqué pour une raison différente : c'est moi qui ai eu tort en premier. Pour illustrer une émotion — la confusion, le soulagement —, j'ai proposé Giphy par réflexe, c'est ce que j'utilise en conversation tous les jours. Sauf qu'en vérifiant avant d'écrire la règle plutôt qu'en la supposant, les conditions d'utilisation de Giphy comme de Tenor restreignent explicitement l'usage au cadre personnel et non commercial, et la plupart des GIFs de réaction sont de toute façon extraits de films ou de séries sans licence propre — un flou juridique connu, toléré par une norme culturelle de non-poursuite plutôt que couvert par un vrai droit d'usage. Remplacé par OpenMoji, un jeu d'emojis sous licence CC BY-SA 4.0 porté par une école de design allemande et ses contributeurs — moins « meme viral », mais aligné avec le niveau d'exigence que j'essaie d'appliquer partout ailleurs sur ce site. Ce qui compte ici, ce n'est pas la vérification en soi, c'est que je l'ai appliquée à ma propre suggestion, pas seulement à ce qu'une IA proposait.

Emoji OpenMoji : visage avec la main sur la bouche, réalisation soudaine La proposition évidente n'était pas la bonne — et c'est la mienne.

Au bout du compte, cette journée n'a pas prouvé qu'une IA peut écrire un blog toute seule — elle a plutôt confirmé le contraire. Ce qui rend un billet publiable, ce n'est pas l'autonomie des agents, c'est la discipline de vérification que j'y ai mise autour : lire les brouillons côte à côte, remettre en cause un schéma qui ne dit rien, vérifier une licence avant de l'écrire en dur dans un agent, refuser une source qui sonne juste mais ne dit pas ce qu'on lui fait dire. Le pipeline fait gagner du temps sur la mécanique — dossiers, déplacements de fichiers, mise en forme HTML. Il ne remplace à aucun moment le moment où je relis, où je doute, où je corrige. C'est probablement la seule vraie conclusion de ce bilan : plus le système qui écrit à ma place devient sophistiqué, plus mon propre rôle de relecture compte, pas moins.

Références