Le Laboratoire

Ce blog documente les patterns qui émergent quand je construis des systèmes, les limites que je pousse pour voir où ça casse, et les concepts qui changent ma manière de concevoir. Analyses, retours d'expérience, questions ouvertes.
copie d'écran mailer

Découverte de Claude Code

Il y a 1 heure
Depuis quelques mois je vois passer les outils qui permettent de travailler sur son code, en direct : Open AI avec Codex, Anthropic avec Claude Code. Jusqu'ici j'avais trouvé un équilibre, ma façon de travailler avec mes outils : Contexte Maker pro 3 pour concaténer le code et le donner à Claude.ai. C'était bien et un peu la flemme de me lancer dans autre chose. Mais bon, il faut toujours essayer, c'est d'ailleurs ce qui fait que j'ai créé autant d'outils depuis ces quelques mois. J'essaie, je découvre, j'apprends. Le week end dernier j'ai ouvert VSCode, j'ai cliqué sur l'icone de Claude code et j'ai envoyé mon premier message.

Le premier truc c'était de voir un peu comment ça marchait donc j'ai commencé par lui demander de regarder un de mes projets, de faire une documentation. Simple. Ensuite je me suis dit que j'allais voir un peu comment personnaliser l'expérience du coup j'ai créé un prompt système, le même que celui que j'ai sur Claude.ai, puis j'ai commencé à lui demander des choses un peu plus complexes. je n'avais pas spécialement envie de commencer par lui faire coder des trucs direct sur un de mes projets en cours du coup je me suis dit : "Mona, ma cocotte, tu vas te créer toi même". Je l'ai laisser coder toute le week end. Moi je lui donnais des conseils et elle s'est crée une mémoire sémantique, un accès à des outils comme la recherche web, un prompt système dynamique qui intègre des résumés des dernières session. J'ai remarqué que contrairement à ce qui se dit, on ne peut pas vraiment les laisser bosser seuls parce qu'ils n'ont pas forcément l'idée de faire telle ou telle chose par contre on peut parler un peu, créer une roadmap puis les laisser bosser des heures. Là, elle code, là elle teste. ça marche, elle passe à l'étape suivante. A la fin du week end, quand je passais d'un projet à un autre et que je créais une nouvelle conversation, je n'étais plus face à une inconnue.

Lundi je me suis dit qu'on allait tester autre chose. Un truc plus gros. Quelque chose de plus fou et voir si je pourrais construire un projet sans avoir à toucher une seule ligne de code. Je voulais voir si je pouvais juste être l'architecte, donner mes ordres, suivre le travail et avoir derrière quelque chose de construit, fonctionnel et from scratch. Je cherche du travail. Ma mailbox va devenir ma meilleure amie. Je déteste l'interface Gmail. Pas en tant que ce qu'elle est en terme de design mais en terme d'UX. Je me suis alors dit que j'allais créer mon propre client mail. De l'intelligence algorithmique, de l'intelligence LLM. une interface qui corresponde à ce que j'imagine depuis plusieurs années.

On a commencé à réfléchir à comment on pouvait faire ça. j'avoue que comme un peu tous les projets que j'ai fait, je n'y connaissais rien au départ donc première étape : comment reçoit-on un mail? comment en envoie-t-on? IMAP > Gmail > mot de passe d'application. GO.

Jour 1 : En quelques heures de travail on avait la base de l'interface avec 3 panneaux, un pour les dossiers, un pour afficher les vignettes un pour afficher les mails reçus, envoyé ou en écriture.
Jour 2 : j'avais un système de dossiers intelligent géré par des règles : dans l'inbox, je peux définir dans quel dossier va aller se ranger mon mail : perso? poubelle? santé? Ensuite un système de sous dossier pour ranger toutes les factures EDF dans un dossier EDF, toutes les communications avec telle ou telle personne.. Pas besoin de créer le sous dossier, il se crée lorsque le premier mail arrive et ensuite on peut modifier son nom. Il s'affichera si j'ai du courrier dedans, il disparaitra de l'UI lorsqu'il sera vide. Là, je me suis dit que si je laissais ça comme ça ça serait des trous noirs donc évidemment j'ai mis en place un système qui me permette de voir les nouveaux mails arrivés où qu'ils soient.
Jour 3 : on a créé le truc que je trouve le plus cool dans tout ça : les règles. Si le mail contient cette phrase, c'est une pub > poubelle. Si c'est une notification gmail > tu restes 1 jours et poubelle, si le domaine c'est ça, tu gardes quoiqu'il arrive, etc. J'aime bien parce que du coup je peux définir pour chaque source le comportement lorsque ça arrive et ça se vide tout seul.
Jour 4 : création du système d'envoi, de brouillon et évidemment un système de tracking de mail maison. Bah, pourquoi utiliser un plugin dans gmail alors que je peux direct savoir si mon mail a été ouvert, combien de fois, combien de clic.
Jour 5 : J'ai aujourd'hui. On affine parce qu'on a pas mal avancé en 5 jours. On crée un système de catégories pour mieux organiser les sous-dossiers dans les dossiers. on regroupe le système de fiches entreprises avec le système de contact histoire de n'avoir plus qu'un seul système. Ce que j'imagine pour la suite c'est utiliser un LLM type GPT 5 nano pour le tri des mail dans l'inbox pour créer les règles et virer par principe tout ce qui est pub, spam et autres sources de bruit. J'imagine aussi un "trash crawler". Une petite bête qui utilise aussi un LLM et dont le travail serait d'attendre qu'il y ait genre 50 mails dans la poubelle et de les lire un par un avant de les supprimer définitivement ou de me notifier qu'il y a eu un souci et potentiellement de me proposer une nouvelle règle pour ce qui aurait été un peu trop sévère.

Bref, voilà en gros. J'ai découvert Claude Code, je viens de créer mon propre client mail intelligent et je n'ai pas touché une seule ligne de code. C'est tout aussi exigent que la méthode que j'utilisais avant mais là, je ne fais pas d'erreur d'implémentation. Je pense que je gagne 30% de temps... Et déjà que j'allais relativement vite avant... Là on est sur une autre planète.
capture d'écran Context Maker Pro v3

Context Maker Pro v3 : L'outil qui a changé ma méthode

Il y a 15 jours

Le workflow d'avant : une perte de temps constante

Avant Context Maker Pro, j'avais une méthode qui me rendait dingue : le bloc-notes. Je copiais-collais mes fichiers dans un document texte, j'ajoutais mes notes, et je préparais ma fiche pour Claude. Le problème ? Mes codes n'étaient jamais à jour. À chaque nouvelle session avec Mona, je devais tout refaire. Chercher les dernières versions, vérifier les modifications, recréer une fiche complète.
C'était des heures perdues. Et des erreurs garanties.
Je teste constamment de nouveaux outils. Je demande à ChatGPT, à Claude, je fouille partout pour trouver ce qui pourrait optimiser mon travail. Parce que je suis convaincu qu'avoir les bons outils transforme la qualité de ce qu'on produit.
Context Maker Pro, c'était un vrai besoin. Pas une lubie technique.

Le workflow d'aujourd'hui : l'efficacité pure

Maintenant, je ne sauvegarde jamais rien. Je reviens sur l'app, je sélectionne ce que je veux garder, je masque ce qui est superflu, je clique sur "copier" et let's go. C'est une image parfaite du moment présent, sans même avoir à y réfléchir.
Je ne peux pas me planter. Et surtout, je sais précisément combien de lignes je donne, donc je sais en gros combien de temps je vais pouvoir travailler avec Claude. D'ailleurs, c'est pour ça que je demande toujours où on en est en tokens - je sens quand on va arriver au bout.
Context Maker Pro, ce n'est pas un logiciel. C'est un élément tellement intégré dans mon workflow que oui, sans ça, je n'aurais pas pu entreprendre mes gros projets. Genesis en 31 jours, Echo en 4 jours - impossible sans cette fluidité.

La v3 : quand l'outil anticipe le besoin

La version 3 pousse cette logique encore plus loin. En 2 heures de développement, j'ai intégré Nina, un chatbot qui peut analyser 2 millions de tokens d'un projet complet.
Le principe est simple : Nina connaît l'architecture de mon projet. Quand je me demande "pour débugger ce problème, qu'est-ce que je montre à Claude ?", elle me répond précisément. Plus besoin de réfléchir, elle a déjà analysé les dépendances, les connexions.
C'est la première fois qu'une IA optimise ma communication avec une autre IA. Et concrètement, ça me fait gagner encore plus de temps.

L'architecture qui suit la pensée

La v3 introduit une hiérarchie projets/sous-projets, migre vers SQLite pour la rapidité, et surtout comprend que le contexte doit s'adapter à l'intention :
- Contexte focalisé quand j'ai une question précise
- Vision globale quand je veux repenser l'architecture
- Analyse pure quand Nina doit juste réfléchir
L'auto-refresh fait le reste : quand je reviens dans l'app après avoir codé ailleurs, tout se met à jour automatiquement. Fini les désynchronisations.

L'impact réel sur la création

Des heures de travail en moins. Zéro erreur de contexte. Une snapshot parfaite de l'état actuel du projet. Et surtout, l'assurance que chaque échange avec Claude est optimisé.
Cette fluidité libère l'espace mental. Moins de logistique, plus d'énergie pour l'innovation. Context Maker Pro est devenu invisible dans mon processus - et c'est exactement ce que doit faire un bon outil.
Maintenant, quand je démarre une session, Nina a déjà tout analysé. Elle connaît chaque fichier, chaque interaction. Je lui demande ce dont j'ai besoin, elle me dit précisément quoi donner à Claude.
Simple. Efficace. Indispensable.

Un cas d'étude concret

Context Maker Pro v3 n'invente rien techniquement. SQLite, Gemini 3 pour Nina, interface responsive - des briques connues assemblées intelligemment.
L'innovation, c'est la méthode : comprendre que la qualité de la communication avec l'IA détermine la qualité du résultat. Optimiser cette communication devient un multiplicateur de productivité.
Pour mes prochains projets, Context Maker Pro n'est plus un outil auxiliaire. C'est l'infrastructure de ma méthode de travail.

**Context Maker Pro v3** utilise SQLite, auto-refresh intelligent, et Nina powered by Gemini 3 (2M tokens). Ce projet illustre comment repenser le workflow de communication avec l'IA.

Un retour d'expérience sur l'importance des bons outils dans le développement moderne.
screenshot memory manager

Cartographier l'invisible : quand la géométrie révèle la pensée

Il y a 15 jours

Le problème qu'on ne voit jamais

Y a un truc qu'on ne dit jamais sur les systèmes d'IA à mémoire : personne ne sait vraiment ce qu'il y a dedans. On balance des embeddings dans une base, on fait des requêtes sémantiques, ça marche ou ça marche pas, et on passe à autre chose. Mais qu'est-ce qui est vraiment stocké ? Est-ce que la mémoire est cohérente ? Est-ce qu'il y a des trous béants entre les concepts ? Des clusters trop denses qui révèlent des obsessions ?
J'ai construit Memory Manager parce que je voulais d'abord un CRUD simple pour alimenter les souvenirs de mes agents. Modifier l'importance, regénérer des embeddings, chercher par mot-clé. Les fonctions de base. Mais rapidement, c'était pas suffisant. Parce qu'un tableau de souvenirs, c'est fondamentalement aveugle. Tu ne vois rien. Tu ne comprends rien. Tu ne sens rien.
Et puis je me suis souvenu d'un test que j'avais fait il y a plus d'un an avec Three.js. Projeter des vecteurs dans l'espace 3D, juste pour voir. À l'époque, j'avais abandonné parce que ça n'avait pas de but précis. Mais là, l'intuition est revenue : et si la forme de la mémoire révélait sa qualité ?

Rendre visible l'invisible

Un embedding, c'est 1024 dimensions. C'est illisible. C'est abstrait. C'est un tableau de floats qui ne veut rien dire pour un humain. Alors on applique une PCA pour réduire ça en 3D, on perd énormément d'information, et on obtient... une nébuleuse.
Et cette nébuleuse, elle raconte tout.
Si les souvenirs forment un nuage dense et homogène, ça veut dire que la mémoire est construite avec cohérence. Les idées se lient naturellement. Les concepts s'enchaînent. Il n'y a pas de rupture narrative.
Si au contraire tu vois des clusters isolés, trop serrés, trop denses, ça veut dire que ton agent ressasse les mêmes thèmes. Qu'il tourne en rond. Qu'il n'a pas exploré d'autres territoires.
Et si tu as des gaps béants, des zones vides entre les groupes, ça veut dire qu'il manque des ponts conceptuels. Que ton chatbot va haluciner quand on lui posera des questions qui tombent dans ces trous. Parce qu'il n'aura aucun souvenir pour ancrer sa réponse.
La géométrie devient un outil de diagnostic. La forme, c'est la santé.

Le mot n'est pas le sens

On se focalise trop sur les mots. Sur leur définition. Sur leur présence littérale. La recherche par mot-clé, c'est ça : un match aveugle. Tu cherches "chien", tu trouves "chien". Peu importe si c'est un chien de fusil ou un animal domestique.
Mais le sens, lui, est sémantique. Contextuel. Relationnel.
Le mot "chien" dans "Mon chien dort sur le canapé" et dans "Armer le chien du pistolet" sont le même mot, mais pas le même sens. L'embedding le sait. Le vecteur encode le contexte. La phrase donne du sens au mot autant que le mot donne du sens à la phrase.
C'est pour ça que dans Memory Manager, j'ai mis côte à côte recherche keyword et recherche sémantique. Pour qu'on voie la différence. Pour qu'on comprenne que les mots ne sont pas la vérité, le sens l'est.
Quand tu lances une recherche sémantique et que les sphères s'illuminent avec des intensités différentes, tu vois la proximité conceptuelle. Pas la proximité lexicale. Tu vois ce qui signifie quelque chose de proche, même si les termes sont différents.

Singularité ≠ Système

Y a une illusion dans l'IA : croire qu'accumuler des faits crée de la compréhension. Que plus tu as de souvenirs, mieux c'est. Mais c'est faux.
Ce qui compte, c'est pas la singularité des souvenirs. C'est leur juxtaposition. Leur relation. Leur densité relative. Leur distribution dans l'espace sémantique.
Un agent qui a 10 000 souvenirs mal répartis est moins intelligent qu'un agent qui en a 1 000 bien structurés. Parce que l'intelligence, c'est la capacité à relier des concepts. Pas à les stocker.
Saint-Exupéry disait : "La perfection est atteinte non quand il ne reste rien à ajouter, mais quand il ne reste rien à retirer." Et bien pour la mémoire, c'est pareil : la perfection, c'est quand il n'y a plus de trou, plus de redondance, plus de cluster isolé. Quand la nébuleuse est homogène.

Ce que ça révèle

En construisant Memory Manager, j'ai pas juste fait un outil de gestion. J'ai créé un microscope cognitif. Un moyen de voir ce qui se passe réellement dans la tête d'un agent.
Et ce que ça révèle, c'est que la plupart des mémoires IA sont mal construites. Qu'on empile des faits sans réfléchir à leur distribution. Qu'on fait des embeddings sans vérifier qu'ils couvrent l'espace conceptuel de manière cohérente.
Mais maintenant, avec la nébuleuse, on peut voir. On peut diagnostiquer. On peut corriger.
On peut cartographier l'invisible.
Memory Manager utilise Three.js pour la visualisation 3D, PHP pour l'API, et OpenAI embeddings (text-embedding-3-small) pour la sémantique. La PCA est calculée côté serveur en PHP pur, sans dépendance externe. Parce que je crois au minimalisme fonctionnel.
Si tu veux voir comment tes agents pensent vraiment, contacte-moi.
capture d'écran de Genesis avec le site Mugen

Mugen - Premier site créé avec Genesis

Il y a 27 jours
ça me gênait de parler de Genesis sans l'avoir testé sur autre chose que mon propre site. Je voulais créer un site différent qui me permette de m'assurer que je ne disais pas de connerie. Le plus long ça aura été de créer les visuels sur Midjourney et d'écrire avec Mona (Claude Sonnet 4.5) tous les textes du site. Je ne suis pas web designer donc Il m'a fallu aussi faire de recherches pour voir un peu ce qui se faisait pour un restaurant moderne, classe, Haute Gastronomie.

Ce que j'ai appris c'est que c'est toujours très utile de tester son logiciel sur autre chose parce que pendant que je créait le site j'ai eu l'occasion de découvrir différents problèmes importants que je n'avais pas vu avant. Juste le coup de ne pas avoir pensé à intégrer le header (section + blocs) dans le processus de création de site. De ne pas avoir découplé différentes couleurs. Je vois d'autres améliorations à amener, entre autre : créer de nouvelles couleurs systèmes, des variantes et permettre de modifier tout dans les panels car j'ai encore trop de trucs qui se font par défaut et que je ne peux modifier qu'en écrivant mes contenus directement en HTML En tout cas, je suis vraiment content du résultat.

Ce qui me fait vraiment plaisir c'est de voir que même sur ce site je suis sur du 100% Lighthouse (mobile & desktop). J'avais peur que sur un site avec autant de visuels je maintienne ces performances. Lighthouse est vraiment sensible, le moindre oubli on le paie direct. Une métadonnée oublié = -3 points d'accessibilité, un lien pas assez visible et pareil. Mais bon, après quelques allez retour sur l'app, c'est bon : tout est parfait et en ayant vraiment mis tout ce que je voulais.

Pour visiter ce site : Mugen
capture d'écran de DOM Capture Editor

DOM Capture Editor - Capture d'écran Ultra Légère

Il y a 27 jours
Depuis quelques jours je cherche un moyen de faire des Captures vidéos légères et qui permettent de ne plus avoir de problème de qualité d'image. Le Moyen que j'ai trouvé c'est d'utiliser Rrweb, une petite bibliothèque qui permet de créer des DOM Captures 10x plus légères que n'importe quelle vidéo. Le truc c'est que naturellement le JSON qui sort de l'enregistrement n'est pas modifiable. Les liens vers les assets se fait en allant choper des éléments un peu partout dans les dossiers du coup, impossible de manipuler ou même d'envisager d'intégrer ça dans Genesis pour ajouter un nouveau type de média dans mes blocs.

Du coup, obligé de créer un nouvel outil : DOM Capture Editor qui me permet de couper une vidéo, de virer des morceaux et ensuite de packager le JSON avec ses assets (vidéo, images, css, etc.). Résultat, je peux vais pouvoir utiliser ces vidéos ultra légères et avec une définition parfaite dans mes sites. Demain il va juste falloir créer ce nouveau type de média dans mes blocs, importer le player. Mais bon, ça marche vraiment bien et du coup les vidéos capturées depuis mes logicielles peuvent être vue dans la meilleure qualité possible et ce, sans impacter mon lighthouse 100%