temps de lecture : 10 minutes

Mon LLM ne se contente pas d’exécuter mes tâches Gradle. Il est le gardien de la frontière entre ma pensée privée et mon expression publique. Chaque idée est classifiée — Vision, Opinion, Stratégie — avant d’être routée. Voici comment ce compartimentage épistémique automatisé protège mon jardin mental sans me faire taire.

1. Le Problème : Penser Librement sans Publier N’Importe Quoi

Quand un développeur solo documente son processus de pensée avec un LLM, il se heurte à un paradoxe :

CAPTURE TOUT (Cercle 0, jardin secret)
  ├→ Brain dump libre, pas de censure
  ├→ Idées brutes, spéculations, intuitions non vérifiées
  ├→ Allers-retours LLM : challenger, itérer, raffiner
  └→ Le LLM voit TOUT — le bon, le flou, l'embryonnaire

PUBLICATION SÉLECTIVE (Cercle 4, blog public)
  ├→ Uniquement les décisions actées
  ├→ Uniquement les patterns testés (>100 tests PASS)
  ├→ Uniquement ce qui a de la valeur pour le lecteur
  └→ JAMAIS une spéculation présentée comme une vérité

Entre ces deux extrêmes, il y a un filtre. La question est : qui le fait ? Un humain fatigué en fin de session ? Un script de regex naïf ? Ou le LLM lui-même, qui a déjà tout lu ?

Ma réponse : le LLM.

2. Le Pattern STIMULUS — Naître, Fixer, Diluer, Mourir

Le STIMULUS est un fichier .adoc temporaire à la racine du workspace (Cercle 0). Son nom suit une convention évocatrice — PICTURE_ME_ROLLIN.adoc, HOLD_MY_BEER.adoc, ONCE_UPON_A_TIME.adoc — qui capture l’intention exploratoire du moment.

Son cycle de vie est impitoyable :

CRÉATION (Cercle 0)
  ├→ Fichier vide, brain dump libre
  ├→ Allers-retours LLM ← → développeur
  └→ Aucune pression de structure ou de publication

MATURATION
  ├→ Le contenu se densifie
  ├→ Des sections émergent naturellement
  └→ Le fichier devient une référence informelle de session

CLASSIFICATION ÉPISTÉMIQUE ← FAIT PAR LE LLM
  ├→ VISION    → publiable, diluer dans les docs publics + blog
  ├→ OPINION   → confiner au Cercle 0, pas de dilution externe
  └→ STRATÉGIE → dilution restreinte (docs racine, PAS de blog)

DILUTION (Cascade vers Cercles légitimes)
  ├→ VISION → WORKSPACE_AS_PRODUCT.adoc + WHAT_THE_GAMES.adoc + blog
  ├→ STRATÉGIE → WORKSPACE_AS_PRODUCT.adoc (section business)
  └→ OPINION → reste dans le stimulus, ne bouge pas

ARCHIVAGE + SUPPRESSION
  ├→ Snapshot dans configuration/vision-archive/ (trace historique)
  └→ rm du stimulus — il a fini son travail

Un stimulus qui survit plus de 2 sessions sans dilution est un anti-pattern. Soit l’information est trop importante pour moisir dans un fichier temporaire (→ diluer), soit elle est trop floue pour mériter d’exister (→ supprimer).

3. La Délégation au LLM : Pourquoi C’est le LLM Qui Filtre

Je ne hardcode pas la classification Vision/Opinion en Kotlin. Je l’injecte dans le prompt système du LLM via AGENT_GOVERNANCE.adoc :

Pour chaque dilution de stimulus ou session, tu es responsable de classifier
le contenu :
- VISION : décision architecturale actée, pattern testé en production (>100 tests PASS),
  décision documentée dans BACKLOG ou ROADMAP
- OPINION : spéculation, hypothèse non validée par des tests, intuition
  sans ancrage expérimental
- STRATEGIE : positionnement business, pricing, marché cible

Règles :
- Si OPINION, le contenu reste confiné dans son cercle d'origine
- Si VISION, tu procèdes à la dilution dans les documents racine
- Si STRATEGIE, dilution restreinte (docs racine, pas de blog public)
- Cette classification détermine aussi si un article de blog est publiable
  sur cheroliv.com

Le LLM lit cette directive avant de traiter la session. Elle est dans son contexte immédiat, pas dans un fichier séparé. C’est du prompt engineering déterministe : le comportement émerge du texte injecté, pas d’un classifieur externe.

3.1. Pourquoi Ça Marche — et Pourquoi C’est Contre-Intuitif

La réaction standard : « Tu confies la classification à l’IA ? Et si elle se trompe ? »

Réponse : l’humain ne fait pas mieux à 2h du matin. La différence, c’est que le LLM, lui, lit TOUT. Il a le contexte complet de la session et des documents cibles. Il sait que VPS ECO-16 12€ HT est une décision d’infrastructure (VISION) alors que « le TTS ElevenLabs sonne plus naturel que Coqui » est une opinion non vérifiée par un benchmark.

L’humain, en fin de session, lit en diagonale et fait au mieux. Le LLM lit exhaustivement et applique une grille systématique. Le résultat est plus fiable, pas moins.

Et pour les 20% de cas ambigus — la zone grise où même le LLM hésite — la réponse n’est pas « rajouter du code ». La réponse est LangGraph4j (EPIC 13) : un graphe d’état qui, pour les cas ambigus, active un nœud Human-in-the-Loop et remonte à l’humain pour décision. Mais pour les 80% de cas clairs, le LLM suffit.

4. Le Tuyau Complet : du Brain Dump au Blog Post

Voici le flux complet — de l’idée brute à l’article publié — avec le LLM comme seul filtre :

CERCLE 0 (jardin secret)
  PICTURE_ME_ROLLIN.adoc   ← brain dump, allers-retours LLM
       ↓
  [LLM classifie] → VISION / OPINION / STRATÉGIE
       ↓
  VISION → dilution dans WORKSPACE_AS_PRODUCT.adoc
         → dilution dans WHAT_THE_GAMES_BEEN_MISSING.adoc
         → dilution dans WORKSPACE_VISION.adoc (session context)
         → RÉDACTION ARTICLE BLOG ← le LLM écrit, pas le dev
       ↓
CERCLE 4 (blog public)
  0116_compartimentage_epistemique.adoc  ← publié sur cheroliv.com
       ↓
  ./gradlew deploy (bakery-gradle → JBake → JGit → GitHub Pages)
       ↓
  https://cheroliv.com/blog/2026/0116/  ← live

Le développeur n’écrit pas l’article. Il challenge, relit, valide. Le LLM écrit. La boucle est : . Brain dump libre → pas de censure . Classification épistémique par le LLM → pas de fuite . Rédaction par le LLM → pas de procrastination . Relecture humaine → pas d’erreur

Le goulot d’étranglement historique — « je n’ai pas le temps d’écrire » — est éliminé. Le LLM fait le gros du travail. L’humain fait ce que seul l’humain peut faire : juger.

5. Les Trois Documents Racine — Comment l’Information Trouve Sa Place

Chaque document cible a un rôle précis dans la cascade de dilution :

Document

Ce qu’il reçoit

Type de contenu

WORKSPACE_AS_PRODUCT.adoc

Décisions architecturales, stack technique, roadmap, business model

VISION + STRATÉGIE

WHAT_THE_GAMES_BEEN_MISSING.adoc

Patterns, leçons, anti-patterns, ontologie, règles formelles

VISION (patterns testés)

WORKSPACE_VISION.adoc

Contexte de session, historique des décisions, points d’infrastructure

VISION + STRATÉGIE (contexte)

AGENT_GOVERNANCE.adoc

Règles de gouvernance, portefeuille projets, procédures

VISION (gouvernance)

Blog cheroliv.com

Articles publics, valeur pour le lecteur externe

VISION uniquement

Un même stimulus peut nourrir les 4 documents + le blog — chaque destination reçoit la portion qui la concerne, sans redondance, sans contradiction.

C’est ce qui s’est passé pour PICTURE_ME_ROLLIN.adoc (3 mai 2026) :

| Information | Classification | Destinations | | Inventaire des 13+ projets repositories/ | VISION | WORKSPACE_AS_PRODUCT | | VPS-2 OVH, edster.cloud, 8.49€/mois | VISION | WORKSPACE_AS_PRODUCT + WORKSPACE_VISION | | « Le marché africain est prêt pour le mobile money » | STRATÉGIE | WORKSPACE_AS_PRODUCT (section business) | | « DeepSeek > Kimi > GLM pour contexte long » | OPINION → VISION | Confiné puis promu après benchmark (article 0112) | | Employé Synthétique comme produit final | STRATÉGIE | WORKSPACE_AS_PRODUCT (pas de blog) |

6. Le Pattern Baby-Step + TestContainer + Doc Vivante — le Code qui Se Teste Lui-Même

Le pattern STIMULUS/Dilution gère la pensée. Son équivalent pour le code, c’est le pattern Baby-Step/TestContainer/Doc Vivante, validé par plantuml-gradle (380/380 tests PASS, 137 sessions sans fuite Docker) :

Principe

Règle

Baby-step

Jamais plus de 3 pts par US. Si une US fait peur, recouper. Une US de 1 pt qui passe > une US de 8 pts qui traîne.

TestContainer d’abord

Avant le code métier, le conteneur. Le test d’infra passe → environnement stable garanti.

Dataset committé

Sous-ensemble minimal mais représentatif dans src/test/resources/, sans PII. Clonable, lançable.

Documentation vivante

Chaque test Cucumber = une phrase en langage naturel. Le code source EST la spec exécutable. Zéro doc Markdown à maintenir.

Cleanup automatique

Zéro fuite de ressources. Containers orphelins, /tmp/gradle-test-* : tout est nettoyé.

Ce pattern est la raison pour laquelle plantuml-gradle n’a jamais eu de régression Docker en 138 sessions. Il garantit que le code qui parle à une infra externe (PostgreSQL, Redis, Kafka) est toujours testé dans un environnement identique à la production — versionné, reproductible, lançable en une commande.

7. Conclusion : la Liberté de Penser sans la Peur de Publier

Le compartimentage épistémique automatisé n’est pas un outil de censure. C’est un libérateur. Il permet de penser librement, de spéculer sans filtre, de brain-dumper tout ce qui passe par la tête — sans jamais craindre qu’une idée embryonnaire se retrouve sur le blog.

Le LLM est le gardien de cette frontière. Il lit tout. Il classifie. Il dilue ce qui mérite de survivre. Il confine ce qui doit rester privé. Il rédige ce qui est publiable.

Et le développeur, lui, garde le dernier mot : relire, challenger, valider. Juger.

C’est la division du travail qui manquait au développeur solo : un employé synthétique qui gère la paperasse mentale, pour que l’humain puisse se concentrer sur ce qu’il fait de mieux — concevoir, architecturer, décider.


8. Références