﻿﻿{"id":2043,"date":"2026-01-11T10:00:00","date_gmt":"2026-01-11T09:00:00","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/elo-quand-une-ia-ecrit-un-langage-de-programmation-complet-sans-intervention-humaine\/"},"modified":"2026-01-11T10:00:00","modified_gmt":"2026-01-11T09:00:00","slug":"elo-quand-une-ia-ecrit-un-langage-de-programmation-complet-sans-intervention-humaine","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/elo-quand-une-ia-ecrit-un-langage-de-programmation-complet-sans-intervention-humaine\/","title":{"rendered":"Elo \u2013 Quand une IA \u00e9crit un langage de programmation complet sans intervention humaine"},"content":{"rendered":"<p>Vous connaissez probablement<br \/>\n<a href=\"https:\/\/korben.info\/llm-decompilation-claude-code-hack-intelligence-artificielle.html\">les prouesses de Claude Code pour d\u00e9compiler du code<\/a><br \/>\n, ou encore<br \/>\n<a href=\"https:\/\/korben.info\/claude-engineer-ia-creation-outils-automatisation.html\">son utilisation pour automatiser la cr\u00e9ation d&#8217;outils<\/a><br \/>\n, mais l\u00e0, on a pass\u00e9 un cap.<\/p>\n<p>Bernard Lambeau, un d\u00e9veloppeur belge avec plus de 25 ans d&#8217;exp\u00e9rience et un doctorat en informatique, a d\u00e9cid\u00e9 de pousser le concept jusqu&#8217;au bout \u00e0 savoi<strong>r utiliser Claude Code non pas pour \u00e9crire quelques scripts, mais pour g\u00e9n\u00e9rer un langage de programmation complet<\/strong>.<\/p>\n<p>Carr\u00e9ment ! Il est chaud Bernard, car quand je dis complet, je parle d&#8217;un compilateur entier avec analyseur lexical, un parseur, un syst\u00e8me de typage, des backends multiples&#8230;etc. Voil\u00e0, comme \u00e7a, en full pair-programming avec une IA.<\/p>\n<p>\u00c7a s&#8217;appelle <strong><br \/>\n<a href=\"https:\/\/elo-lang.org\/\">Elo<\/a><br \/>\n<\/strong> et l&#8217;id\u00e9e, c&#8217;est de proposer un langage tellement s\u00e9curis\u00e9 by design qu&#8217;on peut le confier \u00e0 des non-d\u00e9veloppeurs\u2026 ou \u00e0 des IA. Pas de variables mutables, pas d&#8217;effets de bord, pas de r\u00e9f\u00e9rences qui tra\u00eenent dans tous les sens. Bref, un langage o\u00f9 il est quasi impossible de faire une b\u00eatise, m\u00eame en essayant tr\u00e8s fort.<\/p>\n<p>Alors pourquoi cr\u00e9er un \u00e9ni\u00e8me langage alors qu&#8217;on en a d\u00e9j\u00e0 des centaines ?<\/p>\n<p>H\u00e9 bien le truc, c&#8217;est que la plupart des langages existants partent du principe que vous savez ce que vous faites. JavaScript, Python, Ruby\u2026 Ils vous font confiance. Trop, parfois.<\/p>\n<p>Elo, lui, adopte l&#8217;approche inverse&#8230; le &#8220;<strong>zero-trust<\/strong>&#8220;. Le langage ne fait confiance \u00e0 personne, ni au d\u00e9veloppeur, ni \u00e0 l&#8217;IA qui pourrait l&#8217;utiliser. Ainsi, chaque expression est pure, chaque fonction est d\u00e9terministe, et le compilateur v\u00e9rifie tout avant d&#8217;ex\u00e9cuter quoi que ce soit.<\/p>\n<p>Et surtout Elo est un langage d&#8217;expressions portables, ce qui veut dire que vous \u00e9crivez votre logique une fois, et vous pouvez la compiler vers JavaScript, Ruby ou m\u00eame du SQL PostgreSQL natif. Oui, oui, le m\u00eame code peut tourner dans votre navigateur, sur votre serveur Ruby, ou directement dans votre base de donn\u00e9es. Et l\u00e0, y&#8217;a de quoi faire des trucs sympas pour peu qu&#8217;on ait besoin de partager de la logique m\u00e9tier entre diff\u00e9rents environnements.<\/p>\n<p>Le typage est volontairement minimaliste mais costaud et se compose de 10 types de base : Int, Float, Bool, String, DateTime, Duration, Tuple, List, Null et Function. Pas de classes, pas d&#8217;h\u00e9ritage, pas d&#8217;objets au sens classique mais juste des valeurs et des fonctions, ce qui peut para\u00eetre limit\u00e9 dit comme \u00e7a, mais c&#8217;est justement cette contrainte qui rend le langage s\u00fbr.<\/p>\n<p>Moins de features, c&#8217;est moins de fa\u00e7ons de se planter !<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/elo-langage-ia-claude-code\/elo-langage-ia-claude-code-2.png\" alt=\"\" loading=\"lazy\"><\/p>\n<p>L&#8217;op\u00e9rateur pipe <code>|&gt;<\/code> est le c\u0153ur du langage car au lieu d&#8217;imbriquer des appels de fonctions comme des poup\u00e9es russes, vous cha\u00eenez les transformations de gauche \u00e0 droite. Par exemple, pour r\u00e9cup\u00e9rer tous les clients actifs et compter combien il y en a, vous \u00e9crivez quelque chose comme <code>customers |&gt; filter(active: true) |&gt; size<\/code>. C&#8217;est lisible, c&#8217;est fluide, et m\u00eame quelqu&#8217;un qui n&#8217;a jamais cod\u00e9 comprend ce qui se passe.<\/p>\n<p>Et il y a aussi l&#8217;op\u00e9rateur alternative <code>|<\/code>. Comme \u00e7a, si une expression peut retourner null, vous pouvez pr\u00e9voir un fallback avec ce simple pipe. Genre <code>user.nickname | user.firstname | \"Anonymous\"<\/code>. \u00c7a essaie dans l&#8217;ordre et \u00e7a prend la premi\u00e8re valeur non-nulle.<\/p>\n<p>Comme \u00e7a, fini les cascades de if\/else pour g\u00e9rer les cas o\u00f9 une donn\u00e9e manque ! Youpi !<\/p>\n<p>Voil\u00e0 pour le langage&#8230;<\/p>\n<p>Maintenant parlons un peu du bonhomme car Bernard Lambeau n&#8217;est pas un inconnu dans le monde du d\u00e9veloppement. Il est derri\u00e8re <strong>Bmg<\/strong> (une impl\u00e9mentation de l&#8217;alg\u00e8bre relationnelle), <strong>Finitio<\/strong> (un langage de sch\u00e9mas de donn\u00e9es), <strong>Webspicy<\/strong> (pour tester des APIs), et <strong>Klaro Cards<\/strong> (une app no-code). Tout cet \u00e9cosyst\u00e8me partageait d\u00e9j\u00e0 une certaine philosophie, et Elo vient unifier le tout. Son langage est d&#8217;ailleurs utilis\u00e9 en production dans Klaro Cards pour exprimer des r\u00e8gles m\u00e9tier que les utilisateurs non-techniques peuvent modifier.<\/p>\n<p>Ce qui m&#8217;a int\u00e9ress\u00e9 dans toute cette histoire, c&#8217;est surtout la m\u00e9thode de d\u00e9veloppement de Bernard qui a travaill\u00e9 en pair-programming avec Claude Code pendant des semaines, voire des mois. L&#8217;IA g\u00e9n\u00e9rait du code, et lui relisait, corrigeait, guidait, et l&#8217;IA apprenait de ces corrections pour les it\u00e9rations suivantes. Sur l&#8217;ensemble du projet, chaque ligne de code, chaque test, chaque doc a \u00e9t\u00e9 \u00e9crit par Claude et croyez le ou non, le code est clean car Bernard est un pro !<\/p>\n<p>D&#8217;ailleurs, il a enregistr\u00e9 une d\u00e9mo de 30 minutes<br \/>\n<a href=\"https:\/\/www.loom.com\/share\/ef65c6ebfc35491783ff0a6067447dd4\">o\u00f9 il montre le processus en live<\/a><br \/>\n.<\/p>\n<p>En regardant cette d\u00e9mo, on d\u00e9couvre une vraie m\u00e9thodologie de travail avec l&#8217;IA car il n&#8217;a pas juste balanc\u00e9 des prompts au hasard en esp\u00e9rant que \u00e7a marche. Au contraire, il a mis en place tout un syst\u00e8me pour que la collaboration soit efficace et s\u00e9curis\u00e9e.<\/p>\n<p>Premier truc : le &#8220;<strong>safe setup<\/strong>&#8220;. Bernard a configur\u00e9 un environnement Docker sandbox\u00e9 dans un dossier <code>.claude\/safe-setup<\/code> afin de laisser Claude Code ex\u00e9cuter du code dans un conteneur Alpine isol\u00e9, sans risquer de faire des b\u00eatises sur la machine h\u00f4te. En entreprise, c&#8217;est exactement le genre de garde-fou qu&#8217;on veut quand on laisse une IA bidouiller du code. Le conteneur a ainsi acc\u00e8s aux fichiers du projet, mais pas au reste du syst\u00e8me.<\/p>\n<p>Ensuite, il y a la documentation projet via un fichier CLAUDE.md \u00e0 la racine. Ce fichier d\u00e9crit l&#8217;architecture du langage avec le parser, l&#8217;AST, le syst\u00e8me de typage, les diff\u00e9rents backends, comme \u00e7a, quand Claude d\u00e9marre une session, il lit ce fichier et comprend la structure du projet.<\/p>\n<p>La gestion des t\u00e2ches est aussi bien pens\u00e9e puisqu&#8217;il utilise un syst\u00e8me de dossiers fa\u00e7on Kanban : <code>to-do<\/code>, <code>hold-on<\/code>, <code>done<\/code>, et <code>analyze<\/code>. Chaque t\u00e2che est un fichier Markdown qui ressemble \u00e0 une user story.<\/p>\n<p>Ainsi, quand il veut ajouter une feature, il cr\u00e9e un fichier dans <code>to-do<\/code> avec la description de ce qu&#8217;il veut. Claude lit le fichier, impl\u00e9mente, et Bernard d\u00e9place le fichier dans <code>done<\/code> une fois que c&#8217;est valid\u00e9. Le dossier <code>analyze<\/code> sert pour les trucs \u00e0 creuser plus tard, et <code>hold-on<\/code> pour ce qui attend des d\u00e9cisions.<\/p>\n<p>Ce qui est bien trouv\u00e9 aussi, c&#8217;est qu&#8217;il utilise trois modes d&#8217;interaction selon les situations. Le mode &#8220;<strong>accept-it<\/strong>&#8221; pour les trucs simples o\u00f9 Claude propose et Bernard dispose. Le &#8220;<strong>plan mode<\/strong>&#8221; quand la t\u00e2che est complexe avec Claude qui pose des questions de design avant d&#8217;\u00e9crire du code. Et le mode <strong>autonome<\/strong> avec <code>--dangerously-skip-permissions<\/code> quand il a parfaitement confiance pour une s\u00e9rie de modifications.<\/p>\n<p>Bernard a aussi cr\u00e9\u00e9 plusieurs personas sp\u00e9cialis\u00e9s (des agents) que Claude peut invoquer. Un agent &#8220;security&#8221; qui analyse le code du point de vue s\u00e9curit\u00e9. Un agent &#8220;DDD&#8221; (Domain-Driven Design) qui v\u00e9rifie la coh\u00e9rence du vocabulaire m\u00e9tier. Un agent &#8220;skeptic&#8221; qui cherche les cas limites et les bugs potentiels. Et un agent &#8220;Einstein&#8221; qui d\u00e9tecte quand le code devient trop complexe et sugg\u00e8re des simplifications.<\/p>\n<p>En gros, 4 cerveaux virtuels qui relisent chaque modification.<\/p>\n<p>Et l\u00e0 o\u00f9 \u00e7a devient vraiment ouf, c&#8217;est que Elo se teste lui-m\u00eame. Les tests d&#8217;acceptance sont \u00e9crits en Elo, avec une syntaxe d&#8217;assertions qui se compile vers JavaScript, Ruby et SQL. Comme \u00e7a quand Bernard ajoute une feature, il \u00e9crit d&#8217;abord le test en Elo, puis Claude impl\u00e9mente jusqu&#8217;\u00e0 ce que le test passe. Le langage valide sa propre impl\u00e9mentation.<\/p>\n<p>Comme je vous l&#8217;avais dit, c&#8217;est propre !<\/p>\n<p>Bernard n&#8217;a fait que valider et refuser et ne retouche jamais le code lui-m\u00eame. C&#8217;est Claude qui fait tout le reste et \u00e7a c&#8217;est un sacr\u00e9 changement dans la fa\u00e7on de d\u00e9velopper.<\/p>\n<p>Il \u00e9voque aussi l&#8217;id\u00e9e que quand on d\u00e9l\u00e8gue une comp\u00e9tence \u00e0 quelqu&#8217;un (ou quelque chose) qui la ma\u00eetrise, on peut se concentrer sur le reste. Comme \u00e7a, Bernard ne s&#8217;occupe donc plus d&#8217;\u00e9crire du code mais s&#8217;occupe plut\u00f4t de d\u00e9finir ce que le code doit faire, de valider les r\u00e9sultats, et de guider l&#8217;architecture.<\/p>\n<p>C&#8217;est vraiment le m\u00e9tier de d\u00e9veloppeur nouvelle g\u00e9n\u00e9ration et c&#8217;est tr\u00e8s inspirant si vous cherchez votre place de dev dans ce nouveau monde.<\/p>\n<p>En tout cas,<br \/>\n<a href=\"https:\/\/korben.info\/opcode-gui-claude-code-asterisk.html\">m\u00eame si ce n&#8217;est pas la premi\u00e8re fois qu&#8217;on voit Claude Code produire des r\u00e9sultats impressionnants<\/a><br \/>\nl\u00e0 c&#8217;est carr\u00e9ment autre chose.<\/p>\n<p>Maintenant si vous voulez tester, l&#8217;installation est simple. Un petit<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">`npm install -g @enspirit\/elo`\n<\/span><\/span><\/code><\/pre>\n<p>Et vous aurez ensuite acc\u00e8s \u00e0 deux outils :<\/p>\n<ul>\n<li><code>elo<\/code> pour \u00e9valuer des expressions \u00e0 la vol\u00e9e, et<\/li>\n<li><code>eloc<\/code> pour compiler vers la cible de votre choix.<\/li>\n<\/ul>\n<p>Et si vous voulez du JavaScript ?<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">eloc -t js votre_fichier.elo.\n<\/span><\/span><\/code><\/pre>\n<p>Du Ruby ?<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">eloc -t ruby.\n<\/span><\/span><\/code><\/pre>\n<p>Du SQL ?<\/p>\n<div class=\"highlight\">\n<pre class=\"chroma\"><code class=\"language-fallback\" data-lang=\"fallback\"><span class=\"line\"><span class=\"cl\">eloc -t sql.\n<\/span><\/span><\/code><\/pre>\n<p>Le site officiel propose \u00e9galement<br \/>\n<a href=\"https:\/\/elo-lang.org\/reference\/#get-started\">un tutoriel interactif<\/a><br \/>\nplut\u00f4t bien fichu pour d\u00e9couvrir la syntaxe. On commence par les bases (les types, les op\u00e9rateurs), on passe aux fonctions, aux gardes, et on finit par les trucs plus avanc\u00e9s comme les closures et les comparaisons structurelles. En une heure ou deux, vous avez fait le tour.<\/p>\n<p>Alors bien s\u00fbr, Elo n&#8217;est pas fait pour remplacer votre langage pr\u00e9f\u00e9r\u00e9 car ce n&#8217;est pas un langage g\u00e9n\u00e9raliste. Vous n&#8217;allez pas \u00e9crire une app mobile ou un jeu vid\u00e9o avec&#8230; Par contre, pour exprimer des r\u00e8gles m\u00e9tier, des validations, des transformations de donn\u00e9es\u2026 C&#8217;est pile poil ce qu&#8217;il faut.<\/p>\n<p>Peut-\u00eatre qu&#8217;un jour on verra une \u00e9quipe o\u00f9 les product managers \u00e9crivent directement les r\u00e8gles de pricing ou d&#8217;\u00e9ligibilit\u00e9<br \/>\n<a href=\"https:\/\/elo-lang.org\/\">en Elo<\/a><br \/>\n, (j&#8217;ai le droit de r\u00eaver) et o\u00f9 ce code est automatiquement valid\u00e9 par le compilateur avant d&#8217;\u00eatre d\u00e9ploy\u00e9.<\/p>\n<p>Plus de traduction approximative entre le m\u00e9tier et les devs, plus de bugs parce que quelqu&#8217;un a mal interpr\u00e9t\u00e9 une spec.<\/p>\n<p>\n<a href=\"https:\/\/github.com\/enspirit\/elo\">Le d\u00e9p\u00f4t GitHub est ouvert<\/a><br \/>\n, la documentation est dispo, et le langage est sous licence MIT donc vous avez de quoi explorer, tester, et pourquoi pas contribuer si le c\u0153ur vous en dit.<\/p>\n<p>Voil\u00e0, avec Claude Code (ou d&#8217;autres comme Gemini CLI, Codex CLI&#8230;etc) on n&#8217;est clairement plus sur des outils qui compl\u00e8tent du code ou qui g\u00e9n\u00e8rent des snippets. On est carr\u00e9ment sur un syst\u00e8me IA capable de cr\u00e9er des outils complets et des langages entiers, avec son humain pr\u00e9f\u00e9r\u00e9 qui joue le r\u00f4le de chef d&#8217;orchestre.<\/p>\n<p>Steve Klabnik a d&#8217;ailleurs fait quelque chose de similaire avec son langage Rue, lui aussi d\u00e9velopp\u00e9 avec Claude, si vous voulez jeter un \u0153il !<\/p>\n<p>Voil\u00e0 les amis ! La tendance est claire j&#8217;crois&#8230; les d\u00e9veloppeurs exp\u00e9riment\u00e9s commencent \u00e0 utiliser l&#8217;IA comme un multiplicateur de force, et pas comme un rempla\u00e7ant et je pense vraiment que vous devriez vous y mettre aussi pour ne pas vous retrouver \u00e0 la ramasse dans quelque ann\u00e9es&#8230;<\/p>\n<p>Amusez-vous bien et un grand merci \u00e0 Marc d&#8217;avoir attir\u00e9 mon attention l\u00e0 dessus !<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Vous connaissez probablement les prouesses de Claude Code pour d\u00e9compiler du code , ou encore son utilisation pour automatiser la cr\u00e9ation d&#8217;outils , mais l\u00e0, on a pass\u00e9 un cap. Bernard Lambeau, un d\u00e9veloppeur belge avec plus de 25 ans d&#8217;exp\u00e9rience et un doctorat en informatique, a d\u00e9cid\u00e9 de pousser le concept jusqu&#8217;au bout \u00e0 savoir utiliser Claude Code non pas pour \u00e9crire quelques scripts, mais pour g\u00e9n\u00e9rer un langage de programmation complet. Carr\u00e9ment ! Il est chaud Bernard, car quand je dis complet, je parle d&#8217;un compilateur entier avec analyseur lexical, un parseur, un syst\u00e8me de typage, des backends multiples&#8230;etc. Voil\u00e0, comme \u00e7a, en full pair-programming avec une IA. \u00c7a s&#8217;appelle Elo et l&#8217;id\u00e9e, c&#8217;est de proposer un langage tellement s\u00e9curis\u00e9 by design qu&#8217;on peut le confier \u00e0 des non-d\u00e9veloppeurs\u2026 ou \u00e0 des IA. Pas de variables mutables, pas d&#8217;effets de bord, pas de r\u00e9f\u00e9rences qui tra\u00eenent dans tous les sens. Bref, un langage o\u00f9 il est quasi impossible de faire une b\u00eatise, m\u00eame en essayant tr\u00e8s fort. Alors pourquoi cr\u00e9er un \u00e9ni\u00e8me langage alors qu&#8217;on en a d\u00e9j\u00e0 des centaines ? H\u00e9 bien le truc, c&#8217;est que la plupart des langages existants partent du principe que vous savez ce que vous faites. JavaScript, Python, Ruby\u2026 Ils vous font confiance. Trop, parfois. Elo, lui, adopte l&#8217;approche inverse&#8230; le &#8220;zero-trust&#8220;. Le langage ne fait confiance \u00e0 personne, ni au d\u00e9veloppeur, ni \u00e0 l&#8217;IA qui pourrait l&#8217;utiliser. Ainsi, chaque expression est pure, chaque fonction est d\u00e9terministe, et le compilateur v\u00e9rifie tout avant d&#8217;ex\u00e9cuter quoi que ce soit. Et surtout Elo est un langage d&#8217;expressions portables, ce qui veut dire que vous \u00e9crivez votre logique une fois, et vous pouvez la compiler vers JavaScript, Ruby ou m\u00eame du SQL PostgreSQL natif. Oui, oui, le m\u00eame code peut tourner dans votre navigateur, sur votre serveur Ruby, ou directement dans votre base de donn\u00e9es. Et l\u00e0, y&#8217;a de quoi faire des trucs sympas pour peu qu&#8217;on ait besoin de partager de la logique m\u00e9tier entre diff\u00e9rents environnements. Le typage est volontairement minimaliste mais costaud et se compose de 10 types de base : Int, Float, Bool, String, DateTime, Duration, Tuple, List, Null et Function. Pas de classes, pas d&#8217;h\u00e9ritage, pas d&#8217;objets au sens classique mais juste des valeurs et des fonctions, ce qui peut para\u00eetre limit\u00e9 dit comme \u00e7a, mais c&#8217;est justement cette contrainte qui rend le langage s\u00fbr. Moins de features, c&#8217;est moins de fa\u00e7ons de se planter ! L&#8217;op\u00e9rateur pipe |&gt; est le c\u0153ur du langage car au lieu d&#8217;imbriquer des appels de fonctions comme des poup\u00e9es russes, vous cha\u00eenez les transformations de gauche \u00e0 droite. Par exemple, pour r\u00e9cup\u00e9rer tous les clients actifs et compter combien il y en a, vous \u00e9crivez quelque chose comme customers |&gt; filter(active: true) |&gt; size. C&#8217;est lisible, c&#8217;est fluide, et m\u00eame quelqu&#8217;un qui n&#8217;a jamais cod\u00e9 comprend ce qui se passe. Et il y a aussi l&#8217;op\u00e9rateur alternative |. Comme \u00e7a, si une expression peut retourner null, vous pouvez pr\u00e9voir un fallback avec ce simple pipe. Genre user.nickname | user.firstname | &#8220;Anonymous&#8221;. \u00c7a essaie dans l&#8217;ordre et \u00e7a prend la premi\u00e8re valeur non-nulle. Comme \u00e7a, fini les cascades de if\/else pour g\u00e9rer les cas o\u00f9 une donn\u00e9e manque ! Youpi ! Voil\u00e0 pour le langage&#8230; Maintenant parlons un peu du bonhomme car Bernard Lambeau n&#8217;est pas un inconnu dans le monde du d\u00e9veloppement. Il est derri\u00e8re Bmg (une impl\u00e9mentation de l&#8217;alg\u00e8bre relationnelle), Finitio (un langage de sch\u00e9mas de donn\u00e9es), Webspicy (pour tester des APIs), et Klaro Cards (une app no-code). Tout cet \u00e9cosyst\u00e8me partageait d\u00e9j\u00e0 une certaine philosophie, et Elo vient unifier le tout. Son langage est d&#8217;ailleurs utilis\u00e9 en production dans Klaro Cards pour exprimer des r\u00e8gles m\u00e9tier que les utilisateurs non-techniques peuvent modifier. Ce qui m&#8217;a int\u00e9ress\u00e9 dans toute cette histoire, c&#8217;est surtout la m\u00e9thode de d\u00e9veloppement de Bernard qui a travaill\u00e9 en pair-programming avec Claude Code pendant des semaines, voire des mois. L&#8217;IA g\u00e9n\u00e9rait du code, et lui relisait, corrigeait, guidait, et l&#8217;IA apprenait de ces corrections pour les it\u00e9rations suivantes. Sur l&#8217;ensemble du projet, chaque ligne de code, chaque test, chaque doc a \u00e9t\u00e9 \u00e9crit par Claude et croyez le ou non, le code est clean car Bernard est un pro ! D&#8217;ailleurs, il a enregistr\u00e9 une d\u00e9mo de 30 minutes o\u00f9 il montre le processus en live . En regardant cette d\u00e9mo, on d\u00e9couvre une vraie m\u00e9thodologie de travail avec l&#8217;IA car il n&#8217;a pas juste balanc\u00e9 des prompts au hasard en esp\u00e9rant que \u00e7a marche. Au contraire, il a mis en place tout un syst\u00e8me pour que la collaboration soit efficace et s\u00e9curis\u00e9e. Premier truc : le &#8220;safe setup&#8220;. Bernard a configur\u00e9 un environnement Docker sandbox\u00e9 dans un dossier .claude\/safe-setup afin de laisser Claude Code ex\u00e9cuter du code dans un conteneur Alpine isol\u00e9, sans risquer de faire des b\u00eatises sur la machine h\u00f4te. En entreprise, c&#8217;est exactement le genre de garde-fou qu&#8217;on veut quand on laisse une IA bidouiller du code. Le conteneur a ainsi acc\u00e8s aux fichiers du projet, mais pas au reste du syst\u00e8me. Ensuite, il y a la documentation projet via un fichier CLAUDE.md \u00e0 la racine. Ce fichier d\u00e9crit l&#8217;architecture du langage avec le parser, l&#8217;AST, le syst\u00e8me de typage, les diff\u00e9rents backends, comme \u00e7a, quand Claude d\u00e9marre une session, il lit ce fichier et comprend la structure du projet. La gestion des t\u00e2ches est aussi bien pens\u00e9e puisqu&#8217;il utilise un syst\u00e8me de dossiers fa\u00e7on Kanban : to-do, hold-on, done, et analyze. Chaque t\u00e2che est un fichier Markdown qui ressemble \u00e0 une user story. Ainsi, quand il veut ajouter une feature, il cr\u00e9e un fichier dans to-do avec la description de ce qu&#8217;il veut. Claude lit le fichier, impl\u00e9mente, et Bernard d\u00e9place le fichier dans done une fois que c&#8217;est valid\u00e9. Le dossier analyze sert pour les trucs \u00e0 creuser plus tard, et hold-on pour ce qui attend des d\u00e9cisions. Ce qui est bien trouv\u00e9 aussi, c&#8217;est qu&#8217;il utilise trois modes d&#8217;interaction selon les situations. Le mode &#8220;accept-it&#8221; pour les trucs simples o\u00f9 Claude<\/p>\n","protected":false},"author":1,"featured_media":2044,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2043","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2043"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2043\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2044"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}