<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Granda | Ideas &amp; Code</title><link>https://granda.org/fr/</link><description>Recent content on Granda | Ideas &amp; Code</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Sat, 16 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://granda.org/fr/index.xml" rel="self" type="application/rss+xml"/><item><title>Un LLM sur une Sony PSP</title><link>https://granda.org/fr/2026/05/16/un-llm-sur-une-sony-psp/</link><pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/05/16/un-llm-sur-une-sony-psp/</guid><description>&lt;p&gt;Une Sony PSP-2000 est un portable MIPS de 333 MHz datant de 2007 avec 64 Mo de RAM. La mienne, cette semaine, fait tourner un Transformer à 15 millions de paramètres et diffuse du texte anglais sur l&amp;rsquo;écran LCD à un ou deux tokens par seconde.&lt;/p&gt;
&lt;p style="text-align: center;"&gt;
 &lt;img src="https://granda.org/images/posts/an-llm-on-a-sony-psp-chat.png" alt="Framebuffer de la PSP à la fin d'un bench run de 64 tokens. Prompt 'Once upon a time, there was a little girl named Layla', complétion en dessous, pied de page '64 tokens in 42.6s (1.5 tok/s)'." width="720" /&gt;
&lt;/p&gt;</description></item><item><title>Le nouvel agent de codage de xAI, Grok Build, livre ses prompts en texte clair</title><link>https://granda.org/fr/2026/05/15/le-nouvel-agent-de-codage-de-xai-grok-build-livre-ses-prompts-en-texte-clair/</link><pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/05/15/le-nouvel-agent-de-codage-de-xai-grok-build-livre-ses-prompts-en-texte-clair/</guid><description>&lt;p&gt;xAI a &lt;a href="https://x.ai/news/grok-build-cli"&gt;lancé Grok Build&lt;/a&gt; hier — leur réponse à Claude Code et Codex CLI. La commande d&amp;rsquo;installation tient en une ligne, le binaire est réservé à leur niveau consommateur le plus élevé (299 $/mois, 99 $ d&amp;rsquo;introduction), et l&amp;rsquo;agent lui-même communique avec Grok 4 via une interface HTTP compatible OpenAI.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai téléchargé le binaire parce que j&amp;rsquo;étais curieux de savoir dans quel langage il était construit. J&amp;rsquo;en suis ressorti avec une trentaine de prompts système verbatim, les noms de chaque sous-agent interne, chaque description d&amp;rsquo;outil et une image assez complète de l&amp;rsquo;architecture. Rien de tout cela n&amp;rsquo;a nécessité plus que &lt;code&gt;tr&lt;/code&gt; et &lt;code&gt;grep&lt;/code&gt;.&lt;/p&gt;</description></item><item><title>Un Interrupteur Homme Mort pour les Modifications de Pare-feu</title><link>https://granda.org/fr/2026/05/05/un-interrupteur-homme-mort-pour-les-modifications-de-pare-feu/</link><pubDate>Tue, 05 May 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/05/05/un-interrupteur-homme-mort-pour-les-modifications-de-pare-feu/</guid><description>&lt;p&gt;La ligne la plus effrayante dans l&amp;rsquo;automatisation homelab est celle qui modifie une règle de pare-feu sur le routeur auquel vous êtes connecté via SSH.&lt;/p&gt;
&lt;p&gt;Voici comment Claude Code et moi les modifions quand même.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="la-peur"&gt;La Peur&lt;/h2&gt;
&lt;p&gt;Je devais changer une règle UDM Pro nommée &lt;em&gt;&amp;ldquo;Block inter-VLAN traffic&amp;rdquo;&lt;/em&gt; de &lt;code&gt;accept&lt;/code&gt; à &lt;code&gt;drop&lt;/code&gt;. La règle avait été mal configurée depuis des lustres — réglée sur &lt;code&gt;accept&lt;/code&gt;, court-circuitant chaque permission par flux au-dessus d&amp;rsquo;elle — et la refermer était tout l&amp;rsquo;enjeu. L&amp;rsquo;orchestrateur exécutant le changement était une VM NixOS sur mon réseau domestique. Si le changement coupait le chemin qu&amp;rsquo;utilisait cette VM (ou mon propre SSH), je serais exclu de mon propre routeur sans accès console de secours.&lt;/p&gt;</description></item><item><title>Modifier les poids d'un LLM à la main</title><link>https://granda.org/fr/2026/04/15/modifier-les-poids-dun-llm-%C3%A0-la-main/</link><pubDate>Wed, 15 Apr 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/04/15/modifier-les-poids-dun-llm-%C3%A0-la-main/</guid><description>&lt;p&gt;J&amp;rsquo;ai écrit une implémentation from scratch de ROME — modification de modèle de rang 1 — en utilisant uniquement &lt;code&gt;torch&lt;/code&gt; et &lt;code&gt;transformers&lt;/code&gt;. L&amp;rsquo;objectif : réécrire un fait unique à l&amp;rsquo;intérieur de GPT-2 Medium avec une seule addition matricielle, et observer ce qui arrive à tout ce que le modèle sait par ailleurs.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai effectué quatre modifications. Trois étaient chirurgicales. La quatrième a révélé que le caractère « chirurgical » de ROME est extrêmement sensible à des détails d&amp;rsquo;implémentation auxquels on ne pense pas forcément au départ.&lt;/p&gt;</description></item><item><title>Analytique</title><link>https://granda.org/fr/analytics/</link><pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/analytics/</guid><description/></item><item><title>Construire un Simulateur Informatique Spatial avec Claude Code</title><link>https://granda.org/fr/2026/03/30/construire-un-simulateur-informatique-spatial-avec-claude-code/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/03/30/construire-un-simulateur-informatique-spatial-avec-claude-code/</guid><description>&lt;p&gt;Je voulais comprendre comment fonctionnent les ordinateurs des engins spatiaux. La planification en temps réel, le durcissement aux radiations, le réseau tolérant aux délais qui maintient les rovers martiens en communication avec la Terre. Avec Artemis II à l&amp;rsquo;horizon (la première mission lunaire habitée en plus de 50 ans), le moment semblait venu de creuser le sujet. J&amp;rsquo;ai donc construit un simulateur. De zéro. Avec Claude Code comme pair programmeur.&lt;/p&gt;</description></item><item><title>Votre Tesla garée est un centre de données</title><link>https://granda.org/fr/2026/03/13/votre-tesla-gar%C3%A9e-est-un-centre-de-donn%C3%A9es/</link><pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/03/13/votre-tesla-gar%C3%A9e-est-un-centre-de-donn%C3%A9es/</guid><description>&lt;p&gt;Votre voiture est garée 95 % du temps. À l&amp;rsquo;intérieur se trouve une puce capable de 300 à 500 billions d&amp;rsquo;opérations par seconde, connectée à un système de refroidissement, à une conversion d&amp;rsquo;alimentation et à une radio cellulaire. Elle ne fait rien.&lt;/p&gt;
&lt;p&gt;Tesla et xAI veulent changer cela. Le 11 mars, Elon Musk &lt;a href="https://www.cnbc.com/2026/03/11/musk-unveils-joint-tesla-xai-project-macrohard.html"&gt;a dévoilé « Macrohard »&lt;/a&gt; — appelé en interne Digital Optimus — un projet commun qui transforme les Tesla garées en agents IA personnels. Pas des chatbots. Des agents qui observent votre écran, contrôlent votre souris et votre clavier, et effectuent un vrai travail.&lt;/p&gt;</description></item><item><title>QA Visuelle comme Étape du Pipeline CI</title><link>https://granda.org/fr/2026/02/06/qa-visuelle-comme-%C3%A9tape-du-pipeline-ci/</link><pubDate>Fri, 06 Feb 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/02/06/qa-visuelle-comme-%C3%A9tape-du-pipeline-ci/</guid><description>&lt;p&gt;J&amp;rsquo;ai fusionné une PR le mois dernier. La revue de code était bonne. Les tests ont réussi. Puis j&amp;rsquo;ai ouvert le site sur mon téléphone et la barre latérale était complètement cassée.&lt;/p&gt;
&lt;p&gt;La correction était triviale—une media query manquante. Le bug était évident dès qu&amp;rsquo;on regardait réellement la vue mobile. Personne ne l&amp;rsquo;a fait.&lt;/p&gt;
&lt;p&gt;Alors j&amp;rsquo;ai ajouté une étape du pipeline qui regarde.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ouvre une issue GitHub qui dit :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Implémenter l&amp;rsquo;option d&amp;rsquo;Entrée Manuelle pour ajouter des clients. Lorsqu&amp;rsquo;elle est cliquée, ouvre un tiroir coulissant large avec un formulaire pour créer un nouveau client.&lt;/p&gt;</description></item><item><title>Pour Qui Est Agent Trace ?</title><link>https://granda.org/fr/2026/01/30/pour-qui-est-agent-trace/</link><pubDate>Fri, 30 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/01/30/pour-qui-est-agent-trace/</guid><description>&lt;p&gt;Cursor a publié &lt;a href="https://github.com/cursor/agent-trace"&gt;Agent Trace&lt;/a&gt;, une spécification ouverte pour suivre quel code dans un dépôt a été écrit par un LLM. Elle enregistre le modèle, l&amp;rsquo;outil, la conversation et les plages de lignes exactes — le tout ajouté à un fichier JSONL dans votre projet.&lt;/p&gt;
&lt;p&gt;Le pitch : &amp;ldquo;Au fur et à mesure que les agents écrivent plus de code, il est important de comprendre ce qui provient de l&amp;rsquo;IA par rapport aux humains.&amp;rdquo;&lt;/p&gt;</description></item><item><title>Liens Enrichis pour Développeurs Paresseux</title><link>https://granda.org/fr/2026/01/10/liens-enrichis-pour-d%C3%A9veloppeurs-paresseux/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/01/10/liens-enrichis-pour-d%C3%A9veloppeurs-paresseux/</guid><description>&lt;p&gt;Quand je partage un lien de blog sur Twitter ou Slack, il apparaît comme du texte brut. Pas d&amp;rsquo;image d&amp;rsquo;aperçu. Juste une URL comme &lt;a href="https://granda.org/en/2026/01/02/claude-code-on-the-go/"&gt;granda.org/en/2026/01/02/claude-code-on-the-go/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;avais besoin d&amp;rsquo;images Open Graph. L&amp;rsquo;approche standard : créer manuellement une image 1200x630 pour chaque article. C&amp;rsquo;est fastidieux. J&amp;rsquo;ai demandé à Claude de l&amp;rsquo;automatiser.&lt;/p&gt;
&lt;div class="desktop-only"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart LR
 Push[git push] --&amp;gt; GHA[GitHub Actions]
 GHA --&amp;gt; Hugo[Hugo Server]
 GHA --&amp;gt; PW[Playwright]
 PW --&amp;gt;|screenshot| Hugo
 PW --&amp;gt; IMG[OG Image]
 IMG --&amp;gt; Commit[git commit]
 Commit --&amp;gt; Deploy[Deploy]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="mobile-only"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart TB
 Push[git push] --&amp;gt; GHA[GitHub Actions]
 GHA --&amp;gt; Hugo[Hugo Server]
 GHA --&amp;gt; PW[Playwright]
 PW --&amp;gt;|screenshot| Hugo
 PW --&amp;gt; IMG[OG Image]
 IMG --&amp;gt; Commit[git commit]
 Commit --&amp;gt; Deploy[Deploy]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="la-configuration"&gt;La Configuration&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai expliqué le problème à Claude : les articles ont besoin d&amp;rsquo;images d&amp;rsquo;aperçu social, mais je ne veux pas les créer manuellement. Capture d&amp;rsquo;écran du contenu de l&amp;rsquo;article, enregistrement en tant qu&amp;rsquo;image OG, mise à jour automatique du frontmatter.&lt;/p&gt;</description></item><item><title>Se désabonner</title><link>https://granda.org/fr/unsubscribe/</link><pubDate>Sat, 10 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/unsubscribe/</guid><description>&lt;p id="unsubscribe-message"&gt;Traitement en cours...&lt;/p&gt;
&lt;script&gt;
(function() {
 const params = new URLSearchParams(window.location.search);
 const msg = document.getElementById('unsubscribe-message');

 if (params.get('success') === 'true') {
 msg.textContent = 'Vous avez été désabonné de la newsletter.';
 } else if (params.get('error') === 'missing') {
 msg.textContent = 'Erreur : Aucun jeton de désabonnement fourni.';
 } else if (params.get('error') === 'invalid') {
 msg.textContent = 'Erreur : Lien de désabonnement invalide.';
 } else {
 msg.textContent = 'Erreur : Une erreur inconnue s\'est produite.';
 }
})();
&lt;/script&gt;</description></item><item><title>Mon Ingénieur QA est un LLM</title><link>https://granda.org/fr/2026/01/09/mon-ing%C3%A9nieur-qa-est-un-llm/</link><pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/01/09/mon-ing%C3%A9nieur-qa-est-un-llm/</guid><description>&lt;p&gt;Claude peut cliquer sur des boutons.&lt;/p&gt;
&lt;p&gt;Cela semble trivial, mais cela change ma façon de construire des interfaces utilisateur. Avec Playwright MCP, Claude n&amp;rsquo;écrit pas seulement du code—il ouvre un navigateur, navigue vers localhost et vérifie que les choses fonctionnent réellement. Il détecte des bugs que je manquerais lors de la révision de code.&lt;/p&gt;
&lt;h2 id="la-configuration"&gt;La Configuration&lt;/h2&gt;
&lt;p&gt;Playwright MCP donne à Claude l&amp;rsquo;automatisation de navigateur. Je l&amp;rsquo;exécute avec Chromium headless :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;playwright&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;npx&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;#34;args&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;@anthropic-ai/mcp-server-playwright&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;--headless&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Maintenant Claude peut naviguer, cliquer, taper et faire des captures d&amp;rsquo;écran. Il voit ce que les utilisateurs voient.&lt;/p&gt;</description></item><item><title>Créer Ma Propre Newsletter avec Claude</title><link>https://granda.org/fr/2026/01/07/cr%C3%A9er-ma-propre-newsletter-avec-claude/</link><pubDate>Wed, 07 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/01/07/cr%C3%A9er-ma-propre-newsletter-avec-claude/</guid><description>&lt;p&gt;Deuxième jour du pic de trafic Hacker News. Quarante mille visiteurs, aucun moyen de les recontacter. J&amp;rsquo;avais besoin d&amp;rsquo;un formulaire d&amp;rsquo;inscription à la newsletter.&lt;/p&gt;
&lt;p&gt;J&amp;rsquo;ai regardé Buttondown, Beehiiv, Substack, ConvertKit. Tout était excessif. J&amp;rsquo;avais juste besoin de collecter des emails. Je n&amp;rsquo;avais pas besoin de campagnes, d&amp;rsquo;analyses ou de gestion d&amp;rsquo;abonnés. Et je voulais posséder mes données.&lt;/p&gt;
&lt;p&gt;Alors j&amp;rsquo;ai demandé à Claude de le construire.&lt;/p&gt;
&lt;div class="desktop-only"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart LR
 User([User]) --&amp;gt; Form[Newsletter Form]
 Form --&amp;gt;|POST /api/subscribe| Worker[Cloudflare Worker]
 Worker --&amp;gt; KV[(Cloudflare KV)]
 KV -.-&amp;gt;|Daily sync| GHA[GitHub Actions]
 GHA -.-&amp;gt; Repo[(subscribers.jsonl)]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class="mobile-only"&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart TB
 User([User]) --&amp;gt; Form[Newsletter Form]
 Form --&amp;gt;|POST /api/subscribe| Worker[Cloudflare Worker]
 Worker --&amp;gt; KV[(Cloudflare KV)]
 KV -.-&amp;gt;|Daily sync| GHA[GitHub Actions]
 GHA -.-&amp;gt; Repo[(subscribers.jsonl)]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 id="la-configuration"&gt;La Configuration&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai donné à Claude un token API Cloudflare via une variable d&amp;rsquo;environnement et j&amp;rsquo;ai décrit ce que je voulais : un formulaire qui collecte des emails et les stocke quelque part que je contrôle.&lt;/p&gt;</description></item><item><title>Claude Code en Déplacement</title><link>https://granda.org/fr/2026/01/02/claude-code-en-d%C3%A9placement/</link><pubDate>Fri, 02 Jan 2026 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2026/01/02/claude-code-en-d%C3%A9placement/</guid><description>&lt;p&gt;J&amp;rsquo;exécute six agents Claude Code en parallèle depuis mon téléphone. Pas de portable, pas d&amp;rsquo;ordinateur de bureau—juste Termius sur iOS et une VM cloud.&lt;/p&gt;
&lt;h2 id="la-configuration"&gt;La Configuration&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart LR
 A[Phone] --&amp;gt;|Termius + mosh| B[Tailscale VPN]
 B --&amp;gt; C[Vultr VM]
 C --&amp;gt; D[Claude Code]
 D --&amp;gt;|PreToolUse hook| E[Poke webhook]
 E --&amp;gt;|Push notification| A
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La boucle est : lancer une tâche, mettre le téléphone en poche, recevoir une notification quand Claude a besoin d&amp;rsquo;informations. Développement asynchrone de n&amp;rsquo;importe où.&lt;/p&gt;</description></item><item><title>Laisser l'IA le Faire</title><link>https://granda.org/fr/2025/12/28/laisser-lia-le-faire/</link><pubDate>Sun, 28 Dec 2025 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2025/12/28/laisser-lia-le-faire/</guid><description>&lt;p&gt;J&amp;rsquo;avais besoin d&amp;rsquo;un serveur de developpement : VM avec acces SSH et outils de dev installes. J&amp;rsquo;ai decrit a Claude Code ce que je voulais et je l&amp;rsquo;ai laisse gerer la configuration.&lt;/p&gt;
&lt;h2 id="le-prompt"&gt;Le Prompt&lt;/h2&gt;
&lt;p&gt;J&amp;rsquo;ai demande une VM Vultr avec 8 coeurs et 32 Go de RAM, accessible uniquement via Tailscale, avec des sessions persistantes qui survivent aux coupures reseau.&lt;/p&gt;
&lt;h2 id="ce-que-claude-code-a-construit"&gt;Ce que Claude Code a Construit&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. A provisionne la VM via l&amp;rsquo;API Vultr&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Traductions Automatiques du Blog avec Claude et GitHub Actions</title><link>https://granda.org/fr/2025/12/23/traductions-automatiques-du-blog-avec-claude-et-github-actions/</link><pubDate>Tue, 23 Dec 2025 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2025/12/23/traductions-automatiques-du-blog-avec-claude-et-github-actions/</guid><description>&lt;p&gt;Chaque article que j&amp;rsquo;écris est traduit automatiquement. Claude gère la traduction, commit les résultats sur main, et les versions traduites sont déployées avec l&amp;rsquo;original.&lt;/p&gt;
&lt;h2 id="le-flux"&gt;Le Flux&lt;/h2&gt;
&lt;p&gt;Le workflow de traduction s&amp;rsquo;exécute dans GitHub Actions quand du contenu anglais est mergé sur main :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;on&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;push&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="l"&gt;main]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;paths&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;- &lt;span class="s1"&gt;&amp;#39;content/**/*.en.md&amp;#39;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre tabindex="0"&gt;&lt;code class="language-mermaid" data-lang="mermaid"&gt;flowchart LR
 B[Merge sur main] --&amp;gt; C[Traductions générées]
 C --&amp;gt; D[Committé sur main]
 D --&amp;gt; E[Déploiement en production avec toutes les langues]
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="le-prompt"&gt;Le Prompt&lt;/h2&gt;
&lt;p&gt;Le workflow utilise &lt;a href="https://github.com/anthropics/claude-code-action"&gt;claude-code-action&lt;/a&gt; :&lt;/p&gt;</description></item><item><title>À propos</title><link>https://granda.org/fr/about/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><guid>https://granda.org/fr/about/</guid><description>&lt;h2 id="résumé"&gt;Résumé&lt;/h2&gt;
&lt;p&gt;Ce document fournit des informations générales sur l&amp;rsquo;auteur de ce blog.&lt;/p&gt;
&lt;h2 id="1-parcours"&gt;1. Parcours&lt;/h2&gt;
&lt;p&gt;Ingénieur logiciel avec 15 ans d&amp;rsquo;expérience, dont 10 passés dans le domaine.
Les domaines d&amp;rsquo;expertise incluent :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Systèmes distribués&lt;/li&gt;
&lt;li&gt;Développement backend et infrastructure&lt;/li&gt;
&lt;li&gt;Développement de produits full-stack et bout en bout&lt;/li&gt;
&lt;li&gt;Conception d&amp;rsquo;interfaces utilisateur&lt;/li&gt;
&lt;li&gt;Construction de systèmes sécurisés et fiables&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="2-contact"&gt;2. Contact&lt;/h2&gt;
&lt;p&gt;Toujours heureux d&amp;rsquo;échanger avec d&amp;rsquo;autres professionnels du secteur :
&lt;a href="https://x.com/mtt"&gt;@mtt&lt;/a&gt;&lt;/p&gt;</description></item><item><title>À propos</title><link>https://granda.org/fr/authorship/</link><pubDate>Mon, 22 Dec 2025 00:00:00 +0000</pubDate><guid>https://granda.org/fr/authorship/</guid><description>&lt;h2 id="résumé"&gt;Résumé&lt;/h2&gt;
&lt;p&gt;Ce document décrit la méthodologie de rédaction employée par ce blog.&lt;/p&gt;
&lt;h2 id="1-introduction"&gt;1. Introduction&lt;/h2&gt;
&lt;p&gt;Ce blog est largement généré avec l&amp;rsquo;assistance de Large Language Models (LLMs). L&amp;rsquo;auteur fournit l&amp;rsquo;orientation, l&amp;rsquo;édition et le contrôle qualité ; la machine fournit les brouillons initiaux et les traductions.&lt;/p&gt;
&lt;h2 id="2-justification"&gt;2. Justification&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;auteur croit en la transparence concernant la création de contenu assistée par AI. Plutôt que d&amp;rsquo;obscurcir les outils utilisés, cette divulgation vise à :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Établir des attentes appropriées pour les lecteurs&lt;/li&gt;
&lt;li&gt;Contribuer à des normes honnêtes autour du contenu AI&lt;/li&gt;
&lt;li&gt;Reconnaître la nature collaborative de l&amp;rsquo;écriture moderne&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="3-ce-que-cela-signifie"&gt;3. Ce Que Cela Signifie&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Idées&lt;/strong&gt; : D&amp;rsquo;origine humaine&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Structure&lt;/strong&gt; : Collaborative&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prose&lt;/strong&gt; : Principalement générée par AI, révisée par des humains&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traductions&lt;/strong&gt; : Entièrement générées par AI (non révisées par des humains)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="4-assurance-qualité"&gt;4. Assurance Qualité&lt;/h2&gt;
&lt;p&gt;Le contenu en anglais fait l&amp;rsquo;objet d&amp;rsquo;une révision humaine avant publication. Les traductions sont générées automatiquement et peuvent contenir des erreurs ou des formulations maladroites. L&amp;rsquo;auteur assume la responsabilité du contenu final publié en anglais.&lt;/p&gt;</description></item><item><title>Bonjour le Monde</title><link>https://granda.org/fr/2025/12/20/bonjour-le-monde/</link><pubDate>Sat, 20 Dec 2025 00:00:00 +0000</pubDate><guid>https://granda.org/fr/2025/12/20/bonjour-le-monde/</guid><description>&lt;p&gt;Bienvenue sur mon blog ! Ceci est mon premier article.&lt;/p&gt;
&lt;p&gt;Je partagerai ici des idées, des notes et des choses qui m&amp;rsquo;intéressent.&lt;/p&gt;</description></item></channel></rss>