{
  "course": {
    "id": "prisme-ia-juillet-2026-week-1",
    "title": "Prisme One — Semaine 1 — Fondations",
    "source_url": "https://prisme.one/plateforme/ia-juillet-2026"
  },
  "sections": [
    {
      "id": "01-anatomie",
      "order": 1,
      "title": "Comprendre l'anatomie de ton système",
      "lessonIds": [
        "01-semaine-1-anatomie-systeme",
        "02-semaine-1-structure-couts"
      ]
    },
    {
      "id": "02-prerequis",
      "order": 2,
      "title": "Prérequis et bonnes pratiques",
      "lessonIds": [
        "03-semaine-1-prerequis-bonnes-pratiques"
      ]
    },
    {
      "id": "03-installation",
      "order": 3,
      "title": "Installation technique",
      "lessonIds": [
        "04-semaine-1-installation-technique",
        "05-semaine-1-opencode",
        "06-semaine-1-naviguer-obsidian",
        "07-semaine-1-choisir-modele-ia",
        "08-semaine-1-lexique-ia",
        "09-semaine-1-securite",
        "10-semaine-1-coffre-equipe",
        "11-semaine-1-utiliser-ia-terminal",
        "12-semaine-1-claude-code-coffre",
        "13-semaine-1-codex-coffre",
        "14-semaine-3-credentials"
      ]
    },
    {
      "id": "04-initialisation",
      "order": 4,
      "title": "Initialiser son coffre avec /initialisation",
      "lessonIds": [
        "15-semaine-1-vault-perso",
        "16-semaine-1-importer-notes",
        "17-semaine-1-deja-second-cerveau"
      ]
    },
    {
      "id": "05-principes-ia",
      "order": 5,
      "title": "Bien utiliser l'IA : les 6 principes essentiels",
      "lessonIds": [
        "18-semaine-1-parler-a-lia"
      ]
    },
    {
      "id": "06-second-cerveau",
      "order": 6,
      "title": "Comprendre votre second cerveau",
      "lessonIds": [
        "19-semaine-1-principes-second-cerveau",
        "20-semaine-1-contexte-holistique",
        "21-semaine-1-weekly-review",
        "22-semaine-3-zettelkasten"
      ]
    },
    {
      "id": "07-outils-ia",
      "order": 7,
      "title": "Installer ses outils IA",
      "lessonIds": [
        "23-semaine-1-installer-outils-ia",
        "24-semaine-1-firecrawl",
        "25-semaine-1-browser-mcp",
        "26-semaine-1-generer-images",
        "27-semaine-1-fathom",
        "28-semaine-4-remote-control",
        "29-semaine-1-vectoriser-coffre",
        "30-semaine-1-google-workspace",
        "31-semaine-1-beeper",
        "32-semaine-1-microsoft-365",
        "33-semaine-1-himalaya-emails",
        "34-semaine-1-fichiers-office",
        "35-semaine-1-frontend-slides"
      ]
    }
  ],
  "lessons": [
    {
      "id": "01-semaine-1-anatomie-systeme",
      "order": 1,
      "kind": "section",
      "section": "01-anatomie",
      "title": "Comprendre l'anatomie de ton système",
      "slug": "semaine-1-anatomie-systeme",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme",
      "summary": "Le cours central de la semaine 1. L'équation à 3 facteurs (contexte, modèle, outils), les 3 couches de l'IA, la recommandation officielle du bootcamp (OpenCode Desktop + ChatGPT + OpenRouter), IPCRA, les 4 principes du coffre et le ruissellement via skills.",
      "objective": "Comprendre ce qu'on construit, pourquoi, et comment chaque pièce s'articule avant de commencer à configurer quoi que ce soit.",
      "expected_output": "Compris l'équation à 3 facteurs, les 3 couches IA, la stack recommandée (OpenCode Desktop, ChatGPT, OpenRouter avec DeepSeek V4 Flash et GLM 5.2), IPCRA et les 4 principes du coffre. Prêt à installer.",
      "content_html": "<div class=\"my-6 relative w-full rounded-xl overflow-hidden border border-zinc-200\" style=\"padding-bottom: 56.25%; height: 0px;\"><iframe src=\"https://www.loom.com/embed/6f6629766b3d4c239b1202daf93873fe\" frameborder=\"0\" allowfullscreen=\"\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;\"></iframe></div>\n<hr class=\"my-8 border-border\">\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Lis cette leçon avant de toucher à quoi que ce soit.</strong> Elle te donne le cadre pour comprendre pourquoi on fait chaque étape. Sans elle, l'installation est une liste d'actions sans sens.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"notre-équation-de-base\">Notre équation de base</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Notre objectif est simple : améliorer la qualité de l'output que tu obtiendras avec l'IA. Et pour ça, il y a une équation à garder en tête.</p>\n<div class=\"my-8 rounded-xl border-2 border-blue-200 bg-blue-50 p-6 text-center\"><div class=\"text-xl font-bold text-blue-800 mb-2\">Qualité de l'output IA</div><div class=\"text-2xl font-bold text-blue-900 mb-3\">= Qualité du contexte × Qualité du modèle × Qualité des outils</div><div class=\"text-sm text-blue-600\">Trois facteurs. Trois leviers. C'est ce qu'on travaille pendant la formation.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Concrètement, voici ce qu'on fait sur chacun des trois :</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-3 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Contexte</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Le second cerveau</div><div class=\"text-sm text-emerald-700/80\">Un coffre de fichiers texte qui contient tes projets, casquettes, vision, process. Plus des bases de données dynamiques et des skills personnalisés que tu construis au fil des semaines.</div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Modèle</div><div class=\"text-base font-bold text-blue-800 mb-2\">Devenir lettré</div><div class=\"text-sm text-blue-700/80\">Comprendre les modèles existants, leurs forces, leurs limites. Apprendre à choisir le bon modèle pour la bonne tâche selon la complexité, la privacy, le coût.</div></div><div class=\"rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-500 mb-2\">Outils</div><div class=\"text-base font-bold text-amber-800 mb-2\">Donner des super-pouvoirs</div><div class=\"text-sm text-amber-700/80\">Connecter l'IA aux bons outils : scraping web, contrôle du navigateur, transcription de réunions, automatisations. Pour qu'elle exécute, pas juste qu'elle réponde.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Mais avant d'aller plus loin, quelques rappels pour que tu aies une vue d'ensemble claire de ce qu'on va construire.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"partie-1-lia-ce-quon-utilise-vraiment\">Partie 1 : l'IA, ce qu'on utilise vraiment</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour bien travailler avec l'IA, il faut comprendre une chose : <strong class=\"font-semibold text-foreground\">ce n'est pas un seul objet, c'est une pile de 3 couches indépendantes.</strong> Changer une couche ne casse pas les autres. C'est ce qui rend le système résilient.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-3-couches\">Les 3 couches</h3>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-blue-200 bg-blue-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-400 mb-1\">Couche 3 : Interface + Contexte</div><div class=\"text-lg font-bold text-blue-700\">Ce que tu utilises</div><div class=\"text-sm text-blue-500 mt-1\">OpenCode Desktop, ChatGPT, Claude Code...</div><div class=\"text-xs text-blue-400 mt-1 italic\">+ ton coffre, tes skills, tes fichiers</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-amber-200 bg-amber-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-400 mb-1\">Couche 2 : Provider</div><div class=\"text-lg font-bold text-amber-700\">Qui héberge le modèle</div><div class=\"text-sm text-amber-500 mt-1\">OpenRouter, Synthetic AI, Anthropic, OpenAI, Fireworks, DeepInfra...</div><div class=\"text-xs text-amber-400 mt-1 italic\">Détermine le prix, la vitesse, la politique de confidentialité</div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-1\">Couche 1 : Modèle</div><div class=\"text-lg font-bold text-emerald-700\">Le « cerveau »</div><div class=\"text-sm text-emerald-500 mt-1\">DeepSeek V4, GLM 5.2, Claude, GPT 5.6, Gemini, Qwen...</div><div class=\"text-xs text-emerald-400 mt-1 italic\">L'intelligence elle-même</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux changer de modèle sans changer d'interface. Tu peux changer d'interface sans perdre ton coffre. Tu peux changer de provider pour le même modèle. <strong class=\"font-semibold text-foreground\">Ces 3 couches sont indépendantes.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La conséquence pratique : tout ce qu'on construit dans ce bootcamp (ton coffre, tes skills, ton contexte) est complètement portable. Si demain tu changes d'interface ou de modèle, ça marche sans rien refaire.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour faire tes choix, on va remonter ces 3 couches de bas en haut. D'abord le modèle (le cerveau), puis on choisit le provider qui l'héberge (via la recommandation), enfin l'interface qui orchestre tout.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quel-modèle-utiliser\">Quel modèle utiliser ?</h3>\n<div class=\"my-6\"><img alt=\"Comparaison des modèles IA sur Artificial Analysis\" class=\"rounded-xl border border-zinc-200\" src=\"assets/01-comparaison-des-modeles-ia-sur-artificial-analysis.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">Source : <a href=\"https://artificialanalysis.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">artificialanalysis.ai</a>. Va comparer toi-même, c'est une bonne habitude.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Premier constat important : aujourd'hui, <strong class=\"font-semibold text-foreground\">tous les modèles dits « high-end » se valent à peu près</strong> sur les tâches du quotidien. GPT, Claude, DeepSeek, GLM, Gemini, Qwen : à 10 points près sur l'index d'intelligence, ils font globalement le même travail.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La vraie différence se joue ailleurs : <strong class=\"font-semibold text-foreground\">open source vs closed source</strong>.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Open source</div><div class=\"text-base font-bold text-emerald-800 mb-2\">DeepSeek, GLM, Qwen, Kimi, Mistral...</div><div class=\"text-sm text-emerald-700/80\">Tournent sur des serveurs avec de bonnes politiques de confidentialité (ZDR, certifications SOC2 / ISO). Beaucoup moins chers à l'usage.</div></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-500 mb-2\">Closed source</div><div class=\"text-base font-bold text-rose-800 mb-2\">Claude (Anthropic), GPT (OpenAI)</div><div class=\"text-sm text-rose-700/80\">Légèrement meilleurs sur certaines tâches complexes. Mais propriétaires : tes données passent par leurs serveurs avec leurs politiques (rétention, modération). Chers à l'API.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu auras l'occasion d'en tester plusieurs pendant le bootcamp pour te rendre compte duquel tu préfères. Mais pour démarrer, voici notre recommandation actuelle.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Notre recommandation officielle</h4>\n<div class=\"my-6 rounded-xl border-2 border-blue-200 bg-blue-50 p-6\"><div class=\"font-bold text-blue-800 mb-4\">Trois modèles, trois usages</div><div class=\"space-y-3\"><div class=\"rounded-lg bg-white border border-blue-100 p-4\"><div class=\"flex items-baseline justify-between gap-3 mb-1\"><div class=\"font-bold text-blue-700\">DeepSeek V4 Flash</div><div class=\"text-xs font-mono text-blue-500\">via OpenRouter</div></div><div class=\"text-sm text-blue-700/80\">Ton modèle par défaut. Pour 80 % des tâches du quotidien. Privé (providers ZDR sur OpenRouter), rapide, ridiculement bon marché.</div></div><div class=\"rounded-lg bg-white border border-blue-100 p-4\"><div class=\"flex items-baseline justify-between gap-3 mb-1\"><div class=\"font-bold text-blue-700\">ChatGPT (abonnement 20 €/mois)</div><div class=\"text-xs font-mono text-blue-500\">via OpenAI</div></div><div class=\"text-sm text-blue-700/80\">Pour les tâches sans enjeu de privacy : présentations, sites web, brainstorming, contenu public. S'intègre directement dans OpenCode Desktop, donc pas de coût marginal à l'usage.</div></div><div class=\"rounded-lg bg-white border border-blue-100 p-4\"><div class=\"flex items-baseline justify-between gap-3 mb-1\"><div class=\"font-bold text-blue-700\">GLM 5.2</div><div class=\"text-xs font-mono text-blue-500\">via Synthetic AI</div></div><div class=\"text-sm text-blue-700/80\">Pour les tâches complexes qui touchent à des données clients sensibles. Open source, fort sur le raisonnement long, privé. Dispo en abonnement via Synthetic AI (30 $/mois, ZDR), ou au token via OpenRouter ZDR.</div></div></div></div>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Le facteur prix</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le point qui ne saute pas aux yeux mais qui change tout : la différence de coût entre les modèles closed source et open source est massive.</p>\n<div class=\"my-6 overflow-x-auto\"><table class=\"w-full text-sm\"><thead><tr class=\"border-b border-zinc-200\"><th class=\"text-left py-2 px-3\">Modèle</th><th class=\"text-right py-2 px-3\">Input ($/M tokens)</th><th class=\"text-right py-2 px-3\">Output ($/M tokens)</th></tr></thead><tbody class=\"text-zinc-700\"><tr class=\"border-b border-zinc-100\"><td class=\"py-2 px-3 font-mono\">GPT 5.6</td><td class=\"text-right py-2 px-3\">$5</td><td class=\"text-right py-2 px-3\">$30</td></tr><tr class=\"border-b border-zinc-100 bg-emerald-50/40\"><td class=\"py-2 px-3 font-mono font-semibold\">DeepSeek V4 Flash</td><td class=\"text-right py-2 px-3 font-semibold text-emerald-700\">$0,14</td><td class=\"text-right py-2 px-3 font-semibold text-emerald-700\">$0,28</td></tr></tbody></table></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">DeepSeek V4 Flash est environ <strong class=\"font-semibold text-foreground\">100 fois moins cher</strong> que GPT 5.6 en sortie. Et il fait déjà 80 % des tâches du quotidien de manière satisfaisante, en plus d'être privé (via providers ZDR). C'est un énorme avantage, ça vaut vraiment le coup de l'utiliser par défaut.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Un mot sur le provider</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter, c'est la couche 2 de notre stack. C'est un proxy qui route ta requête vers le bon provider (Fireworks, DeepInfra, Parasail...) selon la dispo du moment. Son gros avantage : tu peux <strong class=\"font-semibold text-foreground\">forcer le ZDR (zéro data retention) dans les paramètres</strong>, et OpenRouter ne route alors que vers des providers qui ont signé cet engagement. Tes requêtes ne sont ni stockées, ni utilisées pour entraîner de nouveaux modèles. Une seule clé API, un seul crédit (10 € pour démarrer), tous les modèles open source disponibles.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour GLM 5.2 en usage privé régulier, on recommande plutôt un <strong class=\"font-semibold text-foreground\">abonnement Synthetic AI</strong> (30 $/mois, ZDR) : des tokens ZDR sur GLM 5.2 servis rapidement, sans paiement au token. Tu gardes OpenRouter au token pour DeepSeek V4 Flash et pour tester d'autres modèles.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Pourquoi pas Claude ?</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu remarques que Claude n'est pas dans la recommandation. Deux raisons.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">D'abord, les modèles fermés sont tellement chers à l'API qu'ils deviennent quasiment inutilisables en paiement à la requête. Il faut passer par un abonnement pour rentabiliser.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Or, <strong class=\"font-semibold text-foreground\">Anthropic a rendu son abonnement incompatible avec les interfaces ouvertes</strong>. Il faut utiliser leur propre interface (Claude Code) pour profiter de l'abonnement Claude Pro / Max. On est contre ce choix : il enferme l'utilisateur dans un écosystème propriétaire.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as quand même une affection particulière pour les modèles Claude (c'est un cas que ça arrive, les modèles ont des personnalités différentes), pas de souci. Il y a un tutoriel d'approfondissement dédié dans la formation.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu veux utiliser Claude :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/12-semaine-1-claude-code-coffre/semaine-1-claude-code-coffre.html\">Configurer Claude Code en complément →</a> : comment installer Claude Code à côté d'OpenCode et alterner selon la tâche.</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Encore une fois, ce qu'on construit dans ce bootcamp est portable : c'est un coffre de contexte et des skills. Tu peux changer d'interface ou de modèle demain sans rien refaire.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quel-outil-installer\">Quel outil installer ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant que tu sais quels modèles utiliser, il te faut une <strong class=\"font-semibold text-foreground\">interface</strong> pour les ouvrir dans ton coffre. Notre objectif : être complètement multimodèle (passer librement de DeepSeek à ChatGPT à GLM selon la tâche).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Notre recommandation unique pour ce bootcamp : <strong class=\"font-semibold text-foreground\">OpenCode Desktop</strong>.</p>\n<div class=\"my-6\"><img alt=\"Capture d'écran d'OpenCode Desktop\" class=\"rounded-xl border border-zinc-200\" src=\"assets/02-capture-d-ecran-d-opencode-desktop.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">OpenCode Desktop : l'app native multi-modèle qu'on utilise dans le bootcamp.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est une application desktop open source qui permet de connecter tous les modèles que tu veux (via OpenRouter, OpenAI, Anthropic, etc.), avec une interface propre et des sessions persistantes. C'est ce qu'on utilise tout au long du bootcamp.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour l'installation pas à pas :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/4-semaine-1-installation-technique/semaine-1-installation-technique.html\">Installation technique →</a> : télécharger OpenCode Desktop, configurer OpenRouter avec ZDR, abonner ton compte ChatGPT.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"partie-2-le-coffre-ce-quon-construit-et-pourquoi\">Partie 2 : le coffre, ce qu'on construit et pourquoi</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as probablement déjà utilisé ChatGPT. Tu lui poses une question, il répond. C'est utile. Mais ce n'est pas ce qu'on construit ici.</p>\n<div class=\"my-8 rounded-xl border border-zinc-200 bg-white overflow-hidden\"><div class=\"grid grid-cols-1 md:grid-cols-2 divide-y md:divide-y-0 md:divide-x divide-zinc-200\"><div class=\"p-5 bg-zinc-50\"><div class=\"text-sm font-bold text-zinc-500 mb-3\">ChatGPT / interface web classique</div><div class=\"space-y-2 text-sm text-zinc-500\"><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300\">✗</span> Conversation isolée, sans mémoire</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300\">✗</span> Ne connaît pas tes projets ni ton contexte</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300\">✗</span> Aucun accès à tes fichiers</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300\">✗</span> Réponses génériques pour tout le monde</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300\">✗</span> Tu répètes le contexte à chaque session</div></div></div><div class=\"p-5\"><div class=\"text-sm font-bold text-emerald-700 mb-3\">Ton système IA personnel</div><div class=\"space-y-2 text-sm text-emerald-700\"><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400\">✓</span> Ouverte dans tes fichiers, pas dans un navigateur</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400\">✓</span> Connaît tes projets, casquettes, phase de vie</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400\">✓</span> Peut lire et modifier tes fichiers directement</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400\">✓</span> Adapté à TA vie, TES priorités, TON style</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400\">✓</span> <strong>Le modèle change. Le système reste.</strong></div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce qu'on construit, concrètement :</strong> un <strong class=\"font-semibold text-foreground\">workspace</strong> sur ton ordinateur. À l'intérieur, ton coffre de second cerveau (un dossier Obsidian appelé <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/</code>), et à côté d'autres projets que tu pourras ajouter au fil du temps (un site, une app, un repo client...). Deux outils l'ouvrent : Obsidian pour le lire visuellement et naviguer dans tes notes, OpenCode Desktop pour que l'IA puisse le lire et le modifier.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ce coffre est organisé selon <strong class=\"font-semibold text-foreground\">4 principes</strong>. Comprends ces principes, et tu comprends tout.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"principe-1-tout-est-un-fichier-texte\">Principe 1 : tout est un fichier texte</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton coffre n'est pas une application. C'est un dossier de fichiers <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.md</code> (Markdown) sur ton disque dur.</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>WORKSPACE/\n├── AGENTS.md              # Identité de l'IA + règles transverses\n├── opencode.json          # Config OpenCode (où chercher les skills)\n├── Second Cerveau/        # Vault Obsidian, ton second cerveau\n│   ├── AGENTS.md          # Règles spécifiques au vault (IPCRA, Life Phases)\n│   ├── 0 INBOX/\n│   ├── 1 PROJETS/\n│   ├── 2 CASQUETTES/\n│   ├── 3 RESSOURCES/\n│   ├── 4 TOOLS/           # Templates, process, skills (toutes tes commandes IA)\n│   ├── 5 ARCHIVE/\n│   └── _Import/\n└── [autres projets]/      # À ajouter plus tard (sites, apps, repos)\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pourquoi c'est important : tes données t'appartiennent pour toujours. Si Obsidian disparaît, tu ouvres les fichiers avec TextEdit. Si OpenCode disparaît, tu prends un autre outil. <strong class=\"font-semibold text-foreground\">Rien n'est verrouillé dans une app propriétaire.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux portes d'entrée sur le même dossier : Obsidian pour lire et éditer visuellement tes notes, OpenCode Desktop pour que l'IA agisse dessus.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"principe-2-ipcra-une-organisation-par-utilité\">Principe 2 : IPCRA, une organisation par utilité</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La plupart des systèmes de notes organisent par thème (« Marketing », « Finance », « Perso »). Le problème : quand tu crées une note, tu dois décider de sa nature conceptuelle, et c'est épuisant. IPCRA organise par <strong class=\"font-semibold text-foreground\">utilité</strong> : « à quoi ça sert ? »</p>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-xs rounded-xl border-2 border-zinc-300 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-base font-bold text-zinc-700\">Tout arrive dans <code>0 INBOX</code></div><div class=\"text-xs text-zinc-400 mt-1\">Capture rapide. Tri ensuite.</div></div><div class=\"h-6 w-px bg-zinc-300\"></div><div class=\"rounded-lg bg-zinc-100 px-4 py-2 text-sm font-medium text-zinc-600 italic\">« À quoi ça sert ? »</div><div class=\"h-6 w-px bg-zinc-300\"></div><div class=\"grid w-full max-w-2xl grid-cols-2 sm:grid-cols-4 gap-2\"><div class=\"rounded-lg border-2 border-blue-200 bg-blue-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-blue-700\">1 PROJETS</div><div class=\"text-xs text-blue-500 mt-1\">Ça a une fin</div><div class=\"text-xs text-blue-400 mt-0.5 italic\">« Lancer mon podcast »</div></div><div class=\"rounded-lg border-2 border-purple-200 bg-purple-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-purple-700\">2 CASQUETTES</div><div class=\"text-xs text-purple-500 mt-1\">C'est permanent</div><div class=\"text-xs text-purple-400 mt-0.5 italic\">« Entrepreneur »</div></div><div class=\"rounded-lg border-2 border-emerald-200 bg-emerald-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-emerald-700\">3 RESSOURCES</div><div class=\"text-xs text-emerald-500 mt-1\">C'est une référence</div><div class=\"text-xs text-emerald-400 mt-0.5 italic\">Articles, guides</div></div><div class=\"rounded-lg border-2 border-zinc-200 bg-zinc-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-zinc-500\">5 ARCHIVE</div><div class=\"text-xs text-zinc-400 mt-1\">C'est terminé</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un cinquième dossier complète l'organisation : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">4 TOOLS/</code> contient tout ce qui sert d'<strong class=\"font-semibold text-foreground\">outillage</strong> (templates, process documentés, skills IA). Tu n'y mets pas tes notes de travail, juste ce qui te sert à les produire.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La distinction clé : <strong class=\"font-semibold text-foreground\">Projet vs Casquette</strong>.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Projet</strong> = a une fin. « Lancer mon podcast », « Déménager à Berlin ». Quand c'est fini : Archive.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Casquette</strong> = permanent, sans fin. « Entrepreneur », « Parent », « Créateur de contenu ». Tant que tu joues ce rôle, ça reste.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Commence avec 3 à 7 casquettes larges. « Mon Entreprise » plutôt que « Marketing », « Finance », « RH » séparément. L'IA t'aidera à affiner plus tard.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour aller plus loin :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../06-second-cerveau/lessons/19-semaine-1-principes-second-cerveau/semaine-1-principes-second-cerveau.html\">Les principes du second cerveau →</a> : IPCRA détaillé, wikilinks, ruissellement bottom-up.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"principe-3-le-contexte-est-la-fondation-de-tout\">Principe 3 : le contexte est la fondation de tout</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA ne vaut rien sans contexte. Un modèle excellent avec un contexte vide donne des réponses génériques. Un modèle correct avec un contexte riche donne des réponses personnalisées.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est pourquoi la première chose que tu vas faire, c'est remplir ton contexte via le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>. L'IA te pose des questions sur 5 sections :</p>\n<div class=\"my-6 w-full max-w-lg mx-auto grid grid-cols-5 gap-1.5\"><div class=\"rounded-lg border-2 border-blue-200 bg-blue-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-blue-700\">01</div><div class=\"text-xs text-blue-500 mt-1\">Qui je suis</div></div><div class=\"rounded-lg border-2 border-purple-200 bg-purple-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-purple-700\">02</div><div class=\"text-xs text-purple-500 mt-1\">Ma vision</div></div><div class=\"rounded-lg border-2 border-amber-200 bg-amber-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-amber-700\">03</div><div class=\"text-xs text-amber-500 mt-1\">Casquettes</div></div><div class=\"rounded-lg border-2 border-emerald-200 bg-emerald-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-emerald-700\">04</div><div class=\"text-xs text-emerald-500 mt-1\">Phase de vie</div></div><div class=\"rounded-lg border-2 border-rose-200 bg-rose-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-rose-700\">05</div><div class=\"text-xs text-rose-500 mt-1\">Business</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Compte <strong class=\"font-semibold text-foreground\">3 à 4 heures</strong>. C'est un investissement, pas une configuration. C'est ce qui fait la différence entre une IA générique et ton assistante personnelle.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour préparer tes réponses :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../04-initialisation/lessons/15-semaine-1-vault-perso/semaine-1-vault-perso.html\">Initialiser son coffre avec /initialisation →</a> : les 5 sections expliquées en détail, avec les vidéos sur la vision et les phases de vie.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"principe-4-les-rituels-font-vivre-le-système\">Principe 4 : les rituels font vivre le système</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un coffre sans rituels devient une archive morte. Pour le maintenir en vie, tu utilises des <strong class=\"font-semibold text-foreground\">skills</strong> : des commandes que tu lances avec un slash dans OpenCode (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, etc.). Chaque skill est un simple fichier Markdown rangé dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/</code>. Tu peux les modifier, en créer de nouveaux, les partager.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le concept clé derrière les rituels : le <strong class=\"font-semibold text-foreground\">ruissellement</strong>. Quand tu termines une session, l'IA propage automatiquement l'information vers les bons endroits du coffre, à 3 niveaux.</p>\n<div class=\"my-6 flex flex-col items-center gap-0\"><div class=\"w-full max-w-sm rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-emerald-700\">Action de session</div><div class=\"text-xs text-emerald-500\">Écrire, coder, décider, capturer une idée...</div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 2 : automatique</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-blue-700\">Daily note de la phase active</div><div class=\"text-xs text-blue-500\">Le log de la session</div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 3 : automatique</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-amber-200 bg-amber-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-amber-700\">Notes de contexte du projet ou de la casquette</div><div class=\"text-xs text-amber-500\">Les décisions et faits importants remontent</div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 4 : avec validation</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-zinc-300 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-zinc-700\">Moi.md ou intention de phase</div><div class=\"text-xs text-zinc-500\">Si changement majeur, avec ton accord explicite</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu ne gères rien manuellement. Le système s'auto-met à jour à travers les skills.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour configurer ton rituel hebdo :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../06-second-cerveau/lessons/21-semaine-1-weekly-review/semaine-1-weekly-review.html\">La Weekly Review →</a> : organisation par énergie, carry-forward.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"partie-3-les-outils-comment-tout-se-connecte\">Partie 3 : les outils, comment tout se connecte</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as maintenant la pile IA (Partie 1) et la logique du coffre (Partie 2). La Partie 3 répond à une question pratique : comment tout ça fonctionne techniquement ?</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment-lia-voit-ton-coffre\">Comment l'IA « voit » ton coffre</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu ouvres OpenCode Desktop sur le dossier de ton <strong class=\"font-semibold text-foreground\">workspace</strong>, deux choses se passent :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">L'IA voit l'arborescence complète de ce dossier</li>\n<li class=\"leading-7\">Elle lit le fichier d'instructions à la racine (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code>) pour comprendre qui elle est, comment tu travailles, et ce qu'elle doit faire</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est pour ça que <strong class=\"font-semibold text-foreground\">tu dois toujours ouvrir OpenCode sur ton workspace</strong>, pas ailleurs. Si tu l'ouvres depuis ton Bureau, elle ne voit pas ton coffre et n'a aucun contexte.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">La privacy en pratique</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Important à comprendre : <strong class=\"font-semibold text-foreground\">par défaut, ton coffre n'est pas uploadé sur les serveurs du provider.</strong> L'IA ne « télécharge » pas tout en bloc. Voici le flux exact à chaque requête :</p>\n<div class=\"my-6 flex flex-col items-center gap-2\"><div class=\"w-full max-w-lg rounded-xl border border-zinc-200 bg-white p-4 text-center\"><div class=\"text-sm font-semibold text-zinc-700\">1. L'IA lit tes fichiers localement</div><div class=\"text-xs text-zinc-500 mt-1\">Sélectionne les passages pertinents pour ta question. Te demande la validation pour les fichiers sensibles (selon ta configuration). Rien n'est uploadé en bloc.</div></div><div class=\"text-zinc-400\">↓</div><div class=\"w-full max-w-lg rounded-xl border border-amber-200 bg-amber-50 p-4 text-center\"><div class=\"text-sm font-semibold text-amber-700\">2. Les extraits sont envoyés au provider</div><div class=\"text-xs text-amber-600 mt-1\">Sous forme de tokens. La fenêtre de contexte = mémoire de travail temporaire du modèle.</div></div><div class=\"text-zinc-400\">↓</div><div class=\"w-full max-w-lg rounded-xl border border-emerald-200 bg-emerald-50 p-4 text-center\"><div class=\"text-sm font-semibold text-emerald-700\">3. La réponse revient, l'IA modifie tes fichiers</div><div class=\"text-xs text-emerald-600 mt-1\">Tes données restent sur ton ordinateur.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Seul ce qui est strictement utile à la requête en cours sort de ton ordinateur. Tu gardes le contrôle.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est aussi pour ça qu'on insiste sur <strong class=\"font-semibold text-foreground\">OpenRouter avec ZDR activé</strong> : ce qui est envoyé au provider n'est pas stocké, pas réutilisé pour de l'entraînement, pas indexé. Le provider voit ta requête le temps de répondre, puis l'oublie.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour les détails sur la confidentialité :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité →</a>.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-fichiers-qui-font-tourner-le-système\">Les fichiers qui font tourner le système</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas besoin de les gérer à la main, mais tu dois savoir qu'ils existent pour comprendre comment l'IA s'oriente dans ton workspace.</p>\n<div class=\"my-6 flex flex-col items-center\"><div class=\"w-full max-w-lg rounded-xl border-2 border-zinc-200 bg-zinc-50 px-5 py-5\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">Les fichiers clés</div><div class=\"space-y-4 text-sm font-mono text-zinc-600\"><div><div class=\"text-zinc-400 text-xs mb-1 font-sans font-semibold uppercase tracking-wide\">Instructions IA</div><div class=\"flex items-center gap-2\"><span class=\"text-blue-600\">AGENTS.md</span><span class=\"text-emerald-500 font-sans text-xs\">: identité de l'IA + règles globales (lu en premier)</span></div><div class=\"flex items-center gap-2\"><span class=\"text-blue-600\">Second Cerveau/AGENTS.md</span><span class=\"text-emerald-500 font-sans text-xs\">: règles spécifiques au vault (IPCRA, Life Phases)</span></div></div><div><div class=\"text-zinc-400 text-xs mb-1 font-sans font-semibold uppercase tracking-wide\">Configuration OpenCode</div><div class=\"flex items-center gap-2\"><span class=\"text-amber-600\">opencode.json</span><span class=\"text-emerald-500 font-sans text-xs\">: indique où chercher les skills (4 TOOLS/skills) et les MCP du projet</span></div></div><div><div class=\"text-zinc-400 text-xs mb-1 font-sans font-semibold uppercase tracking-wide\">Skills</div><div class=\"flex items-center gap-2\"><span class=\"text-purple-600\">Second Cerveau/4 TOOLS/skills/*</span><span class=\"text-emerald-500 font-sans text-xs\">: chaque skill est un dossier avec un SKILL.md</span></div></div><div><div class=\"text-zinc-400 text-xs mb-1 font-sans font-semibold uppercase tracking-wide\">Contexte personnel</div><div class=\"flex items-center gap-2\"><span class=\"text-rose-600\">Second Cerveau/2 CASQUETTES/Sur ma vie/Moi.md</span><span class=\"text-emerald-500 font-sans text-xs\">: qui tu es, style IA, valeurs</span></div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque skill (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/inbox-processor</code>...) est un simple fichier Markdown avec des instructions. Quand tu tapes le slash dans OpenCode, l'IA lit ce fichier et exécute. Tu peux créer tes propres skills avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/create-skill</code>.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-outils-connectés-mcp\">Les outils connectés (MCP)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Jusqu'ici, l'IA lit et modifie tes fichiers locaux. C'est déjà puissant. Mais elle peut aussi se connecter à des outils externes via le <strong class=\"font-semibold text-foreground\">MCP</strong> (Model Context Protocol), le « port USB universel » de l'IA.</p>\n<div class=\"my-6 flex flex-col items-center\"><div class=\"w-full max-w-lg\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-3 text-center mb-3\"><div class=\"text-sm font-bold text-blue-700\">OpenCode Desktop</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-6 py-2 text-center mb-3\"><div class=\"text-sm font-semibold text-zinc-600\">MCP : « ports USB » de l'IA</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"grid grid-cols-3 gap-2\"><div class=\"rounded-lg border border-emerald-200 bg-emerald-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-emerald-700\">Firecrawl</div><div class=\"text-[10px] text-emerald-500\">Web</div></div><div class=\"rounded-lg border border-amber-200 bg-amber-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-amber-700\">Browser MCP</div><div class=\"text-[10px] text-amber-500\">Navigation</div></div><div class=\"rounded-lg border border-rose-200 bg-rose-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-rose-700\">Fathom</div><div class=\"text-[10px] text-rose-500\">Réunions</div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sans MCP, l'IA répond à tes questions. Avec MCP, elle scrape le web, transcrit tes réunions, génère des images, cherche dans tout ton vault en une seconde.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">On installe ça cette semaine :</strong> <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../07-outils-ia/lessons/23-semaine-1-installer-outils-ia/semaine-1-installer-outils-ia.html\">Installer ses outils IA →</a>.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ce-que-tu-construis-semaine-par-semaine\">Ce que tu construis semaine par semaine</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu es en <strong class=\"font-semibold text-foreground\">semaine 1</strong>, les fondations. Tout ce qui vient après repose sur ce que tu poses maintenant.</p>\n<div class=\"my-6 rounded-xl border border-zinc-200 bg-white overflow-hidden\"><div class=\"grid grid-cols-1 divide-y divide-zinc-200\"><div class=\"p-4 flex items-start gap-4 bg-blue-50 border-l-4 border-blue-400\"><div class=\"shrink-0 w-9 h-9 rounded-full bg-blue-500 text-white flex items-center justify-center text-xs font-bold\">S1</div><div><div class=\"text-sm font-bold text-blue-800\">Fondations <span class=\"text-xs font-normal bg-blue-100 text-blue-600 px-2 py-0.5 rounded-full ml-2\">← tu es ici</span></div><div class=\"text-xs text-blue-700 mt-1\">Workspace installé, OpenCode Desktop, /initialisation lancé, rituels en place, premiers outils MCP connectés.</div></div></div><div class=\"p-4 flex items-start gap-4\"><div class=\"shrink-0 w-9 h-9 rounded-full bg-purple-100 text-purple-700 flex items-center justify-center text-xs font-bold\">S2</div><div><div class=\"text-sm font-bold text-zinc-800\">Mapper ses process</div><div class=\"text-xs text-zinc-500 mt-1\">Documenter tes process récurrents. Fiches process avec méthode, exemples, références. Framework Agent vs Automatisation.</div></div></div><div class=\"p-4 flex items-start gap-4\"><div class=\"shrink-0 w-9 h-9 rounded-full bg-amber-100 text-amber-700 flex items-center justify-center text-xs font-bold\">S3</div><div><div class=\"text-sm font-bold text-zinc-800\">Infrastructure et automatisations</div><div class=\"text-xs text-zinc-500 mt-1\">VPS personnel, n8n, automatisations qui tournent sans toi, accès mobile à ton système.</div></div></div><div class=\"p-4 flex items-start gap-4\"><div class=\"shrink-0 w-9 h-9 rounded-full bg-rose-100 text-rose-700 flex items-center justify-center text-xs font-bold\">S4</div><div><div class=\"text-sm font-bold text-zinc-800\">Hackathon</div><div class=\"text-xs text-zinc-500 mt-1\">3 jours pour lancer une offre, construire un produit, démarrer ton acquisition avec l'IA.</div></div></div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ce-que-tu-dois-faire-maintenant\">Ce que tu dois faire maintenant</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as la vue d'ensemble. Voici l'ordre exact pour cette semaine :</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">1. Lire les prérequis</strong> : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../02-prerequis/lessons/3-semaine-1-prerequis-bonnes-pratiques/semaine-1-prerequis-bonnes-pratiques.html\">Prérequis et bonnes pratiques →</a> (SuperWhisper, réflexe debug avec l'IA).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">2. Tout installer</strong> : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/4-semaine-1-installation-technique/semaine-1-installation-technique.html\">Installation technique →</a> (OpenCode Desktop, ChatGPT, OpenRouter ZDR, Obsidian, Obsidian Sync).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">3. Lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></strong> : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../04-initialisation/lessons/15-semaine-1-vault-perso/semaine-1-vault-perso.html\">Initialiser son vault →</a> (3-4h, fais ça ce soir ou ce week-end).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">4. Connecter tes outils</strong> : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../07-outils-ia/lessons/23-semaine-1-installer-outils-ia/semaine-1-installer-outils-ia.html\">Installer ses outils IA →</a> (Firecrawl, Browser MCP, Fathom).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">5. Pour aller plus loin :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/7-semaine-1-choisir-modele-ia/semaine-1-choisir-modele-ia.html\">Choisir son modèle IA →</a> : comparatif détaillé.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/12-semaine-1-claude-code-coffre/semaine-1-claude-code-coffre.html\">Configurer Claude Code en complément →</a> : si tu veux aussi utiliser Claude.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité →</a> : si tu as des données sensibles.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../06-second-cerveau/lessons/19-semaine-1-principes-second-cerveau/semaine-1-principes-second-cerveau.html\">Les principes du second cerveau →</a> : pour creuser IPCRA et le ruissellement.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../06-second-cerveau/lessons/21-semaine-1-weekly-review/semaine-1-weekly-review.html\">La Weekly Review →</a> : pour configurer ton rituel hebdo.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"https://prisme.one/plateforme/ia-juillet-2026/semaine-1-faq-live-1\">FAQ Semaine 1 →</a> : si tu bloques sur quoi que ce soit.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends l'équation : Qualité output = Contexte x Modèle x Outils — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends l'équation : Qualité output = Contexte x Modèle x Outils</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends les 3 couches : modèle, provider, interface, et qu'elles sont indépendantes — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends les 3 couches : modèle, provider, interface, et qu'elles sont indépendantes</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais la recommandation officielle du bootcamp : OpenCode Desktop + ChatGPT (20€/mois) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash sur OpenRouter — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais la recommandation officielle du bootcamp : OpenCode Desktop + ChatGPT (20€/mois) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash sur OpenRouter</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends pourquoi on ne recommande pas Claude par défaut (et que je peux quand même l'ajouter via le tuto dédié) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends pourquoi on ne recommande pas Claude par défaut (et que je peux quand même l'ajouter via le tuto dédié)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends IPCRA et la distinction Projet vs Casquette — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends IPCRA et la distinction Projet vs Casquette</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends les 4 principes du coffre : fichiers texte, IPCRA, contexte, rituels via skills — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends les 4 principes du coffre : fichiers texte, IPCRA, contexte, rituels via skills</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que les skills se trouvent dans Second Cerveau/4 TOOLS/skills/ — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que les skills se trouvent dans Second Cerveau/4 TOOLS/skills/</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends que par défaut mon coffre n'est pas uploadé en bloc : l'IA envoie seulement les extraits pertinents à chaque requête — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends que par défaut mon coffre n'est pas uploadé en bloc : l'IA envoie seulement les extraits pertinents à chaque requête</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais dans quel ordre faire les choses cette semaine — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais dans quel ordre faire les choses cette semaine</span></li></ul>",
      "content_markdown": "---\n\n> Lis cette leçon avant de toucher à quoi que ce soit. Elle te donne le cadre pour comprendre pourquoi on fait chaque étape. Sans elle, l'installation est une liste d'actions sans sens.\n\n---\n\n## Notre équation de base\n\nNotre objectif est simple : améliorer la qualité de l'output que tu obtiendras avec l'IA. Et pour ça, il y a une équation à garder en tête.\n\nQualité de l'output IA\n\n= Qualité du contexte × Qualité du modèle × Qualité des outils\n\nTrois facteurs. Trois leviers. C'est ce qu'on travaille pendant la formation.\n\nConcrètement, voici ce qu'on fait sur chacun des trois :\n\nContexte\n\nLe second cerveau\n\nUn coffre de fichiers texte qui contient tes projets, casquettes, vision, process. Plus des bases de données dynamiques et des skills personnalisés que tu construis au fil des semaines.\n\nModèle\n\nDevenir lettré\n\nComprendre les modèles existants, leurs forces, leurs limites. Apprendre à choisir le bon modèle pour la bonne tâche selon la complexité, la privacy, le coût.\n\nOutils\n\nDonner des super-pouvoirs\n\nConnecter l'IA aux bons outils : scraping web, contrôle du navigateur, transcription de réunions, automatisations. Pour qu'elle exécute, pas juste qu'elle réponde.\n\nMais avant d'aller plus loin, quelques rappels pour que tu aies une vue d'ensemble claire de ce qu'on va construire.\n\n---\n\n## Partie 1 : l'IA, ce qu'on utilise vraiment\n\nPour bien travailler avec l'IA, il faut comprendre une chose : **ce n'est pas un seul objet, c'est une pile de 3 couches indépendantes.** Changer une couche ne casse pas les autres. C'est ce qui rend le système résilient.\n\n### Les 3 couches\n\nCouche 3 : Interface + Contexte\n\nCe que tu utilises\n\nOpenCode Desktop, ChatGPT, Claude Code...\n\n+ ton coffre, tes skills, tes fichiers\n\nCouche 2 : Provider\n\nQui héberge le modèle\n\nOpenRouter, Synthetic AI, Anthropic, OpenAI, Fireworks, DeepInfra...\n\nDétermine le prix, la vitesse, la politique de confidentialité\n\nCouche 1 : Modèle\n\nLe « cerveau »\n\nDeepSeek V4, GLM 5.2, Claude, GPT 5.6, Gemini, Qwen...\n\nL'intelligence elle-même\n\nTu peux changer de modèle sans changer d'interface. Tu peux changer d'interface sans perdre ton coffre. Tu peux changer de provider pour le même modèle. **Ces 3 couches sont indépendantes.**\n\nLa conséquence pratique : tout ce qu'on construit dans ce bootcamp (ton coffre, tes skills, ton contexte) est complètement portable. Si demain tu changes d'interface ou de modèle, ça marche sans rien refaire.\n\nPour faire tes choix, on va remonter ces 3 couches de bas en haut. D'abord le modèle (le cerveau), puis on choisit le provider qui l'héberge (via la recommandation), enfin l'interface qui orchestre tout.\n\n### Quel modèle utiliser ?\n\n![Comparaison des modèles IA sur Artificial Analysis](/images/ia-mars-2026/artificial-analysis-homepage.png)\n\nSource : [artificialanalysis.ai](https://artificialanalysis.ai). Va comparer toi-même, c'est une bonne habitude.\n\nPremier constat important : aujourd'hui, **tous les modèles dits « high-end » se valent à peu près** sur les tâches du quotidien. GPT, Claude, DeepSeek, GLM, Gemini, Qwen : à 10 points près sur l'index d'intelligence, ils font globalement le même travail.\n\nLa vraie différence se joue ailleurs : **open source vs closed source**.\n\nOpen source\n\nDeepSeek, GLM, Qwen, Kimi, Mistral...\n\nTournent sur des serveurs avec de bonnes politiques de confidentialité (ZDR, certifications SOC2 / ISO). Beaucoup moins chers à l'usage.\n\nClosed source\n\nClaude (Anthropic), GPT (OpenAI)\n\nLégèrement meilleurs sur certaines tâches complexes. Mais propriétaires : tes données passent par leurs serveurs avec leurs politiques (rétention, modération). Chers à l'API.\n\nTu auras l'occasion d'en tester plusieurs pendant le bootcamp pour te rendre compte duquel tu préfères. Mais pour démarrer, voici notre recommandation actuelle.\n\n#### Notre recommandation officielle\n\nTrois modèles, trois usages\n\nDeepSeek V4 Flash\n\nvia OpenRouter\n\nTon modèle par défaut. Pour 80 % des tâches du quotidien. Privé (providers ZDR sur OpenRouter), rapide, ridiculement bon marché.\n\nChatGPT (abonnement 20 €/mois)\n\nvia OpenAI\n\nPour les tâches sans enjeu de privacy : présentations, sites web, brainstorming, contenu public. S'intègre directement dans OpenCode Desktop, donc pas de coût marginal à l'usage.\n\nGLM 5.2\n\nvia Synthetic AI\n\nPour les tâches complexes qui touchent à des données clients sensibles. Open source, fort sur le raisonnement long, privé. Dispo en abonnement via Synthetic AI (30 $/mois, ZDR), ou au token via OpenRouter ZDR.\n\n#### Le facteur prix\n\nLe point qui ne saute pas aux yeux mais qui change tout : la différence de coût entre les modèles closed source et open source est massive.\n\n| Modèle | Input ($/M tokens) | Output ($/M tokens) |\n| --- | --- | --- |\n| GPT 5.6 | $5 | $30 |\n| DeepSeek V4 Flash | $0,14 | $0,28 |\n\nDeepSeek V4 Flash est environ **100 fois moins cher** que GPT 5.6 en sortie. Et il fait déjà 80 % des tâches du quotidien de manière satisfaisante, en plus d'être privé (via providers ZDR). C'est un énorme avantage, ça vaut vraiment le coup de l'utiliser par défaut.\n\n#### Un mot sur le provider\n\nOpenRouter, c'est la couche 2 de notre stack. C'est un proxy qui route ta requête vers le bon provider (Fireworks, DeepInfra, Parasail...) selon la dispo du moment. Son gros avantage : tu peux **forcer le ZDR (zéro data retention) dans les paramètres**, et OpenRouter ne route alors que vers des providers qui ont signé cet engagement. Tes requêtes ne sont ni stockées, ni utilisées pour entraîner de nouveaux modèles. Une seule clé API, un seul crédit (10 € pour démarrer), tous les modèles open source disponibles.\n\nPour GLM 5.2 en usage privé régulier, on recommande plutôt un **abonnement Synthetic AI** (30 $/mois, ZDR) : des tokens ZDR sur GLM 5.2 servis rapidement, sans paiement au token. Tu gardes OpenRouter au token pour DeepSeek V4 Flash et pour tester d'autres modèles.\n\n#### Pourquoi pas Claude ?\n\nTu remarques que Claude n'est pas dans la recommandation. Deux raisons.\n\nD'abord, les modèles fermés sont tellement chers à l'API qu'ils deviennent quasiment inutilisables en paiement à la requête. Il faut passer par un abonnement pour rentabiliser.\n\nOr, **Anthropic a rendu son abonnement incompatible avec les interfaces ouvertes**. Il faut utiliser leur propre interface (Claude Code) pour profiter de l'abonnement Claude Pro / Max. On est contre ce choix : il enferme l'utilisateur dans un écosystème propriétaire.\n\nSi tu as quand même une affection particulière pour les modèles Claude (c'est un cas que ça arrive, les modèles ont des personnalités différentes), pas de souci. Il y a un tutoriel d'approfondissement dédié dans la formation.\n\n> Tu veux utiliser Claude : Configurer Claude Code en complément → : comment installer Claude Code à côté d'OpenCode et alterner selon la tâche.\n\nEncore une fois, ce qu'on construit dans ce bootcamp est portable : c'est un coffre de contexte et des skills. Tu peux changer d'interface ou de modèle demain sans rien refaire.\n\n### Quel outil installer ?\n\nMaintenant que tu sais quels modèles utiliser, il te faut une **interface** pour les ouvrir dans ton coffre. Notre objectif : être complètement multimodèle (passer librement de DeepSeek à ChatGPT à GLM selon la tâche).\n\nNotre recommandation unique pour ce bootcamp : **OpenCode Desktop**.\n\n![Capture d'écran d'OpenCode Desktop](/images/ia-mars-2026/opencode-desktop.png)\n\nOpenCode Desktop : l'app native multi-modèle qu'on utilise dans le bootcamp.\n\nC'est une application desktop open source qui permet de connecter tous les modèles que tu veux (via OpenRouter, OpenAI, Anthropic, etc.), avec une interface propre et des sessions persistantes. C'est ce qu'on utilise tout au long du bootcamp.\n\n> Pour l'installation pas à pas : Installation technique → : télécharger OpenCode Desktop, configurer OpenRouter avec ZDR, abonner ton compte ChatGPT.\n\n---\n\n## Partie 2 : le coffre, ce qu'on construit et pourquoi\n\nTu as probablement déjà utilisé ChatGPT. Tu lui poses une question, il répond. C'est utile. Mais ce n'est pas ce qu'on construit ici.\n\nChatGPT / interface web classique\n\n✗ Conversation isolée, sans mémoire\n\n✗ Ne connaît pas tes projets ni ton contexte\n\n✗ Aucun accès à tes fichiers\n\n✗ Réponses génériques pour tout le monde\n\n✗ Tu répètes le contexte à chaque session\n\nTon système IA personnel\n\n✓ Ouverte dans tes fichiers, pas dans un navigateur\n\n✓ Connaît tes projets, casquettes, phase de vie\n\n✓ Peut lire et modifier tes fichiers directement\n\n✓ Adapté à TA vie, TES priorités, TON style\n\n✓ **Le modèle change. Le système reste.**\n\n**Ce qu'on construit, concrètement :** un **workspace** sur ton ordinateur. À l'intérieur, ton coffre de second cerveau (un dossier Obsidian appelé `Second Cerveau/`), et à côté d'autres projets que tu pourras ajouter au fil du temps (un site, une app, un repo client...). Deux outils l'ouvrent : Obsidian pour le lire visuellement et naviguer dans tes notes, OpenCode Desktop pour que l'IA puisse le lire et le modifier.\n\nCe coffre est organisé selon **4 principes**. Comprends ces principes, et tu comprends tout.\n\n### Principe 1 : tout est un fichier texte\n\nTon coffre n'est pas une application. C'est un dossier de fichiers `.md` (Markdown) sur ton disque dur.\n\n```\nWORKSPACE/\n├── AGENTS.md              # Identité de l'IA + règles transverses\n├── opencode.json          # Config OpenCode (où chercher les skills)\n├── Second Cerveau/        # Vault Obsidian, ton second cerveau\n│   ├── AGENTS.md          # Règles spécifiques au vault (IPCRA, Life Phases)\n│   ├── 0 INBOX/\n│   ├── 1 PROJETS/\n│   ├── 2 CASQUETTES/\n│   ├── 3 RESSOURCES/\n│   ├── 4 TOOLS/           # Templates, process, skills (toutes tes commandes IA)\n│   ├── 5 ARCHIVE/\n│   └── _Import/\n└── [autres projets]/      # À ajouter plus tard (sites, apps, repos)\n```\n\nPourquoi c'est important : tes données t'appartiennent pour toujours. Si Obsidian disparaît, tu ouvres les fichiers avec TextEdit. Si OpenCode disparaît, tu prends un autre outil. **Rien n'est verrouillé dans une app propriétaire.**\n\nDeux portes d'entrée sur le même dossier : Obsidian pour lire et éditer visuellement tes notes, OpenCode Desktop pour que l'IA agisse dessus.\n\n### Principe 2 : IPCRA, une organisation par utilité\n\nLa plupart des systèmes de notes organisent par thème (« Marketing », « Finance », « Perso »). Le problème : quand tu crées une note, tu dois décider de sa nature conceptuelle, et c'est épuisant. IPCRA organise par **utilité** : « à quoi ça sert ? »\n\nTout arrive dans `0 INBOX`\n\nCapture rapide. Tri ensuite.\n\n« À quoi ça sert ? »\n\n1 PROJETS\n\nÇa a une fin\n\n« Lancer mon podcast »\n\n2 CASQUETTES\n\nC'est permanent\n\n« Entrepreneur »\n\n3 RESSOURCES\n\nC'est une référence\n\nArticles, guides\n\n5 ARCHIVE\n\nC'est terminé\n\nUn cinquième dossier complète l'organisation : `4 TOOLS/` contient tout ce qui sert d'**outillage** (templates, process documentés, skills IA). Tu n'y mets pas tes notes de travail, juste ce qui te sert à les produire.\n\nLa distinction clé : **Projet vs Casquette**.\n\n- **Projet** = a une fin. « Lancer mon podcast », « Déménager à Berlin ». Quand c'est fini : Archive.\n- **Casquette** = permanent, sans fin. « Entrepreneur », « Parent », « Créateur de contenu ». Tant que tu joues ce rôle, ça reste.\n\nCommence avec 3 à 7 casquettes larges. « Mon Entreprise » plutôt que « Marketing », « Finance », « RH » séparément. L'IA t'aidera à affiner plus tard.\n\n> Pour aller plus loin : Les principes du second cerveau → : IPCRA détaillé, wikilinks, ruissellement bottom-up.\n\n### Principe 3 : le contexte est la fondation de tout\n\nL'IA ne vaut rien sans contexte. Un modèle excellent avec un contexte vide donne des réponses génériques. Un modèle correct avec un contexte riche donne des réponses personnalisées.\n\nC'est pourquoi la première chose que tu vas faire, c'est remplir ton contexte via le skill `/initialisation`. L'IA te pose des questions sur 5 sections :\n\n01\n\nQui je suis\n\n02\n\nMa vision\n\n03\n\nCasquettes\n\n04\n\nPhase de vie\n\n05\n\nBusiness\n\nCompte **3 à 4 heures**. C'est un investissement, pas une configuration. C'est ce qui fait la différence entre une IA générique et ton assistante personnelle.\n\n> Pour préparer tes réponses : Initialiser son coffre avec /initialisation → : les 5 sections expliquées en détail, avec les vidéos sur la vision et les phases de vie.\n\n### Principe 4 : les rituels font vivre le système\n\nUn coffre sans rituels devient une archive morte. Pour le maintenir en vie, tu utilises des **skills** : des commandes que tu lances avec un slash dans OpenCode (`/initialisation`, `/done`, `/weekly-review`, etc.). Chaque skill est un simple fichier Markdown rangé dans `Second Cerveau/4 TOOLS/skills/`. Tu peux les modifier, en créer de nouveaux, les partager.\n\nLe concept clé derrière les rituels : le **ruissellement**. Quand tu termines une session, l'IA propage automatiquement l'information vers les bons endroits du coffre, à 3 niveaux.\n\nAction de session\n\nÉcrire, coder, décider, capturer une idée...\n\n▼ Niveau 2 : automatique\n\nDaily note de la phase active\n\nLe log de la session\n\n▼ Niveau 3 : automatique\n\nNotes de contexte du projet ou de la casquette\n\nLes décisions et faits importants remontent\n\n▼ Niveau 4 : avec validation\n\nMoi.md ou intention de phase\n\nSi changement majeur, avec ton accord explicite\n\nTu ne gères rien manuellement. Le système s'auto-met à jour à travers les skills.\n\n> Pour configurer ton rituel hebdo : La Weekly Review → : organisation par énergie, carry-forward.\n\n---\n\n## Partie 3 : les outils, comment tout se connecte\n\nTu as maintenant la pile IA (Partie 1) et la logique du coffre (Partie 2). La Partie 3 répond à une question pratique : comment tout ça fonctionne techniquement ?\n\n### Comment l'IA « voit » ton coffre\n\nQuand tu ouvres OpenCode Desktop sur le dossier de ton **workspace**, deux choses se passent :\n\n1. L'IA voit l'arborescence complète de ce dossier\n2. Elle lit le fichier d'instructions à la racine (`AGENTS.md`) pour comprendre qui elle est, comment tu travailles, et ce qu'elle doit faire\n\nC'est pour ça que **tu dois toujours ouvrir OpenCode sur ton workspace**, pas ailleurs. Si tu l'ouvres depuis ton Bureau, elle ne voit pas ton coffre et n'a aucun contexte.\n\n#### La privacy en pratique\n\nImportant à comprendre : **par défaut, ton coffre n'est pas uploadé sur les serveurs du provider.** L'IA ne « télécharge » pas tout en bloc. Voici le flux exact à chaque requête :\n\n1. L'IA lit tes fichiers localement\n\nSélectionne les passages pertinents pour ta question. Te demande la validation pour les fichiers sensibles (selon ta configuration). Rien n'est uploadé en bloc.\n\n↓\n\n2. Les extraits sont envoyés au provider\n\nSous forme de tokens. La fenêtre de contexte = mémoire de travail temporaire du modèle.\n\n↓\n\n3. La réponse revient, l'IA modifie tes fichiers\n\nTes données restent sur ton ordinateur.\n\nSeul ce qui est strictement utile à la requête en cours sort de ton ordinateur. Tu gardes le contrôle.\n\nC'est aussi pour ça qu'on insiste sur **OpenRouter avec ZDR activé** : ce qui est envoyé au provider n'est pas stocké, pas réutilisé pour de l'entraînement, pas indexé. Le provider voit ta requête le temps de répondre, puis l'oublie.\n\n> Pour les détails sur la confidentialité : Zoom sur la sécurité →.\n\n### Les fichiers qui font tourner le système\n\nTu n'as pas besoin de les gérer à la main, mais tu dois savoir qu'ils existent pour comprendre comment l'IA s'oriente dans ton workspace.\n\nLes fichiers clés\n\nInstructions IA\n\nAGENTS.md: identité de l'IA + règles globales (lu en premier)\n\nSecond Cerveau/AGENTS.md: règles spécifiques au vault (IPCRA, Life Phases)\n\nConfiguration OpenCode\n\nopencode.json: indique où chercher les skills (4 TOOLS/skills) et les MCP du projet\n\nSkills\n\nSecond Cerveau/4 TOOLS/skills/*: chaque skill est un dossier avec un SKILL.md\n\nContexte personnel\n\nSecond Cerveau/2 CASQUETTES/Sur ma vie/Moi.md: qui tu es, style IA, valeurs\n\nChaque skill (`/initialisation`, `/done`, `/weekly-review`, `/inbox-processor`...) est un simple fichier Markdown avec des instructions. Quand tu tapes le slash dans OpenCode, l'IA lit ce fichier et exécute. Tu peux créer tes propres skills avec `/create-skill`.\n\n### Les outils connectés (MCP)\n\nJusqu'ici, l'IA lit et modifie tes fichiers locaux. C'est déjà puissant. Mais elle peut aussi se connecter à des outils externes via le **MCP** (Model Context Protocol), le « port USB universel » de l'IA.\n\nOpenCode Desktop\n\nMCP : « ports USB » de l'IA\n\nFirecrawl\n\nWeb\n\nBrowser MCP\n\nNavigation\n\nFathom\n\nRéunions\n\nSans MCP, l'IA répond à tes questions. Avec MCP, elle scrape le web, transcrit tes réunions, génère des images, cherche dans tout ton vault en une seconde.\n\n> On installe ça cette semaine : Installer ses outils IA →.\n\n### Ce que tu construis semaine par semaine\n\nTu es en **semaine 1**, les fondations. Tout ce qui vient après repose sur ce que tu poses maintenant.\n\nS1\n\nFondations ← tu es ici\n\nWorkspace installé, OpenCode Desktop, /initialisation lancé, rituels en place, premiers outils MCP connectés.\n\nS2\n\nMapper ses process\n\nDocumenter tes process récurrents. Fiches process avec méthode, exemples, références. Framework Agent vs Automatisation.\n\nS3\n\nInfrastructure et automatisations\n\nVPS personnel, n8n, automatisations qui tournent sans toi, accès mobile à ton système.\n\nS4\n\nHackathon\n\n3 jours pour lancer une offre, construire un produit, démarrer ton acquisition avec l'IA.\n\n---\n\n## Ce que tu dois faire maintenant\n\nTu as la vue d'ensemble. Voici l'ordre exact pour cette semaine :\n\n**1. Lire les prérequis** : [Prérequis et bonnes pratiques →](/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques) (SuperWhisper, réflexe debug avec l'IA).\n\n**2. Tout installer** : [Installation technique →](/plateforme/ia-juillet-2026/semaine-1-installation-technique) (OpenCode Desktop, ChatGPT, OpenRouter ZDR, Obsidian, Obsidian Sync).\n\n**3. Lancer `/initialisation`** : [Initialiser son vault →](/plateforme/ia-juillet-2026/semaine-1-vault-perso) (3-4h, fais ça ce soir ou ce week-end).\n\n**4. Connecter tes outils** : [Installer ses outils IA →](/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia) (Firecrawl, Browser MCP, Fathom).\n\n**5. Pour aller plus loin :**\n\n- [Choisir son modèle IA →](/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia) : comparatif détaillé.\n- [Configurer Claude Code en complément →](/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre) : si tu veux aussi utiliser Claude.\n- [Zoom sur la sécurité →](/plateforme/ia-juillet-2026/semaine-1-securite) : si tu as des données sensibles.\n- [Les principes du second cerveau →](/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau) : pour creuser IPCRA et le ruissellement.\n- [La Weekly Review →](/plateforme/ia-juillet-2026/semaine-1-weekly-review) : pour configurer ton rituel hebdo.\n- [FAQ Semaine 1 →](/plateforme/ia-juillet-2026/semaine-1-faq-live-1) : si tu bloques sur quoi que ce soit.\n\n---\n\n- Je comprends l'équation : Qualité output = Contexte x Modèle x Outils\n- Je comprends les 3 couches : modèle, provider, interface, et qu'elles sont indépendantes\n- Je connais la recommandation officielle du bootcamp : OpenCode Desktop + ChatGPT (20€/mois) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash sur OpenRouter\n- Je comprends pourquoi on ne recommande pas Claude par défaut (et que je peux quand même l'ajouter via le tuto dédié)\n- Je comprends IPCRA et la distinction Projet vs Casquette\n- Je comprends les 4 principes du coffre : fichiers texte, IPCRA, contexte, rituels via skills\n- Je sais que les skills se trouvent dans Second Cerveau/4 TOOLS/skills/\n- Je comprends que par défaut mon coffre n'est pas uploadé en bloc : l'IA envoie seulement les extraits pertinents à chaque requête\n- Je sais dans quel ordre faire les choses cette semaine",
      "assets": [
        {
          "alt": "Comparaison des modèles IA sur Artificial Analysis",
          "original_url": "https://prisme.one/images/ia-mars-2026/artificial-analysis-homepage.png",
          "path": "assets/01-comparaison-des-modeles-ia-sur-artificial-analysis.png",
          "bytes": 162666,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Capture d'écran d'OpenCode Desktop",
          "original_url": "https://prisme.one/images/ia-mars-2026/opencode-desktop.png",
          "path": "assets/02-capture-d-ecran-d-opencode-desktop.png",
          "bytes": 1167837,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "artificialanalysis.ai",
          "url": "https://artificialanalysis.ai/"
        },
        {
          "text": "Configurer Claude Code en complément →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre"
        },
        {
          "text": "Installation technique →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installation-technique"
        },
        {
          "text": "Les principes du second cerveau →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau"
        },
        {
          "text": "Initialiser son coffre avec /initialisation →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-vault-perso"
        },
        {
          "text": "La Weekly Review →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-weekly-review"
        },
        {
          "text": "Zoom sur la sécurité →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "Installer ses outils IA →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia"
        },
        {
          "text": "Prérequis et bonnes pratiques →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques"
        },
        {
          "text": "Installation technique →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installation-technique"
        },
        {
          "text": "Initialiser son vault →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-vault-perso"
        },
        {
          "text": "Installer ses outils IA →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia"
        },
        {
          "text": "Choisir son modèle IA →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia"
        },
        {
          "text": "Configurer Claude Code en complément →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre"
        },
        {
          "text": "Zoom sur la sécurité →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "Les principes du second cerveau →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau"
        },
        {
          "text": "La Weekly Review →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-weekly-review"
        },
        {
          "text": "FAQ Semaine 1 →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-faq-live-1"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/6f6629766b3d4c239b1202daf93873fe",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Architecture du système Prisme One AI",
          "title_source": "iframe-snapshot",
          "video_id": "6f6629766b3d4c239b1202daf93873fe",
          "watch_url": "https://www.loom.com/share/6f6629766b3d4c239b1202daf93873fe"
        }
      ],
      "captured_at": "2026-08-03T10:04:43.701Z",
      "counts": {
        "code_blocks": 18,
        "headings": 21,
        "iframes": 1,
        "images": 2,
        "links": 18,
        "text_chars": 18249
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "02-semaine-1-structure-couts",
      "order": 2,
      "kind": "subsection",
      "section": "01-anatomie",
      "title": "La structure de coûts de ton système IA",
      "slug": "semaine-1-structure-couts",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-structure-couts",
      "summary": "Tous les postes de coût de ton système (tokens IA, dictée, outils, serveur, Obsidian Sync) et comment les maîtriser : quels abonnements prendre, comment router tes tâches, et 3 scénarios chiffrés selon ton usage.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-structure-de-coûts-de-ton-système-ia\">La structure de coûts de ton système IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la question qui revient le plus souvent, et c'est le piège n°1 de la promo précédente : des coûts IA non maîtrisés, des factures qui explosent d'un mois sur l'autre. Cette leçon existe pour que ça ne t'arrive pas.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La bonne nouvelle : ton système ne coûte pas un prix fixe. Il coûte ce que <strong class=\"font-semibold text-foreground\">ton</strong> usage décide. Et une fois que tu connais chaque poste, tu pilotes ta facture au lieu de la subir.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ce-qui-fait-varier-ta-facture\">Ce qui fait varier ta facture</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton coût mensuel dépend de 4 facteurs, tous liés à toi :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-500 mb-1\">Facteur 1</div><div class=\"text-base font-bold text-sky-800 mb-2\">Ton intensité</div><div class=\"text-sm text-sky-700/80\">Combien tu consommes. Quelques requêtes par jour ou une IA qui tourne en continu, ce n'est pas la même facture.</div></div><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-500 mb-1\">Facteur 2</div><div class=\"text-base font-bold text-sky-800 mb-2\">La complexité de tes tâches</div><div class=\"text-sm text-sky-700/80\">Une tâche lourde (long contexte, raisonnement) mange bien plus de tokens qu'une reformulation rapide.</div></div><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-500 mb-1\">Facteur 3</div><div class=\"text-base font-bold text-sky-800 mb-2\">L'intelligence dont tu as besoin</div><div class=\"text-sm text-sky-700/80\">Un modèle puissant coûte plus cher qu'un modèle léger. Tout l'enjeu est de ne le sortir que quand la tâche l'exige.</div></div><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-500 mb-1\">Facteur 4</div><div class=\"text-base font-bold text-sky-800 mb-2\">Ton niveau de vie privée requis</div><div class=\"text-sm text-sky-700/80\">Plus tu as besoin de confidentialité (tokens privés, ZDR), plus tu t'orientes vers des abonnements dédiés.</div></div></div>\n<div class=\"my-6 rounded-2xl border-2 border-amber-300 bg-amber-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Le principe qui gouverne tout</div><div class=\"text-lg font-bold text-amber-900 mb-2\">Ne prends un outil QUE s'il t'est utile</div><p class=\"text-sm text-amber-900/80\">Chaque ligne d'abonnement ci-dessous est optionnelle par défaut. Tu ne l'ajoutes que si un usage réel le justifie. Répète-toi cette phrase à chaque fois que tu es tenté de cliquer sur \"s'abonner\". C'est ta meilleure protection contre la facture qui gonfle.</p></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"1-les-tokens-ia-le-poste-principal\">1. Les tokens IA (le poste principal)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le gros morceau. Tout ce que ton IA lit et écrit se paie en tokens. <strong class=\"font-semibold text-foreground\">L'objectif : trouver des abonnements qui t'évitent de payer l'IA à la consommation</strong>, parce que la consommation, c'est ce qui explose sans prévenir.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-reco-de-base-deux-abonnements-complémentaires\">La reco de base : deux abonnements complémentaires</h3>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-500 mb-1\">Tâches performantes, non privées</div><div class=\"text-base font-bold text-rose-800 mb-2\">Abonnement ChatGPT</div><div class=\"text-sm text-rose-700/80\">20 €/mois (Plus), ou à partir de 100 €/mois (Pro) selon ton usage. Pour tout ce qui demande de la performance et qui n'est pas confidentiel.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Tout ce qui est confidentiel</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Abonnement Synthetic AI</div><div class=\"text-sm text-emerald-700/80\">30 $/mois, modèle GLM 5.2, tokens <strong>PRIVÉS (ZDR)</strong>. Pour tout ce qui touche à des données sensibles. <a href=\"https://synthetic.new/?referral=jhBi88o8juvemeR\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">synthetic.new</a></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avec ces deux abonnements bien utilisés, ton poste tokens tient dans une fourchette prévisible : <strong class=\"font-semibold text-foreground\">entre 20 €/mois (ChatGPT seul) et 150 à 200 $/mois</strong> selon ta consommation. Pas de mauvaise surprise.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-des-abonnements-plutôt-que-la-conso\">Pourquoi des abonnements plutôt que la conso</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">En ce moment, le marché est dans une phase où les abonnements te donnent <strong class=\"font-semibold text-foreground\">beaucoup plus de tokens</strong> que si tu les payais à la consommation. Autant en profiter.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Synthetic</strong> est excellent pour ça : tu paies un forfait fixe et tu obtiens des tokens privés (ZDR) en quantité, pour à peu près le prix d'un ChatGPT.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">ChatGPT</strong> est top parce qu'il est utilisable dans <strong class=\"font-semibold text-foreground\">Codex</strong> (la meilleure boucle agentique du moment) ET dans <strong class=\"font-semibold text-foreground\">OpenCode</strong> (si tu veux garder une seule interface pour tout).</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"bien-router-le-nerf-de-la-guerre\">Bien router : le nerf de la guerre</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Router, c'est envoyer chaque tâche vers le bon modèle : <strong class=\"font-semibold text-foreground\">un modèle puissant seulement si la tâche l'exige, sinon un modèle moins cher.</strong> C'est le geste qui fait la différence entre une facture de 20 $ et une facture de 200 $ pour le même travail.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu paies au token via <strong class=\"font-semibold text-foreground\">OpenRouter</strong>, applique deux règles :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Prends les <strong class=\"font-semibold text-foreground\">modèles les moins chers</strong> pour les tâches les moins complexes.</li>\n<li class=\"leading-7\">Réserve les <strong class=\"font-semibold text-foreground\">modèles chers</strong> aux abonnements (pas à la conso au token).</li>\n<li class=\"leading-7\">Diminue la place d'OpenRouter au profit de <strong class=\"font-semibold text-foreground\">Synthetic</strong> dès que tu peux : tu passes d'un coût variable à un forfait maîtrisé.</li>\n</ul>\n<div class=\"my-6 rounded-2xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Le défaut open source pas cher</div><p class=\"text-sm text-zinc-600\">Quand tu paies au token via OpenRouter, <strong>DeepSeek V4 Flash</strong> reste ton modèle par défaut : très bon marché, ZDR, et il couvre l'immense majorité des tâches courantes.</p></div>\n<div class=\"my-6 rounded-2xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Note sur Claude</div><p class=\"text-sm text-zinc-600\">Claude ne se connecte pas via abonnement dans OpenCode : uniquement via le CLI Claude Code. Pas grave, ça ne change rien à ta structure de coûts, c'est juste bon à savoir.</p></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour le détail du choix des modèles, va voir <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/7-semaine-1-choisir-modele-ia/semaine-1-choisir-modele-ia.html\">Choisir son modèle IA</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"2-la-dictée-vocale-voice-to-text\">2. La dictée vocale (voice-to-text)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Parler à ton IA au lieu de tout taper change ton rythme de travail. Et ça peut coûter <strong class=\"font-semibold text-foreground\">0 €</strong>.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Gratuit :</strong> Murmure (open source, ZDR) ou d'autres logiciels gratuits font très bien le job.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Reco :</strong> SuperWhisper. Pro à 8,49 $/mois, ou 84,99 $/an, ou Lifetime 249,99 $ une seule fois.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Alternative :</strong> Wispr Flow (plan gratuit + environ 12 à 15 $/mois).</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est <strong class=\"font-semibold text-foreground\">optionnel mais fortement recommandé</strong> : avoir un bon outil pour parler à l'IA fait vraiment gagner du temps au quotidien. Détails côté setup dans <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../02-prerequis/lessons/3-semaine-1-prerequis-bonnes-pratiques/semaine-1-prerequis-bonnes-pratiques.html\">Prérequis et bonnes pratiques</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"3-les-autres-abonnements-outils-selon-tes-process\">3. Les autres abonnements outils (selon tes process)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ceux-là, tu ne les prends <strong class=\"font-semibold text-foreground\">que si un process précis en a besoin</strong>. Sinon tu les laisses de côté.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Recherche web :</strong> Firecrawl (gratuit jusqu'à 1000 crédits/mois, puis environ 16 à 19 $/mois) ou Apify (gratuit avec environ 5 $ de crédit/mois, Starter à 29 $/mois). Tu as des crédits gratuits pour démarrer, donc pas besoin de payer au début.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Le reste :</strong> uniquement si un workflow précis le réclame. Pas d'abonnement \"au cas où\".</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"4-le-serveur-semaine-3\">4. Le serveur (semaine 3)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le serveur arrive en semaine 3. Tu ne le prends que si tu veux <strong class=\"font-semibold text-foreground\">héberger ton site, auto-héberger tes outils et économiser</strong> dessus.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">VPS :</strong> environ 5 à 10 €/mois (par exemple Hetzner CX22, autour de 5,5 € HT).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Deux options de gestion :</strong> tu le gères toi-même, OU tu prends <strong class=\"font-semibold text-foreground\">Cloudron</strong> qui le manage pour toi (+15 €/mois).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Plafond :</strong> jusqu'à environ 25 €/mois max, tout compris.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Détails dans <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"https://prisme.one/plateforme/ia-juillet-2026/semaine-3-serveur-ia\">Ton serveur IA</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"5-obsidian-sync\">5. Obsidian Sync</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Vraiment recommandé. Tu pourrais bricoler avec Google Drive, mais c'est galère et source de conflits. Sync règle le problème proprement.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Standard :</strong> 4 $/mois.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Plus :</strong> 8 $/mois, selon tes besoins.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"trois-scénarios-chiffrés\">Trois scénarios chiffrés</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voici trois profils types, poste par poste, pour te donner un ordre de grandeur concret. Les montants mélangent USD et EUR (les outils sont facturés dans leur devise d'origine), et <strong class=\"font-semibold text-foreground\">les prix évoluent</strong> : vérifie toujours au moment où tu t'abonnes.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"scénario-a-petit-utilisateur-perso-léger\">Scénario A : petit utilisateur (perso, léger)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Usage personnel, quelques tâches par jour, rien de confidentiel de niveau entreprise.</p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Poste</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Prix</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Optionnel ?</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">ChatGPT Plus</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">20 €/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (socle)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Obsidian Sync (Standard)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">4 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (recommandé)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">SuperWhisper (Pro)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">8,49 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Total</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">~24 à 32 $/mois</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"></td></tr></tbody></table></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"scénario-b-utilisateur-boîte-intensif\">Scénario B : utilisateur boîte / intensif</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Usage pro quotidien, données clients à protéger, dictée vocale au quotidien, un serveur pour auto-héberger.</p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Poste</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Prix</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Optionnel ?</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">ChatGPT Plus</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">20 €/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (socle)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Synthetic AI (GLM 5.2, ZDR)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">30 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (données privées)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Obsidian Sync (Plus)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">8 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (recommandé)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">SuperWhisper (Pro)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">8,49 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Serveur (VPS)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~10 €/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Total</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">~75 à 90 $/mois</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"></td></tr></tbody></table></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"scénario-c-gros-utilisateur-power\">Scénario C : gros utilisateur / power</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Usage intensif, IA en mode agent une bonne partie de la journée, recherche web automatisée, serveur managé.</p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Poste</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Prix</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Optionnel ?</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">ChatGPT Pro</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">100 €/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (socle)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Synthetic AI (GLM 5.2, ZDR)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">30 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (données privées)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Obsidian Sync (Plus)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">8 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non (recommandé)</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">SuperWhisper</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">8,49 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Firecrawl</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">19 $/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Serveur + Cloudron</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~25 €/mois</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Total</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">~180 à 200 $/mois</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"></td></tr></tbody></table></div>\n<div class=\"my-6 rounded-2xl border-2 border-amber-300 bg-amber-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">À retenir</div><p class=\"text-sm text-amber-900/80\">Le passage d'un scénario à l'autre ne se fait pas par plaisir : il se fait quand ton usage réel le justifie. Beaucoup de gens vivent très bien en scénario A pendant des mois. Ne monte de palier que quand tu sens la limite, pas avant.</p></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pour-finir\">Pour finir</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Retiens une seule chose : <strong class=\"font-semibold text-foreground\">ne prends que ce qui t'est utile.</strong> Chaque poste optionnel reste optionnel tant qu'un usage réel ne le rend pas indispensable. C'est comme ça que tu gardes une facture nette et prévisible au lieu de la voir gonfler.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour aller plus loin sur chaque brique :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/7-semaine-1-choisir-modele-ia/semaine-1-choisir-modele-ia.html\">Choisir son modèle IA</a> : bien router chaque tâche vers le bon modèle.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/5-semaine-1-opencode/semaine-1-opencode.html\">Comment utiliser OpenCode Desktop</a> : ton interface unique.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../07-outils-ia/lessons/23-semaine-1-installer-outils-ia/semaine-1-installer-outils-ia.html\">Installer tes outils IA</a> : le setup complet.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"https://prisme.one/plateforme/ia-juillet-2026/semaine-3-serveur-ia\">Ton serveur IA</a> : VPS, Cloudron, auto-hébergement.</li>\n<li class=\"leading-7\"><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../02-prerequis/lessons/3-semaine-1-prerequis-bonnes-pratiques/semaine-1-prerequis-bonnes-pratiques.html\">Prérequis et bonnes pratiques</a> : dont l'installation de SuperWhisper.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi mes abonnements selon mon usage réel — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi mes abonnements selon mon usage réel</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais router chaque tâche vers le bon modèle (puissant seulement si nécessaire) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais router chaque tâche vers le bon modèle (puissant seulement si nécessaire)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai séparé mes tâches performantes (ChatGPT) et confidentielles (Synthetic, ZDR) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai séparé mes tâches performantes (ChatGPT) et confidentielles (Synthetic, ZDR)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je ne paie que les outils qui me sont utiles — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je ne paie que les outils qui me sont utiles</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai identifié dans quel scénario (A, B ou C) je me situe — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai identifié dans quel scénario (A, B ou C) je me situe</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai un ordre de grandeur clair de mon coût mensuel — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai un ordre de grandeur clair de mon coût mensuel</span></li></ul>",
      "content_markdown": "## La structure de coûts de ton système IA\n\nC'est la question qui revient le plus souvent, et c'est le piège n°1 de la promo précédente : des coûts IA non maîtrisés, des factures qui explosent d'un mois sur l'autre. Cette leçon existe pour que ça ne t'arrive pas.\n\nLa bonne nouvelle : ton système ne coûte pas un prix fixe. Il coûte ce que **ton** usage décide. Et une fois que tu connais chaque poste, tu pilotes ta facture au lieu de la subir.\n\n### Ce qui fait varier ta facture\n\nTon coût mensuel dépend de 4 facteurs, tous liés à toi :\n\nFacteur 1\n\nTon intensité\n\nCombien tu consommes. Quelques requêtes par jour ou une IA qui tourne en continu, ce n'est pas la même facture.\n\nFacteur 2\n\nLa complexité de tes tâches\n\nUne tâche lourde (long contexte, raisonnement) mange bien plus de tokens qu'une reformulation rapide.\n\nFacteur 3\n\nL'intelligence dont tu as besoin\n\nUn modèle puissant coûte plus cher qu'un modèle léger. Tout l'enjeu est de ne le sortir que quand la tâche l'exige.\n\nFacteur 4\n\nTon niveau de vie privée requis\n\nPlus tu as besoin de confidentialité (tokens privés, ZDR), plus tu t'orientes vers des abonnements dédiés.\n\nLe principe qui gouverne tout\n\nNe prends un outil QUE s'il t'est utile\n\nChaque ligne d'abonnement ci-dessous est optionnelle par défaut. Tu ne l'ajoutes que si un usage réel le justifie. Répète-toi cette phrase à chaque fois que tu es tenté de cliquer sur \"s'abonner\". C'est ta meilleure protection contre la facture qui gonfle.\n\n---\n\n## 1. Les tokens IA (le poste principal)\n\nC'est le gros morceau. Tout ce que ton IA lit et écrit se paie en tokens. **L'objectif : trouver des abonnements qui t'évitent de payer l'IA à la consommation**, parce que la consommation, c'est ce qui explose sans prévenir.\n\n### La reco de base : deux abonnements complémentaires\n\nTâches performantes, non privées\n\nAbonnement ChatGPT\n\n20 €/mois (Plus), ou à partir de 100 €/mois (Pro) selon ton usage. Pour tout ce qui demande de la performance et qui n'est pas confidentiel.\n\nTout ce qui est confidentiel\n\nAbonnement Synthetic AI\n\n30 $/mois, modèle GLM 5.2, tokens **PRIVÉS (ZDR)**. Pour tout ce qui touche à des données sensibles. [synthetic.new](https://synthetic.new/?referral=jhBi88o8juvemeR)\n\nAvec ces deux abonnements bien utilisés, ton poste tokens tient dans une fourchette prévisible : **entre 20 €/mois (ChatGPT seul) et 150 à 200 $/mois** selon ta consommation. Pas de mauvaise surprise.\n\n### Pourquoi des abonnements plutôt que la conso\n\nEn ce moment, le marché est dans une phase où les abonnements te donnent **beaucoup plus de tokens** que si tu les payais à la consommation. Autant en profiter.\n\n- **Synthetic** est excellent pour ça : tu paies un forfait fixe et tu obtiens des tokens privés (ZDR) en quantité, pour à peu près le prix d'un ChatGPT.\n- **ChatGPT** est top parce qu'il est utilisable dans **Codex** (la meilleure boucle agentique du moment) ET dans **OpenCode** (si tu veux garder une seule interface pour tout).\n\n### Bien router : le nerf de la guerre\n\nRouter, c'est envoyer chaque tâche vers le bon modèle : **un modèle puissant seulement si la tâche l'exige, sinon un modèle moins cher.** C'est le geste qui fait la différence entre une facture de 20 $ et une facture de 200 $ pour le même travail.\n\nSi tu paies au token via **OpenRouter**, applique deux règles :\n\n- Prends les **modèles les moins chers** pour les tâches les moins complexes.\n- Réserve les **modèles chers** aux abonnements (pas à la conso au token).\n- Diminue la place d'OpenRouter au profit de **Synthetic** dès que tu peux : tu passes d'un coût variable à un forfait maîtrisé.\n\nLe défaut open source pas cher\n\nQuand tu paies au token via OpenRouter, **DeepSeek V4 Flash** reste ton modèle par défaut : très bon marché, ZDR, et il couvre l'immense majorité des tâches courantes.\n\nNote sur Claude\n\nClaude ne se connecte pas via abonnement dans OpenCode : uniquement via le CLI Claude Code. Pas grave, ça ne change rien à ta structure de coûts, c'est juste bon à savoir.\n\nPour le détail du choix des modèles, va voir [Choisir son modèle IA](/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia).\n\n---\n\n## 2. La dictée vocale (voice-to-text)\n\nParler à ton IA au lieu de tout taper change ton rythme de travail. Et ça peut coûter **0 €**.\n\n- **Gratuit :** Murmure (open source, ZDR) ou d'autres logiciels gratuits font très bien le job.\n- **Reco :** SuperWhisper. Pro à 8,49 $/mois, ou 84,99 $/an, ou Lifetime 249,99 $ une seule fois.\n- **Alternative :** Wispr Flow (plan gratuit + environ 12 à 15 $/mois).\n\nC'est **optionnel mais fortement recommandé** : avoir un bon outil pour parler à l'IA fait vraiment gagner du temps au quotidien. Détails côté setup dans [Prérequis et bonnes pratiques](/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques).\n\n---\n\n## 3. Les autres abonnements outils (selon tes process)\n\nCeux-là, tu ne les prends **que si un process précis en a besoin**. Sinon tu les laisses de côté.\n\n- **Recherche web :** Firecrawl (gratuit jusqu'à 1000 crédits/mois, puis environ 16 à 19 $/mois) ou Apify (gratuit avec environ 5 $ de crédit/mois, Starter à 29 $/mois). Tu as des crédits gratuits pour démarrer, donc pas besoin de payer au début.\n- **Le reste :** uniquement si un workflow précis le réclame. Pas d'abonnement \"au cas où\".\n\n---\n\n## 4. Le serveur (semaine 3)\n\nLe serveur arrive en semaine 3. Tu ne le prends que si tu veux **héberger ton site, auto-héberger tes outils et économiser** dessus.\n\n- **VPS :** environ 5 à 10 €/mois (par exemple Hetzner CX22, autour de 5,5 € HT).\n- **Deux options de gestion :** tu le gères toi-même, OU tu prends **Cloudron** qui le manage pour toi (+15 €/mois).\n- **Plafond :** jusqu'à environ 25 €/mois max, tout compris.\n\nDétails dans [Ton serveur IA](/plateforme/ia-juillet-2026/semaine-3-serveur-ia).\n\n---\n\n## 5. Obsidian Sync\n\nVraiment recommandé. Tu pourrais bricoler avec Google Drive, mais c'est galère et source de conflits. Sync règle le problème proprement.\n\n- **Standard :** 4 $/mois.\n- **Plus :** 8 $/mois, selon tes besoins.\n\n---\n\n## Trois scénarios chiffrés\n\nVoici trois profils types, poste par poste, pour te donner un ordre de grandeur concret. Les montants mélangent USD et EUR (les outils sont facturés dans leur devise d'origine), et **les prix évoluent** : vérifie toujours au moment où tu t'abonnes.\n\n### Scénario A : petit utilisateur (perso, léger)\n\nUsage personnel, quelques tâches par jour, rien de confidentiel de niveau entreprise.\n\n| Poste | Prix | Optionnel ? |\n| --- | --- | --- |\n| ChatGPT Plus | 20 €/mois | Non (socle) |\n| Obsidian Sync (Standard) | 4 $/mois | Non (recommandé) |\n| SuperWhisper (Pro) | 8,49 $/mois | Oui |\n| Total | ~24 à 32 $/mois |  |\n\n### Scénario B : utilisateur boîte / intensif\n\nUsage pro quotidien, données clients à protéger, dictée vocale au quotidien, un serveur pour auto-héberger.\n\n| Poste | Prix | Optionnel ? |\n| --- | --- | --- |\n| ChatGPT Plus | 20 €/mois | Non (socle) |\n| Synthetic AI (GLM 5.2, ZDR) | 30 $/mois | Non (données privées) |\n| Obsidian Sync (Plus) | 8 $/mois | Non (recommandé) |\n| SuperWhisper (Pro) | 8,49 $/mois | Oui |\n| Serveur (VPS) | ~10 €/mois | Oui |\n| Total | ~75 à 90 $/mois |  |\n\n### Scénario C : gros utilisateur / power\n\nUsage intensif, IA en mode agent une bonne partie de la journée, recherche web automatisée, serveur managé.\n\n| Poste | Prix | Optionnel ? |\n| --- | --- | --- |\n| ChatGPT Pro | 100 €/mois | Non (socle) |\n| Synthetic AI (GLM 5.2, ZDR) | 30 $/mois | Non (données privées) |\n| Obsidian Sync (Plus) | 8 $/mois | Non (recommandé) |\n| SuperWhisper | 8,49 $/mois | Oui |\n| Firecrawl | 19 $/mois | Oui |\n| Serveur + Cloudron | ~25 €/mois | Oui |\n| Total | ~180 à 200 $/mois |  |\n\nÀ retenir\n\nLe passage d'un scénario à l'autre ne se fait pas par plaisir : il se fait quand ton usage réel le justifie. Beaucoup de gens vivent très bien en scénario A pendant des mois. Ne monte de palier que quand tu sens la limite, pas avant.\n\n---\n\n## Pour finir\n\nRetiens une seule chose : **ne prends que ce qui t'est utile.** Chaque poste optionnel reste optionnel tant qu'un usage réel ne le rend pas indispensable. C'est comme ça que tu gardes une facture nette et prévisible au lieu de la voir gonfler.\n\nPour aller plus loin sur chaque brique :\n\n- [Choisir son modèle IA](/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia) : bien router chaque tâche vers le bon modèle.\n- [Comment utiliser OpenCode Desktop](/plateforme/ia-juillet-2026/semaine-1-opencode) : ton interface unique.\n- [Installer tes outils IA](/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia) : le setup complet.\n- [Ton serveur IA](/plateforme/ia-juillet-2026/semaine-3-serveur-ia) : VPS, Cloudron, auto-hébergement.\n- [Prérequis et bonnes pratiques](/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques) : dont l'installation de SuperWhisper.\n\n---\n\n- J'ai choisi mes abonnements selon mon usage réel\n- Je sais router chaque tâche vers le bon modèle (puissant seulement si nécessaire)\n- J'ai séparé mes tâches performantes (ChatGPT) et confidentielles (Synthetic, ZDR)\n- Je ne paie que les outils qui me sont utiles\n- J'ai identifié dans quel scénario (A, B ou C) je me situe\n- J'ai un ordre de grandeur clair de mon coût mensuel",
      "assets": [],
      "links": [
        {
          "text": "synthetic.new",
          "url": "https://synthetic.new/?referral=jhBi88o8juvemeR"
        },
        {
          "text": "Choisir son modèle IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia"
        },
        {
          "text": "Prérequis et bonnes pratiques",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques"
        },
        {
          "text": "Ton serveur IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-3-serveur-ia"
        },
        {
          "text": "Choisir son modèle IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia"
        },
        {
          "text": "Comment utiliser OpenCode Desktop",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-opencode"
        },
        {
          "text": "Installer tes outils IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia"
        },
        {
          "text": "Ton serveur IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-3-serveur-ia"
        },
        {
          "text": "Prérequis et bonnes pratiques",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:04:45.339Z",
      "counts": {
        "code_blocks": 0,
        "headings": 15,
        "iframes": 0,
        "images": 0,
        "links": 9,
        "text_chars": 8115
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "03-semaine-1-prerequis-bonnes-pratiques",
      "order": 3,
      "kind": "section",
      "section": "02-prerequis",
      "title": "Prérequis et bonnes pratiques",
      "slug": "semaine-1-prerequis-bonnes-pratiques",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-prerequis-bonnes-pratiques",
      "summary": "Installer SuperWhisper pour parler à l'IA, et adopter le réflexe de toujours débugger avec l'IA.",
      "objective": "Avoir SuperWhisper installé et comprendre les deux réflexes fondamentaux : parler à l'IA et débugger avec l'IA.",
      "expected_output": "SuperWhisper fonctionnel, raccourci configuré, réflexe voix + debug ancré.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"avant-de-commencer-deux-réflexes-qui-changent-tout\">Avant de commencer : deux réflexes qui changent tout</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette leçon est courte mais <strong class=\"font-semibold text-foreground\">essentielle</strong>. Elle pose deux habitudes qui vont déterminer ta vitesse de progression pendant tout le bootcamp, et après.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"réflexe-1-parler-à-lia-pas-taper\">Réflexe 1 : Parler à l'IA (pas taper)</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"installe-superwhisper\">Installe SuperWhisper</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La manière la plus rapide de communiquer avec l'IA, c'est <strong class=\"font-semibold text-foreground\">la voix</strong>. C'est 5 fois plus rapide que le clavier, et ça change complètement la relation que tu as avec l'outil.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://superwhisper.com/?via=eliott\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">superwhisper.com</a></li>\n<li class=\"leading-7\">Télécharge l'app (Mac, Windows, iOS)</li>\n<li class=\"leading-7\">Choisis ton plan : <strong class=\"font-semibold text-foreground\">Pro à 8,49 $/mois</strong> pour tester sans t'engager, ou <strong class=\"font-semibold text-foreground\">Lifetime à 249,99 $ une fois</strong> (le meilleur deal si tu comptes l'utiliser sur la durée : tu paies une fois et c'est réglé)</li>\n</ol>\n<div class=\"my-4 rounded-xl border-2 border-emerald-300 bg-emerald-50 p-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">🎁 Code promo Prisme One</div><div class=\"text-sm text-emerald-900\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Utilise le code <code class=\"bg-emerald-100 px-2 py-0.5 rounded font-mono font-bold text-emerald-900\">REYSU30</code> au moment du paiement pour avoir <strong>30 % de réduction</strong> sur n'importe quel plan SuperWhisper (Lifetime inclus).</p></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"alternatives-gratuites-ou-freemium\">Alternatives gratuites ou freemium</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">SuperWhisper reste notre reco pour la qualité et l'intégration. Mais soyons clairs : <strong class=\"font-semibold text-foreground\">si tu ne veux pas payer, un outil gratuit comme Murmure fait très bien le job.</strong> L'essentiel, c'est d'avoir <em>un</em> moyen de parler à l'IA, peu importe lequel. Voici les meilleures options gratuites remontées par la communauté :</p>\n<div class=\"my-4 grid grid-cols-1 sm:grid-cols-3 gap-3\"><div class=\"rounded-lg border-2 border-emerald-300 bg-emerald-50 p-4\"><div class=\"text-[10px] font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Meilleure alternative gratuite</div><div class=\"text-sm font-bold text-zinc-800 mb-1\"><a href=\"https://www.murmure.app/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Murmure</a></div><div class=\"text-xs text-zinc-600\">Gratuit, open source, desktop. Dictée locale via Whisper et politique <strong>ZDR</strong> (zéro rétention de données) : rien n'est stocké côté serveur. C'est le meilleur remplaçant gratuit de SuperWhisper si tu ne veux pas payer.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\"><a href=\"https://handy.computer/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Handy</a></div><div class=\"text-xs text-zinc-600\">100 % gratuit, open source, tourne en local (Mac, Windows, Linux). Aucune donnée n'est envoyée à un serveur tiers. Très bon choix si tu veux la confidentialité maximale sans payer.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\"><a href=\"https://wisprflow.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Wispr Flow</a></div><div class=\"text-xs text-zinc-600\">Cross-platform (Mac + Windows), <strong>plan gratuit</strong> pour démarrer, moins bon que SuperWhisper côté qualité et intégration mais correct pour tester.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sur mobile :</strong> la dictée est souvent déjà intégrée et gratuite. Sur Android, active la <strong class=\"font-semibold text-foreground\">dictée vocale de Gboard</strong> (l'icône micro du clavier). Sur iPhone, la <strong class=\"font-semibold text-foreground\">dictée iOS</strong> fonctionne dans n'importe quel champ texte. Largement suffisant pour parler à l'IA depuis ton téléphone.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour un usage quotidien intensif, SuperWhisper reste notre reco (qualité + intégration). Mais commence par Murmure ou une autre option gratuite si tu veux d'abord valider l'usage avant d'investir. Le plus important, c'est d'avoir un outil et de prendre l'habitude de parler à l'IA.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"tuto-vidéo\">Tuto vidéo</h3>\n<div style=\"position: relative; padding-top: 56.25%;\"><iframe src=\"https://www.loom.com/embed/bd29a4ef180d4fab95322451cba06742\" loading=\"lazy\" allow=\"accelerometer;gyroscope;autoplay;encrypted-media;picture-in-picture;\" allowfullscreen=\"\" style=\"border: 0px; position: absolute; top: 0px; height: 100%; width: 100%;\"></iframe></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment-ça-marche\">Comment ça marche</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">SuperWhisper tourne en arrière-plan. Tu appuies sur un raccourci clavier, tu parles, et le texte apparaît là où ton curseur est posé. Partout : dans OpenCode, dans Obsidian, dans ton navigateur, dans un email.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Concrètement dans le bootcamp :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tu ouvres OpenCode dans le terminal</li>\n<li class=\"leading-7\">Tu appuies sur ton raccourci SuperWhisper</li>\n<li class=\"leading-7\">Tu <strong class=\"font-semibold text-foreground\">parles</strong> ta demande au lieu de la taper</li>\n<li class=\"leading-7\">Le texte s'insère directement dans OpenCode</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. Pas de copier-coller, pas de friction.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cest-important\">Pourquoi c'est important</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La plupart des gens sous-utilisent l'IA parce qu'ils n'arrivent pas à formuler ce qu'ils veulent en tapant. À l'oral, c'est naturel : tu expliques comme à un collègue. Tu donnes plus de contexte, tu es plus précis, et tu vas beaucoup plus vite.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Prends l'habitude dès maintenant de TOUJOURS parler à l'IA.</strong> Que ce soit pour lui demander quelque chose, lui expliquer un problème, ou réfléchir à voix haute. La voix, c'est ton interface principale avec l'IA.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"réflexe-2-toujours-débugger-avec-lia\">Réflexe 2 : Toujours débugger avec l'IA</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-principe\">Le principe</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pendant le bootcamp, tu vas rencontrer des problèmes. C'est normal et c'est même souhaitable : chaque problème résolu est une compétence acquise.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La règle d'or : ne reste jamais bloqué seul. Demande à ton IA.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand quelque chose ne marche pas :</p>\n\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-red-200 bg-red-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-red-400 mb-1\">Étape 1</div><div class=\"text-sm font-bold text-red-700\">Copie-colle l'erreur dans OpenCode</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-amber-200 bg-amber-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-400 mb-1\">Étape 2</div><div class=\"text-sm font-bold text-amber-700\">Explique ce que tu essayais de faire</div><div class=\"text-xs text-amber-500 mt-1\">En parlant avec SuperWhisper, c'est plus rapide</div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-1\">Étape 3</div><div class=\"text-sm font-bold text-emerald-700\">Laisse l'IA te guider vers la solution</div><div class=\"text-xs text-emerald-500 mt-1\">95% des problèmes résolus automatiquement</div></div></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Copie-colle l'erreur</strong> directement dans OpenCode</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Explique ce que tu essayais de faire</strong> (en parlant, c'est plus rapide)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Laisse l'IA te guider</strong> vers la solution</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. Pas besoin de comprendre l'erreur toi-même. Pas besoin de chercher sur Google. Pas besoin de paniquer. OpenCode a accès à tes fichiers, il voit le contexte, et il sait résoudre 95% des problèmes que tu vas rencontrer.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"exemples-concrets\">Exemples concrets</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu as une erreur dans le terminal :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Error: ENOENT: no such file or directory\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Copie-colle l'erreur dans OpenCode, il va comprendre quel fichier manque et le créer ou te dire quoi faire.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Une commande ne marche pas comme prévu :</strong>\n→ Dis à ton IA \"j'ai lancé /init mais ça m'a donné ça : [colle le résultat]\", elle va diagnostiquer et corriger.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu ne comprends pas une étape du bootcamp :</strong>\n→ Copie-colle le passage de la leçon dans OpenCode et dis \"explique-moi ça comme si j'avais 10 ans\" ou \"c'est quoi concrètement ce que je dois faire ici ?\"</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cest-le-super-pouvoir-des-non-tech\">Pourquoi c'est le super-pouvoir des non-tech</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les développeurs ont passé des années à apprendre à débugger. Toi, tu n'as pas besoin : tu as un développeur senior disponible 24h/24 dans ton terminal. La seule compétence à développer, c'est le réflexe de <strong class=\"font-semibold text-foreground\">toujours lui demander</strong> au lieu de galérer seul.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pendant tout le bootcamp :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Un truc plante → OpenCode</li>\n<li class=\"leading-7\">Tu comprends pas un concept → OpenCode</li>\n<li class=\"leading-7\">Tu veux aller plus loin sur un sujet → OpenCode</li>\n<li class=\"leading-7\">Tu veux adapter un exercice à ton cas → OpenCode</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est littéralement la raison pour laquelle on utilise cet outil. Ne te prive pas de sa puissance.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"SuperWhisper installé et fonctionnel — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">SuperWhisper installé et fonctionnel</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Raccourci clavier configuré pour dicter — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Raccourci clavier configuré pour dicter</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé de parler à OpenCode via SuperWhisper — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé de parler à OpenCode via SuperWhisper</span></li><li class=\"flex items-start gap-3 py-1.5\"><span class=\"text-sm leading-6 text-foreground\">Je comprends le réflexe : erreur → copier-coller dans OpenCode</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> SuperWhisper installé, raccourci configuré, et le réflexe \"je parle à l'IA, je débugge avec l'IA\" ancré avant de commencer les vraies leçons.</p>\n</blockquote>",
      "content_markdown": "## Avant de commencer : deux réflexes qui changent tout\n\nCette leçon est courte mais **essentielle**. Elle pose deux habitudes qui vont déterminer ta vitesse de progression pendant tout le bootcamp, et après.\n\n---\n\n## Réflexe 1 : Parler à l'IA (pas taper)\n\n### Installe SuperWhisper\n\nLa manière la plus rapide de communiquer avec l'IA, c'est **la voix**. C'est 5 fois plus rapide que le clavier, et ça change complètement la relation que tu as avec l'outil.\n\n1. Va sur [superwhisper.com](https://superwhisper.com/?via=eliott)\n2. Télécharge l'app (Mac, Windows, iOS)\n3. Choisis ton plan : **Pro à 8,49 $/mois** pour tester sans t'engager, ou **Lifetime à 249,99 $ une fois** (le meilleur deal si tu comptes l'utiliser sur la durée : tu paies une fois et c'est réglé)\n\n🎁 Code promo Prisme One\n\nUtilise le code `REYSU30` au moment du paiement pour avoir **30 % de réduction** sur n'importe quel plan SuperWhisper (Lifetime inclus).\n\n### Alternatives gratuites ou freemium\n\nSuperWhisper reste notre reco pour la qualité et l'intégration. Mais soyons clairs : **si tu ne veux pas payer, un outil gratuit comme Murmure fait très bien le job.** L'essentiel, c'est d'avoir *un* moyen de parler à l'IA, peu importe lequel. Voici les meilleures options gratuites remontées par la communauté :\n\nMeilleure alternative gratuite\n\n[Murmure](https://www.murmure.app/)\n\nGratuit, open source, desktop. Dictée locale via Whisper et politique **ZDR** (zéro rétention de données) : rien n'est stocké côté serveur. C'est le meilleur remplaçant gratuit de SuperWhisper si tu ne veux pas payer.\n\n[Handy](https://handy.computer/)\n\n100 % gratuit, open source, tourne en local (Mac, Windows, Linux). Aucune donnée n'est envoyée à un serveur tiers. Très bon choix si tu veux la confidentialité maximale sans payer.\n\n[Wispr Flow](https://wisprflow.ai)\n\nCross-platform (Mac + Windows), **plan gratuit** pour démarrer, moins bon que SuperWhisper côté qualité et intégration mais correct pour tester.\n\n**Sur mobile :** la dictée est souvent déjà intégrée et gratuite. Sur Android, active la **dictée vocale de Gboard** (l'icône micro du clavier). Sur iPhone, la **dictée iOS** fonctionne dans n'importe quel champ texte. Largement suffisant pour parler à l'IA depuis ton téléphone.\n\n> Pour un usage quotidien intensif, SuperWhisper reste notre reco (qualité + intégration). Mais commence par Murmure ou une autre option gratuite si tu veux d'abord valider l'usage avant d'investir. Le plus important, c'est d'avoir un outil et de prendre l'habitude de parler à l'IA.\n\n### Tuto vidéo\n\n### Comment ça marche\n\nSuperWhisper tourne en arrière-plan. Tu appuies sur un raccourci clavier, tu parles, et le texte apparaît là où ton curseur est posé. Partout : dans OpenCode, dans Obsidian, dans ton navigateur, dans un email.\n\n**Concrètement dans le bootcamp :**\n\n- Tu ouvres OpenCode dans le terminal\n- Tu appuies sur ton raccourci SuperWhisper\n- Tu **parles** ta demande au lieu de la taper\n- Le texte s'insère directement dans OpenCode\n\nC'est tout. Pas de copier-coller, pas de friction.\n\n### Pourquoi c'est important\n\nLa plupart des gens sous-utilisent l'IA parce qu'ils n'arrivent pas à formuler ce qu'ils veulent en tapant. À l'oral, c'est naturel : tu expliques comme à un collègue. Tu donnes plus de contexte, tu es plus précis, et tu vas beaucoup plus vite.\n\n**Prends l'habitude dès maintenant de TOUJOURS parler à l'IA.** Que ce soit pour lui demander quelque chose, lui expliquer un problème, ou réfléchir à voix haute. La voix, c'est ton interface principale avec l'IA.\n\n---\n\n## Réflexe 2 : Toujours débugger avec l'IA\n\n### Le principe\n\nPendant le bootcamp, tu vas rencontrer des problèmes. C'est normal et c'est même souhaitable : chaque problème résolu est une compétence acquise.\n\n**La règle d'or : ne reste jamais bloqué seul. Demande à ton IA.**\n\nQuand quelque chose ne marche pas :\n\nÉtape 1\n\nCopie-colle l'erreur dans OpenCode\n\nÉtape 2\n\nExplique ce que tu essayais de faire\n\nEn parlant avec SuperWhisper, c'est plus rapide\n\nÉtape 3\n\nLaisse l'IA te guider vers la solution\n\n95% des problèmes résolus automatiquement\n\n1. **Copie-colle l'erreur** directement dans OpenCode\n2. **Explique ce que tu essayais de faire** (en parlant, c'est plus rapide)\n3. **Laisse l'IA te guider** vers la solution\n\nC'est tout. Pas besoin de comprendre l'erreur toi-même. Pas besoin de chercher sur Google. Pas besoin de paniquer. OpenCode a accès à tes fichiers, il voit le contexte, et il sait résoudre 95% des problèmes que tu vas rencontrer.\n\n### Exemples concrets\n\n**Tu as une erreur dans le terminal :**\n\n```\nError: ENOENT: no such file or directory\n```\n\n→ Copie-colle l'erreur dans OpenCode, il va comprendre quel fichier manque et le créer ou te dire quoi faire.\n\n**Une commande ne marche pas comme prévu :** → Dis à ton IA \"j'ai lancé /init mais ça m'a donné ça : [colle le résultat]\", elle va diagnostiquer et corriger.\n\n**Tu ne comprends pas une étape du bootcamp :** → Copie-colle le passage de la leçon dans OpenCode et dis \"explique-moi ça comme si j'avais 10 ans\" ou \"c'est quoi concrètement ce que je dois faire ici ?\"\n\n### Pourquoi c'est le super-pouvoir des non-tech\n\nLes développeurs ont passé des années à apprendre à débugger. Toi, tu n'as pas besoin : tu as un développeur senior disponible 24h/24 dans ton terminal. La seule compétence à développer, c'est le réflexe de **toujours lui demander** au lieu de galérer seul.\n\n**Pendant tout le bootcamp :**\n\n- Un truc plante → OpenCode\n- Tu comprends pas un concept → OpenCode\n- Tu veux aller plus loin sur un sujet → OpenCode\n- Tu veux adapter un exercice à ton cas → OpenCode\n\nC'est littéralement la raison pour laquelle on utilise cet outil. Ne te prive pas de sa puissance.\n\n---\n\n## Checklist\n\n- SuperWhisper installé et fonctionnel\n- Raccourci clavier configuré pour dicter\n- J'ai testé de parler à OpenCode via SuperWhisper\n- Je comprends le réflexe : erreur → copier-coller dans OpenCode\n\n> Output attendu : SuperWhisper installé, raccourci configuré, et le réflexe \"je parle à l'IA, je débugge avec l'IA\" ancré avant de commencer les vraies leçons.",
      "assets": [],
      "links": [
        {
          "text": "superwhisper.com",
          "url": "https://superwhisper.com/?via=eliott"
        },
        {
          "text": "Murmure",
          "url": "https://www.murmure.app/"
        },
        {
          "text": "Handy",
          "url": "https://handy.computer/"
        },
        {
          "text": "Wispr Flow",
          "url": "https://wisprflow.ai/"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/bd29a4ef180d4fab95322451cba06742",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Découvrez SuperWhisper : L'outil révolutionnaire de transcription vocale",
          "title_source": "loom-page-title",
          "video_id": "bd29a4ef180d4fab95322451cba06742",
          "watch_url": "https://www.loom.com/share/bd29a4ef180d4fab95322451cba06742"
        }
      ],
      "captured_at": "2026-08-03T10:04:47.249Z",
      "counts": {
        "code_blocks": 3,
        "headings": 12,
        "iframes": 1,
        "images": 0,
        "links": 4,
        "text_chars": 5703
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "04-semaine-1-installation-technique",
      "order": 4,
      "kind": "section",
      "section": "03-installation",
      "title": "Installation technique",
      "slug": "semaine-1-installation-technique",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installation-technique",
      "summary": "Mettre en place ton coffre (télécharger, Obsidian, Obsidian Sync), puis installer OpenCode Desktop et configurer ChatGPT et OpenRouter ZDR. Prêt pour lancer /initialisation dans la prochaine leçon.",
      "objective": "Avoir un workspace téléchargé, synchronisé via Obsidian Sync, et OpenCode Desktop avec ChatGPT et OpenRouter ZDR connectés.",
      "expected_output": "Workspace ouvert dans Obsidian (sub-dossier Second Cerveau), Obsidian Sync actif sur ordi + mobile, OpenCode Desktop installé avec providers ChatGPT et OpenRouter connectés.",
      "content_html": "<div class=\"my-6 relative w-full rounded-xl overflow-hidden border border-zinc-200\" style=\"padding-bottom: 56.25%; height: 0px;\"><iframe src=\"https://www.loom.com/embed/82169eab41614c558a64c3b57f3797cc\" frameborder=\"0\" allowfullscreen=\"\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;\"></iframe></div>\n<div class=\"my-6 rounded-xl border-2 border-blue-300 bg-blue-50 p-5\"><div class=\"text-sm font-bold text-blue-900 mb-2\">Attention : l'interface d'OpenCode a changé récemment</div><p class=\"text-sm text-blue-900/80 leading-relaxed\">L'interface d'OpenCode Desktop a été mise à jour tout récemment. Quand tu arrives à la partie sur OpenCode (la Partie 2 ci-dessous), tu peux regarder cette vidéo pour voir la nouvelle interface en action, à jour par rapport à la vidéo d'installation ci-dessus.</p></div>\n<div class=\"my-6 relative w-full rounded-xl overflow-hidden border border-zinc-200\" style=\"padding-bottom: 56.25%; height: 0px;\"><iframe src=\"https://www.loom.com/embed/0c06d14542ff46628ae16c06d70113c3\" frameborder=\"0\" allowfullscreen=\"\" style=\"position: absolute; top: 0px; left: 0px; width: 100%; height: 100%;\"></iframe></div>\n<div class=\"my-6 rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-sm font-semibold uppercase tracking-wider text-amber-500 mb-2\">Prérequis</div><div class=\"text-sm text-amber-800\">Avant de commencer cette installation, assure-toi d'avoir lu <a href=\"../../../01-anatomie/lessons/1-semaine-1-anatomie-systeme/semaine-1-anatomie-systeme.html\" class=\"underline font-semibold\">Comprendre l'anatomie de ton système</a>. Sans le cadre conceptuel, l'installation ressemble à une liste d'actions sans sens.</div></div>\n<hr class=\"my-8 border-border\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'installation se fait en <strong class=\"font-semibold text-foreground\">deux parties</strong>, dans cet ordre :</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Partie 1</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Mettre en place ton coffre</div><div class=\"text-sm text-emerald-700/80\">Télécharger le template, l'ouvrir dans Obsidian, configurer la synchronisation pour que tes notes vivent sur ton ordinateur, ton téléphone, et dans le cloud.</div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Partie 2</div><div class=\"text-base font-bold text-blue-800 mb-2\">Installer ton IA</div><div class=\"text-sm text-blue-700/80\">Installer OpenCode Desktop, prendre un abonnement ChatGPT, configurer OpenRouter (au token) et l'abonnement Synthetic AI (privé, GLM 5.2), connecter le tout dans OpenCode.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À la fin, tu seras prêt à lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> dans la prochaine leçon.</p>\n<hr class=\"my-8 border-border\">\n<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Partie 1 : mettre en place ton coffre</h1>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-télécharger-le-coffre-de-formation\">Étape 1 : Télécharger le coffre de formation</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On t'a préparé un coffre Obsidian prêt à l'emploi. Tout est déjà configuré :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">La <strong class=\"font-semibold text-foreground\">structure IPCRA</strong> (Inbox, Projets, Casquettes, Ressources, Archives) : les dossiers où vont tes notes</li>\n<li class=\"leading-7\">Les <strong class=\"font-semibold text-foreground\">skills</strong> (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/inbox-processor</code>...) : des workflows IA prêts à lancer</li>\n<li class=\"leading-7\">Les <strong class=\"font-semibold text-foreground\">templates</strong> (daily note, weekly note, projet, casquette, phase de vie) : pour créer des notes structurées en un clic</li>\n<li class=\"leading-7\">Le <strong class=\"font-semibold text-foreground\">fichier AGENTS.md</strong> : les instructions qui disent à l'IA qui elle est, comment travailler avec ton coffre</li>\n<li class=\"leading-7\">Le <strong class=\"font-semibold text-foreground\">fichier opencode.json</strong> : la config qui indique à OpenCode où chercher tes skills</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as qu'à le télécharger, l'ouvrir dans Obsidian, et tu auras déjà 90 % du travail fait.</p>\n<div class=\"my-4 rounded-xl border border-border bg-muted/30 p-4\"><a href=\"https://github.com/EliottMeunierFluid/templatesecondcerveau\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"inline-flex items-center gap-2 rounded-md bg-[#24292F] px-4 py-2 text-sm font-medium text-white hover:bg-[#1a1e22] transition-colors\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-github h-4 w-4\" aria-hidden=\"true\"><path d=\"M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4\"></path><path d=\"M9 18c-4.51 2-5-2-7-2\"></path></svg>Ouvrir le template sur GitHub<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"lucide lucide-external-link h-3.5 w-3.5\" aria-hidden=\"true\"><path d=\"M15 3h6v6\"></path><path d=\"M10 14 21 3\"></path><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path></svg></a><p class=\"mt-3 text-xs text-muted-foreground\"><strong>3 etapes pour telecharger le ZIP :</strong></p><ol class=\"mt-1 list-decimal pl-5 text-xs text-muted-foreground space-y-0.5\"><li>Clique sur le bouton vert <strong>Code</strong> en haut a droite du repo</li><li>Dans l'onglet <strong>Local</strong>, clique sur <strong>Download ZIP</strong></li><li>Decompresse le ZIP telecharge</li></ol><p class=\"mt-2 text-xs text-muted-foreground\">Tu peux revenir sur ce repo a tout moment pour voir les mises a jour du template.</p></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Télécharge</strong> le fichier ZIP ci-dessus</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Décompresse-le</strong></li>\n<li class=\"leading-7\">Le dossier obtenu s'appelle quelque chose comme <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">templatesecondcerveau-main</code> : <strong class=\"font-semibold text-foreground\">renomme-le en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code></strong> (sans accent, sans espace, c'est plus propre pour le terminal et la sync)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Place-le</strong> où tu veux sur ton ordinateur. La recommandation : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/Documents/Workspace/</code> (Mac/Linux) ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Documents\\Workspace\\</code> (Windows)</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Important :</strong> ne renomme pas les dossiers à <strong class=\"font-semibold text-foreground\">l'intérieur</strong> du Workspace. La structure est pensée pour fonctionner avec l'IA. Tu peux par contre librement renommer le dossier racine.</p>\n</blockquote>\n<div class=\"my-6 rounded-xl border-2 border-blue-200 bg-blue-50 p-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Plan B : si le téléchargement bug ou si tu veux la dernière version</div><p class=\"text-sm text-blue-900/80 mb-2\">Le coffre est aussi disponible <strong>sur GitHub</strong>, en source ouverte. Si le lien ci-dessus ne fonctionne pas, ou si tu veux retélécharger un skill ou un dossier précis après avoir cassé quelque chose dans ton coffre : tu peux toujours le récupérer là :</p><p class=\"text-sm\"><a href=\"https://github.com/EliottMeunierFluid/templatesecondcerveau\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-semibold text-blue-700\">github.com/EliottMeunierFluid/templatesecondcerveau</a></p><p class=\"text-xs text-blue-700/80 mt-2\">Tu peux soit cloner le repo (<code>git clone</code>), soit télécharger le ZIP (bouton vert <strong>Code → Download ZIP</strong>). Tu peux aussi piocher juste un fichier ou un dossier précis (par exemple un skill que tu as accidentellement supprimé) sans tout retélécharger.</p></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-installer-obsidian\">Étape 2 : Installer Obsidian</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><img alt=\"Page d'accueil d'Obsidian\" class=\"rounded-lg my-4 max-w-full\" src=\"assets/01-page-d-accueil-d-obsidian.png\"></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://obsidian.md/download\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">obsidian.md/download</a></li>\n<li class=\"leading-7\">Télécharge la version pour ton système (Mac, Windows ou Linux)</li>\n<li class=\"leading-7\">Installe et lance l'application</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Obsidian, c'est quoi ?</strong> Un éditeur de notes en Markdown qui fonctionne 100 % en local sur ton ordinateur. Tes données restent chez toi. C'est ce qui permet à l'IA d'y accéder directement.</p>\n</blockquote>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu ne connais pas Obsidian ?</strong> Va voir la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../6-semaine-1-naviguer-obsidian/semaine-1-naviguer-obsidian.html\">Naviguer dans Obsidian</a> pour les bases (créer une note, naviguer, lier, organiser).</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-ouvrir-ton-coffre-dans-obsidian\">Étape 3 : Ouvrir ton coffre dans Obsidian</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois Obsidian lancé, ouvre ton coffre. <strong class=\"font-semibold text-foreground\">Attention au choix du dossier</strong> : ce n'est pas le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> que tu ouvres, mais le sous-dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code> qui se trouve dedans.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans Obsidian, clique sur <strong class=\"font-semibold text-foreground\">« Open folder as vault »</strong> (Ouvrir un dossier comme coffre)</li>\n<li class=\"leading-7\">Sélectionne le sous-dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code> à l'intérieur de ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code></li>\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Ouvrir</strong></li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-second-cerveau-et-pas-workspace\">Pourquoi <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code> et pas <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> est le dossier parent qui peut héberger plusieurs projets (ton coffre de notes, mais aussi plus tard d'autres repos, sites, apps). Le coffre Obsidian, lui, c'est uniquement le sous-dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code>. Tu veux que la sync ne porte que sur ce sous-dossier, pas sur tout le workspace.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"vérification-rapide\">Vérification rapide</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois ouvert, tu dois voir dans l'explorateur à gauche :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0 INBOX/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">1 PROJETS/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">2 CASQUETTES/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">4 TOOLS/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code></li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu vois tout ça, c'est bon. Ton coffre est ouvert.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-synchroniser-ton-coffre\">Étape 4 : Synchroniser ton coffre</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif : que tes notes soient <strong class=\"font-semibold text-foreground\">accessibles partout</strong> (ordi, téléphone), <strong class=\"font-semibold text-foreground\">sauvegardées dans le cloud</strong> (au cas où ton ordinateur plante), et <strong class=\"font-semibold text-foreground\">chiffrées</strong>.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"notre-recommandation-obsidian-sync\">Notre recommandation : Obsidian Sync</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ce qu'on recommande officiellement pour le bootcamp. <strong class=\"font-semibold text-foreground\">4 € par mois</strong>, et tu obtiens :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Chiffrement de bout en bout</strong> : seul toi peux lire tes notes, même Obsidian ne peut pas y accéder</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Application mobile</strong> : tes notes sont synchronisées sur Obsidian Mobile (iOS et Android)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Historique des versions</strong> : tu peux remonter à n'importe quel état antérieur d'une note</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Synchronisation rapide et stable</strong></li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour 4 € par mois, c'est imbattable.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"configurer-obsidian-sync\">Configurer Obsidian Sync</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans Obsidian, ouvre les <strong class=\"font-semibold text-foreground\">Réglages</strong> (icône engrenage en bas à gauche)</li>\n<li class=\"leading-7\">Va dans l'onglet <strong class=\"font-semibold text-foreground\">« Compte »</strong> et <strong class=\"font-semibold text-foreground\">crée un compte Obsidian</strong> (ou connecte-toi)</li>\n<li class=\"leading-7\">Souscris au <strong class=\"font-semibold text-foreground\">plan Sync (4 €/mois)</strong> depuis ton compte</li>\n<li class=\"leading-7\">Reviens dans Obsidian, va dans <strong class=\"font-semibold text-foreground\">Réglages → Sync</strong> et active le <strong class=\"font-semibold text-foreground\">Core plugin Sync</strong></li>\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">« Choisir un coffre distant »</strong> puis <strong class=\"font-semibold text-foreground\">« Créer un nouveau coffre »</strong></li>\n<li class=\"leading-7\">Donne-lui un nom (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code>)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Définis un mot de passe d'encryption</strong> : <strong class=\"font-semibold text-foreground\">note-le précieusement</strong> dans un gestionnaire de mots de passe. Sans lui, il n'y a aucun moyen de déchiffrer tes notes. Personne ne peut le récupérer pour toi.</li>\n<li class=\"leading-7\">Lance la première synchronisation</li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"synchroniser-sur-ton-téléphone\">Synchroniser sur ton téléphone</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Télécharge <strong class=\"font-semibold text-foreground\">Obsidian</strong> depuis l'<a href=\"https://apps.apple.com/app/obsidian/id1557175442\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">App Store</a> (iOS) ou le <a href=\"https://play.google.com/store/apps/details?id=md.obsidian\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Play Store</a> (Android)</li>\n<li class=\"leading-7\">Crée un nouveau coffre dans l'app mobile, <strong class=\"font-semibold text-foreground\">sans contenu local</strong></li>\n<li class=\"leading-7\">Active le plugin <strong class=\"font-semibold text-foreground\">Sync</strong>, connecte-toi avec ton compte Obsidian, sélectionne le coffre distant que tu as créé</li>\n<li class=\"leading-7\">Entre ton mot de passe d'encryption</li>\n<li class=\"leading-7\">Lance la sync : toutes tes notes apparaissent sur ton téléphone</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as maintenant ton coffre sur ton ordi, sur ton téléphone, et sauvegardé dans le cloud.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-alternatives-à-obsidian-sync\">Les alternatives à Obsidian Sync</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne veux pas payer ou si tu veux plus de flexibilité, deux options principales :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border border-zinc-200 bg-white p-5\"><div class=\"text-base font-bold text-zinc-800 mb-2\">Syncthing</div><div class=\"text-sm text-zinc-600 mb-2\">Sync peer-to-peer entre tes appareils, gratuit, open source. Pas d'app mobile aussi propre qu'Obsidian Sync, mais ça fonctionne.</div><a href=\"https://syncthing.net/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-xs text-blue-600 underline\">syncthing.net</a></div><div class=\"rounded-xl border border-zinc-200 bg-white p-5\"><div class=\"text-base font-bold text-zinc-800 mb-2\">GitHub / GitLab / Gitea</div><div class=\"text-sm text-zinc-600 mb-2\">Synchronisation via un repo git. Idéal si tu travailles déjà avec git. Permet aussi de collaborer en équipe sur un même coffre. En semaine 3, on installe Gitea sur ton propre serveur pour une version auto-hébergée.</div><a href=\"https://github.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-xs text-blue-600 underline\">github.com</a></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La recommandation officielle reste <strong class=\"font-semibold text-foreground\">Obsidian Sync</strong>. C'est ce qui marche le mieux out of the box, surtout pour le mobile.</p>\n<hr class=\"my-8 border-border\">\n<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Partie 2 : installer ton IA</h1>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant que ton coffre vit dans Obsidian et qu'il est synchronisé, on passe à la couche IA.</p>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-5-installer-opencode-desktop\">Étape 5 : Installer OpenCode Desktop</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode Desktop est l'application qui va te permettre de travailler avec l'IA dans ton coffre.</p>\n<div class=\"my-6\"><img alt=\"Capture d'écran d'OpenCode Desktop\" class=\"rounded-xl border border-zinc-200\" src=\"assets/02-capture-d-ecran-d-opencode-desktop.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">OpenCode Desktop : l'app native multi-modèle qu'on utilise dans le bootcamp.</div></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://opencode.ai/download\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">opencode.ai/download</a></li>\n<li class=\"leading-7\">Télécharge la version pour ton système (macOS Apple Silicon, macOS Intel, ou Windows)</li>\n<li class=\"leading-7\">Installe et lance l'application</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pourquoi OpenCode Desktop ?</strong> C'est l'app native multi-modèle qu'on recommande dans ce bootcamp. Elle te permet de connecter plusieurs providers (ChatGPT, OpenRouter, etc.) et de choisir le bon modèle pour la bonne tâche. Tout le détail est dans <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../01-anatomie/lessons/1-semaine-1-anatomie-systeme/semaine-1-anatomie-systeme.html\">Comprendre l'anatomie de ton système</a>.</p>\n</blockquote>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu veux utiliser Claude à la place ?</strong> Va voir le tutoriel <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../12-semaine-1-claude-code-coffre/semaine-1-claude-code-coffre.html\">Configurer Claude Code en complément</a>.</p>\n</blockquote>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu veux un workflow terminal ?</strong> Va voir <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../11-semaine-1-utiliser-ia-terminal/semaine-1-utiliser-ia-terminal.html\">Utiliser l'IA dans un terminal</a>.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-6-prendre-un-abonnement-chatgpt\">Étape 6 : Prendre un abonnement ChatGPT</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les tâches sans enjeu de privacy (présentations, sites web, brainstorming, contenu public), un abonnement ChatGPT est le plus rentable. Il s'intègre directement dans OpenCode Desktop, sans coût marginal à l'usage.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://chatgpt.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">chatgpt.com</a> et crée un compte (ou connecte-toi)</li>\n<li class=\"leading-7\">Souscris au plan <strong class=\"font-semibold text-foreground\">ChatGPT Plus (20 €/mois)</strong></li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"important-désactive-lentraînement-sur-tes-données\">Important : désactive l'entraînement sur tes données</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Par défaut, OpenAI utilise tes conversations pour entraîner ses futurs modèles. Désactive-le.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Clique sur ta photo de profil en haut à droite, puis <strong class=\"font-semibold text-foreground\">Settings</strong></li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Data Controls</strong></li>\n<li class=\"leading-7\">Désactive l'option <strong class=\"font-semibold text-foreground\">« Improve the model for everyone »</strong> (ou « Améliorer le modèle pour tout le monde »)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cela empêche OpenAI de stocker et réutiliser tes prompts pour l'entraînement.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-7-configurer-ton-provider-zéro-rétention-zdr\">Étape 7 : Configurer ton provider zéro rétention (ZDR)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les <strong class=\"font-semibold text-foreground\">tâches publiques</strong> (présentations, sites web, brainstorming, contenu destiné à sortir), un modèle <strong class=\"font-semibold text-foreground\">puissant et peu cher</strong> comme <strong class=\"font-semibold text-foreground\">ChatGPT</strong> (étape 6) suffit largement.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Mais dès que tu manipules des <strong class=\"font-semibold text-foreground\">données qui te concernent personnellement</strong> ou des <strong class=\"font-semibold text-foreground\">données clients</strong>, il te faut des <strong class=\"font-semibold text-foreground\">modèles privés</strong>, qui ne stockent ni ne réutilisent tes requêtes (ZDR, pour Zero Data Retention). C'est un réflexe à mettre en place <strong class=\"font-semibold text-foreground\">dès le début</strong>, avant que tes données sensibles ne soient déjà passées ailleurs.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour ça, on te recommande <strong class=\"font-semibold text-foreground\">trois options</strong>. Tu peux en choisir une seule, ou les combiner selon ton usage :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-3 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Option 7A</div><div class=\"text-base font-bold text-emerald-800 mb-2\">OpenRouter (au token)</div><div class=\"text-sm text-emerald-700/80\">Tous les modèles open source avec une seule clé, ZDR activable. Idéal pour DeepSeek et pour tester.</div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Option 7B</div><div class=\"text-base font-bold text-blue-800 mb-2\">Synthetic AI (abonnement)</div><div class=\"text-sm text-blue-700/80\">GLM 5.2 en ZDR, à prix fixe, sans compter les tokens. Le plus simple pour un usage privé quotidien.</div></div><div class=\"rounded-2xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-400 mb-2\">Option 7C</div><div class=\"text-base font-bold text-zinc-800 mb-2\">Aller plus loin</div><div class=\"text-sm text-zinc-600\">Comparer d'autres providers : acteur 100 % européen, plan illimité pour usage agent intensif.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-7a-openrouter-au-token-pour-deepseek-et-les-tests\">Option 7A : OpenRouter (au token, pour DeepSeek et les tests)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter, c'est le proxy qui te permet d'accéder à tous les modèles open source (DeepSeek, GLM, Qwen, Kimi, Mistral, etc.) avec une seule clé API et une seule facture. C'est ton <strong class=\"font-semibold text-foreground\">défaut au token</strong> : parfait pour <strong class=\"font-semibold text-foreground\">DeepSeek V4 Flash</strong> (ultra bon marché) et pour <strong class=\"font-semibold text-foreground\">tester</strong> de nouveaux modèles à la demande. Bonus : tu peux y <strong class=\"font-semibold text-foreground\">forcer le ZDR</strong> (Zero Data Retention) pour que tes requêtes ne soient ni stockées ni réutilisées.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Créer ton compte</h4>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://openrouter.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">openrouter.ai</a> et crée un compte (ou connecte-toi avec Google/GitHub)</li>\n</ol>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Activer le ZDR</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est l'étape qui rend ton usage <strong class=\"font-semibold text-foreground\">privé</strong> :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans OpenRouter, clique sur ta photo de profil en haut à droite puis <strong class=\"font-semibold text-foreground\">Settings</strong></li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Privacy</strong> (ou <strong class=\"font-semibold text-foreground\">Data Controls</strong>)</li>\n<li class=\"leading-7\">Active l'option <strong class=\"font-semibold text-foreground\">« Zero Data Retention »</strong> (ou équivalent)</li>\n<li class=\"leading-7\">OpenRouter ne routera désormais ta requête <strong class=\"font-semibold text-foreground\">que vers des providers qui ont signé un engagement ZDR</strong>. Tes prompts ne sont ni stockés ni utilisés pour l'entraînement.</li>\n</ol>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Mettre du crédit</h4>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Credits</strong> (ou <strong class=\"font-semibold text-foreground\">Billing</strong>)</li>\n<li class=\"leading-7\">Ajoute <strong class=\"font-semibold text-foreground\">10 €</strong> de crédit pour commencer. Avec DeepSeek V4 Flash à environ 0,14 $/M tokens en input, ces 10 € tiennent des semaines.</li>\n<li class=\"leading-7\">Optionnel : active <strong class=\"font-semibold text-foreground\">l'auto-top-up</strong> pour recharger automatiquement quand tu descends sous un seuil</li>\n<li class=\"leading-7\">Optionnel : configure des <strong class=\"font-semibold text-foreground\">spending limits</strong> (limites de dépense par jour/mois) pour éviter les surprises</li>\n</ol>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Générer ta clé API</h4>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Keys</strong></li>\n<li class=\"leading-7\">Crée une nouvelle clé API, donne-lui un nom (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">OpenCode Desktop</code>)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Copie la clé</strong> et garde-la précieusement dans ton gestionnaire de mots de passe : elle ne te sera plus jamais réaffichée</li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-7b-synthetic-ai-recommandé-pour-le-privé\">Option 7B : Synthetic AI (recommandé pour le privé)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour tout ce qui touche des <strong class=\"font-semibold text-foreground\">données clients ou sensibles</strong>, on te recommande <strong class=\"font-semibold text-foreground\">Synthetic AI</strong> : un abonnement privé qui te donne <strong class=\"font-semibold text-foreground\">GLM 5.2 en ZDR</strong> (zéro rétention), à prix fixe, sans compter les tokens.</p>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Créer ton compte et t'abonner</h4>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://synthetic.new/?referral=jhBi88o8juvemeR\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">synthetic.new</a> et crée un compte</li>\n<li class=\"leading-7\">Souscris à l'<strong class=\"font-semibold text-foreground\">abonnement (30 $/mois)</strong> : tu obtiens des tokens ZDR sur GLM 5.2, servis rapidement, pour à peu près le prix d'un abonnement ChatGPT</li>\n<li class=\"leading-7\">Récupère ta <strong class=\"font-semibold text-foreground\">clé API Synthetic</strong> dans les paramètres de ton compte et garde-la dans ton gestionnaire de mots de passe</li>\n<li class=\"leading-7\">Tu la connecteras dans OpenCode à l'étape 9, puis tu sélectionneras <strong class=\"font-semibold text-foreground\">GLM 5.2</strong> comme modèle privé</li>\n</ol>\n<div class=\"my-6 rounded-lg border-l-4 border-amber-300 bg-amber-50/60 px-5 py-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">La logique de la stack</div><p class=\"text-sm text-amber-900/80 leading-relaxed\">OpenRouter <strong>au token</strong> pour DeepSeek et les tests, Synthetic AI <strong>en abonnement</strong> pour ton usage privé sur GLM 5.2, ChatGPT pour le créatif et le non-sensible.</p></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-7c-aller-plus-loin-sur-les-providers\">Option 7C : Aller plus loin sur les providers</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter et Synthetic couvrent déjà l'essentiel. Si tu veux comparer d'autres providers ou avoir un plan B (acteur européen, plan illimité pour usage agent intensif), va voir la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../7-semaine-1-choisir-modele-ia/semaine-1-choisir-modele-ia.html\">Choisir son modèle IA</a> qui détaille les providers que je recommande.</p>\n<div class=\"my-6 rounded-lg border-l-4 border-zinc-300 bg-zinc-50/60 px-5 py-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-500 mb-1\">Note</div><p class=\"text-sm text-zinc-700 leading-relaxed\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour démarrer, <a href=\"https://openrouter.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-medium\">OpenRouter</a> en mode ZDR couvre 95 % des cas. Si tu veux ensuite aller plus loin (acteur 100 % européen, alternative pour usage agent intensif, plan illimité), va voir la <a href=\"../7-semaine-1-choisir-modele-ia/semaine-1-choisir-modele-ia.html\" class=\"underline font-medium\">leçon dédiée</a> qui compare les providers que je recommande.</p></p></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-8-ouvrir-ton-workspace-dans-opencode-desktop\">Étape 8 : Ouvrir ton Workspace dans OpenCode Desktop</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant on connecte tout dans OpenCode.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Lance <strong class=\"font-semibold text-foreground\">OpenCode Desktop</strong></li>\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">« Open workspace »</strong> (ou <strong class=\"font-semibold text-foreground\">« Add workspace »</strong> selon ta version)</li>\n<li class=\"leading-7\">Sélectionne le dossier <strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code></strong> (le parent, pas <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code>). C'est important : OpenCode doit voir tout le workspace pour pouvoir agir aussi sur les autres projets que tu y ajouteras plus tard.</li>\n<li class=\"leading-7\">OpenCode lit automatiquement le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> à la racine et charge le contexte</li>\n</ol>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-9-connecter-tes-providers\">Étape 9 : Connecter tes providers</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode Desktop, tu vas maintenant connecter ChatGPT et OpenRouter.</p>\n<div class=\"my-6 rounded-xl border-2 border-red-500 bg-red-50 p-5\"><div class=\"text-sm font-extrabold uppercase tracking-wider text-red-600 mb-2\">ChatGPT : connexion par abonnement, pas par clé API</div><p class=\"text-sm font-medium text-red-900 leading-relaxed\">Quand tu connectes ChatGPT, connecte-toi <strong>via ton abonnement (login ChatGPT Plus)</strong>, <strong>surtout pas avec une clé API</strong>. Avec le login, ton abonnement est déjà payé : aucun coût marginal. Une clé API, elle, facture <strong>au token</strong> et la note grimpe très vite.</p></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ouvre les <strong class=\"font-semibold text-foreground\">Settings</strong> d'OpenCode (icône engrenage ou raccourci selon ta version)</li>\n<li class=\"leading-7\">Va dans la section <strong class=\"font-semibold text-foreground\">Providers</strong> (ou <strong class=\"font-semibold text-foreground\">Models</strong>)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Connecte ChatGPT</strong> :\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Add provider</strong> puis sélectionne <strong class=\"font-semibold text-foreground\">OpenAI</strong> (ou <strong class=\"font-semibold text-foreground\">ChatGPT</strong>)</li>\n<li class=\"leading-7\">Connecte-toi avec ton compte ChatGPT Plus. Tu n'as pas besoin de clé API si ton abonnement est lié.</li>\n</ul>\n</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Connecte OpenRouter</strong> :\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Add provider</strong> puis sélectionne <strong class=\"font-semibold text-foreground\">OpenRouter</strong></li>\n<li class=\"leading-7\">Colle la clé API que tu as générée à l'option 7A</li>\n</ul>\n</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Connecte Synthetic AI</strong> :\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Add provider</strong> puis sélectionne <strong class=\"font-semibold text-foreground\">Synthetic</strong> (ou un provider custom OpenAI-compatible si Synthetic n'est pas listé)</li>\n<li class=\"leading-7\">Colle la clé API générée à l'option 7B, puis coche <strong class=\"font-semibold text-foreground\">GLM 5.2</strong> : c'est ton modèle privé</li>\n</ul>\n</li>\n<li class=\"leading-7\">Vérifie que tu peux sélectionner des modèles dans le sélecteur (tu devrais voir DeepSeek V4 Flash, GLM 5.2, GPT 5.6, etc.)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu es prêt.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"si-tu-rencontres-un-problème\">Si tu rencontres un problème</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Obsidian ne voit pas mes dossiers IPCRA</strong>\nTu as probablement ouvert le mauvais dossier. Tu dois ouvrir <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code> (le sous-dossier), pas <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> (le parent). Refais l'étape 3.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Obsidian Sync ne synchronise pas</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Vérifie que ton abonnement Sync est bien actif dans ton compte Obsidian</li>\n<li class=\"leading-7\">Vérifie que le plugin Sync est activé (Réglages → Plugins core → Sync)</li>\n<li class=\"leading-7\">Vérifie que tu utilises le bon coffre distant et le bon mot de passe d'encryption</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">J'ai perdu le mot de passe d'encryption Obsidian Sync</strong>\nPersonne ne peut le récupérer pour toi. C'est le prix du chiffrement de bout en bout. Si tu l'as perdu, la seule solution est de supprimer le coffre distant et d'en créer un nouveau (tu réuploades alors ton coffre local).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">OpenCode Desktop ne trouve pas les skills</strong>\nVérifie que tu as bien ouvert <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> (et pas <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code>) dans OpenCode. Le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> à la racine indique où chercher les skills (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">./Second Cerveau/4 TOOLS/skills</code>). Si tu ouvres directement <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau</code>, OpenCode ne trouve pas le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Le compte ChatGPT ne se connecte pas dans OpenCode</strong>\nEn dernier recours seulement, tu peux créer une clé API sur <a href=\"https://platform.openai.com/api-keys\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">platform.openai.com/api-keys</a> et la coller dans OpenCode. Attention : la clé API facture <strong class=\"font-semibold text-foreground\">au token</strong>, ce qui chiffre vite. Privilégie toujours le <strong class=\"font-semibold text-foreground\">login ChatGPT</strong> : ton abonnement est déjà payé, aucun coût marginal.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">ZDR pas trouvable dans OpenRouter</strong>\nL'option peut être dans <strong class=\"font-semibold text-foreground\">Settings → Privacy</strong>, <strong class=\"font-semibold text-foreground\">Settings → Data Controls</strong>, ou <strong class=\"font-semibold text-foreground\">Account → Preferences</strong> selon la version. Cherche « Zero Data Retention » dans les réglages.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Coffre de formation téléchargé et renommé en `Workspace` — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Coffre de formation téléchargé et renommé en `Workspace`</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Obsidian installé — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Obsidian installé</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Le sous-dossier `Second Cerveau` ouvert dans Obsidian (structure IPCRA visible) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Le sous-dossier `Second Cerveau` ouvert dans Obsidian (structure IPCRA visible)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Obsidian Sync activé avec mot de passe d'encryption sauvegardé (ou alternative configurée) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Obsidian Sync activé avec mot de passe d'encryption sauvegardé (ou alternative configurée)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Obsidian Mobile installé et synchronisé sur le téléphone — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Obsidian Mobile installé et synchronisé sur le téléphone</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"OpenCode Desktop installé — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">OpenCode Desktop installé</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Abonnement ChatGPT Plus actif, entraînement désactivé dans les paramètres — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Abonnement ChatGPT Plus actif, entraînement désactivé dans les paramètres</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Compte OpenRouter créé, ZDR activé, 10 € de crédit, clé API générée et sauvegardée — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Compte OpenRouter créé, ZDR activé, 10 € de crédit, clé API générée et sauvegardée</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Abonnement Synthetic AI pris (30 $/mois), clé API récupérée, GLM 5.2 prêt à connecter — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Abonnement Synthetic AI pris (30 $/mois), clé API récupérée, GLM 5.2 prêt à connecter</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Workspace ouvert dans OpenCode Desktop — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Workspace ouvert dans OpenCode Desktop</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Providers ChatGPT, OpenRouter et Synthetic AI connectés dans OpenCode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Providers ChatGPT, OpenRouter et Synthetic AI connectés dans OpenCode</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> ton coffre vit dans Obsidian et est synchronisé. OpenCode Desktop est ouvert sur ton workspace avec ChatGPT, OpenRouter et Synthetic AI connectés. Tu es prêt à lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> dans la prochaine leçon.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-suite\">La suite</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La prochaine étape : <strong class=\"font-semibold text-foreground\">lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></strong> dans OpenCode Desktop. C'est une conversation guidée de 3 à 4 heures qui remplit ton contexte personnel (qui tu es, ta vision, tes casquettes, tes projets, ta phase de vie).</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Va à la leçon suivante : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../04-initialisation/lessons/15-semaine-1-vault-perso/semaine-1-vault-perso.html\">Initialiser son vault avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></a>.</p>\n</blockquote>",
      "content_markdown": "Attention : l'interface d'OpenCode a changé récemment\n\nL'interface d'OpenCode Desktop a été mise à jour tout récemment. Quand tu arrives à la partie sur OpenCode (la Partie 2 ci-dessous), tu peux regarder cette vidéo pour voir la nouvelle interface en action, à jour par rapport à la vidéo d'installation ci-dessus.\n\nPrérequis\n\nAvant de commencer cette installation, assure-toi d'avoir lu [Comprendre l'anatomie de ton système](/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme). Sans le cadre conceptuel, l'installation ressemble à une liste d'actions sans sens.\n\n---\n\nL'installation se fait en **deux parties**, dans cet ordre :\n\nPartie 1\n\nMettre en place ton coffre\n\nTélécharger le template, l'ouvrir dans Obsidian, configurer la synchronisation pour que tes notes vivent sur ton ordinateur, ton téléphone, et dans le cloud.\n\nPartie 2\n\nInstaller ton IA\n\nInstaller OpenCode Desktop, prendre un abonnement ChatGPT, configurer OpenRouter (au token) et l'abonnement Synthetic AI (privé, GLM 5.2), connecter le tout dans OpenCode.\n\nÀ la fin, tu seras prêt à lancer `/initialisation` dans la prochaine leçon.\n\n---\n\n# Partie 1 : mettre en place ton coffre\n\n## Étape 1 : Télécharger le coffre de formation\n\nOn t'a préparé un coffre Obsidian prêt à l'emploi. Tout est déjà configuré :\n\n- La **structure IPCRA** (Inbox, Projets, Casquettes, Ressources, Archives) : les dossiers où vont tes notes\n- Les **skills** (`/initialisation`, `/done`, `/weekly-review`, `/inbox-processor`...) : des workflows IA prêts à lancer\n- Les **templates** (daily note, weekly note, projet, casquette, phase de vie) : pour créer des notes structurées en un clic\n- Le **fichier AGENTS.md** : les instructions qui disent à l'IA qui elle est, comment travailler avec ton coffre\n- Le **fichier opencode.json** : la config qui indique à OpenCode où chercher tes skills\n\nTu n'as qu'à le télécharger, l'ouvrir dans Obsidian, et tu auras déjà 90 % du travail fait.\n\nOuvrir le template sur GitHub\n**3 etapes pour telecharger le ZIP :**\n\n1. Clique sur le bouton vert **Code** en haut a droite du repo\n2. Dans l'onglet **Local**, clique sur **Download ZIP**\n3. Decompresse le ZIP telecharge\n\nTu peux revenir sur ce repo a tout moment pour voir les mises a jour du template.\n\n1. **Télécharge** le fichier ZIP ci-dessus\n2. **Décompresse-le**\n3. Le dossier obtenu s'appelle quelque chose comme `templatesecondcerveau-main` : **renomme-le en `Workspace`** (sans accent, sans espace, c'est plus propre pour le terminal et la sync)\n4. **Place-le** où tu veux sur ton ordinateur. La recommandation : `~/Documents/Workspace/` (Mac/Linux) ou `Documents\\Workspace\\` (Windows)\n\n> Important : ne renomme pas les dossiers à l'intérieur du Workspace. La structure est pensée pour fonctionner avec l'IA. Tu peux par contre librement renommer le dossier racine.\n\nPlan B : si le téléchargement bug ou si tu veux la dernière version\n\nLe coffre est aussi disponible **sur GitHub**, en source ouverte. Si le lien ci-dessus ne fonctionne pas, ou si tu veux retélécharger un skill ou un dossier précis après avoir cassé quelque chose dans ton coffre : tu peux toujours le récupérer là :\n\n[github.com/EliottMeunierFluid/templatesecondcerveau](https://github.com/EliottMeunierFluid/templatesecondcerveau)\n\nTu peux soit cloner le repo (`git clone`), soit télécharger le ZIP (bouton vert **Code → Download ZIP**). Tu peux aussi piocher juste un fichier ou un dossier précis (par exemple un skill que tu as accidentellement supprimé) sans tout retélécharger.\n\n---\n\n## Étape 2 : Installer Obsidian\n\n![Page d'accueil d'Obsidian](/images/ia-mars-2026/obsidian-homepage.png)\n\n1. Va sur [obsidian.md/download](https://obsidian.md/download)\n2. Télécharge la version pour ton système (Mac, Windows ou Linux)\n3. Installe et lance l'application\n\n> Obsidian, c'est quoi ? Un éditeur de notes en Markdown qui fonctionne 100 % en local sur ton ordinateur. Tes données restent chez toi. C'est ce qui permet à l'IA d'y accéder directement.\n\n> Tu ne connais pas Obsidian ? Va voir la leçon Naviguer dans Obsidian pour les bases (créer une note, naviguer, lier, organiser).\n\n---\n\n## Étape 3 : Ouvrir ton coffre dans Obsidian\n\nUne fois Obsidian lancé, ouvre ton coffre. **Attention au choix du dossier** : ce n'est pas le `Workspace` que tu ouvres, mais le sous-dossier `Second Cerveau` qui se trouve dedans.\n\n1. Dans Obsidian, clique sur **« Open folder as vault »** (Ouvrir un dossier comme coffre)\n2. Sélectionne le sous-dossier `Second Cerveau` à l'intérieur de ton `Workspace`\n3. Clique sur **Ouvrir**\n\n### Pourquoi `Second Cerveau` et pas `Workspace` ?\n\nLe `Workspace` est le dossier parent qui peut héberger plusieurs projets (ton coffre de notes, mais aussi plus tard d'autres repos, sites, apps). Le coffre Obsidian, lui, c'est uniquement le sous-dossier `Second Cerveau`. Tu veux que la sync ne porte que sur ce sous-dossier, pas sur tout le workspace.\n\n### Vérification rapide\n\nUne fois ouvert, tu dois voir dans l'explorateur à gauche :\n\n- `0 INBOX/`\n- `1 PROJETS/`\n- `2 CASQUETTES/`\n- `3 RESSOURCES/`\n- `4 TOOLS/`\n- `5 ARCHIVE/`\n- `_Import/`\n\nSi tu vois tout ça, c'est bon. Ton coffre est ouvert.\n\n---\n\n## Étape 4 : Synchroniser ton coffre\n\nL'objectif : que tes notes soient **accessibles partout** (ordi, téléphone), **sauvegardées dans le cloud** (au cas où ton ordinateur plante), et **chiffrées**.\n\n### Notre recommandation : Obsidian Sync\n\nC'est ce qu'on recommande officiellement pour le bootcamp. **4 € par mois**, et tu obtiens :\n\n- **Chiffrement de bout en bout** : seul toi peux lire tes notes, même Obsidian ne peut pas y accéder\n- **Application mobile** : tes notes sont synchronisées sur Obsidian Mobile (iOS et Android)\n- **Historique des versions** : tu peux remonter à n'importe quel état antérieur d'une note\n- **Synchronisation rapide et stable**\n\nPour 4 € par mois, c'est imbattable.\n\n### Configurer Obsidian Sync\n\n1. Dans Obsidian, ouvre les **Réglages** (icône engrenage en bas à gauche)\n2. Va dans l'onglet **« Compte »** et **crée un compte Obsidian** (ou connecte-toi)\n3. Souscris au **plan Sync (4 €/mois)** depuis ton compte\n4. Reviens dans Obsidian, va dans **Réglages → Sync** et active le **Core plugin Sync**\n5. Clique sur **« Choisir un coffre distant »** puis **« Créer un nouveau coffre »**\n6. Donne-lui un nom (par exemple `Second Cerveau`)\n7. **Définis un mot de passe d'encryption** : **note-le précieusement** dans un gestionnaire de mots de passe. Sans lui, il n'y a aucun moyen de déchiffrer tes notes. Personne ne peut le récupérer pour toi.\n8. Lance la première synchronisation\n\n### Synchroniser sur ton téléphone\n\n1. Télécharge **Obsidian** depuis l'[App Store](https://apps.apple.com/app/obsidian/id1557175442) (iOS) ou le [Play Store](https://play.google.com/store/apps/details?id=md.obsidian) (Android)\n2. Crée un nouveau coffre dans l'app mobile, **sans contenu local**\n3. Active le plugin **Sync**, connecte-toi avec ton compte Obsidian, sélectionne le coffre distant que tu as créé\n4. Entre ton mot de passe d'encryption\n5. Lance la sync : toutes tes notes apparaissent sur ton téléphone\n\nTu as maintenant ton coffre sur ton ordi, sur ton téléphone, et sauvegardé dans le cloud.\n\n### Les alternatives à Obsidian Sync\n\nSi tu ne veux pas payer ou si tu veux plus de flexibilité, deux options principales :\n\nSyncthing\n\nSync peer-to-peer entre tes appareils, gratuit, open source. Pas d'app mobile aussi propre qu'Obsidian Sync, mais ça fonctionne.\n\nsyncthing.net\nGitHub / GitLab / Gitea\n\nSynchronisation via un repo git. Idéal si tu travailles déjà avec git. Permet aussi de collaborer en équipe sur un même coffre. En semaine 3, on installe Gitea sur ton propre serveur pour une version auto-hébergée.\n\ngithub.com\nLa recommandation officielle reste **Obsidian Sync**. C'est ce qui marche le mieux out of the box, surtout pour le mobile.\n\n---\n\n# Partie 2 : installer ton IA\n\nMaintenant que ton coffre vit dans Obsidian et qu'il est synchronisé, on passe à la couche IA.\n\n## Étape 5 : Installer OpenCode Desktop\n\nOpenCode Desktop est l'application qui va te permettre de travailler avec l'IA dans ton coffre.\n\n![Capture d'écran d'OpenCode Desktop](/images/ia-mars-2026/opencode-desktop.png)\n\nOpenCode Desktop : l'app native multi-modèle qu'on utilise dans le bootcamp.\n\n1. Va sur [opencode.ai/download](https://opencode.ai/download)\n2. Télécharge la version pour ton système (macOS Apple Silicon, macOS Intel, ou Windows)\n3. Installe et lance l'application\n\n> Pourquoi OpenCode Desktop ? C'est l'app native multi-modèle qu'on recommande dans ce bootcamp. Elle te permet de connecter plusieurs providers (ChatGPT, OpenRouter, etc.) et de choisir le bon modèle pour la bonne tâche. Tout le détail est dans Comprendre l'anatomie de ton système.\n\n> Tu veux utiliser Claude à la place ? Va voir le tutoriel Configurer Claude Code en complément.\n\n> Tu veux un workflow terminal ? Va voir Utiliser l'IA dans un terminal.\n\n---\n\n## Étape 6 : Prendre un abonnement ChatGPT\n\nPour les tâches sans enjeu de privacy (présentations, sites web, brainstorming, contenu public), un abonnement ChatGPT est le plus rentable. Il s'intègre directement dans OpenCode Desktop, sans coût marginal à l'usage.\n\n1. Va sur [chatgpt.com](https://chatgpt.com) et crée un compte (ou connecte-toi)\n2. Souscris au plan **ChatGPT Plus (20 €/mois)**\n\n### Important : désactive l'entraînement sur tes données\n\nPar défaut, OpenAI utilise tes conversations pour entraîner ses futurs modèles. Désactive-le.\n\n1. Clique sur ta photo de profil en haut à droite, puis **Settings**\n2. Va dans **Data Controls**\n3. Désactive l'option **« Improve the model for everyone »** (ou « Améliorer le modèle pour tout le monde »)\n\nCela empêche OpenAI de stocker et réutiliser tes prompts pour l'entraînement.\n\n---\n\n## Étape 7 : Configurer ton provider zéro rétention (ZDR)\n\nPour les **tâches publiques** (présentations, sites web, brainstorming, contenu destiné à sortir), un modèle **puissant et peu cher** comme **ChatGPT** (étape 6) suffit largement.\n\nMais dès que tu manipules des **données qui te concernent personnellement** ou des **données clients**, il te faut des **modèles privés**, qui ne stockent ni ne réutilisent tes requêtes (ZDR, pour Zero Data Retention). C'est un réflexe à mettre en place **dès le début**, avant que tes données sensibles ne soient déjà passées ailleurs.\n\nPour ça, on te recommande **trois options**. Tu peux en choisir une seule, ou les combiner selon ton usage :\n\nOption 7A\n\nOpenRouter (au token)\n\nTous les modèles open source avec une seule clé, ZDR activable. Idéal pour DeepSeek et pour tester.\n\nOption 7B\n\nSynthetic AI (abonnement)\n\nGLM 5.2 en ZDR, à prix fixe, sans compter les tokens. Le plus simple pour un usage privé quotidien.\n\nOption 7C\n\nAller plus loin\n\nComparer d'autres providers : acteur 100 % européen, plan illimité pour usage agent intensif.\n\n### Option 7A : OpenRouter (au token, pour DeepSeek et les tests)\n\nOpenRouter, c'est le proxy qui te permet d'accéder à tous les modèles open source (DeepSeek, GLM, Qwen, Kimi, Mistral, etc.) avec une seule clé API et une seule facture. C'est ton **défaut au token** : parfait pour **DeepSeek V4 Flash** (ultra bon marché) et pour **tester** de nouveaux modèles à la demande. Bonus : tu peux y **forcer le ZDR** (Zero Data Retention) pour que tes requêtes ne soient ni stockées ni réutilisées.\n\n#### Créer ton compte\n\n1. Va sur [openrouter.ai](https://openrouter.ai) et crée un compte (ou connecte-toi avec Google/GitHub)\n\n#### Activer le ZDR\n\nC'est l'étape qui rend ton usage **privé** :\n\n1. Dans OpenRouter, clique sur ta photo de profil en haut à droite puis **Settings**\n2. Va dans **Privacy** (ou **Data Controls**)\n3. Active l'option **« Zero Data Retention »** (ou équivalent)\n4. OpenRouter ne routera désormais ta requête **que vers des providers qui ont signé un engagement ZDR**. Tes prompts ne sont ni stockés ni utilisés pour l'entraînement.\n\n#### Mettre du crédit\n\n1. Va dans **Credits** (ou **Billing**)\n2. Ajoute **10 €** de crédit pour commencer. Avec DeepSeek V4 Flash à environ 0,14 $/M tokens en input, ces 10 € tiennent des semaines.\n3. Optionnel : active **l'auto-top-up** pour recharger automatiquement quand tu descends sous un seuil\n4. Optionnel : configure des **spending limits** (limites de dépense par jour/mois) pour éviter les surprises\n\n#### Générer ta clé API\n\n1. Va dans **Keys**\n2. Crée une nouvelle clé API, donne-lui un nom (par exemple `OpenCode Desktop`)\n3. **Copie la clé** et garde-la précieusement dans ton gestionnaire de mots de passe : elle ne te sera plus jamais réaffichée\n\n### Option 7B : Synthetic AI (recommandé pour le privé)\n\nPour tout ce qui touche des **données clients ou sensibles**, on te recommande **Synthetic AI** : un abonnement privé qui te donne **GLM 5.2 en ZDR** (zéro rétention), à prix fixe, sans compter les tokens.\n\n#### Créer ton compte et t'abonner\n\n1. Va sur [synthetic.new](https://synthetic.new/?referral=jhBi88o8juvemeR) et crée un compte\n2. Souscris à l'**abonnement (30 $/mois)** : tu obtiens des tokens ZDR sur GLM 5.2, servis rapidement, pour à peu près le prix d'un abonnement ChatGPT\n3. Récupère ta **clé API Synthetic** dans les paramètres de ton compte et garde-la dans ton gestionnaire de mots de passe\n4. Tu la connecteras dans OpenCode à l'étape 9, puis tu sélectionneras **GLM 5.2** comme modèle privé\n\nLa logique de la stack\n\nOpenRouter **au token** pour DeepSeek et les tests, Synthetic AI **en abonnement** pour ton usage privé sur GLM 5.2, ChatGPT pour le créatif et le non-sensible.\n\n### Option 7C : Aller plus loin sur les providers\n\nOpenRouter et Synthetic couvrent déjà l'essentiel. Si tu veux comparer d'autres providers ou avoir un plan B (acteur européen, plan illimité pour usage agent intensif), va voir la leçon [Choisir son modèle IA](/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia) qui détaille les providers que je recommande.\n\nNote\n\nPour démarrer, [OpenRouter](https://openrouter.ai) en mode ZDR couvre 95 % des cas. Si tu veux ensuite aller plus loin (acteur 100 % européen, alternative pour usage agent intensif, plan illimité), va voir la [leçon dédiée](/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia) qui compare les providers que je recommande.\n\n---\n\n## Étape 8 : Ouvrir ton Workspace dans OpenCode Desktop\n\nMaintenant on connecte tout dans OpenCode.\n\n1. Lance **OpenCode Desktop**\n2. Clique sur **« Open workspace »** (ou **« Add workspace »** selon ta version)\n3. Sélectionne le dossier **`Workspace`** (le parent, pas `Second Cerveau`). C'est important : OpenCode doit voir tout le workspace pour pouvoir agir aussi sur les autres projets que tu y ajouteras plus tard.\n4. OpenCode lit automatiquement le fichier `AGENTS.md` à la racine et charge le contexte\n\n---\n\n## Étape 9 : Connecter tes providers\n\nDans OpenCode Desktop, tu vas maintenant connecter ChatGPT et OpenRouter.\n\nChatGPT : connexion par abonnement, pas par clé API\n\nQuand tu connectes ChatGPT, connecte-toi **via ton abonnement (login ChatGPT Plus)**, **surtout pas avec une clé API**. Avec le login, ton abonnement est déjà payé : aucun coût marginal. Une clé API, elle, facture **au token** et la note grimpe très vite.\n\n1. Ouvre les **Settings** d'OpenCode (icône engrenage ou raccourci selon ta version)\n2. Va dans la section **Providers** (ou **Models**)\n3. **Connecte ChatGPT** :  Clique sur **Add provider** puis sélectionne **OpenAI** (ou **ChatGPT**) Connecte-toi avec ton compte ChatGPT Plus. Tu n'as pas besoin de clé API si ton abonnement est lié.\n  - Clique sur **Add provider** puis sélectionne **OpenAI** (ou **ChatGPT**)\n  - Connecte-toi avec ton compte ChatGPT Plus. Tu n'as pas besoin de clé API si ton abonnement est lié.\n\n4. **Connecte OpenRouter** :  Clique sur **Add provider** puis sélectionne **OpenRouter** Colle la clé API que tu as générée à l'option 7A\n  - Clique sur **Add provider** puis sélectionne **OpenRouter**\n  - Colle la clé API que tu as générée à l'option 7A\n\n5. **Connecte Synthetic AI** :  Clique sur **Add provider** puis sélectionne **Synthetic** (ou un provider custom OpenAI-compatible si Synthetic n'est pas listé) Colle la clé API générée à l'option 7B, puis coche **GLM 5.2** : c'est ton modèle privé\n  - Clique sur **Add provider** puis sélectionne **Synthetic** (ou un provider custom OpenAI-compatible si Synthetic n'est pas listé)\n  - Colle la clé API générée à l'option 7B, puis coche **GLM 5.2** : c'est ton modèle privé\n\n6. Vérifie que tu peux sélectionner des modèles dans le sélecteur (tu devrais voir DeepSeek V4 Flash, GLM 5.2, GPT 5.6, etc.)\n\nTu es prêt.\n\n---\n\n## Si tu rencontres un problème\n\n**Obsidian ne voit pas mes dossiers IPCRA** Tu as probablement ouvert le mauvais dossier. Tu dois ouvrir `Second Cerveau` (le sous-dossier), pas `Workspace` (le parent). Refais l'étape 3.\n\n**Obsidian Sync ne synchronise pas**\n\n- Vérifie que ton abonnement Sync est bien actif dans ton compte Obsidian\n- Vérifie que le plugin Sync est activé (Réglages → Plugins core → Sync)\n- Vérifie que tu utilises le bon coffre distant et le bon mot de passe d'encryption\n\n**J'ai perdu le mot de passe d'encryption Obsidian Sync** Personne ne peut le récupérer pour toi. C'est le prix du chiffrement de bout en bout. Si tu l'as perdu, la seule solution est de supprimer le coffre distant et d'en créer un nouveau (tu réuploades alors ton coffre local).\n\n**OpenCode Desktop ne trouve pas les skills** Vérifie que tu as bien ouvert `Workspace` (et pas `Second Cerveau`) dans OpenCode. Le fichier `opencode.json` à la racine indique où chercher les skills (`./Second Cerveau/4 TOOLS/skills`). Si tu ouvres directement `Second Cerveau`, OpenCode ne trouve pas le `opencode.json`.\n\n**Le compte ChatGPT ne se connecte pas dans OpenCode** En dernier recours seulement, tu peux créer une clé API sur [platform.openai.com/api-keys](https://platform.openai.com/api-keys) et la coller dans OpenCode. Attention : la clé API facture **au token**, ce qui chiffre vite. Privilégie toujours le **login ChatGPT** : ton abonnement est déjà payé, aucun coût marginal.\n\n**ZDR pas trouvable dans OpenRouter** L'option peut être dans **Settings → Privacy**, **Settings → Data Controls**, ou **Account → Preferences** selon la version. Cherche « Zero Data Retention » dans les réglages.\n\n---\n\n## Checklist\n\n- Coffre de formation téléchargé et renommé en `Workspace`\n- Obsidian installé\n- Le sous-dossier `Second Cerveau` ouvert dans Obsidian (structure IPCRA visible)\n- Obsidian Sync activé avec mot de passe d'encryption sauvegardé (ou alternative configurée)\n- Obsidian Mobile installé et synchronisé sur le téléphone\n- OpenCode Desktop installé\n- Abonnement ChatGPT Plus actif, entraînement désactivé dans les paramètres\n- Compte OpenRouter créé, ZDR activé, 10 € de crédit, clé API générée et sauvegardée\n- Abonnement Synthetic AI pris (30 $/mois), clé API récupérée, GLM 5.2 prêt à connecter\n- Workspace ouvert dans OpenCode Desktop\n- Providers ChatGPT, OpenRouter et Synthetic AI connectés dans OpenCode\n\n> Output attendu : ton coffre vit dans Obsidian et est synchronisé. OpenCode Desktop est ouvert sur ton workspace avec ChatGPT, OpenRouter et Synthetic AI connectés. Tu es prêt à lancer /initialisation dans la prochaine leçon.\n\n---\n\n## La suite\n\nLa prochaine étape : **lancer `/initialisation`** dans OpenCode Desktop. C'est une conversation guidée de 3 à 4 heures qui remplit ton contexte personnel (qui tu es, ta vision, tes casquettes, tes projets, ta phase de vie).\n\n> Va à la leçon suivante : Initialiser son vault avec /initialisation.",
      "assets": [
        {
          "alt": "Page d'accueil d'Obsidian",
          "original_url": "https://prisme.one/images/ia-mars-2026/obsidian-homepage.png",
          "path": "assets/01-page-d-accueil-d-obsidian.png",
          "bytes": 229633,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Capture d'écran d'OpenCode Desktop",
          "original_url": "https://prisme.one/images/ia-mars-2026/opencode-desktop.png",
          "path": "assets/02-capture-d-ecran-d-opencode-desktop.png",
          "bytes": 1167837,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "Comprendre l'anatomie de ton système",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme"
        },
        {
          "text": "Ouvrir le template sur GitHub",
          "url": "https://github.com/EliottMeunierFluid/templatesecondcerveau"
        },
        {
          "text": "github.com/EliottMeunierFluid/templatesecondcerveau",
          "url": "https://github.com/EliottMeunierFluid/templatesecondcerveau"
        },
        {
          "text": "obsidian.md/download",
          "url": "https://obsidian.md/download"
        },
        {
          "text": "Naviguer dans Obsidian",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-naviguer-obsidian"
        },
        {
          "text": "App Store",
          "url": "https://apps.apple.com/app/obsidian/id1557175442"
        },
        {
          "text": "Play Store",
          "url": "https://play.google.com/store/apps/details?id=md.obsidian"
        },
        {
          "text": "syncthing.net",
          "url": "https://syncthing.net/"
        },
        {
          "text": "github.com",
          "url": "https://github.com/"
        },
        {
          "text": "opencode.ai/download",
          "url": "https://opencode.ai/download"
        },
        {
          "text": "Comprendre l'anatomie de ton système",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme"
        },
        {
          "text": "Configurer Claude Code en complément",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre"
        },
        {
          "text": "Utiliser l'IA dans un terminal",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-utiliser-ia-terminal"
        },
        {
          "text": "chatgpt.com",
          "url": "https://chatgpt.com/"
        },
        {
          "text": "openrouter.ai",
          "url": "https://openrouter.ai/"
        },
        {
          "text": "synthetic.new",
          "url": "https://synthetic.new/?referral=jhBi88o8juvemeR"
        },
        {
          "text": "Choisir son modèle IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia"
        },
        {
          "text": "OpenRouter",
          "url": "https://openrouter.ai/"
        },
        {
          "text": "leçon dédiée",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia"
        },
        {
          "text": "platform.openai.com/api-keys",
          "url": "https://platform.openai.com/api-keys"
        },
        {
          "text": "Initialiser son vault avec /initialisation",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-vault-perso"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/82169eab41614c558a64c3b57f3797cc",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Tutoriel d'installation Prisme One",
          "title_source": "loom-page-title",
          "video_id": "82169eab41614c558a64c3b57f3797cc",
          "watch_url": "https://www.loom.com/share/82169eab41614c558a64c3b57f3797cc"
        },
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/0c06d14542ff46628ae16c06d70113c3",
          "placement_index": 2,
          "provider": "Loom",
          "title": "Bien configurer OpenCode Desktop efficacement",
          "title_source": "loom-page-title",
          "video_id": "0c06d14542ff46628ae16c06d70113c3",
          "watch_url": "https://www.loom.com/share/0c06d14542ff46628ae16c06d70113c3"
        }
      ],
      "captured_at": "2026-08-03T10:04:48.994Z",
      "counts": {
        "code_blocks": 41,
        "headings": 29,
        "iframes": 2,
        "images": 2,
        "links": 21,
        "text_chars": 17145
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "05-semaine-1-opencode",
      "order": 5,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Comment utiliser OpenCode Desktop",
      "slug": "semaine-1-opencode",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-opencode",
      "summary": "Tout pour devenir autonome sur OpenCode Desktop en 20 minutes : brancher tes modèles et tes outils, comprendre l'interface (panneaux, raccourcis, modes build et plan) et ouvrir l'IA au bon endroit pour chaque type de travail.",
      "objective": "Exemples : OpenAI, Anthropic, OpenRouter, Fireworks, DeepInfra, Infomaniak.",
      "expected_output": "Exemples : GPT 5.6, Fable / Claude Opus 4.8, DeepSeek V4 Flash, GLM 5.2, Qwen 3.6.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"comment-utiliser-opencode-desktop\">Comment utiliser OpenCode Desktop</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans cette leçon, je t'explique comment configurer OpenCode Desktop pour qu'il soit parfaitement opérationnel, puis comment l'utiliser au quotidien.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Comment utiliser OpenCode Desktop</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/0c06d14542ff46628ae16c06d70113c3\" title=\"Comment utiliser OpenCode Desktop\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Walkthrough complet : ce qu'est OpenCode, configurer fournisseurs et modèles, connecter des outils, comprendre l'interface, modes plan/build, ouvrir l'IA au bon dossier.</div></div>\n<div class=\"my-6 rounded-xl border-2 border-amber-300 bg-amber-50 p-5\"><div class=\"text-sm font-bold text-amber-900 mb-2\">Note importante : \"Prisme Workspace\", c'est OpenCode Desktop</div><p class=\"text-sm text-amber-900/80 leading-relaxed mb-2\">Dans la vidéo, je parle de <strong>\"Prisme Workspace\"</strong>. C'est un <strong>abus de langage</strong> : Prisme Workspace n'existe plus (en tout cas pas pour le moment, et pas sous cette forme). L'outil qu'on te recommande d'utiliser, c'est tout simplement <strong>OpenCode Desktop</strong>.</p><p class=\"text-sm text-amber-900/80 leading-relaxed\">Donc à chaque fois que tu m'entends dire \"Prisme Workspace\" dans la vidéo, remplace mentalement par <strong>OpenCode Desktop</strong> : c'est le même outil, la même interface, la même configuration. Tout ce que je montre marche exactement pareil.</p></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode, c'est un <strong class=\"font-semibold text-foreground\">harnais agentique open-source</strong> : tu y ouvres un LLM (un modèle qui prédit le token suivant) et le harnais ajoute autour tout ce qui transforme un simple chatbot en agent (coder, appeler des outils, déléguer à des sous-agents, se planifier, s'auto-évaluer, respecter des permissions). C'est pour ça qu'on l'utilise plutôt qu'un chatbot question-réponse : la boucle agentique fait le travail, pas juste la réponse. C'est aussi un outil <strong class=\"font-semibold text-foreground\">ouvert</strong> : tu y branches n'importe quel modèle (ChatGPT, Claude, DeepSeek, GLM, Qwen...) sans dépendre d'un seul fournisseur, et l'interface desktop reste très simple à prendre en main.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-configurer-tes-fournisseurs-et-tes-modèles\">Étape 1 : Configurer tes fournisseurs et tes modèles</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la première chose à faire en arrivant. Clique sur la <strong class=\"font-semibold text-foreground\">roue crantée</strong> en bas à gauche, puis va dans la section <strong class=\"font-semibold text-foreground\">Fournisseurs</strong> et <strong class=\"font-semibold text-foreground\">Modèles</strong>.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"fournisseur-vs-modèle-cest-quoi-la-différence\">Fournisseur vs modèle, c'est quoi la différence ?</h3>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Fournisseur (provider)</div><div class=\"text-base font-bold text-blue-900 mb-2\">L'infrastructure qui fait tourner l'IA</div><p class=\"text-sm text-blue-900/80 mb-2\">Ce sont les serveurs sur lesquels tourne le modèle. Chaque fournisseur a ses propriétés : prix, vitesse, confidentialité, infrastructure géographique.</p><p class=\"text-xs text-blue-700/80\"><strong>Exemples :</strong> OpenAI, Anthropic, OpenRouter, Fireworks, DeepInfra, Infomaniak.</p></div><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Modèle</div><div class=\"text-base font-bold text-emerald-900 mb-2\">Le cerveau, exposé par le fournisseur</div><p class=\"text-sm text-emerald-900/80 mb-2\">Chaque fournisseur propose un catalogue de modèles différents. Certains sont propriétaires (GPT, Claude), d'autres open source (DeepSeek, Qwen, GLM, Kimi, Llama, Gemma).</p><p class=\"text-xs text-emerald-700/80\"><strong>Exemples :</strong> GPT 5.6, Fable / Claude Opus 4.8, DeepSeek V4 Flash, GLM 5.2, Qwen 3.6.</p></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour résumer : <strong class=\"font-semibold text-foreground\">tu choisis ton fournisseur en fonction de ses propriétés (prix, confidentialité, vitesse), puis tu actives chez ce fournisseur les modèles que tu veux utiliser.</strong> Par exemple, Fireworks est un fournisseur qui propose uniquement des modèles open source très optimisés pour tourner vite.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-deux-modes-de-connexion\">Les deux modes de connexion</h3>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">La plupart du temps</div><div class=\"text-base font-bold text-amber-900 mb-2\">Connexion par clé API</div><p class=\"text-sm text-amber-900/80 mb-2\">Tu vas sur le site du fournisseur, tu te connectes, tu génères une <strong>clé API</strong> dans les paramètres de ta plateforme, et tu la colles dans OpenCode Desktop.</p><p class=\"text-xs text-amber-700/80\"><strong>Concerne :</strong> OpenRouter, Fireworks, Infomaniak, DeepInfra, Vercel, Anthropic, et la grande majorité des fournisseurs.</p></div><div class=\"rounded-2xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Cas plus rares</div><div class=\"text-base font-bold text-violet-900 mb-2\">Connexion par OAuth (compte)</div><p class=\"text-sm text-violet-900/80 mb-2\">Tu te connectes directement avec ton compte existant via une fenêtre du navigateur. Pas de clé API à gérer, et tu utilises ton <strong>abonnement</strong> au lieu de payer à la consommation.</p><p class=\"text-xs text-violet-700/80\"><strong>Concerne :</strong> GitHub Copilot, OpenAI (ChatGPT Plus / Pro), Google dans certains cas.</p></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"tutoriel-connecter-openai-via-abonnement-chatgpt\">Tutoriel : connecter OpenAI via abonnement ChatGPT</h3>\n<div class=\"my-6 rounded-2xl border-2 border-rose-300 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-600 mb-1\">Stop : lis ça avant de connecter OpenAI</div><div class=\"text-base font-bold text-rose-900 mb-3\">Si tu as déjà ChatGPT Plus ou Pro, NE mets PAS ta clé API</div><p class=\"text-sm text-rose-900/90 mb-3\">C'est <strong>l'erreur n°1 qui coûte de l'argent</strong> à ceux qui débutent. La <strong>clé API OpenAI</strong> facture <strong>chaque token</strong> que tu consommes, et ça chiffre très vite. Ton abonnement ChatGPT, lui, est <strong>déjà payé</strong> : tu peux l'utiliser dans OpenCode Desktop <strong>sans payer un centime de plus</strong>.</p><p class=\"text-sm text-rose-900/90 mb-3\">Beaucoup de gens croient que \"c'est impossible\" d'utiliser son abonnement ChatGPT dans un outil externe. <strong>C'est faux.</strong> Il suffit de choisir <strong>\"se connecter avec un abonnement existant\"</strong> (connexion OAuth / login OpenAI) au lieu de coller une clé API. C'est exactement ce qu'on fait juste en dessous.</p><div class=\"rounded-xl border border-rose-300 bg-white/60 p-3\"><div class=\"text-sm font-bold text-rose-800 mb-1\">Piège fréquent avec OpenRouter</div><p class=\"text-xs text-rose-900/90\">Dans OpenRouter, <strong>décoche TOUS les modèles GPT</strong>. Sinon tu risques de payer GPT une <strong>deuxième fois</strong>, au token, via OpenRouter, alors que tu l'as déjà via ton abonnement. GPT ne doit être coché <strong>que</strong> dans le fournisseur OpenAI connecté avec ton abonnement.</p></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu cliques pour ajouter OpenAI, OpenCode Desktop te demande :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Veux-tu mettre une clé API ?</strong> (paiement à la consommation, donc plus cher si tu utilises beaucoup) ou</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Veux-tu te connecter avec un abonnement existant ?</strong> (recommandé si tu as déjà ChatGPT Plus ou Pro)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Choisis l'option 2. Une page s'ouvre dans ton navigateur, tu te connectes, tu cliques sur <strong class=\"font-semibold text-foreground\">Continue</strong>, et c'est plié. OpenAI est connecté, et tu peux maintenant sélectionner les modèles que tu veux activer.</p>\n<div class=\"my-6 rounded-xl border-2 border-amber-300 bg-amber-50 p-4\"><div class=\"text-sm font-bold text-amber-800 mb-2\">À savoir sur les abonnements</div><ul class=\"text-sm text-amber-900/80 space-y-2 list-disc list-inside\"><li>Le <strong>mode Pro de GPT 5.6</strong> n'est <strong>pas exposé</strong> via le login ChatGPT dans OpenCode : tu auras <strong>GPT 5.6</strong> et <strong>GPT 5.6 Fast</strong>, largement suffisants pour la plupart des tâches.</li><li><strong>Anthropic</strong> n'autorise plus de connexion par abonnement Claude Pro ou Max dans des apps tierces. Il faut une clé API, donc tu payes à la consommation, ce qui peut vite chiffrer. C'est l'exception. Si tu veux Claude via abonnement, passe par l'app Claude Code en CLI (voir la leçon dédiée).</li></ul></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-barre-du-bas-et-le-sélecteur-de-modèles\">La barre du bas et le sélecteur de modèles</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois tes fournisseurs configurés, tu retrouves tout en bas de ton écran :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Le <strong class=\"font-semibold text-foreground\">sélecteur de modèles</strong> : tous les modèles activés sont listés là.</li>\n<li class=\"leading-7\">Le bouton <strong class=\"font-semibold text-foreground\">Plus</strong> : te redirige vers la fenêtre \"Connecter un fournisseur\".</li>\n<li class=\"leading-7\">Le bouton <strong class=\"font-semibold text-foreground\">Paramètres</strong> : ouvre l'écran de configuration par fournisseur, où tu coches/décoches quels modèles sont visibles dans le sélecteur.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Astuce : <strong class=\"font-semibold text-foreground\">décoche les modèles que tu n'utilises jamais</strong>, sinon ta barre devient un fouillis. Par exemple, sur OpenRouter, il y a des centaines de modèles disponibles. Garde-en 5 à 10 pertinents et désactive le reste pour avoir une interface propre.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-connecter-tes-outils-mcp\">Étape 2 : Connecter tes outils (MCP)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sous le capot, OpenCode Desktop fait tourner OpenCode. Donc connecter des outils à OpenCode Desktop, c'est en réalité connecter des outils à OpenCode. La bonne nouvelle : tu as déjà tout ce qu'il faut dans ton coffre du bootcamp.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-méthode-recommandée-connect-mcp\">La méthode recommandée : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode Desktop, tape simplement :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/connect-mcp\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis le nom de l'outil que tu veux ajouter (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">notion</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">firecrawl</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">playwright</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">microsoft 365</code>). L'IA te guide étape par étape : elle identifie le bon package, récupère les variables d'environnement nécessaires, patche ta configuration sans rien casser de ce qui existe déjà.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Par défaut, le MCP est ajouté à la <strong class=\"font-semibold text-foreground\">configuration OpenCode globale</strong> de ton ordinateur. Cela veut dire que <strong class=\"font-semibold text-foreground\">tous tes workspaces</strong> ont accès à l'outil. Si tu changes de workspace (par exemple, du workspace démo à ton workspace principal), tu retrouves les mêmes MCP disponibles.</p>\n<div class=\"my-6 rounded-xl border-2 border-amber-300 bg-amber-50 p-4\"><div class=\"text-sm font-bold text-amber-800 mb-2\">MCP et contexte : active-les seulement quand tu en as besoin</div><p class=\"text-sm text-amber-900/80 leading-relaxed mb-2\">Un MCP chargé au démarrage rajoute facilement 15 000 à 20 000 tokens de contexte à chaque conversation : ça te coûte de l'argent et ça remplit le contexte plus vite. La bonne pratique : démarre tes conversations avec <strong>zéro MCP activé</strong>, et active-les uniquement pour la tâche qui en a besoin.</p><p class=\"text-sm text-amber-900/80 leading-relaxed\">Quand c'est possible, privilégie la version <strong>CLI</strong> d'un outil (ligne de commande) plutôt que sa version MCP : c'est plus rapide, plus déterministe, et ça consomme beaucoup moins de tokens. La plupart des outils que tu connectes en MCP ont un équivalent CLI.</p></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-trois-sections-de-paramètres\">Les trois sections de Paramètres</h3>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-3 gap-3\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4\"><div class=\"text-sm font-bold text-emerald-800 mb-1\">Serveurs MCP</div><div class=\"text-xs text-emerald-700\">Liste des MCP connectés. Tu n'as pas à toucher cette section directement, <code>/connect-mcp</code> s'en occupe.</div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Serveurs (non-MCP)</div><div class=\"text-xs text-zinc-600\">Tu n'as pas besoin de t'en occuper pour le moment.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-4\"><div class=\"text-sm font-bold text-violet-800 mb-1\">Plugins OpenCode</div><div class=\"text-xs text-violet-700\">Si tu vois un plugin OpenCode intéressant (par exemple \"Oh My OpenCode\"), tu peux demander à l'IA \"installe-moi ce plugin OpenCode\" et il apparaîtra directement dans cette section.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-comprendre-linterface\">Étape 3 : Comprendre l'interface</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-barre-latérale-icône-crayon\">La barre latérale (icône crayon)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu cliques sur le <strong class=\"font-semibold text-foreground\">crayon</strong> en haut à droite, une barre latérale s'ouvre. Elle te donne plusieurs vues utiles :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Vue Statistiques</div><div class=\"text-sm font-bold text-blue-900 mb-2\">Comprendre ce qui se passe dans ta session</div><ul class=\"text-xs text-blue-700/80 space-y-1 list-disc list-inside\"><li>Nombre de tokens en entrée et en sortie</li><li>Modèle utilisé pour chaque message</li><li>Voir le <strong>JSON exact</strong> envoyé à l'IA (très utile pour comprendre/déboguer)</li></ul></div><div class=\"rounded-2xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Vue Console</div><div class=\"text-sm font-bold text-violet-900 mb-2\">Suivre l'utilisation du contexte</div><ul class=\"text-xs text-violet-700/80 space-y-1 list-disc list-inside\"><li>Pourcentage d'appels d'outils (par exemple \"67 % d'appels d'outils\")</li><li>Limite de contexte et où tu en es</li><li>Utilisation du contexte par message</li></ul></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"léditeur-de-notes-intégré\">L'éditeur de notes intégré</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Toujours dans la barre latérale, tu peux ouvrir le <strong class=\"font-semibold text-foreground\">panneau Documents</strong> et éditer une note directement. C'est un éditeur Markdown léger, parfait pour travailler sur le même fichier que l'IA dans la même interface.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tu peux ouvrir <strong class=\"font-semibold text-foreground\">plusieurs notes en même temps</strong> et les empiler sur la droite de ton écran.</li>\n<li class=\"leading-7\">Syntaxe Markdown : barre en haut pour les commandes courantes, ou directement avec les caractères (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">###</code> pour un titre de niveau 3, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">**texte**</code> pour gras, etc.).</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-ouvrir-lia-dans-le-bon-dossier\">Étape 4 : Ouvrir l'IA dans le bon dossier</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le principe le plus important. <strong class=\"font-semibold text-foreground\">L'IA voit ce qui est dans le dossier où tu l'ouvres.</strong> Rien d'autre.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Si tu suis le bootcamp</div><div class=\"text-sm font-bold text-emerald-900 mb-2\">Ouvre ton Workspace complet</div><p class=\"text-xs text-emerald-700/80\">Le dossier <code>Workspace</code> (avec ton <code>Second Cerveau</code>, ton <code>AGENTS.md</code>, tes skills) devient le projet global d'OpenCode Desktop. L'IA a accès à tout ton contexte et à tous tes projets séquencés à l'intérieur.</p></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Pour un projet isolé</div><div class=\"text-sm font-bold text-blue-900 mb-2\">Ouvre uniquement le dossier du projet</div><p class=\"text-xs text-blue-700/80\">Tu travailles sur une présentation, un site, une analyse client ? Crée un dossier dédié, mets-y tes notes et tes fichiers, ouvre OpenCode Desktop à l'intérieur. L'IA n'a que ce contexte, plus rapide et plus précis.</p></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"attacher-un-fichier-ou-pointer-avec\">Attacher un fichier ou pointer avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux enrichir ton contexte de deux manières en plein milieu d'une conversation :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Attacher un fichier</strong> : clique sur l'icône trombone, sélectionne un fichier sur ton ordinateur.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Arobase (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@</code>)</strong> : tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@</code> puis le début du nom du fichier (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@weekly</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@embracing</code>), et tu obtiens une recherche rapide dans ton coffre. Tu sélectionnes la note et elle est référencée. <strong class=\"font-semibold text-foreground\">Excellent réflexe</strong> pour pointer vers une note précise sans avoir à la copier-coller.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-5-niveau-deffort-et-modes-build-plan\">Étape 5 : Niveau d'effort et modes (build / plan)</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"niveau-deffort\">Niveau d'effort</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Selon le modèle, tu as parfois une option <strong class=\"font-semibold text-foreground\">niveau d'effort</strong> (thinking on/off). Plus le niveau est élevé, plus le modèle va prendre le temps de réfléchir avant de répondre. Certains modèles te le proposent, d'autres sont en non-thinking par défaut (réponse directe, pas de phase de réflexion).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"build-mode-vs-plan-mode\">Build mode vs Plan mode</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as deux modes principaux dans le sélecteur en bas de la barre de prompt :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-sm font-bold text-violet-800 mb-1\">Plan mode</div><div class=\"text-xs text-violet-700/80\">L'IA réfléchit, lit les fichiers, propose un plan structuré. Elle ne touche à rien tant que tu n'as pas validé.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-bold text-emerald-800 mb-1\">Build mode</div><div class=\"text-xs text-emerald-700/80\">L'IA exécute le plan validé : écrit, édite, crée. À utiliser après le plan mode pour le travail concret.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux aussi <strong class=\"font-semibold text-foreground\">ajouter des modes custom</strong> selon tes usages. Tout cela est détaillé dans la prochaine leçon \"Bien utiliser l'IA\".</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-6-recherche-rapide-avec-cmdk\">Étape 6 : Recherche rapide avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Cmd+K</code></h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le raccourci magique : <strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Cmd+K</code></strong> ouvre une barre de recherche universelle. Tu peux chercher :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Des fichiers</strong> : par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">meeting review skill</code> pour ouvrir la note correspondante.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Des sessions</strong> : revenir à une conversation précédente.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Des commandes</strong> : lancer une commande (skill) sans avoir à la taper.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est l'équivalent du Spotlight du Mac, mais pour ton workspace. À utiliser tout le temps.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"si-tu-rencontres-un-problème\">Si tu rencontres un problème</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu rencontres un bug ou un comportement étrange dans OpenCode Desktop :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Reporter sur GitHub</strong> : ouvre une issue sur le repo public d'OpenCode.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Nous écrire un email</strong> à <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">contact@perspectives.ac</code> avec une description et idéalement un screenshot.</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On corrige vite, et chaque retour participant améliore l'app pour tout le monde.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Au moins 1 fournisseur configuré (clé API ou OAuth) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Au moins 1 fournisseur configuré (clé API ou OAuth)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Modèles que j'utilise vraiment cochés dans le sélecteur (les autres décochés) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Modèles que j'utilise vraiment cochés dans le sélecteur (les autres décochés)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Au moins 1 MCP connecté via /connect-mcp (Firecrawl ou autre) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Au moins 1 MCP connecté via /connect-mcp (Firecrawl ou autre)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais ouvrir la barre latérale (crayon) pour voir mes statistiques de contexte — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais ouvrir la barre latérale (crayon) pour voir mes statistiques de contexte</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais utiliser @ pour pointer un fichier de mon coffre dans le prompt — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais utiliser @ pour pointer un fichier de mon coffre dans le prompt</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais Cmd+K pour la recherche rapide — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais Cmd+K pour la recherche rapide</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais différencier Plan mode (réfléchir) et Build mode (exécuter) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais différencier Plan mode (réfléchir) et Build mode (exécuter)</span></li></ul>",
      "content_markdown": "## Comment utiliser OpenCode Desktop\n\nDans cette leçon, je t'explique comment configurer OpenCode Desktop pour qu'il soit parfaitement opérationnel, puis comment l'utiliser au quotidien.\n\nComment utiliser OpenCode Desktop\n\nWalkthrough complet : ce qu'est OpenCode, configurer fournisseurs et modèles, connecter des outils, comprendre l'interface, modes plan/build, ouvrir l'IA au bon dossier.\n\nNote importante : \"Prisme Workspace\", c'est OpenCode Desktop\n\nDans la vidéo, je parle de **\"Prisme Workspace\"**. C'est un **abus de langage** : Prisme Workspace n'existe plus (en tout cas pas pour le moment, et pas sous cette forme). L'outil qu'on te recommande d'utiliser, c'est tout simplement **OpenCode Desktop**.\n\nDonc à chaque fois que tu m'entends dire \"Prisme Workspace\" dans la vidéo, remplace mentalement par **OpenCode Desktop** : c'est le même outil, la même interface, la même configuration. Tout ce que je montre marche exactement pareil.\n\nOpenCode, c'est un **harnais agentique open-source** : tu y ouvres un LLM (un modèle qui prédit le token suivant) et le harnais ajoute autour tout ce qui transforme un simple chatbot en agent (coder, appeler des outils, déléguer à des sous-agents, se planifier, s'auto-évaluer, respecter des permissions). C'est pour ça qu'on l'utilise plutôt qu'un chatbot question-réponse : la boucle agentique fait le travail, pas juste la réponse. C'est aussi un outil **ouvert** : tu y branches n'importe quel modèle (ChatGPT, Claude, DeepSeek, GLM, Qwen...) sans dépendre d'un seul fournisseur, et l'interface desktop reste très simple à prendre en main.\n\n---\n\n## Étape 1 : Configurer tes fournisseurs et tes modèles\n\nC'est la première chose à faire en arrivant. Clique sur la **roue crantée** en bas à gauche, puis va dans la section **Fournisseurs** et **Modèles**.\n\n### Fournisseur vs modèle, c'est quoi la différence ?\n\nFournisseur (provider)\n\nL'infrastructure qui fait tourner l'IA\n\nCe sont les serveurs sur lesquels tourne le modèle. Chaque fournisseur a ses propriétés : prix, vitesse, confidentialité, infrastructure géographique.\n\n**Exemples :** OpenAI, Anthropic, OpenRouter, Fireworks, DeepInfra, Infomaniak.\n\nModèle\n\nLe cerveau, exposé par le fournisseur\n\nChaque fournisseur propose un catalogue de modèles différents. Certains sont propriétaires (GPT, Claude), d'autres open source (DeepSeek, Qwen, GLM, Kimi, Llama, Gemma).\n\n**Exemples :** GPT 5.6, Fable / Claude Opus 4.8, DeepSeek V4 Flash, GLM 5.2, Qwen 3.6.\n\nPour résumer : **tu choisis ton fournisseur en fonction de ses propriétés (prix, confidentialité, vitesse), puis tu actives chez ce fournisseur les modèles que tu veux utiliser.** Par exemple, Fireworks est un fournisseur qui propose uniquement des modèles open source très optimisés pour tourner vite.\n\n### Les deux modes de connexion\n\nLa plupart du temps\n\nConnexion par clé API\n\nTu vas sur le site du fournisseur, tu te connectes, tu génères une **clé API** dans les paramètres de ta plateforme, et tu la colles dans OpenCode Desktop.\n\n**Concerne :** OpenRouter, Fireworks, Infomaniak, DeepInfra, Vercel, Anthropic, et la grande majorité des fournisseurs.\n\nCas plus rares\n\nConnexion par OAuth (compte)\n\nTu te connectes directement avec ton compte existant via une fenêtre du navigateur. Pas de clé API à gérer, et tu utilises ton **abonnement** au lieu de payer à la consommation.\n\n**Concerne :** GitHub Copilot, OpenAI (ChatGPT Plus / Pro), Google dans certains cas.\n\n### Tutoriel : connecter OpenAI via abonnement ChatGPT\n\nStop : lis ça avant de connecter OpenAI\n\nSi tu as déjà ChatGPT Plus ou Pro, NE mets PAS ta clé API\n\nC'est **l'erreur n°1 qui coûte de l'argent** à ceux qui débutent. La **clé API OpenAI** facture **chaque token** que tu consommes, et ça chiffre très vite. Ton abonnement ChatGPT, lui, est **déjà payé** : tu peux l'utiliser dans OpenCode Desktop **sans payer un centime de plus**.\n\nBeaucoup de gens croient que \"c'est impossible\" d'utiliser son abonnement ChatGPT dans un outil externe. **C'est faux.** Il suffit de choisir **\"se connecter avec un abonnement existant\"** (connexion OAuth / login OpenAI) au lieu de coller une clé API. C'est exactement ce qu'on fait juste en dessous.\n\nPiège fréquent avec OpenRouter\n\nDans OpenRouter, **décoche TOUS les modèles GPT**. Sinon tu risques de payer GPT une **deuxième fois**, au token, via OpenRouter, alors que tu l'as déjà via ton abonnement. GPT ne doit être coché **que** dans le fournisseur OpenAI connecté avec ton abonnement.\n\nQuand tu cliques pour ajouter OpenAI, OpenCode Desktop te demande :\n\n1. **Veux-tu mettre une clé API ?** (paiement à la consommation, donc plus cher si tu utilises beaucoup) ou\n2. **Veux-tu te connecter avec un abonnement existant ?** (recommandé si tu as déjà ChatGPT Plus ou Pro)\n\nChoisis l'option 2. Une page s'ouvre dans ton navigateur, tu te connectes, tu cliques sur **Continue**, et c'est plié. OpenAI est connecté, et tu peux maintenant sélectionner les modèles que tu veux activer.\n\nÀ savoir sur les abonnements\n\n- Le **mode Pro de GPT 5.6** n'est **pas exposé** via le login ChatGPT dans OpenCode : tu auras **GPT 5.6** et **GPT 5.6 Fast**, largement suffisants pour la plupart des tâches.\n- **Anthropic** n'autorise plus de connexion par abonnement Claude Pro ou Max dans des apps tierces. Il faut une clé API, donc tu payes à la consommation, ce qui peut vite chiffrer. C'est l'exception. Si tu veux Claude via abonnement, passe par l'app Claude Code en CLI (voir la leçon dédiée).\n\n### La barre du bas et le sélecteur de modèles\n\nUne fois tes fournisseurs configurés, tu retrouves tout en bas de ton écran :\n\n- Le **sélecteur de modèles** : tous les modèles activés sont listés là.\n- Le bouton **Plus** : te redirige vers la fenêtre \"Connecter un fournisseur\".\n- Le bouton **Paramètres** : ouvre l'écran de configuration par fournisseur, où tu coches/décoches quels modèles sont visibles dans le sélecteur.\n\nAstuce : **décoche les modèles que tu n'utilises jamais**, sinon ta barre devient un fouillis. Par exemple, sur OpenRouter, il y a des centaines de modèles disponibles. Garde-en 5 à 10 pertinents et désactive le reste pour avoir une interface propre.\n\n---\n\n## Étape 2 : Connecter tes outils (MCP)\n\nSous le capot, OpenCode Desktop fait tourner OpenCode. Donc connecter des outils à OpenCode Desktop, c'est en réalité connecter des outils à OpenCode. La bonne nouvelle : tu as déjà tout ce qu'il faut dans ton coffre du bootcamp.\n\n### La méthode recommandée : `/connect-mcp`\n\nDans OpenCode Desktop, tape simplement :\n\n```\n/connect-mcp\n```\n\nPuis le nom de l'outil que tu veux ajouter (par exemple `notion`, `firecrawl`, `playwright`, `microsoft 365`). L'IA te guide étape par étape : elle identifie le bon package, récupère les variables d'environnement nécessaires, patche ta configuration sans rien casser de ce qui existe déjà.\n\nPar défaut, le MCP est ajouté à la **configuration OpenCode globale** de ton ordinateur. Cela veut dire que **tous tes workspaces** ont accès à l'outil. Si tu changes de workspace (par exemple, du workspace démo à ton workspace principal), tu retrouves les mêmes MCP disponibles.\n\nMCP et contexte : active-les seulement quand tu en as besoin\n\nUn MCP chargé au démarrage rajoute facilement 15 000 à 20 000 tokens de contexte à chaque conversation : ça te coûte de l'argent et ça remplit le contexte plus vite. La bonne pratique : démarre tes conversations avec **zéro MCP activé**, et active-les uniquement pour la tâche qui en a besoin.\n\nQuand c'est possible, privilégie la version **CLI** d'un outil (ligne de commande) plutôt que sa version MCP : c'est plus rapide, plus déterministe, et ça consomme beaucoup moins de tokens. La plupart des outils que tu connectes en MCP ont un équivalent CLI.\n\n### Les trois sections de Paramètres\n\nServeurs MCP\n\nListe des MCP connectés. Tu n'as pas à toucher cette section directement, `/connect-mcp` s'en occupe.\n\nServeurs (non-MCP)\n\nTu n'as pas besoin de t'en occuper pour le moment.\n\nPlugins OpenCode\n\nSi tu vois un plugin OpenCode intéressant (par exemple \"Oh My OpenCode\"), tu peux demander à l'IA \"installe-moi ce plugin OpenCode\" et il apparaîtra directement dans cette section.\n\n---\n\n## Étape 3 : Comprendre l'interface\n\n### La barre latérale (icône crayon)\n\nQuand tu cliques sur le **crayon** en haut à droite, une barre latérale s'ouvre. Elle te donne plusieurs vues utiles :\n\nVue Statistiques\n\nComprendre ce qui se passe dans ta session\n\n- Nombre de tokens en entrée et en sortie\n- Modèle utilisé pour chaque message\n- Voir le **JSON exact** envoyé à l'IA (très utile pour comprendre/déboguer)\n\nVue Console\n\nSuivre l'utilisation du contexte\n\n- Pourcentage d'appels d'outils (par exemple \"67 % d'appels d'outils\")\n- Limite de contexte et où tu en es\n- Utilisation du contexte par message\n\n### L'éditeur de notes intégré\n\nToujours dans la barre latérale, tu peux ouvrir le **panneau Documents** et éditer une note directement. C'est un éditeur Markdown léger, parfait pour travailler sur le même fichier que l'IA dans la même interface.\n\n- Tu peux ouvrir **plusieurs notes en même temps** et les empiler sur la droite de ton écran.\n- Syntaxe Markdown : barre en haut pour les commandes courantes, ou directement avec les caractères (`###` pour un titre de niveau 3, `**texte**` pour gras, etc.).\n\n---\n\n## Étape 4 : Ouvrir l'IA dans le bon dossier\n\nC'est le principe le plus important. **L'IA voit ce qui est dans le dossier où tu l'ouvres.** Rien d'autre.\n\nSi tu suis le bootcamp\n\nOuvre ton Workspace complet\n\nLe dossier `Workspace` (avec ton `Second Cerveau`, ton `AGENTS.md`, tes skills) devient le projet global d'OpenCode Desktop. L'IA a accès à tout ton contexte et à tous tes projets séquencés à l'intérieur.\n\nPour un projet isolé\n\nOuvre uniquement le dossier du projet\n\nTu travailles sur une présentation, un site, une analyse client ? Crée un dossier dédié, mets-y tes notes et tes fichiers, ouvre OpenCode Desktop à l'intérieur. L'IA n'a que ce contexte, plus rapide et plus précis.\n\n### Attacher un fichier ou pointer avec `@`\n\nTu peux enrichir ton contexte de deux manières en plein milieu d'une conversation :\n\n- **Attacher un fichier** : clique sur l'icône trombone, sélectionne un fichier sur ton ordinateur.\n- **Arobase (`@`)** : tape `@` puis le début du nom du fichier (par exemple `@weekly` ou `@embracing`), et tu obtiens une recherche rapide dans ton coffre. Tu sélectionnes la note et elle est référencée. **Excellent réflexe** pour pointer vers une note précise sans avoir à la copier-coller.\n\n---\n\n## Étape 5 : Niveau d'effort et modes (build / plan)\n\n### Niveau d'effort\n\nSelon le modèle, tu as parfois une option **niveau d'effort** (thinking on/off). Plus le niveau est élevé, plus le modèle va prendre le temps de réfléchir avant de répondre. Certains modèles te le proposent, d'autres sont en non-thinking par défaut (réponse directe, pas de phase de réflexion).\n\n### Build mode vs Plan mode\n\nTu as deux modes principaux dans le sélecteur en bas de la barre de prompt :\n\nPlan mode\n\nL'IA réfléchit, lit les fichiers, propose un plan structuré. Elle ne touche à rien tant que tu n'as pas validé.\n\nBuild mode\n\nL'IA exécute le plan validé : écrit, édite, crée. À utiliser après le plan mode pour le travail concret.\n\nTu peux aussi **ajouter des modes custom** selon tes usages. Tout cela est détaillé dans la prochaine leçon \"Bien utiliser l'IA\".\n\n---\n\n## Étape 6 : Recherche rapide avec `Cmd+K`\n\nLe raccourci magique : **`Cmd+K`** ouvre une barre de recherche universelle. Tu peux chercher :\n\n- **Des fichiers** : par exemple `meeting review skill` pour ouvrir la note correspondante.\n- **Des sessions** : revenir à une conversation précédente.\n- **Des commandes** : lancer une commande (skill) sans avoir à la taper.\n\nC'est l'équivalent du Spotlight du Mac, mais pour ton workspace. À utiliser tout le temps.\n\n---\n\n## Si tu rencontres un problème\n\nSi tu rencontres un bug ou un comportement étrange dans OpenCode Desktop :\n\n1. **Reporter sur GitHub** : ouvre une issue sur le repo public d'OpenCode.\n2. **Nous écrire un email** à `contact@perspectives.ac` avec une description et idéalement un screenshot.\n\nOn corrige vite, et chaque retour participant améliore l'app pour tout le monde.\n\n---\n\n- Au moins 1 fournisseur configuré (clé API ou OAuth)\n- Modèles que j'utilise vraiment cochés dans le sélecteur (les autres décochés)\n- Au moins 1 MCP connecté via /connect-mcp (Firecrawl ou autre)\n- Je sais ouvrir la barre latérale (crayon) pour voir mes statistiques de contexte\n- Je sais utiliser @ pour pointer un fichier de mon coffre dans le prompt\n- Je connais Cmd+K pour la recherche rapide\n- Je sais différencier Plan mode (réfléchir) et Build mode (exécuter)",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/0c06d14542ff46628ae16c06d70113c3",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Bien configurer OpenCode Desktop efficacement",
          "title_source": "loom-page-title",
          "video_id": "0c06d14542ff46628ae16c06d70113c3",
          "watch_url": "https://www.loom.com/share/0c06d14542ff46628ae16c06d70113c3"
        }
      ],
      "captured_at": "2026-08-03T10:04:52.215Z",
      "counts": {
        "code_blocks": 22,
        "headings": 19,
        "iframes": 1,
        "images": 0,
        "links": 0,
        "text_chars": 12109
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "06-semaine-1-naviguer-obsidian",
      "order": 6,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Naviguer dans Obsidian",
      "slug": "semaine-1-naviguer-obsidian",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-naviguer-obsidian",
      "summary": "Les bases pour se déplacer dans Obsidian : créer des notes, naviguer, lier, organiser.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"apprendre-à-naviguer-dans-obsidian\">Apprendre à naviguer dans Obsidian</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avant de configurer ton vault, prends 15 minutes pour te familiariser avec Obsidian. Cette vidéo te montre les bases : créer un fichier, naviguer entre les notes, organiser tes dossiers, et les raccourcis essentiels.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Tutoriel Obsidian : prise en main</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.youtube-nocookie.com/embed/i8527Kyjqvc\" title=\"Tutoriel Obsidian : prise en main\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Les bases pour se déplacer dans Obsidian en 15 minutes.</div></div>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"lessentiel-à-retenir\">L'essentiel à retenir</h3>\n<div class=\"my-8 max-w-md mx-auto\"><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"font-bold text-violet-700 mb-3 text-center\">Raccourcis essentiels</div><div class=\"space-y-3\"><div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm text-violet-600\">Créer une note</div><div class=\"rounded bg-violet-100 px-2 py-0.5 text-xs font-mono font-bold text-violet-700\">Cmd + N</div></div><div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm text-violet-600\">Chercher une note</div><div class=\"rounded bg-violet-100 px-2 py-0.5 text-xs font-mono font-bold text-violet-700\">Cmd + O</div></div><div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm text-violet-600\">Lien entre notes</div><div class=\"rounded bg-violet-100 px-2 py-0.5 text-xs font-mono font-bold text-violet-700\">[[</div></div><div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm text-violet-600\">Vue graphe</div><div class=\"rounded bg-violet-100 px-2 py-0.5 text-xs font-mono font-bold text-violet-700\">Cmd + G</div></div><div class=\"flex items-center justify-between gap-4\"><div class=\"text-sm text-violet-600\">Palette de commandes</div><div class=\"rounded bg-violet-100 px-2 py-0.5 text-xs font-mono font-bold text-violet-700\">Cmd + P</div></div></div></div></div>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Créer une note</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Ctrl/Cmd + N</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Chercher une note</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Ctrl/Cmd + O</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Lien entre notes</strong> : tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[</code> puis le nom de la note</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Déplacer un fichier</strong> : drag &amp; drop dans l'explorateur de fichiers à gauche</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Vue graphe</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Ctrl/Cmd + G</code> pour voir les connexions entre tes notes</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas besoin de tout maîtriser maintenant. L'important c'est de savoir créer, chercher et lier des notes. Le reste viendra en pratiquant.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pour-aller-plus-loin-les-bases-dobsidian-en-profondeur\">Pour aller plus loin : les bases d'Obsidian en profondeur</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces vidéos viennent de mes formations Atomic Knowledge et Atomic Notes. Pas obligatoires, mais elles te font gagner du temps si tu veux maîtriser vraiment l'outil avant d'attaquer le reste de la semaine 1.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Tutoriel Obsidian (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/92af83ad-3a6b-4c3f-8133-fe6dfe069bc5?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Tutoriel Obsidian (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Tour complet de l'interface : panneaux, onglets, settings, le tour du propriétaire.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Le formatage et le markdown dans Obsidian (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/922a9462-8e0f-4387-9ce7-1820c9c62402?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Le formatage et le markdown dans Obsidian (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Toutes les syntaxes markdown utiles pour écrire vite et bien dans tes notes.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">La recherche dans Obsidian (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/79efafb1-2329-49e5-99d9-7a4d07ed2afc?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"La recherche dans Obsidian (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Retrouver n'importe quelle note en quelques secondes : recherche, opérateurs, filtres.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">La vue graphique (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/520c4f44-6fda-41fe-a0fb-2b8785bd27f5?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"La vue graphique (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">L'outil emblématique d'Obsidian : visualiser les connexions entre toutes tes notes.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai regardé la vidéo d'introduction à Obsidian — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai regardé la vidéo d'introduction à Obsidian</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais créer une note (Ctrl/Cmd + N) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais créer une note (Ctrl/Cmd + N)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais chercher une note (Ctrl/Cmd + O) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais chercher une note (Ctrl/Cmd + O)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais créer un lien entre notes avec [[ ]] — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais créer un lien entre notes avec [[ ]]</span></li></ul>",
      "content_markdown": "## Apprendre à naviguer dans Obsidian\n\nAvant de configurer ton vault, prends 15 minutes pour te familiariser avec Obsidian. Cette vidéo te montre les bases : créer un fichier, naviguer entre les notes, organiser tes dossiers, et les raccourcis essentiels.\n\nTutoriel Obsidian : prise en main\n\nLes bases pour se déplacer dans Obsidian en 15 minutes.\n\n---\n\n### L'essentiel à retenir\n\nRaccourcis essentiels\n\nCréer une note\n\nCmd + N\n\nChercher une note\n\nCmd + O\n\nLien entre notes\n\n[[\n\nVue graphe\n\nCmd + G\n\nPalette de commandes\n\nCmd + P\n\n- **Créer une note** : `Ctrl/Cmd + N`\n- **Chercher une note** : `Ctrl/Cmd + O`\n- **Lien entre notes** : tape `[[` puis le nom de la note\n- **Déplacer un fichier** : drag & drop dans l'explorateur de fichiers à gauche\n- **Vue graphe** : `Ctrl/Cmd + G` pour voir les connexions entre tes notes\n\nTu n'as pas besoin de tout maîtriser maintenant. L'important c'est de savoir créer, chercher et lier des notes. Le reste viendra en pratiquant.\n\n---\n\n## Pour aller plus loin : les bases d'Obsidian en profondeur\n\nCes vidéos viennent de mes formations Atomic Knowledge et Atomic Notes. Pas obligatoires, mais elles te font gagner du temps si tu veux maîtriser vraiment l'outil avant d'attaquer le reste de la semaine 1.\n\nTutoriel Obsidian (Atomic Knowledge)\n\nTour complet de l'interface : panneaux, onglets, settings, le tour du propriétaire.\n\nLe formatage et le markdown dans Obsidian (Atomic Knowledge)\n\nToutes les syntaxes markdown utiles pour écrire vite et bien dans tes notes.\n\nLa recherche dans Obsidian (Atomic Knowledge)\n\nRetrouver n'importe quelle note en quelques secondes : recherche, opérateurs, filtres.\n\nLa vue graphique (Atomic Knowledge)\n\nL'outil emblématique d'Obsidian : visualiser les connexions entre toutes tes notes.\n\n---\n\n## Checklist\n\n- J'ai regardé la vidéo d'introduction à Obsidian\n- Je sais créer une note (Ctrl/Cmd + N)\n- Je sais chercher une note (Ctrl/Cmd + O)\n- Je sais créer un lien entre notes avec [[ ]]",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.youtube-nocookie.com/embed/i8527Kyjqvc",
          "placement_index": 1,
          "provider": "YouTube",
          "title": "Tutoriel Obsidian : prise en main",
          "title_source": "iframe-title",
          "video_id": "i8527Kyjqvc",
          "watch_url": "https://www.youtube.com/watch?v=i8527Kyjqvc"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/92af83ad-3a6b-4c3f-8133-fe6dfe069bc5?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Tutoriel Obsidian",
          "title_source": "iframe-title",
          "video_id": "92af83ad-3a6b-4c3f-8133-fe6dfe069bc5",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/92af83ad-3a6b-4c3f-8133-fe6dfe069bc5?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/922a9462-8e0f-4387-9ce7-1820c9c62402?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 3,
          "provider": "Bunny Stream",
          "title": "Le formatage et le markdown dans Obsidian",
          "title_source": "iframe-title",
          "video_id": "922a9462-8e0f-4387-9ce7-1820c9c62402",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/922a9462-8e0f-4387-9ce7-1820c9c62402?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/79efafb1-2329-49e5-99d9-7a4d07ed2afc?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 4,
          "provider": "Bunny Stream",
          "title": "La recherche dans Obsidian",
          "title_source": "iframe-title",
          "video_id": "79efafb1-2329-49e5-99d9-7a4d07ed2afc",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/79efafb1-2329-49e5-99d9-7a4d07ed2afc?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/520c4f44-6fda-41fe-a0fb-2b8785bd27f5?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 5,
          "provider": "Bunny Stream",
          "title": "La vue graphique",
          "title_source": "iframe-title",
          "video_id": "520c4f44-6fda-41fe-a0fb-2b8785bd27f5",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/520c4f44-6fda-41fe-a0fb-2b8785bd27f5?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        }
      ],
      "captured_at": "2026-08-03T10:04:53.297Z",
      "counts": {
        "code_blocks": 4,
        "headings": 4,
        "iframes": 5,
        "images": 0,
        "links": 0,
        "text_chars": 1858
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "07-semaine-1-choisir-modele-ia",
      "order": 7,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Choisir son modèle IA",
      "slug": "semaine-1-choisir-modele-ia",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-choisir-modele-ia",
      "summary": "Comparer les modèles via Artificial Analysis, tester via OpenRouter ZDR, et trancher : DeepSeek V4 Flash, GLM 5.2, Kimi 2.6, Qwen pour l'open source ; GPT 5.6 (ChatGPT) et Fable / Claude Opus 4.8 (Claude Code) pour le closed source.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Choisir son modèle IA</h1>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La recommandation officielle du bootcamp (OpenCode Desktop + ChatGPT + Synthetic AI pour GLM 5.2 + DeepSeek V4 Flash sur OpenRouter) est détaillée dans <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../01-anatomie/lessons/1-semaine-1-anatomie-systeme/semaine-1-anatomie-systeme.html\">Comprendre l'anatomie de ton système</a>. Cette leçon va plus loin : comment comparer les modèles, lesquels tester, et comment trancher.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"dabord-regarder-où-on-en-est\">D'abord, regarder où on en est</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le paysage des modèles bouge tous les mois. Avant de te fixer sur un choix, <strong class=\"font-semibold text-foreground\">va voir où on en est réellement</strong> sur <a href=\"https://artificialanalysis.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Artificial Analysis</a>. C'est le benchmark indépendant le plus utile : il compare intelligence, vitesse, prix sur tous les modèles principaux.</p>\n<div class=\"my-6\"><img alt=\"Comparaison des modèles IA sur Artificial Analysis\" class=\"rounded-xl border border-zinc-200\" src=\"assets/01-comparaison-des-modeles-ia-sur-artificial-analysis.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">Source : <a href=\"https://artificialanalysis.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">artificialanalysis.ai</a>. À consulter régulièrement.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le constat que tu fais en regardant : <strong class=\"font-semibold text-foreground\">les modèles dits « high-end » se valent à peu près</strong> sur les tâches du quotidien. À 10 points près sur l'index d'intelligence, ils font globalement le même travail. La vraie différence se joue ailleurs : prix, vitesse, confidentialité, accès via abonnement ou API.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-meilleure-façon-de-choisir-tester\">La meilleure façon de choisir : tester</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Aucun benchmark ne remplace l'expérience. Tu vas trouver ton modèle préféré en testant plusieurs sur tes propres tâches.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La méthode simple :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Crée un compte OpenRouter</strong> (déjà fait à l'étape précédente si tu as suivi l'installation)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Active le ZDR</strong> dans les paramètres : OpenRouter ne route alors que vers des providers qui ne stockent pas tes prompts</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Mets quelques euros de crédit</strong> (10 € suffisent pour des semaines de test)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Dans OpenCode Desktop</strong>, sélectionne le modèle, lance des requêtes sur tes vraies tâches du quotidien</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Compare</strong> : qualité de la réponse, vitesse, ressenti général</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter te donne accès à tous les modèles open source avec une seule clé API et une seule facture. Tu peux basculer de DeepSeek à GLM à Qwen en une seconde.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-modèles-à-essayer-mi-2026\">Les modèles à essayer (mi-2026)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voici la liste courte des modèles qui valent le détour aujourd'hui. Le paysage évolue vite, mais c'est ce qui est solide à l'été 2026.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Mes tops, à mettre dans ta stack quotidienne :</strong></p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Open source · privé · Synthetic AI ou OpenRouter ZDR</div><div class=\"text-base font-bold text-emerald-800 mb-2\">GLM 5.2 (Zhipu AI)</div><div class=\"text-sm text-emerald-700/80\">Mon modèle privé recommandé pour les tâches complexes. Vraiment intelligent, raisonnement solide, gère bien les contextes longs. Dispo en abonnement via Synthetic AI (30 $/mois, ZDR), ou au token via OpenRouter ZDR.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Open source, via OpenRouter</div><div class=\"text-base font-bold text-emerald-800 mb-2\">DeepSeek V4 Flash (DeepSeek)</div><div class=\"text-sm text-emerald-700/80\">Le modèle par défaut du bootcamp. Très bon, très rapide, ridiculement bon marché (environ 100 fois moins cher que GPT 5.6). Couvre 80 % des tâches quotidiennes.</div></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-500 mb-1\">Closed source, via ChatGPT</div><div class=\"text-base font-bold text-rose-800 mb-2\">GPT 5.6 (OpenAI)</div><div class=\"text-sm text-rose-700/80\">GPT 5.6 est aujourd'hui en tête des benchmarks, devant Fable / Claude Opus 4.8 d'Anthropic. Excellent, surtout sur les tâches créatives, le code, et la génération de contenu long. S'intègre dans OpenCode Desktop via ton abonnement ChatGPT Plus (20 €/mois).</div></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-500 mb-1\">Closed source, via Claude Code uniquement</div><div class=\"text-base font-bold text-rose-800 mb-2\">Fable / Claude Opus 4.8 (Anthropic)</div><div class=\"text-sm text-rose-700/80\">Le meilleur du meilleur sur les tâches qui demandent du raisonnement long, de l'analyse profonde, de la rédaction nuancée. Disponible uniquement via Claude Code (Anthropic a fermé l'accès via interfaces ouvertes). Cf. <a href=\"../12-semaine-1-claude-code-coffre/semaine-1-claude-code-coffre.html\" class=\"underline\">tutoriel Claude Code</a>.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Aussi solides, à essayer pour varier ou se faire un deuxième avis :</strong></p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Open source, via OpenRouter</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Kimi 2.6 (Moonshot AI)</div><div class=\"text-sm text-emerald-700/80\">Excellent sur les tâches agentic et le code long, avec un contexte 256k. Une alternative crédible à GLM 5.2 et DeepSeek, parfois plus original sur les tournures. Bonus : la version Turbo est dispo en illimité via Fireworks FirePass (voir plus bas).</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Open source, via OpenRouter</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Qwen 3.6 (Alibaba)</div><div class=\"text-sm text-emerald-700/80\">Très fort sur le multilingue (notamment langues asiatiques), bonne option de secours. La version 235B est ce qui se fait de mieux sur la branche Qwen aujourd'hui.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"un-mot-sur-les-providers\">Un mot sur les providers</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un modèle est un cerveau. Mais ce cerveau tourne sur des serveurs, et c'est ce qu'on appelle un <strong class=\"font-semibold text-foreground\">provider</strong>. Le même modèle (DeepSeek V4 Flash par exemple) peut être hébergé par plusieurs providers différents : Fireworks, DeepInfra, Parasail, Novita, Together AI, etc. Chacun a sa politique de prix, sa vitesse, sa politique de confidentialité.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ça peut vite devenir complexe. La bonne nouvelle : tu n'as pas à choisir un provider à la main.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La solution : OpenRouter.</strong> OpenRouter est un proxy qui route automatiquement ta requête vers le bon provider en fonction de la disponibilité du moment. Tu paies OpenRouter, OpenRouter paie le provider. Une seule facture. Un seul ZDR à activer. Et si un provider est down, OpenRouter bascule vers un autre sans que tu t'en aperçoives.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les modèles closed source (Claude, GPT), il n'y a pas de provider tiers : Anthropic et OpenAI hébergent eux-mêmes. Pour eux, tu prends l'abonnement direct (ChatGPT Plus 20 €/mois, ou Claude Pro/Max via Claude Code).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"si-openrouter-ne-te-suffit-pas\">Si OpenRouter ne te suffit pas</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter couvre 95 % des cas. Mais parfois tu veux un setup plus pointu : aller chez le provider directement pour bénéficier d'un plan illimité, d'un ZDR contractuel renforcé, d'une infra européenne, ou de la vitesse maximale possible. Voici les providers que je recommande, par ordre de préférence.</p>\n<div class=\"my-6 rounded-2xl border-2 border-amber-300 bg-amber-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Mon coup de cœur du moment · abonnement + ZDR</div><div class=\"text-lg font-bold text-amber-900 mb-2\">Synthetic AI</div><p class=\"text-sm text-amber-900/80 mb-3\">En ce moment, <strong>Synthetic AI</strong> est vraiment excellent. C'est un <strong>abonnement à 30 $/mois</strong> (pas de paiement au token) qui te donne des tokens <strong>ZDR (zéro rétention de données)</strong> sur <strong>GLM 5.2</strong>, servis très rapidement, pour <strong>à peu près le prix d'un abonnement ChatGPT</strong>. C'est ma recommandation pour tout ce qui est privé : difficile de faire mieux aujourd'hui sur le rapport intelligence / vitesse / confidentialité / prix.</p><div class=\"text-xs text-amber-700\"><a href=\"https://synthetic.new/?referral=jhBi88o8juvemeR\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">synthetic.new</a></div></div>\n<div class=\"my-6 rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Le moins cher + ZDR</div><div class=\"text-lg font-bold text-emerald-900 mb-2\">DeepInfra</div><p class=\"text-sm text-emerald-900/80 mb-3\">Le provider <strong>le moins cher du marché</strong> sur la plupart des modèles open source (à partir de 0,02 $/M tokens). <strong>ZDR de série</strong>, SOC 2 et ISO 27001. 190+ modèles open source. C'est aussi un des providers vers lesquels OpenRouter route par défaut en mode Privacy. Bonne option si tu veux passer en direct pour réduire la facture ou simplifier ton stack.</p><img alt=\"DeepInfra homepage\" class=\"rounded-xl border border-emerald-200 mt-2\" src=\"assets/02-deepinfra-homepage.png\"><div class=\"text-xs text-emerald-700 text-center mt-2\"><a href=\"https://deepinfra.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">deepinfra.com</a></div></div>\n<div class=\"my-6 rounded-2xl border-2 border-violet-200 bg-violet-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">100 % européen</div><div class=\"text-lg font-bold text-violet-900 mb-2\">Infomaniak AI Tools</div><p class=\"text-sm text-violet-900/80 mb-3\">Provider <strong>suisse</strong>, datacenters en Suisse, alimentés en énergie renouvelable. GDPR + nLPD-natif, OpenAI-compatible, modèles open source disponibles (Llama 3, Mistral 3, Qwen 3, Gemma 3n, modèles de transcription et d'image). Facturation à l'usage, et <strong>1 million de crédits offerts</strong> pour tester un mois sans engagement. Le meilleur choix si tu veux un acteur français/suisse de confiance pour des données vraiment sensibles (clients EU, santé, juridique).</p><div class=\"rounded-lg bg-white border border-violet-200 px-4 py-3 mb-3\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-700 mb-2\">Setup éclair dans OpenCode</div><ol class=\"text-xs text-violet-900/90 space-y-1 list-decimal list-inside\"><li>Crée un compte sur <a href=\"https://www.infomaniak.com/en/hosting/ai-services\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">infomaniak.com</a> et active <strong>AI Tools</strong> (1 M de tokens offerts)</li><li>Dans ton manager Infomaniak, copie ton <strong>product ID</strong> et génère un <strong>API token</strong></li><li>Dans <code>opencode.json</code>, ajoute un provider custom de type OpenAI compatible avec <code>baseURL</code> = <code><a href=\"https://api.infomaniak.com/2/ai/&amp;#123;product_id&amp;#125;/openai/v1\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">https://api.infomaniak.com/2/ai/&amp;#123;product_id&amp;#125;/openai/v1</a></code> et ton token en header</li><li>Sélectionne le modèle Mistral 3 ou Qwen 3 dans le sélecteur d'OpenCode et tape ta première requête</li></ol></div><img alt=\"Infomaniak AI Tools homepage\" class=\"rounded-xl border border-violet-200 mt-2\" src=\"assets/03-infomaniak-ai-tools-homepage-source-unavailable.svg\"><div class=\"text-xs text-violet-700 text-center mt-2\"><a href=\"https://www.infomaniak.com/en/hosting/ai-services\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">infomaniak.com/hosting/ai-services</a></div></div>\n<div class=\"my-6 rounded-2xl border-2 border-sky-200 bg-sky-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-600 mb-1\">Alternative intéressante pour usage agent intensif</div><div class=\"text-lg font-bold text-sky-900 mb-2\">Fireworks AI (FirePass)</div><p class=\"text-sm text-sky-900/80 mb-3\">Fireworks est l'un des providers les plus rapides du marché. Leur botte secrète : <strong>FirePass</strong>, un abonnement à <strong>49 $/mois</strong> qui donne accès à <strong>Kimi 2.6 Turbo en illimité</strong>, sans coût par token. Conçu pour les harnesses agentic (OpenCode, Claude Code, Cline). Si tu itères beaucoup avec une IA en mode agent, le ratio est imbattable.</p><img alt=\"Fireworks AI homepage\" class=\"rounded-xl border border-sky-200 mt-2\" src=\"assets/04-fireworks-ai-homepage.png\"><div class=\"text-xs text-sky-700 text-center mt-2\"><a href=\"https://fireworks.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">fireworks.ai</a> · <a href=\"https://docs.fireworks.ai/firepass\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">docs.fireworks.ai/firepass</a></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas besoin de t'inscrire chez tous. <strong>Synthetic AI</strong> pour le meilleur rapport qualité/prix du moment et ton usage privé (abonnement ZDR sur GLM 5.2, 30 $/mois, autour du prix de ChatGPT). <strong>DeepInfra</strong> pour le tarif le plus bas à la consommation. <strong>Infomaniak</strong> si tu as une contrainte juridique européenne et que tu veux un acteur suisse de confiance. <strong>Fireworks FirePass</strong> en alternative si tu utilises l'IA tous les jours en mode agent (illimité à 49 $/mois).</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-confidentialité-en-3-dimensions\">La confidentialité en 3 dimensions</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu manipules des données sensibles (clients, projets perso, journaling), trois questions importent :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-3 gap-3\"><div class=\"rounded-xl border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">1. Rétention</div><div class=\"text-xs text-zinc-600\">Le provider stocke-t-il tes prompts ? Et combien de temps ?</div></div><div class=\"rounded-xl border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">2. Entraînement</div><div class=\"text-xs text-zinc-600\">Tes prompts servent-ils à entraîner de futurs modèles ?</div></div><div class=\"rounded-xl border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">3. Modération humaine</div><div class=\"text-xs text-zinc-600\">Tes prompts peuvent-ils être lus par un humain pour des raisons de modération ?</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le label <strong class=\"font-semibold text-foreground\">ZDR (Zero Data Retention)</strong> répond non aux deux premières questions et limite la troisième. Le provider s'engage contractuellement à ne rien stocker, ne rien réutiliser pour l'entraînement, et à supprimer les logs immédiatement.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-vrai-zdr-passe-par-une-offre-apidev-pas-par-un-abonnement\">Le vrai ZDR passe par une offre API/dev, pas par un abonnement grand public</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le point que beaucoup ratent, et il faut bien distinguer <strong class=\"font-semibold text-foreground\">deux types d'abonnements</strong> :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Abonnement grand public</strong> (ChatGPT Plus, Claude Pro) : conçu pour le chat, <strong class=\"font-semibold text-foreground\">pas de ZDR</strong>. Tes conversations sont retenues pour la modération.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Offre API/dev avec ZDR contractuel</strong> : soit au token via une API ZDR-compliante (OpenRouter en mode Privacy), soit en <strong class=\"font-semibold text-foreground\">abonnement dev</strong> comme <strong class=\"font-semibold text-foreground\">Synthetic AI</strong> (30 $/mois, qui sert du GLM 5.2 en ZDR réel). Là, le ZDR est bien contractuel.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Autrement dit, ce n'est pas « abonnement = pas de ZDR ». C'est : <strong class=\"font-semibold text-foreground\">abonnement grand public = pas de ZDR</strong>, mais <strong class=\"font-semibold text-foreground\">offre dev ZDR (Synthetic AI, ou API au token) = ZDR réel</strong>.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-3 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Vrai ZDR possible · abonnement dev</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Synthetic AI (GLM 5.2)</div><div class=\"text-sm text-emerald-700/80\">Abonnement à 30 $/mois qui sert du GLM 5.2 avec un <strong>ZDR contractuel réel</strong>. C'est un abonnement, mais côté dev : rien n'est stocké, rien n'est réutilisé pour l'entraînement. Idéal pour ton usage privé.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Vrai ZDR possible · au token</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Modèles open source via OpenRouter API</div><div class=\"text-sm text-emerald-700/80\">DeepSeek, GLM, Kimi, Qwen passés via OpenRouter en mode Privacy ne sont routés que vers des providers ZDR-compliants (DeepInfra, certains autres). Rien n'est stocké, rien n'est utilisé pour l'entraînement.</div></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-600 mb-1\">Pas de ZDR · grand public</div><div class=\"text-base font-bold text-rose-800 mb-2\">Abonnements ChatGPT Plus et Claude Pro</div><div class=\"text-sm text-rose-700/80\">OpenAI et Anthropic gardent tes conversations <strong>au moins 30 jours</strong> pour modération abus, avec lecture humaine possible. Pour Claude, si tu acceptes le partage pour entraînement, ça peut monter à <strong>5 ans</strong>. Le ZDR n'est tout simplement pas une option sur l'abonnement grand public.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça veut dire concrètement :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Synthetic AI (abonnement dev)</strong> : GLM 5.2 en ZDR contractuel réel pour 30 $/mois. Le moyen le plus simple d'avoir du ZDR sur ton usage privé, sans compter les tokens. C'est l'option qu'on met en avant.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">OpenRouter Privacy mode</strong> : Settings, Privacy, activer ZDR. Un ZDR réel au token, parfait pour DeepSeek et les tests.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">ChatGPT Plus / Claude Pro</strong> : tu peux désactiver l'entraînement (« Improve the model for everyone » côté OpenAI, « Help improve Claude » côté Anthropic), mais ça ne supprime pas la rétention 30 jours pour modération. Évite d'y mettre des données vraiment sensibles (RGPD client, médical, juridique).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Claude via Claude Code</strong> : politique plus stricte que Claude.ai (rétention 30 jours côté API, pas d'entraînement par défaut), mais ce n'est toujours pas du ZDR formel.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Règle simple : <strong class=\"font-semibold text-foreground\">si la donnée est sensible, route-la via Synthetic AI (GLM 5.2) ou OpenRouter ZDR (DeepSeek, GLM 5.2), pas via ChatGPT.com ou Claude.ai.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour une plongée approfondie, va voir <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"recommandation-pour-démarrer\">Recommandation pour démarrer</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu hésites encore, voici la stack que je te conseille pour les premières semaines :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">ChatGPT Plus</strong> (GPT 5.6, abonnement 20 €/mois) : pour les tâches créatives ou non sensibles (présentations, sites web, brainstorming). Non privé.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Synthetic AI</strong> (GLM 5.2, abonnement 30 $/mois, ZDR) : ton modèle privé quand la tâche est complexe ou touche des données sensibles (clients, raisonnement long).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">DeepSeek V4 Flash</strong> (OpenRouter au token, ZDR) : ton défaut ultra bon marché, pour 80 % de tes tâches courantes.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Fable / Claude Opus 4.8</strong> (via Claude Code, en option) : si tu as un abonnement Claude Pro/Max et que tu veux le meilleur sur certaines tâches.</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bascule entre les 4 selon le contexte. C'est ce qui fait la puissance du multi-modèle.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"quand-changer\">Quand changer ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le paysage évolue tous les mois. Une règle simple : <strong class=\"font-semibold text-foreground\">dès qu'une réponse te déçoit, essaye un autre modèle sur la même tâche</strong>. Ça te dit beaucoup sur les forces et faiblesses de chacun. Et ça te garde à jour.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les détails de connexion (clé API OpenRouter, abonnement ChatGPT dans OpenCode), retourne à <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../4-semaine-1-installation-technique/semaine-1-installation-technique.html\">Installation technique</a>.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je suis allé voir où on en est sur artificialanalysis.ai — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je suis allé voir où on en est sur artificialanalysis.ai</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends que tester soi-même reste la meilleure méthode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends que tester soi-même reste la meilleure méthode</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé au moins 2 modèles sur mes vraies tâches via OpenRouter — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé au moins 2 modèles sur mes vraies tâches via OpenRouter</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais ma stack par défaut : ChatGPT (GPT 5.6) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash (+ Fable / Claude Opus 4.8 en option) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais ma stack par défaut : ChatGPT (GPT 5.6) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash (+ Fable / Claude Opus 4.8 en option)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que ZDR est activé sur OpenRouter dans mes réglages — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que ZDR est activé sur OpenRouter dans mes réglages</span></li></ul>",
      "content_markdown": "# Choisir son modèle IA\n\nLa recommandation officielle du bootcamp (OpenCode Desktop + ChatGPT + Synthetic AI pour GLM 5.2 + DeepSeek V4 Flash sur OpenRouter) est détaillée dans [Comprendre l'anatomie de ton système](/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme). Cette leçon va plus loin : comment comparer les modèles, lesquels tester, et comment trancher.\n\n---\n\n## D'abord, regarder où on en est\n\nLe paysage des modèles bouge tous les mois. Avant de te fixer sur un choix, **va voir où on en est réellement** sur [Artificial Analysis](https://artificialanalysis.ai). C'est le benchmark indépendant le plus utile : il compare intelligence, vitesse, prix sur tous les modèles principaux.\n\n![Comparaison des modèles IA sur Artificial Analysis](/images/ia-mars-2026/artificial-analysis-homepage.png)\n\nSource : [artificialanalysis.ai](https://artificialanalysis.ai). À consulter régulièrement.\n\nLe constat que tu fais en regardant : **les modèles dits « high-end » se valent à peu près** sur les tâches du quotidien. À 10 points près sur l'index d'intelligence, ils font globalement le même travail. La vraie différence se joue ailleurs : prix, vitesse, confidentialité, accès via abonnement ou API.\n\n---\n\n## La meilleure façon de choisir : tester\n\nAucun benchmark ne remplace l'expérience. Tu vas trouver ton modèle préféré en testant plusieurs sur tes propres tâches.\n\nLa méthode simple :\n\n1. **Crée un compte OpenRouter** (déjà fait à l'étape précédente si tu as suivi l'installation)\n2. **Active le ZDR** dans les paramètres : OpenRouter ne route alors que vers des providers qui ne stockent pas tes prompts\n3. **Mets quelques euros de crédit** (10 € suffisent pour des semaines de test)\n4. **Dans OpenCode Desktop**, sélectionne le modèle, lance des requêtes sur tes vraies tâches du quotidien\n5. **Compare** : qualité de la réponse, vitesse, ressenti général\n\nOpenRouter te donne accès à tous les modèles open source avec une seule clé API et une seule facture. Tu peux basculer de DeepSeek à GLM à Qwen en une seconde.\n\n---\n\n## Les modèles à essayer (mi-2026)\n\nVoici la liste courte des modèles qui valent le détour aujourd'hui. Le paysage évolue vite, mais c'est ce qui est solide à l'été 2026.\n\n**Mes tops, à mettre dans ta stack quotidienne :**\n\nOpen source · privé · Synthetic AI ou OpenRouter ZDR\n\nGLM 5.2 (Zhipu AI)\n\nMon modèle privé recommandé pour les tâches complexes. Vraiment intelligent, raisonnement solide, gère bien les contextes longs. Dispo en abonnement via Synthetic AI (30 $/mois, ZDR), ou au token via OpenRouter ZDR.\n\nOpen source, via OpenRouter\n\nDeepSeek V4 Flash (DeepSeek)\n\nLe modèle par défaut du bootcamp. Très bon, très rapide, ridiculement bon marché (environ 100 fois moins cher que GPT 5.6). Couvre 80 % des tâches quotidiennes.\n\nClosed source, via ChatGPT\n\nGPT 5.6 (OpenAI)\n\nGPT 5.6 est aujourd'hui en tête des benchmarks, devant Fable / Claude Opus 4.8 d'Anthropic. Excellent, surtout sur les tâches créatives, le code, et la génération de contenu long. S'intègre dans OpenCode Desktop via ton abonnement ChatGPT Plus (20 €/mois).\n\nClosed source, via Claude Code uniquement\n\nFable / Claude Opus 4.8 (Anthropic)\n\nLe meilleur du meilleur sur les tâches qui demandent du raisonnement long, de l'analyse profonde, de la rédaction nuancée. Disponible uniquement via Claude Code (Anthropic a fermé l'accès via interfaces ouvertes). Cf. [tutoriel Claude Code](/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre).\n\n**Aussi solides, à essayer pour varier ou se faire un deuxième avis :**\n\nOpen source, via OpenRouter\n\nKimi 2.6 (Moonshot AI)\n\nExcellent sur les tâches agentic et le code long, avec un contexte 256k. Une alternative crédible à GLM 5.2 et DeepSeek, parfois plus original sur les tournures. Bonus : la version Turbo est dispo en illimité via Fireworks FirePass (voir plus bas).\n\nOpen source, via OpenRouter\n\nQwen 3.6 (Alibaba)\n\nTrès fort sur le multilingue (notamment langues asiatiques), bonne option de secours. La version 235B est ce qui se fait de mieux sur la branche Qwen aujourd'hui.\n\n---\n\n## Un mot sur les providers\n\nUn modèle est un cerveau. Mais ce cerveau tourne sur des serveurs, et c'est ce qu'on appelle un **provider**. Le même modèle (DeepSeek V4 Flash par exemple) peut être hébergé par plusieurs providers différents : Fireworks, DeepInfra, Parasail, Novita, Together AI, etc. Chacun a sa politique de prix, sa vitesse, sa politique de confidentialité.\n\nÇa peut vite devenir complexe. La bonne nouvelle : tu n'as pas à choisir un provider à la main.\n\n**La solution : OpenRouter.** OpenRouter est un proxy qui route automatiquement ta requête vers le bon provider en fonction de la disponibilité du moment. Tu paies OpenRouter, OpenRouter paie le provider. Une seule facture. Un seul ZDR à activer. Et si un provider est down, OpenRouter bascule vers un autre sans que tu t'en aperçoives.\n\nPour les modèles closed source (Claude, GPT), il n'y a pas de provider tiers : Anthropic et OpenAI hébergent eux-mêmes. Pour eux, tu prends l'abonnement direct (ChatGPT Plus 20 €/mois, ou Claude Pro/Max via Claude Code).\n\n### Si OpenRouter ne te suffit pas\n\nOpenRouter couvre 95 % des cas. Mais parfois tu veux un setup plus pointu : aller chez le provider directement pour bénéficier d'un plan illimité, d'un ZDR contractuel renforcé, d'une infra européenne, ou de la vitesse maximale possible. Voici les providers que je recommande, par ordre de préférence.\n\nMon coup de cœur du moment · abonnement + ZDR\n\nSynthetic AI\n\nEn ce moment, **Synthetic AI** est vraiment excellent. C'est un **abonnement à 30 $/mois** (pas de paiement au token) qui te donne des tokens **ZDR (zéro rétention de données)** sur **GLM 5.2**, servis très rapidement, pour **à peu près le prix d'un abonnement ChatGPT**. C'est ma recommandation pour tout ce qui est privé : difficile de faire mieux aujourd'hui sur le rapport intelligence / vitesse / confidentialité / prix.\n\n[synthetic.new](https://synthetic.new/?referral=jhBi88o8juvemeR)\n\nLe moins cher + ZDR\n\nDeepInfra\n\nLe provider **le moins cher du marché** sur la plupart des modèles open source (à partir de 0,02 $/M tokens). **ZDR de série**, SOC 2 et ISO 27001. 190+ modèles open source. C'est aussi un des providers vers lesquels OpenRouter route par défaut en mode Privacy. Bonne option si tu veux passer en direct pour réduire la facture ou simplifier ton stack.\n\n![DeepInfra homepage](/images/ia-mars-2026/deepinfra-homepage.png)\n\n[deepinfra.com](https://deepinfra.com)\n\n100 % européen\n\nInfomaniak AI Tools\n\nProvider **suisse**, datacenters en Suisse, alimentés en énergie renouvelable. GDPR + nLPD-natif, OpenAI-compatible, modèles open source disponibles (Llama 3, Mistral 3, Qwen 3, Gemma 3n, modèles de transcription et d'image). Facturation à l'usage, et **1 million de crédits offerts** pour tester un mois sans engagement. Le meilleur choix si tu veux un acteur français/suisse de confiance pour des données vraiment sensibles (clients EU, santé, juridique).\n\nSetup éclair dans OpenCode\n\n1. Crée un compte sur [infomaniak.com](https://www.infomaniak.com/en/hosting/ai-services) et active **AI Tools** (1 M de tokens offerts)\n2. Dans ton manager Infomaniak, copie ton **product ID** et génère un **API token**\n3. Dans `opencode.json`, ajoute un provider custom de type OpenAI compatible avec `baseURL` = `[https://api.infomaniak.com/2/ai/&#123;product_id&#125;/openai/v1](https://api.infomaniak.com/2/ai/&#123;product_id&#125;/openai/v1)` et ton token en header\n4. Sélectionne le modèle Mistral 3 ou Qwen 3 dans le sélecteur d'OpenCode et tape ta première requête\n\n![Infomaniak AI Tools homepage](/images/ia-mars-2026/infomaniak-ai-tools.png)\n\n[infomaniak.com/hosting/ai-services](https://www.infomaniak.com/en/hosting/ai-services)\n\nAlternative intéressante pour usage agent intensif\n\nFireworks AI (FirePass)\n\nFireworks est l'un des providers les plus rapides du marché. Leur botte secrète : **FirePass**, un abonnement à **49 $/mois** qui donne accès à **Kimi 2.6 Turbo en illimité**, sans coût par token. Conçu pour les harnesses agentic (OpenCode, Claude Code, Cline). Si tu itères beaucoup avec une IA en mode agent, le ratio est imbattable.\n\n![Fireworks AI homepage](/images/ia-mars-2026/fireworks-homepage.png)\n\n[fireworks.ai](https://fireworks.ai) · [docs.fireworks.ai/firepass](https://docs.fireworks.ai/firepass)\n\n> Tu n'as pas besoin de t'inscrire chez tous. Synthetic AI pour le meilleur rapport qualité/prix du moment et ton usage privé (abonnement ZDR sur GLM 5.2, 30 $/mois, autour du prix de ChatGPT). DeepInfra pour le tarif le plus bas à la consommation. Infomaniak si tu as une contrainte juridique européenne et que tu veux un acteur suisse de confiance. Fireworks FirePass en alternative si tu utilises l'IA tous les jours en mode agent (illimité à 49 $/mois).\n\n---\n\n## La confidentialité en 3 dimensions\n\nSi tu manipules des données sensibles (clients, projets perso, journaling), trois questions importent :\n\n1. Rétention\n\nLe provider stocke-t-il tes prompts ? Et combien de temps ?\n\n2. Entraînement\n\nTes prompts servent-ils à entraîner de futurs modèles ?\n\n3. Modération humaine\n\nTes prompts peuvent-ils être lus par un humain pour des raisons de modération ?\n\nLe label **ZDR (Zero Data Retention)** répond non aux deux premières questions et limite la troisième. Le provider s'engage contractuellement à ne rien stocker, ne rien réutiliser pour l'entraînement, et à supprimer les logs immédiatement.\n\n### Le vrai ZDR passe par une offre API/dev, pas par un abonnement grand public\n\nC'est le point que beaucoup ratent, et il faut bien distinguer **deux types d'abonnements** :\n\n- **Abonnement grand public** (ChatGPT Plus, Claude Pro) : conçu pour le chat, **pas de ZDR**. Tes conversations sont retenues pour la modération.\n- **Offre API/dev avec ZDR contractuel** : soit au token via une API ZDR-compliante (OpenRouter en mode Privacy), soit en **abonnement dev** comme **Synthetic AI** (30 $/mois, qui sert du GLM 5.2 en ZDR réel). Là, le ZDR est bien contractuel.\n\nAutrement dit, ce n'est pas « abonnement = pas de ZDR ». C'est : **abonnement grand public = pas de ZDR**, mais **offre dev ZDR (Synthetic AI, ou API au token) = ZDR réel**.\n\nVrai ZDR possible · abonnement dev\n\nSynthetic AI (GLM 5.2)\n\nAbonnement à 30 $/mois qui sert du GLM 5.2 avec un **ZDR contractuel réel**. C'est un abonnement, mais côté dev : rien n'est stocké, rien n'est réutilisé pour l'entraînement. Idéal pour ton usage privé.\n\nVrai ZDR possible · au token\n\nModèles open source via OpenRouter API\n\nDeepSeek, GLM, Kimi, Qwen passés via OpenRouter en mode Privacy ne sont routés que vers des providers ZDR-compliants (DeepInfra, certains autres). Rien n'est stocké, rien n'est utilisé pour l'entraînement.\n\nPas de ZDR · grand public\n\nAbonnements ChatGPT Plus et Claude Pro\n\nOpenAI et Anthropic gardent tes conversations **au moins 30 jours** pour modération abus, avec lecture humaine possible. Pour Claude, si tu acceptes le partage pour entraînement, ça peut monter à **5 ans**. Le ZDR n'est tout simplement pas une option sur l'abonnement grand public.\n\n**Ce que ça veut dire concrètement :**\n\n- **Synthetic AI (abonnement dev)** : GLM 5.2 en ZDR contractuel réel pour 30 $/mois. Le moyen le plus simple d'avoir du ZDR sur ton usage privé, sans compter les tokens. C'est l'option qu'on met en avant.\n- **OpenRouter Privacy mode** : Settings, Privacy, activer ZDR. Un ZDR réel au token, parfait pour DeepSeek et les tests.\n- **ChatGPT Plus / Claude Pro** : tu peux désactiver l'entraînement (« Improve the model for everyone » côté OpenAI, « Help improve Claude » côté Anthropic), mais ça ne supprime pas la rétention 30 jours pour modération. Évite d'y mettre des données vraiment sensibles (RGPD client, médical, juridique).\n- **Claude via Claude Code** : politique plus stricte que Claude.ai (rétention 30 jours côté API, pas d'entraînement par défaut), mais ce n'est toujours pas du ZDR formel.\n\nRègle simple : **si la donnée est sensible, route-la via Synthetic AI (GLM 5.2) ou OpenRouter ZDR (DeepSeek, GLM 5.2), pas via ChatGPT.com ou Claude.ai.**\n\nPour une plongée approfondie, va voir [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite).\n\n---\n\n## Recommandation pour démarrer\n\nSi tu hésites encore, voici la stack que je te conseille pour les premières semaines :\n\n1. **ChatGPT Plus** (GPT 5.6, abonnement 20 €/mois) : pour les tâches créatives ou non sensibles (présentations, sites web, brainstorming). Non privé.\n2. **Synthetic AI** (GLM 5.2, abonnement 30 $/mois, ZDR) : ton modèle privé quand la tâche est complexe ou touche des données sensibles (clients, raisonnement long).\n3. **DeepSeek V4 Flash** (OpenRouter au token, ZDR) : ton défaut ultra bon marché, pour 80 % de tes tâches courantes.\n4. **Fable / Claude Opus 4.8** (via Claude Code, en option) : si tu as un abonnement Claude Pro/Max et que tu veux le meilleur sur certaines tâches.\n\nBascule entre les 4 selon le contexte. C'est ce qui fait la puissance du multi-modèle.\n\n---\n\n## Quand changer ?\n\nLe paysage évolue tous les mois. Une règle simple : **dès qu'une réponse te déçoit, essaye un autre modèle sur la même tâche**. Ça te dit beaucoup sur les forces et faiblesses de chacun. Et ça te garde à jour.\n\n> Pour les détails de connexion (clé API OpenRouter, abonnement ChatGPT dans OpenCode), retourne à Installation technique.\n\n---\n\n- Je suis allé voir où on en est sur artificialanalysis.ai\n- Je comprends que tester soi-même reste la meilleure méthode\n- J'ai testé au moins 2 modèles sur mes vraies tâches via OpenRouter\n- Je connais ma stack par défaut : ChatGPT (GPT 5.6) + Synthetic AI (GLM 5.2, privé) + DeepSeek V4 Flash (+ Fable / Claude Opus 4.8 en option)\n- Je sais que ZDR est activé sur OpenRouter dans mes réglages",
      "assets": [
        {
          "alt": "Comparaison des modèles IA sur Artificial Analysis",
          "original_url": "https://prisme.one/images/ia-mars-2026/artificial-analysis-homepage.png",
          "path": "assets/01-comparaison-des-modeles-ia-sur-artificial-analysis.png",
          "bytes": 162666,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "DeepInfra homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/deepinfra-homepage.png",
          "path": "assets/02-deepinfra-homepage.png",
          "bytes": 731615,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Infomaniak AI Tools homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/infomaniak-ai-tools.png",
          "path": "assets/03-infomaniak-ai-tools-homepage-source-unavailable.svg",
          "bytes": 443,
          "content_type": "image/svg+xml",
          "status": "source_unavailable",
          "source_status": 404
        },
        {
          "alt": "Fireworks AI homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/fireworks-homepage.png",
          "path": "assets/04-fireworks-ai-homepage.png",
          "bytes": 72320,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "Comprendre l'anatomie de ton système",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme"
        },
        {
          "text": "Artificial Analysis",
          "url": "https://artificialanalysis.ai/"
        },
        {
          "text": "artificialanalysis.ai",
          "url": "https://artificialanalysis.ai/"
        },
        {
          "text": "tutoriel Claude Code",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre"
        },
        {
          "text": "synthetic.new",
          "url": "https://synthetic.new/?referral=jhBi88o8juvemeR"
        },
        {
          "text": "deepinfra.com",
          "url": "https://deepinfra.com/"
        },
        {
          "text": "infomaniak.com",
          "url": "https://www.infomaniak.com/en/hosting/ai-services"
        },
        {
          "text": "https://api.infomaniak.com/2/ai/&#123;product_id&#125;/openai/v1",
          "url": "https://api.infomaniak.com/2/ai/&#123;product_id&#125;/openai/v1"
        },
        {
          "text": "infomaniak.com/hosting/ai-services",
          "url": "https://www.infomaniak.com/en/hosting/ai-services"
        },
        {
          "text": "fireworks.ai",
          "url": "https://fireworks.ai/"
        },
        {
          "text": "docs.fireworks.ai/firepass",
          "url": "https://docs.fireworks.ai/firepass"
        },
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "Installation technique",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installation-technique"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:04:54.689Z",
      "counts": {
        "code_blocks": 3,
        "headings": 10,
        "iframes": 0,
        "images": 4,
        "links": 13,
        "text_chars": 12432
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": [
        {
          "url": "https://prisme.one/images/ia-mars-2026/infomaniak-ai-tools.png",
          "status": 404,
          "alt": "Infomaniak AI Tools homepage",
          "lesson_id": "07-semaine-1-choisir-modele-ia"
        }
      ]
    },
    {
      "id": "08-semaine-1-lexique-ia",
      "order": 8,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Lexique IA",
      "slug": "semaine-1-lexique-ia",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-lexique-ia",
      "summary": "Glossaire des termes essentiels : token, MCP, API, provider, modèle, agent, ZDR, Workspace, opencode.json, skills, Obsidian Sync, et plus.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"se-repérer-dans-le-monde-de-lia\">Se repérer dans le monde de l'IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA a son propre vocabulaire. Cette page est un glossaire de référence : reviens-y chaque fois que tu rencontres un terme que tu ne connais pas.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-fondamentaux\">Les fondamentaux</h2>\n\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-blue-200 bg-blue-50 px-6 py-3 text-center\"><div class=\"text-lg font-bold text-blue-700\">Interface</div><div class=\"text-xs text-blue-500\">OpenCode Desktop, Claude.ai, ChatGPT...</div><div class=\"text-xs text-blue-400 italic\">Ce que tu utilises pour parler au modèle</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-amber-200 bg-amber-50 px-6 py-3 text-center\"><div class=\"text-lg font-bold text-amber-700\">Provider</div><div class=\"text-xs text-amber-500\">OpenRouter, Anthropic, OpenAI, Alibaba...</div><div class=\"text-xs text-amber-400 italic\">Qui fait tourner le modèle sur ses serveurs</div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-3 text-center\"><div class=\"text-lg font-bold text-emerald-700\">Modèle (LLM)</div><div class=\"text-xs text-emerald-500\">DeepSeek V4 Flash, GLM 5.2, GPT 5.6, Qwen...</div><div class=\"text-xs text-emerald-400 italic\">Le \"cerveau\" — l'intelligence elle-même</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"modèle-llm\">Modèle (LLM)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">Large Language Model</strong> est un programme entraîné sur des milliards de textes pour comprendre et générer du langage. C'est le \"cerveau\" : l'intelligence elle-même. Exemples dans la stack du bootcamp : DeepSeek V4 Flash (open source, modèle par défaut), GLM 5.2 (Zhipu AI, pour les tâches complexes), Kimi 2.6 (Moonshot AI), Qwen (Alibaba, multilingue), GPT 5.6 (OpenAI, via ChatGPT Plus).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un modèle ne fait rien tout seul. Il a besoin d'une interface pour recevoir tes messages et d'un provider pour faire tourner le calcul.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"provider\">Provider</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">provider</strong> est l'entreprise qui fait tourner le modèle sur ses serveurs. C'est l'intermédiaire entre toi et le modèle. Exemples : OpenRouter (agrégateur recommandé dans le bootcamp), Anthropic, OpenAI, Alibaba.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un même modèle peut être accessible via plusieurs providers. Qwen peut tourner chez OpenRouter, chez Alibaba, ou sur ta propre machine. Le prix, la vitesse et la confidentialité changent selon le provider.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"interface\">Interface</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'<strong class=\"font-semibold text-foreground\">interface</strong> est ce que tu utilises pour parler au modèle. Exemples : OpenCode Desktop (l'interface principale du bootcamp), Claude.ai (web), ChatGPT (web/app).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une interface peut se connecter à différents providers et modèles. OpenCode Desktop peut utiliser DeepSeek, GPT, Qwen — il suffit de connecter le bon provider.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"token\">Token</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">token</strong> est l'unité de mesure du texte pour un modèle IA. Un token représente environ 3/4 d'un mot en anglais, un peu moins en français.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand on parle de \"200K tokens de contexte\", ça veut dire que le modèle peut traiter environ 150 000 mots d'un coup : l'équivalent d'un livre de 500 pages.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les tokens servent aussi à la facturation : les providers facturent au nombre de tokens traités (entrée + sortie).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"fenêtre-de-contexte-context-window\">Fenêtre de contexte (Context Window)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La <strong class=\"font-semibold text-foreground\">fenêtre de contexte</strong> est la quantité maximale de texte que le modèle peut \"voir\" en même temps. C'est sa mémoire de travail.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">La plupart des modèles : 128K-200K tokens</li>\n<li class=\"leading-7\">Gemini : jusqu'à 1M tokens</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu dépasses la fenêtre de contexte, le modèle \"oublie\" le début de la conversation. C'est pour ça que les agents comme OpenCode gèrent le contexte intelligemment : ils envoient uniquement ce qui est pertinent.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"prompt\">Prompt</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">prompt</strong> est simplement le texte que tu envoies au modèle. Ça peut être une question, une instruction, un document à analyser. Un bon prompt est précis, contextuel et structuré. La qualité de la réponse dépend directement de la qualité du prompt.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"terminal\">Terminal</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">terminal</strong> est l'application qui permet de taper des commandes texte pour contrôler ton ordinateur. C'est la fenêtre noire (ou colorée) où tu tapes des instructions au lieu de cliquer avec la souris.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Exemples de terminaux : Ghostty, iTerm2, ou le Terminal par défaut de ton Mac/PC. OpenCode Desktop a son propre terminal intégré, donc la plupart des participants n'ont pas besoin d'en installer un.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"cli-command-line-interface\">CLI (Command Line Interface)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une <strong class=\"font-semibold text-foreground\">CLI</strong> (interface en ligne de commande) est un programme qu'on utilise en tapant des commandes dans le terminal. OpenCode peut s'utiliser en mode CLI, en plus de l'interface Desktop. GOG (pour Google Workspace) est une CLI.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-concepts-agentiques\">Les concepts agentiques</h2>\n\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-lg mx-auto\"><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-5 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-400 mb-2\">Chatbot classique</div><div class=\"text-sm font-bold text-zinc-600\">Répond à des questions</div><div class=\"text-xs text-zinc-400 mt-2\">Génère du texte uniquement</div><div class=\"text-xs text-zinc-400\">Pas d'accès à tes fichiers</div><div class=\"text-xs text-zinc-400\">Pas d'actions concrètes</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-2\">Agent IA</div><div class=\"text-sm font-bold text-emerald-700\">Exécute des actions</div><div class=\"text-xs text-emerald-500 mt-2\">Lit et écrit des fichiers</div><div class=\"text-xs text-emerald-500\">Appelle des outils (MCP)</div><div class=\"text-xs text-emerald-500\">Enchaîne des étapes en autonomie</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"agent\">Agent</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">agent</strong> est un modèle IA qui peut exécuter des actions, pas seulement répondre à des questions. Il peut lire des fichiers, écrire du code, naviguer sur le web, appeler des APIs, et enchaîner ces actions en autonomie pour accomplir une tâche complexe.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode Desktop transforme un modèle en agent : il lui donne accès à ton système de fichiers, à tes outils, à tes commandes.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"tool-calling-appel-doutils\">Tool Calling (appel d'outils)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">tool calling</strong> est la capacité d'un modèle à utiliser des outils externes. Au lieu de juste générer du texte, le modèle peut décider d'appeler un outil (lire un fichier, faire une recherche web, interroger une base de données) et utiliser le résultat pour continuer son raisonnement.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ce qui fait la différence entre un chatbot et un agent.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"mcp-model-context-protocol\">MCP (Model Context Protocol)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">MCP</strong> est un standard ouvert créé par Anthropic pour connecter des outils à un modèle IA. C'est comme un port USB universel pour l'IA.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un serveur MCP expose des capacités (lire une base de données, scraper une page web, générer une image) et n'importe quelle interface compatible (OpenCode Desktop, Claude Desktop) peut les utiliser.</p>\n\n<div class=\"my-8 flex flex-col items-center gap-3\"><div class=\"w-full max-w-xs rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-blue-700\">OpenCode Desktop</div><div class=\"text-xs text-blue-400\">Interface compatible MCP</div></div><div class=\"text-zinc-400 text-xs\">se connecte via MCP à</div><div class=\"grid w-full max-w-lg grid-cols-2 sm:grid-cols-4 gap-2\"><div class=\"rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-center\"><div class=\"text-xs font-bold text-amber-700\">Firecrawl</div><div class=\"text-xs text-amber-400\">Web</div></div><div class=\"rounded-lg border border-purple-200 bg-purple-50 px-3 py-2 text-center\"><div class=\"text-xs font-bold text-purple-700\">n8n</div><div class=\"text-xs text-purple-400\">Automations</div></div><div class=\"rounded-lg border border-emerald-200 bg-emerald-50 px-3 py-2 text-center\"><div class=\"text-xs font-bold text-emerald-700\">NocoDB</div><div class=\"text-xs text-emerald-400\">Bases de données</div></div><div class=\"rounded-lg border border-rose-200 bg-rose-50 px-3 py-2 text-center\"><div class=\"text-xs font-bold text-rose-700\">QMD</div><div class=\"text-xs text-rose-400\">Vault search</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Exemples de MCP qu'on utilise dans le bootcamp : Firecrawl (web), n8n (automatisations), NocoDB (bases de données), QMD (recherche dans le coffre).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"skill-commande-slash\">Skill (commande slash)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">skill</strong> (ou commande slash) est un fichier Markdown qui contient des instructions pour l'IA. Quand tu tapes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/newsletter</code> dans OpenCode, il lit le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/newsletter.md</code> et exécute les instructions qu'il contient.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le mécanisme qu'on utilise pour créer des agents personnalisés. Le fichier contient le contexte, la méthode, les étapes : tout ce que l'IA a besoin de savoir pour exécuter le process.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À ne pas confondre avec les commandes systèmes d'OpenCode (comme <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/model</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/sync</code>) qui sont des fonctions intégrées à l'interface.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"fork\">Fork</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">fork</strong> est une copie d'un projet open-source qu'on modifie pour ses propres besoins. OpenCode est un fork de Claude Code : il est parti du code de Claude Code et a évolué indépendamment.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"infrastructure-et-technique\">Infrastructure et technique</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"api-application-programming-interface\">API (Application Programming Interface)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une <strong class=\"font-semibold text-foreground\">API</strong> est une interface qui permet à des programmes de communiquer entre eux. Quand OpenCode envoie ta question à DeepSeek via OpenRouter, il utilise l'API d'OpenRouter.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'API est l'alternative aux interfaces web (chatgpt.com, claude.ai). Elle est plus flexible, plus puissante, et permet l'automatisation — mais elle nécessite une clé API et se facture à l'usage.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"clé-api-api-key\">Clé API (API Key)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une <strong class=\"font-semibold text-foreground\">clé API</strong> est un mot de passe unique qui t'identifie auprès d'un provider. Quand tu connectes OpenRouter dans OpenCode, tu fournis ta clé API OpenRouter.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Règle absolue : ne commite jamais une clé API dans un repo Git, et ne la partage jamais. Si quelqu'un l'obtient, il peut utiliser ton compte et tu seras facturé. Stocke tes clés dans Bitwarden.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"zdr-zero-data-retention\">ZDR (Zero Data Retention)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">ZDR</strong> signifie que le provider ne conserve aucune donnée après traitement. Ta requête arrive, la réponse est générée, tout est supprimé immédiatement. Rien n'est stocké, rien n'est loggé.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter propose le ZDR activable en quelques clics. C'est la configuration recommandée dans le bootcamp. Voir la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a> pour le détail.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"opencodejson\">opencode.json</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le fichier <strong class=\"font-semibold text-foreground\">opencode.json</strong> est le fichier de configuration d'OpenCode, placé à la racine de ton Workspace. Il définit les providers connectés, les MCPs actifs, les permissions (ce que l'IA peut ou ne peut pas faire), et les options d'affichage. C'est l'équivalent d'un fichier de configuration de projet.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"agentsmd\">AGENTS.md</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le fichier <strong class=\"font-semibold text-foreground\">AGENTS.md</strong> (ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude.md</code> dans certains contextes) est un fichier d'instructions permanent que l'IA lit à chaque session. Il contient ton identité, tes préférences, le contexte de ton projet, et les règles que tu veux qu'elle respecte. C'est la mémoire de travail persistante entre les sessions.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans le bootcamp, ce rôle est rempli par ton fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Moi.md</code> et les contextes dans ton coffre.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"github-gitlab\">GitHub / GitLab</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">GitHub</strong> et <strong class=\"font-semibold text-foreground\">GitLab</strong> sont des plateformes de stockage et de versioning de fichiers. Elles gardent un historique complet de toutes les modifications : tu peux revenir en arrière à tout moment.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">GitHub appartient à Microsoft (serveurs aux USA). GitLab peut être auto-hébergé en Europe.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"repository-repo\">Repository (Repo)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">repository</strong> (ou \"repo\") est un projet sur GitHub/GitLab. C'est un dossier versionné : chaque modification est enregistrée avec un horodatage et un message.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"inférence\">Inférence</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'<strong class=\"font-semibold text-foreground\">inférence</strong> est le moment où le modèle génère une réponse. \"Faire de l'inférence\" = faire tourner le modèle pour produire du texte. Les providers d'inférence (OpenRouter, DeepInfra) sont des entreprises qui font tourner des modèles sur leurs serveurs sans les entraîner.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"n8n\">n8n</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">n8n</strong> est un outil d'automatisation open-source (comme Zapier ou Make, mais auto-hébergé). Il permet de créer des workflows visuels qui connectent des services entre eux. On l'installe sur ton propre serveur en semaine 3 du bootcamp.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ollama\">Ollama</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ollama</strong> est un outil pour faire tourner des modèles IA en local sur ta machine. Au lieu d'envoyer tes données à un serveur distant, le modèle tourne directement sur ton ordinateur. Avantage : confidentialité totale. Inconvénient : nécessite du matériel puissant pour des performances correctes.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ssh-secure-shell\">SSH (Secure Shell)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">SSH</strong> est un protocole sécurisé pour se connecter à un serveur distant depuis ton terminal. C'est comme une télécommande chiffrée pour ton serveur. On l'utilise en semaine 3 pour accéder au serveur IA.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"webhook\">Webhook</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">webhook</strong> est une URL qu'un service appelle automatiquement quand un événement se produit. Exemple : \"Quand quelqu'un paie sur mon site, appeler cette URL, puis créer son compte\". Les webhooks sont le mécanisme de base des automatisations n8n.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"open-source-vs-propriétaire\">Open-source vs propriétaire</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un modèle <strong class=\"font-semibold text-foreground\">open-source</strong> (Qwen, DeepSeek, Llama) a son code et ses poids publiés : n'importe qui peut le télécharger, le modifier, le faire tourner. Un modèle <strong class=\"font-semibold text-foreground\">propriétaire</strong> (GPT 5.6, Claude) est accessible uniquement via l'API du créateur.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'open-source permet le self-hosting et offre plus de contrôle sur la confidentialité. DeepSeek V4 Flash est open-source et constitue le modèle par défaut recommandé dans le bootcamp.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-coffre-et-linfrastructure\">Le coffre et l'infrastructure</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"workspace\">Workspace</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">Workspace</strong> est le dossier racine depuis lequel tu lances OpenCode. Dans le bootcamp, c'est le dossier que tu télécharges au départ : il contient un sous-dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/</code> (ton coffre Obsidian), un fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>, et les fichiers de configuration de l'agent.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"vault-coffre-second-cerveau\">Vault (Coffre) / Second Cerveau</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">vault</strong> (ou \"coffre\") est le dossier principal d'Obsidian qui contient toutes tes notes. C'est ton second cerveau : un ensemble de fichiers Markdown liés entre eux par des wikilinks. Dans le bootcamp, il s'appelle <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/</code> et vit à l'intérieur du Workspace.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"obsidian-sync\">Obsidian Sync</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Obsidian Sync</strong> est le service de synchronisation payant d'Obsidian. Il chiffre tes notes de bout en bout et les synchronise entre tous tes appareils (Mac, iPhone, iPad). C'est la solution recommandée dans le bootcamp pour synchroniser ton coffre (8$/mois avec le plan annuel). Les données passent par les serveurs d'Obsidian mais restent chiffrées.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"markdown-md\">Markdown (.md)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <strong class=\"font-semibold text-foreground\">Markdown</strong> est un format de fichier texte simple utilisé par Obsidian. Un fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.md</code> est du texte brut avec des conventions de formatage (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\"># titre</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">**gras**</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">- liste</code>). C'est le format natif d'Obsidian et le format que l'IA lit le mieux. Il est compatible partout et n'est pas propriétaire.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"wikilink\">Wikilink</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">wikilink</strong> (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[Nom de la note]]</code>) est un lien interne entre deux notes dans Obsidian. C'est ce qui crée le réseau de connexions de ton second cerveau.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ipcra\">IPCRA</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">IPCRA</strong> est le système d'organisation du coffre : <strong class=\"font-semibold text-foreground\">I</strong>nbox, <strong class=\"font-semibold text-foreground\">P</strong>rojets, <strong class=\"font-semibold text-foreground\">C</strong>asquettes, <strong class=\"font-semibold text-foreground\">R</strong>essources, <strong class=\"font-semibold text-foreground\">A</strong>rchives. Chaque note va dans une de ces catégories. C'est une adaptation du système PARA de Tiago Forte.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"phase-de-vie\">Phase de vie</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une <strong class=\"font-semibold text-foreground\">phase de vie</strong> est une période définie avec une intention claire. Exemples : \"Lancer mon business\", \"Apprendre le machine learning\", \"Déménagement à Hong Kong\". Les phases de vie structurent ton journaling et ta planification dans le coffre.</p>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai compris la différence entre modèle, provider et interface — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai compris la différence entre modèle, provider et interface</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais ce qu'est un token et une fenêtre de contexte — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais ce qu'est un token et une fenêtre de contexte</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends ce que fait un agent vs un chatbot — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends ce que fait un agent vs un chatbot</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais ce que signifie MCP, API, CLI, ZDR, SSH, webhook — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais ce que signifie MCP, API, CLI, ZDR, SSH, webhook</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais ce que sont le Workspace, le coffre, et opencode.json — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais ce que sont le Workspace, le coffre, et opencode.json</span></li></ul>",
      "content_markdown": "## Se repérer dans le monde de l'IA\n\nL'IA a son propre vocabulaire. Cette page est un glossaire de référence : reviens-y chaque fois que tu rencontres un terme que tu ne connais pas.\n\n---\n\n## Les fondamentaux\n\nInterface\n\nOpenCode Desktop, Claude.ai, ChatGPT...\n\nCe que tu utilises pour parler au modèle\n\nProvider\n\nOpenRouter, Anthropic, OpenAI, Alibaba...\n\nQui fait tourner le modèle sur ses serveurs\n\nModèle (LLM)\n\nDeepSeek V4 Flash, GLM 5.2, GPT 5.6, Qwen...\n\nLe \"cerveau\" — l'intelligence elle-même\n\n### Modèle (LLM)\n\nUn **Large Language Model** est un programme entraîné sur des milliards de textes pour comprendre et générer du langage. C'est le \"cerveau\" : l'intelligence elle-même. Exemples dans la stack du bootcamp : DeepSeek V4 Flash (open source, modèle par défaut), GLM 5.2 (Zhipu AI, pour les tâches complexes), Kimi 2.6 (Moonshot AI), Qwen (Alibaba, multilingue), GPT 5.6 (OpenAI, via ChatGPT Plus).\n\nUn modèle ne fait rien tout seul. Il a besoin d'une interface pour recevoir tes messages et d'un provider pour faire tourner le calcul.\n\n### Provider\n\nLe **provider** est l'entreprise qui fait tourner le modèle sur ses serveurs. C'est l'intermédiaire entre toi et le modèle. Exemples : OpenRouter (agrégateur recommandé dans le bootcamp), Anthropic, OpenAI, Alibaba.\n\nUn même modèle peut être accessible via plusieurs providers. Qwen peut tourner chez OpenRouter, chez Alibaba, ou sur ta propre machine. Le prix, la vitesse et la confidentialité changent selon le provider.\n\n### Interface\n\nL'**interface** est ce que tu utilises pour parler au modèle. Exemples : OpenCode Desktop (l'interface principale du bootcamp), Claude.ai (web), ChatGPT (web/app).\n\nUne interface peut se connecter à différents providers et modèles. OpenCode Desktop peut utiliser DeepSeek, GPT, Qwen — il suffit de connecter le bon provider.\n\n### Token\n\nUn **token** est l'unité de mesure du texte pour un modèle IA. Un token représente environ 3/4 d'un mot en anglais, un peu moins en français.\n\nQuand on parle de \"200K tokens de contexte\", ça veut dire que le modèle peut traiter environ 150 000 mots d'un coup : l'équivalent d'un livre de 500 pages.\n\nLes tokens servent aussi à la facturation : les providers facturent au nombre de tokens traités (entrée + sortie).\n\n### Fenêtre de contexte (Context Window)\n\nLa **fenêtre de contexte** est la quantité maximale de texte que le modèle peut \"voir\" en même temps. C'est sa mémoire de travail.\n\n- La plupart des modèles : 128K-200K tokens\n- Gemini : jusqu'à 1M tokens\n\nSi tu dépasses la fenêtre de contexte, le modèle \"oublie\" le début de la conversation. C'est pour ça que les agents comme OpenCode gèrent le contexte intelligemment : ils envoient uniquement ce qui est pertinent.\n\n### Prompt\n\nUn **prompt** est simplement le texte que tu envoies au modèle. Ça peut être une question, une instruction, un document à analyser. Un bon prompt est précis, contextuel et structuré. La qualité de la réponse dépend directement de la qualité du prompt.\n\n### Terminal\n\nLe **terminal** est l'application qui permet de taper des commandes texte pour contrôler ton ordinateur. C'est la fenêtre noire (ou colorée) où tu tapes des instructions au lieu de cliquer avec la souris.\n\nExemples de terminaux : Ghostty, iTerm2, ou le Terminal par défaut de ton Mac/PC. OpenCode Desktop a son propre terminal intégré, donc la plupart des participants n'ont pas besoin d'en installer un.\n\n### CLI (Command Line Interface)\n\nUne **CLI** (interface en ligne de commande) est un programme qu'on utilise en tapant des commandes dans le terminal. OpenCode peut s'utiliser en mode CLI, en plus de l'interface Desktop. GOG (pour Google Workspace) est une CLI.\n\n---\n\n## Les concepts agentiques\n\nChatbot classique\n\nRépond à des questions\n\nGénère du texte uniquement\n\nPas d'accès à tes fichiers\n\nPas d'actions concrètes\n\nAgent IA\n\nExécute des actions\n\nLit et écrit des fichiers\n\nAppelle des outils (MCP)\n\nEnchaîne des étapes en autonomie\n\n### Agent\n\nUn **agent** est un modèle IA qui peut exécuter des actions, pas seulement répondre à des questions. Il peut lire des fichiers, écrire du code, naviguer sur le web, appeler des APIs, et enchaîner ces actions en autonomie pour accomplir une tâche complexe.\n\nOpenCode Desktop transforme un modèle en agent : il lui donne accès à ton système de fichiers, à tes outils, à tes commandes.\n\n### Tool Calling (appel d'outils)\n\nLe **tool calling** est la capacité d'un modèle à utiliser des outils externes. Au lieu de juste générer du texte, le modèle peut décider d'appeler un outil (lire un fichier, faire une recherche web, interroger une base de données) et utiliser le résultat pour continuer son raisonnement.\n\nC'est ce qui fait la différence entre un chatbot et un agent.\n\n### MCP (Model Context Protocol)\n\nLe **MCP** est un standard ouvert créé par Anthropic pour connecter des outils à un modèle IA. C'est comme un port USB universel pour l'IA.\n\nUn serveur MCP expose des capacités (lire une base de données, scraper une page web, générer une image) et n'importe quelle interface compatible (OpenCode Desktop, Claude Desktop) peut les utiliser.\n\nOpenCode Desktop\n\nInterface compatible MCP\n\nse connecte via MCP à\n\nFirecrawl\n\nWeb\n\nn8n\n\nAutomations\n\nNocoDB\n\nBases de données\n\nQMD\n\nVault search\n\nExemples de MCP qu'on utilise dans le bootcamp : Firecrawl (web), n8n (automatisations), NocoDB (bases de données), QMD (recherche dans le coffre).\n\n### Skill (commande slash)\n\nUn **skill** (ou commande slash) est un fichier Markdown qui contient des instructions pour l'IA. Quand tu tapes `/newsletter` dans OpenCode, il lit le fichier `Second Cerveau/4 TOOLS/skills/newsletter.md` et exécute les instructions qu'il contient.\n\nC'est le mécanisme qu'on utilise pour créer des agents personnalisés. Le fichier contient le contexte, la méthode, les étapes : tout ce que l'IA a besoin de savoir pour exécuter le process.\n\nÀ ne pas confondre avec les commandes systèmes d'OpenCode (comme `/model` ou `/sync`) qui sont des fonctions intégrées à l'interface.\n\n### Fork\n\nUn **fork** est une copie d'un projet open-source qu'on modifie pour ses propres besoins. OpenCode est un fork de Claude Code : il est parti du code de Claude Code et a évolué indépendamment.\n\n---\n\n## Infrastructure et technique\n\n### API (Application Programming Interface)\n\nUne **API** est une interface qui permet à des programmes de communiquer entre eux. Quand OpenCode envoie ta question à DeepSeek via OpenRouter, il utilise l'API d'OpenRouter.\n\nL'API est l'alternative aux interfaces web (chatgpt.com, claude.ai). Elle est plus flexible, plus puissante, et permet l'automatisation — mais elle nécessite une clé API et se facture à l'usage.\n\n### Clé API (API Key)\n\nUne **clé API** est un mot de passe unique qui t'identifie auprès d'un provider. Quand tu connectes OpenRouter dans OpenCode, tu fournis ta clé API OpenRouter.\n\nRègle absolue : ne commite jamais une clé API dans un repo Git, et ne la partage jamais. Si quelqu'un l'obtient, il peut utiliser ton compte et tu seras facturé. Stocke tes clés dans Bitwarden.\n\n### ZDR (Zero Data Retention)\n\nLe **ZDR** signifie que le provider ne conserve aucune donnée après traitement. Ta requête arrive, la réponse est générée, tout est supprimé immédiatement. Rien n'est stocké, rien n'est loggé.\n\nOpenRouter propose le ZDR activable en quelques clics. C'est la configuration recommandée dans le bootcamp. Voir la leçon [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite) pour le détail.\n\n### opencode.json\n\nLe fichier **opencode.json** est le fichier de configuration d'OpenCode, placé à la racine de ton Workspace. Il définit les providers connectés, les MCPs actifs, les permissions (ce que l'IA peut ou ne peut pas faire), et les options d'affichage. C'est l'équivalent d'un fichier de configuration de projet.\n\n### AGENTS.md\n\nLe fichier **AGENTS.md** (ou `claude.md` dans certains contextes) est un fichier d'instructions permanent que l'IA lit à chaque session. Il contient ton identité, tes préférences, le contexte de ton projet, et les règles que tu veux qu'elle respecte. C'est la mémoire de travail persistante entre les sessions.\n\nDans le bootcamp, ce rôle est rempli par ton fichier `Moi.md` et les contextes dans ton coffre.\n\n### GitHub / GitLab\n\n**GitHub** et **GitLab** sont des plateformes de stockage et de versioning de fichiers. Elles gardent un historique complet de toutes les modifications : tu peux revenir en arrière à tout moment.\n\nGitHub appartient à Microsoft (serveurs aux USA). GitLab peut être auto-hébergé en Europe.\n\n### Repository (Repo)\n\nUn **repository** (ou \"repo\") est un projet sur GitHub/GitLab. C'est un dossier versionné : chaque modification est enregistrée avec un horodatage et un message.\n\n### Inférence\n\nL'**inférence** est le moment où le modèle génère une réponse. \"Faire de l'inférence\" = faire tourner le modèle pour produire du texte. Les providers d'inférence (OpenRouter, DeepInfra) sont des entreprises qui font tourner des modèles sur leurs serveurs sans les entraîner.\n\n### n8n\n\n**n8n** est un outil d'automatisation open-source (comme Zapier ou Make, mais auto-hébergé). Il permet de créer des workflows visuels qui connectent des services entre eux. On l'installe sur ton propre serveur en semaine 3 du bootcamp.\n\n### Ollama\n\n**Ollama** est un outil pour faire tourner des modèles IA en local sur ta machine. Au lieu d'envoyer tes données à un serveur distant, le modèle tourne directement sur ton ordinateur. Avantage : confidentialité totale. Inconvénient : nécessite du matériel puissant pour des performances correctes.\n\n### SSH (Secure Shell)\n\n**SSH** est un protocole sécurisé pour se connecter à un serveur distant depuis ton terminal. C'est comme une télécommande chiffrée pour ton serveur. On l'utilise en semaine 3 pour accéder au serveur IA.\n\n### Webhook\n\nUn **webhook** est une URL qu'un service appelle automatiquement quand un événement se produit. Exemple : \"Quand quelqu'un paie sur mon site, appeler cette URL, puis créer son compte\". Les webhooks sont le mécanisme de base des automatisations n8n.\n\n### Open-source vs propriétaire\n\nUn modèle **open-source** (Qwen, DeepSeek, Llama) a son code et ses poids publiés : n'importe qui peut le télécharger, le modifier, le faire tourner. Un modèle **propriétaire** (GPT 5.6, Claude) est accessible uniquement via l'API du créateur.\n\nL'open-source permet le self-hosting et offre plus de contrôle sur la confidentialité. DeepSeek V4 Flash est open-source et constitue le modèle par défaut recommandé dans le bootcamp.\n\n---\n\n## Le coffre et l'infrastructure\n\n### Workspace\n\nLe **Workspace** est le dossier racine depuis lequel tu lances OpenCode. Dans le bootcamp, c'est le dossier que tu télécharges au départ : il contient un sous-dossier `Second Cerveau/` (ton coffre Obsidian), un fichier `opencode.json`, et les fichiers de configuration de l'agent.\n\n### Vault (Coffre) / Second Cerveau\n\nUn **vault** (ou \"coffre\") est le dossier principal d'Obsidian qui contient toutes tes notes. C'est ton second cerveau : un ensemble de fichiers Markdown liés entre eux par des wikilinks. Dans le bootcamp, il s'appelle `Second Cerveau/` et vit à l'intérieur du Workspace.\n\n### Obsidian Sync\n\n**Obsidian Sync** est le service de synchronisation payant d'Obsidian. Il chiffre tes notes de bout en bout et les synchronise entre tous tes appareils (Mac, iPhone, iPad). C'est la solution recommandée dans le bootcamp pour synchroniser ton coffre (8$/mois avec le plan annuel). Les données passent par les serveurs d'Obsidian mais restent chiffrées.\n\n### Markdown (.md)\n\nLe **Markdown** est un format de fichier texte simple utilisé par Obsidian. Un fichier `.md` est du texte brut avec des conventions de formatage (`# titre`, `**gras**`, `- liste`). C'est le format natif d'Obsidian et le format que l'IA lit le mieux. Il est compatible partout et n'est pas propriétaire.\n\n### Wikilink\n\nUn **wikilink** (`[[Nom de la note]]`) est un lien interne entre deux notes dans Obsidian. C'est ce qui crée le réseau de connexions de ton second cerveau.\n\n### IPCRA\n\n**IPCRA** est le système d'organisation du coffre : **I**nbox, **P**rojets, **C**asquettes, **R**essources, **A**rchives. Chaque note va dans une de ces catégories. C'est une adaptation du système PARA de Tiago Forte.\n\n### Phase de vie\n\nUne **phase de vie** est une période définie avec une intention claire. Exemples : \"Lancer mon business\", \"Apprendre le machine learning\", \"Déménagement à Hong Kong\". Les phases de vie structurent ton journaling et ta planification dans le coffre.\n\n- J'ai compris la différence entre modèle, provider et interface\n- Je sais ce qu'est un token et une fenêtre de contexte\n- Je comprends ce que fait un agent vs un chatbot\n- Je sais ce que signifie MCP, API, CLI, ZDR, SSH, webhook\n- Je sais ce que sont le Workspace, le coffre, et opencode.json",
      "assets": [],
      "links": [
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:04:56.860Z",
      "counts": {
        "code_blocks": 14,
        "headings": 38,
        "iframes": 0,
        "images": 0,
        "links": 1,
        "text_chars": 12286
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "09-semaine-1-securite",
      "order": 9,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Zoom sur la sécurité",
      "slug": "semaine-1-securite",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite",
      "summary": "Comprendre à quoi l'IA a accès sur ton ordinateur, activer le ZDR sur OpenRouter, désactiver l'entraînement sur ChatGPT, restreindre les permissions dans opencode.json, et gérer ses API keys avec Bitwarden.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Zoom sur la sécurité et la privacy</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Travailler avec l'IA dans tes fichiers locaux, ça soulève deux questions : qu'est-ce qu'elle peut faire sur ton ordinateur, et qu'est-ce qui sort vers le provider quand tu lui parles. Cette leçon répond aux deux, dans cet ordre.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">1. L'IA n'a pas accès à tout par défaut</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le premier point à comprendre. Quand tu lances OpenCode Desktop, <strong class=\"font-semibold text-foreground\">l'IA ne peut rien faire sans ta validation</strong>. Elle a la configuration de base d'OpenCode, qui te demande explicitement avant chaque action :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Lire ce fichier : tu valides ?</li>\n<li class=\"leading-7\">Modifier cette note : tu valides ?</li>\n<li class=\"leading-7\">Exécuter cette commande bash : tu valides ?</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est volontaire. Tu gardes le contrôle de tout, mais ça peut vite devenir lourd au quotidien.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-3 gap-3\"><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-500 mb-1\">Mode strict</div><div class=\"text-sm font-bold text-rose-800 mb-1\">Validation au cas par cas</div><div class=\"text-xs text-rose-700/80\">L'IA demande la permission avant chaque action. Maximum de sécurité, friction quotidienne forte.</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-500 mb-1\">Mode équilibré</div><div class=\"text-sm font-bold text-amber-800 mb-1\">Permissions ciblées</div><div class=\"text-xs text-amber-700/80\">Tu autorises les actions sûres (lecture, écriture dans ton coffre), tu bloques les risquées (rm, curl). Équilibre fluide.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Mode auto</div><div class=\"text-sm font-bold text-emerald-800 mb-1\">Auto-accept tout</div><div class=\"text-xs text-emerald-700/80\">L'IA peut tout faire sans demander. Fluide pour le travail intensif, à éviter sur projets clients sensibles.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le bouton \"accepter automatiquement\"</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans les réglages d'OpenCode Desktop, tu peux activer une option qui dit à l'IA : « tu peux faire ce que tu veux sans me demander, je te fais confiance ». Pratique quand tu travailles à fond. Tu peux la désactiver à tout moment.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Compromis classique :</strong> confiance maximale (fluide mais l'IA peut tout faire) vs validation au cas par cas (sécurisé mais lent). La plupart des participants finissent par activer l'auto-accept dans leur coffre, et désactivent quand ils travaillent sur des projets clients sensibles.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Restreindre finement les permissions</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux quelque chose entre les deux extrêmes (auto-accept ou validation totale), tu peux configurer <strong class=\"font-semibold text-foreground\">précisément</strong> ce que l'IA peut faire dans le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> à la racine de ton workspace.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est du JSON. Tu peux l'écrire toi-même en lisant la <a href=\"https://opencode.ai/docs/permissions\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle d'OpenCode sur les permissions</a>. Ou, mieux : tu demandes à l'IA de le faire pour toi.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le mini-prompt pour configurer tes permissions sans toucher au JSON</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Plutôt que d'apprendre la syntaxe <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>, copie-colle ce prompt à ton IA dans OpenCode :</p>\n<div class=\"my-6 rounded-xl border border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Prompt à coller dans OpenCode</div><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Je veux configurer tes permissions dans opencode.json.\n\nD'abord, lis la documentation officielle ici :\nhttps://opencode.ai/docs/permissions\n\nEnsuite, pose-moi ces questions une par une, attends ma réponse\n(oui / non / précise) avant de passer à la suivante :\n\n1. Tu peux lire les fichiers dans Second Cerveau/ sans me demander ?\n2. Tu peux écrire dans Second Cerveau/ sans me demander ?\n3. Tu peux accéder aux autres dossiers de mon Workspace ?\n4. Tu peux exécuter des commandes shell (git, ls, cat) sans me demander ?\n5. Tu peux exécuter des commandes réseau (curl, wget) sans me demander ?\n6. Tu peux exécuter des commandes destructrices (rm, mv, rmdir) sans me demander ?\n\nÀ la fin, mets à jour opencode.json avec mes choix, montre-moi le résultat,\net explique-moi en une phrase ce que ça change.\n</code></pre></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va lire la doc à jour, te poser les questions dans ton langage, et écrire le JSON pour toi. Tu valides à la fin. Tu n'as jamais à toucher au JSON manuellement.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">2. Ce qui est envoyé au modèle (et ce qui ne l'est pas)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le deuxième point essentiel : <strong class=\"font-semibold text-foreground\">quand tu poses une question à ton IA, qu'est-ce qui sort de ton ordinateur exactement ?</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La réponse va te rassurer.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ton coffre n'est pas uploadé en bloc</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À chaque requête, l'IA ne « charge » pas tout ton coffre en mémoire pour ensuite l'envoyer au provider. Voici ce qui se passe vraiment :</p>\n<div class=\"my-6 grid grid-cols-1 md:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-2\">Sur ton ordinateur</div><div class=\"text-base font-bold text-emerald-900 mb-3\">Tout ton coffre reste local</div><ol class=\"space-y-2 text-sm text-emerald-900/80 list-decimal list-inside\"><li>L'IA <strong>scanne</strong> les noms de fichiers et la structure</li><li>Elle <strong>identifie</strong> les fichiers pertinents pour ta question</li><li>Elle <strong>lit</strong> uniquement ceux-là (3, 5, parfois 20 fichiers)</li><li>Elle <strong>écrit</strong> les modifications directement sur ton disque</li></ol></div><div class=\"rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-2\">Envoyé au provider IA</div><div class=\"text-base font-bold text-amber-900 mb-3\">Uniquement des extraits</div><ol class=\"space-y-2 text-sm text-amber-900/80 list-decimal list-inside\"><li>Ta <strong>question</strong> (le prompt)</li><li>Le <strong>contenu</strong> des fichiers que l'IA a lus</li><li>L'historique de la conversation en cours</li><li>Rien d'autre. Pas de scan global, pas d'upload du coffre</li></ol></div></div>\n<div class=\"my-6 rounded-xl border border-zinc-200 bg-zinc-50 p-4 text-center text-xs text-zinc-600\"><p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"text-zinc-800\">Image mentale :</strong> l'IA ouvre 3 onglets de notes dans Obsidian, lit ces 3 notes, et c'est tout ce qui sort. Le reste du coffre reste invisible pour le provider.</p></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Conséquence pratique</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu <strong class=\"font-semibold text-foreground\">n'as pas besoin de deux coffres séparés</strong> (un « sécurisé » et un « pas sécurisé »). L'IA ne va lire que ce dont elle a besoin pour la requête en cours.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Et tu peux utiliser <strong class=\"font-semibold text-foreground\">différents modèles selon la sensibilité</strong> de chaque tâche, dans le même coffre. Par exemple :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tâche perso, brainstorm : DeepSeek V4 Flash sur OpenRouter ZDR</li>\n<li class=\"leading-7\">Tâche avec données clients : GLM 5.2 via Synthetic AI (abonnement ZDR)</li>\n<li class=\"leading-7\">Tâche créative sans enjeu : ChatGPT (GPT 5.6)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu bascules dans OpenCode Desktop en une seconde. Le coffre reste le même.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">3. Pourquoi la confidentialité, c'est important</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu te dis « j'ai rien à cacher, ça me préoccupe pas », regarde cette vidéo. Elle explique en détail ce qui se passe vraiment avec tes données quand tu parles à une IA, et pourquoi c'est bien plus large qu'un simple problème individuel.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Où vont vraiment vos données quand vous parlez à l'IA</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.youtube-nocookie.com/embed/uIjp0Bx9mWg\" title=\"Où vont vraiment vos données quand vous parlez à l'IA\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">40 minutes. Le contexte macro : Snowden, Cloud Act, marché de la prédiction, scénarios post-AGI.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les points clés en 1 minute :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Snowden, 2013</strong> : les agences de renseignement américaines (NSA Prism, programme XKeyscore) ont un accès direct aux serveurs de Google, Facebook, Apple, Microsoft. La devise interne : « on enregistre tout, on filtrera plus tard si besoin ». Le programme existe toujours, en plus puissant.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Cloud Act, 2018</strong> : toute entreprise US (peu importe où sont les serveurs) doit livrer les données au gouvernement américain sur demande. Donc même un data center « européen » d'AWS ou Azure est concerné.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Politiques de rétention en pratique</strong> : ChatGPT conserve par défaut tant que ton compte existe. Claude conserve 5 ans + 30 jours après suppression + jusqu'à 2 ans pour modération « trust &amp; safety » humaine. La suppression vraiment effective est rarement immédiate.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Le marché de la prédiction</strong> : ton profil comportemental vaut de l'argent. C'est ce que documente Shoshana Zuboff dans <em>The Age of Surveillance Capitalism</em>. Cambridge Analytica, Brexit, élection Trump sont les exemples emblématiques.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La posture saine : considérer que tout ce qui sort vers un provider US est potentiellement archivé pour toujours, peu importe ce que dit leur politique de confidentialité officielle.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">4. La confidentialité au quotidien : deux options ZDR</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la recommandation par défaut pour 90 % des cas.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">ZDR (Zero Data Retention)</strong> signifie que ta requête arrive au provider, le modèle génère une réponse, et <strong class=\"font-semibold text-foreground\">tout est supprimé immédiatement</strong>. Rien stocké, rien loggué, rien réutilisé pour entraîner un modèle. Le provider s'engage contractuellement et c'est auditable.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour ton usage privé, tu as deux options ZDR complémentaires. On <strong class=\"font-semibold text-foreground\">met en avant Synthetic AI</strong> (abonnement privé) pour tout ce qui touche des données clients ou sensibles, et on garde <strong class=\"font-semibold text-foreground\">OpenRouter ZDR</strong> (au token) pour DeepSeek et les tests.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Option 1 (à privilégier pour le privé) : Synthetic AI</h3>\n<div class=\"my-6 rounded-2xl border-2 border-amber-300 bg-amber-50 p-6\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Abonnement privé · ZDR · mis en avant</div><div class=\"text-lg font-bold text-amber-900 mb-2\">Synthetic AI (GLM 5.2)</div><p class=\"text-sm text-amber-900/80 mb-3\"><strong>Synthetic AI</strong> est un <strong>abonnement à 30 $/mois</strong> (pas de paiement au token) qui te donne des tokens <strong>ZDR (zéro rétention)</strong> sur <strong>GLM 5.2</strong>, servis très rapidement, pour à peu près le prix d'un abonnement ChatGPT. C'est notre recommandation pour tout ce qui est privé : données clients, raisonnement sur des sujets sensibles, tâches complexes. Tu prends l'abonnement, tu connectes GLM 5.2 dans OpenCode, et tout passe en ZDR sans jamais réfléchir au coût par requête.</p><div class=\"text-xs text-amber-700\"><a href=\"https://synthetic.new/?referral=jhBi88o8juvemeR\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">synthetic.new</a></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Option 2 : OpenRouter ZDR, au token (DeepSeek et tests)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter reste parfait pour <strong class=\"font-semibold text-foreground\">DeepSeek V4 Flash</strong> (ton défaut ultra bon marché) et pour <strong class=\"font-semibold text-foreground\">tester</strong> de nouveaux modèles à la demande, sans abonnement. Tu paies au token, tu actives le ZDR une seule fois, et tu es tranquille.</p>\n<div class=\"my-6\"><img alt=\"OpenRouter homepage\" class=\"rounded-xl border border-zinc-200\" src=\"assets/01-openrouter-homepage.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://openrouter.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">openrouter.ai</a> : 400+ modèles, 60+ providers, une seule API.</div></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Connecte-toi sur <a href=\"https://openrouter.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">openrouter.ai</a></li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Settings</strong> (en haut à droite)</li>\n<li class=\"leading-7\">Section <strong class=\"font-semibold text-foreground\">Privacy</strong> : active <strong class=\"font-semibold text-foreground\">Zero Data Retention</strong></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Save</strong></li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenRouter ne route alors que vers des providers qui ont signé l'engagement ZDR (Fireworks, Parasail, certaines instances DeepInfra...). Tes requêtes ne sont plus stockées.</p>\n<div class=\"my-6 grid grid-cols-1 md:grid-cols-3 gap-4\"><div class=\"rounded-xl border-2 border-amber-300 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Mis en avant · privé</div><div class=\"text-base font-bold text-amber-900 mb-3\">Synthetic AI (GLM 5.2, abonnement ZDR)</div><ul class=\"space-y-1 text-sm text-amber-900/80\"><li>Entraînement sur tes données : <strong>non</strong></li><li>Stockage de tes conversations : <strong>non</strong></li><li>Accès humain à tes échanges : <strong>non</strong></li><li>Modèle et tarif : <strong>GLM 5.2, 30 $/mois</strong></li></ul></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Recommandé · au token</div><div class=\"text-base font-bold text-emerald-900 mb-3\">OpenRouter ZDR activé</div><ul class=\"space-y-1 text-sm text-emerald-900/80\"><li>Entraînement sur tes données : <strong>non</strong></li><li>Stockage de tes conversations : <strong>non</strong></li><li>Accès humain à tes échanges : <strong>non</strong></li><li>Idéal pour : <strong>DeepSeek et les tests</strong></li></ul></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-600 mb-1\">À éviter pour le sensible</div><div class=\"text-base font-bold text-rose-900 mb-3\">Abonnements ChatGPT Plus / Claude Pro</div><ul class=\"space-y-1 text-sm text-rose-900/80\"><li>Entraînement : oui par défaut, opt-out manuel</li><li>Stockage : tant que le compte existe</li><li>Accès humain : possible (modération abus)</li><li>Rétention minimum : <strong>30 jours après suppression</strong></li></ul></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Sur ChatGPT, désactive l'entraînement</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu utilises ChatGPT Plus connecté à OpenCode Desktop, fais ce réglage manuellement :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://chatgpt.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">chatgpt.com</a>, clique sur ton avatar en haut à droite</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Settings</strong>, puis <strong class=\"font-semibold text-foreground\">Data Controls</strong></li>\n<li class=\"leading-7\">Désactive <strong class=\"font-semibold text-foreground\">« Improve the model for everyone »</strong></li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenAI ne peut plus utiliser tes conversations pour entraîner ses modèles. Note : la rétention reste tant que ton compte existe, ce n'est pas du ZDR. Pour les tâches sensibles, préfère Synthetic AI (GLM 5.2) ou OpenRouter ZDR.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">5. Si tu préfères héberger en Europe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour ceux qui veulent une infrastructure non-US par principe (souveraineté, RGPD strict, Cloud Act), voici les options réelles à l'été 2026.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Recommandation : Scaleway Generative APIs</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><a href=\"https://www.scaleway.com/en/generative-apis/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Scaleway</a> est la meilleure option européenne pure-play. Data centers en France, ZDR par défaut (pas besoin d'activer une option), pas d'entraînement sur tes données, RGPD natif. Ils proposent Llama 3, Mistral, Mixtral, DeepSeek R1. Pas dépendant d'AWS / Azure / GCP : infrastructure propre.</p>\n<div class=\"my-6\"><img alt=\"Scaleway Generative APIs\" class=\"rounded-xl border border-zinc-200\" src=\"assets/02-scaleway-generative-apis.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://www.scaleway.com/en/generative-apis/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">scaleway.com/en/generative-apis</a></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Alternative équivalente : OVHcloud AI Endpoints</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><a href=\"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">OVHcloud AI Endpoints</a>, data centers à Gravelines, plus de 40 modèles open source, certifié ISO 27001/27017/27018/27701. Souveraineté française complète, infrastructure 100 % propre.</p>\n<div class=\"my-6\"><img alt=\"OVHcloud AI Endpoints\" class=\"rounded-xl border border-zinc-200\" src=\"assets/03-ovhcloud-ai-endpoints.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://www.ovhcloud.com/en/public-cloud/ai-endpoints/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">ovhcloud.com/en/public-cloud/ai-endpoints</a></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Mistral AI : possible mais avec nuances</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Mistral AI est français, leurs modèles (Mistral Large 3, Magistral, Mistral Small 4, Codestral) sont solides en 2026. Mais attention :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Le Chat (gratuit ou payant)</strong> : entraînement sur tes données activé par défaut, opt-out manuel, <strong class=\"font-semibold text-foreground\">pas de ZDR disponible</strong>. À éviter pour un usage privacy-first.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">API / La Plateforme</strong> : ZDR disponible <strong class=\"font-semibold text-foreground\">sur demande au support</strong> avec justification. Pas activable d'un clic. Rétention par défaut 30 jours.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Cloud Act</strong> : Mistral utilise Microsoft Azure et Google Cloud comme sous-traitants pour l'inférence. Donc le Cloud Act peut techniquement s'appliquer, même si les serveurs sont en UE. Mistral Compute (data center propre en France, 18 000 GPU) est annoncé mais pas pleinement opérationnel.</li>\n</ul>\n<div class=\"my-6\"><img alt=\"Mistral AI homepage\" class=\"rounded-xl border border-zinc-200\" src=\"assets/04-mistral-ai-homepage.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://mistral.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">mistral.ai</a></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Verdict : Mistral via API + DPA signé + ZDR activé est acceptable. Mistral Le Chat, non recommandé pour des données sensibles.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Autres alternatives à connaître</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">LLMBase</strong> : trop petite et non vérifiable (entité légale opaque, revenus très modestes). <strong class=\"font-semibold text-foreground\">Non recommandé</strong> pour un usage sérieux.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Albert AI</strong> (DINUM) : réservé aux agents de l'État, pas accessible aux particuliers.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Lucie</strong> (Linagora) : modèle français mais performances actuelles insuffisantes pour un usage knowledge worker.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">6. Pour les données très sensibles : faire tourner le modèle en local</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu travailles avec des données de santé, juridiques, hautement confidentielles, ou si tu veux la souveraineté absolue, <strong class=\"font-semibold text-foreground\">fais tourner le modèle sur ton propre matériel</strong>. Rien ne sort de ton réseau.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La règle de base : pour que ça soit utilisable, le modèle doit tenir <strong class=\"font-semibold text-foreground\">entièrement dans ta RAM</strong> (sur Mac, c'est de la RAM unifiée partagée avec le GPU). S'il déborde sur le disque, la vitesse s'effondre. Ton plafond de RAM détermine donc directement les modèles auxquels tu as accès.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-zinc-200 bg-white p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-500 mb-1\">Le plus simple (CLI)</div><div class=\"text-base font-bold text-zinc-900 mb-2\">Ollama</div><div class=\"text-sm text-zinc-600 mb-3\">Une commande pour tout installer (<code class=\"text-xs\">curl -fsSL ollama.com/install.sh | sh</code>), puis <code class=\"text-xs\">ollama run qwen3:8b</code>. Idéal pour OpenCode Desktop qui s'y connecte en un clic.</div><img alt=\"Ollama homepage\" class=\"rounded-lg border border-zinc-200\" src=\"assets/05-ollama-homepage.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://ollama.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">ollama.com</a></div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-white p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-500 mb-1\">Interface graphique</div><div class=\"text-base font-bold text-zinc-900 mb-2\">LM Studio</div><div class=\"text-sm text-zinc-600 mb-3\">Une app desktop avec catalogue de modèles, téléchargement en un clic, chat intégré, et un serveur local compatible OpenAI. Plus accessible si tu fuis le terminal.</div><img alt=\"LM Studio homepage\" class=\"rounded-lg border border-zinc-200\" src=\"assets/06-lm-studio-homepage.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://lmstudio.ai/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">lmstudio.ai</a></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Tier 1 : 16 Go de RAM (MacBook Air M2, MacBook Pro M3 base)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux faire tourner des modèles de 3 à 8 milliards de paramètres en Q4 (quantisation 4 bits). C'est suffisant pour du chat, de l'aide à la rédaction, des recherches simples. <strong class=\"font-semibold text-foreground\">Pas suffisant pour de l'agentique avancé</strong> (multi-step, tool calls complexes).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Modèles à essayer :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\"><a href=\"https://deepmind.google/models/gemma\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Gemma 4 E2B</a></strong> (Google, ~3,5 Go en Q4). C'est le nouveau modèle Google sorti en avril 2026. Multimodal (texte + audio + image). DeepMind a annoncé en mai un projet « Accelerating Gemma 4 » qui ajoute du <strong class=\"font-semibold text-foreground\">multi-token prediction</strong> (le modèle prédit plusieurs tokens à la fois, ce qui accélère l'inférence sans dégrader la qualité). À surveiller.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Qwen 3 4B</strong> ou <strong class=\"font-semibold text-foreground\">Qwen 3 8B</strong> : très bon rapport qualité/taille, contexte 256K.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Llama 3.2 3B</strong> : rapide, qualité correcte pour du chat.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Vitesse attendue : 30 à 60 tokens/seconde sur Mac M3 16 Go. Confortable pour du chat, juste pour de l'agentique.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'intérêt à ce tier, c'est surtout de <strong class=\"font-semibold text-foreground\">comprendre comment le local fonctionne</strong> et de tester. Pour un usage knowledge worker complet, tu seras vite limité.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Tier 2 : 32 à 64 Go de RAM (MacBook Pro M3 Max, Mac mini M4 Pro)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le tier où le local devient vraiment utilisable au quotidien. Les modèles 12 à 32 milliards de paramètres deviennent confortables.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Gemma 4 26B-A4B</strong> (Google, MoE, ~18 Go en Q4) : 3,8B de paramètres actifs seulement à chaque token, donc rapide.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Qwen 3 32B</strong> (Q4) : meilleur open weight 30B à l'été 2026.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">DeepSeek R1 32B</strong> (Q4) : fort en raisonnement.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Mistral Small 24B</strong> (Q4) : inférence très rapide.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur 64 Go, les modèles 70B (~43 Go en Q4) deviennent accessibles : Llama 3.3 70B, DeepSeek R1 70B.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Tier 3 : 128 Go et plus (Mac Studio M3/M4 Ultra)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ici que tu peux faire tourner les <strong class=\"font-semibold text-foreground\">gros modèles open source frontières</strong> (GLM 5.2, DeepSeek V4 Flash, Qwen 3 235B). Ordre de prix :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Mac Studio M3 Ultra 192 Go</strong> : 10 000 à 13 000 €</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Mac Studio M4 Ultra 512 Go</strong> : 25 000 à 30 000 € (haut de gamme grand public absolu)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À 192 Go, tu peux faire tourner :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">DeepSeek R1 70B en Q8</strong> (~80 Go) : qualité quasi équivalente à la version full precision</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Qwen 3 235B MoE en Q2</strong> (~90-100 Go) : 22B actifs à chaque token</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">GLM 5.2 744B MoE en Q2</strong> (~150 Go estimé) : 40B actifs</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Mistral Large 123B en Q4</strong> (~75 Go)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À 512 Go, <strong class=\"font-semibold text-foreground\">DeepSeek V4 Flash en Q4</strong> ou même certains modèles 400B+ deviennent faisables.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Comprendre la quantisation (Q2, Q4, Q5...)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un modèle « brut » stocke ses paramètres en 16 bits (FP16). Le quantiser, c'est compresser ces paramètres sur moins de bits, pour qu'il prenne moins de RAM.</p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Niveau</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Bits/poids</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Effet sur la qualité</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Quand l'utiliser</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Q5</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~5 bits</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Quasi identique au full precision</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Si tu as la RAM</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Q4</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~4 bits</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Légère perte, peu perceptible</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Le défaut recommandé</strong></td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Q2</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~2 bits</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Dégradation visible : hallucinations, raisonnement moins fiable</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Uniquement pour les très gros modèles (100B+) quand tu n'as pas le choix pour tenir en RAM</td></tr></tbody></table></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le suffixe <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">K_M</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">K_S</code> (K-quant Medium / Small) indique une variante optimisée qui préserve mieux les couches importantes du modèle. Pour Ollama, le défaut est généralement <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Q4_K_M</code>, c'est très bien.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Pour aller plus loin</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur le hardware et l'optimisation du local, je te recommande la chaîne YouTube <strong class=\"font-semibold text-foreground\"><a href=\"https://www.youtube.com/@xcreate\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">@xcreate</a></strong> qui couvre le sujet en profondeur : choix de hardware, quantisation, comparaisons de modèles, retours d'expérience sur les Mac Studio.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Cas pratique : une équipe qui mutualise</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour une boîte de 5 à 50 personnes, <strong class=\"font-semibold text-foreground\">un Mac Studio Full Spec partagé</strong> devient rapidement rentable comparé à 10 ou 50 abonnements API. Tu installes Ollama dessus, tu exposes l'API en réseau local, chacun connecte son OpenCode Desktop dessus. Rien ne sort de l'infra. ROI typique : moins d'un an de mutualisation par rapport aux abonnements individuels.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">7. Gérer ses secrets : API keys et mots de passe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Commençons par dédramatiser. La dernière promo a passé un temps fou à installer et brancher Bitwarden. Dans la grande majorité des cas, tu n'en as pas besoin.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Si ton coffre est en Obsidian Sync, tes clés sont déjà chiffrées</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand ton coffre est synchronisé avec <strong class=\"font-semibold text-foreground\">Obsidian Sync</strong>, tout est <strong class=\"font-semibold text-foreground\">chiffré de bout en bout</strong> (E2E) avec ton mot de passe d'encryption. Même Obsidian ne peut pas lire tes fichiers.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Conséquence directe : avoir tes clés API en clair dans tes fichiers de config (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code>) ou dans une note, <strong class=\"font-semibold text-foreground\">ce n'est pas un problème grave</strong>. C'est chiffré E2E, le risque réel est très faible.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'es pas le Pentagone. Tu es un knowledge worker qui veut avancer vite avec son IA. Privilégie la <strong class=\"font-semibold text-foreground\">simplicité d'usage</strong> plutôt que la complexité d'un password manager que tu vas galérer à connecter. Des clés en clair dans un coffre chiffré E2E, c'est très bien pour démarrer, et très bien pour durer.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le bon sens minimal : 2 règles suffisent</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Ne colle jamais une clé dans un espace public</strong> : session ChatGPT partagée, Discord, forum, ticket support. Là, elle sort vraiment en clair chez un tiers.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Ne commite jamais une clé dans un repo Git public non chiffré.</strong> Un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> poussé sur un GitHub public, c'est la fuite classique. Ajoute <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> à ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.gitignore</code> (détaillé en semaine 3) et le sujet est réglé.</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le reste, c'est du confort.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Optionnel (avancé) : Bitwarden comme coffre central</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'en as pas besoin pour le bootcamp. Mais si tu veux aller plus loin, ou si tu gères des <strong class=\"font-semibold text-foreground\">données client très sensibles</strong> (santé, juridique, secrets d'une boîte tierce), un password manager centralise proprement tous tes secrets (API keys, mots de passe, tokens, clés SSH). <a href=\"https://bitwarden.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Bitwarden</a> est gratuit, open source, chiffré de bout en bout, avec app mobile et extension navigateur.</p>\n<div class=\"my-6\"><img alt=\"Bitwarden homepage\" class=\"rounded-xl border border-zinc-200\" src=\"assets/07-bitwarden-homepage.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\"><a href=\"https://bitwarden.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">bitwarden.com</a></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Connecter Bitwarden à ton IA via Bitwarden CLI</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bitwarden propose un CLI (<a href=\"https://bitwarden.com/help/cli/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle</a>) qui permet à ton IA de <strong class=\"font-semibold text-foreground\">récupérer un secret à la volée</strong> dans tes scripts ou tes sessions, sans jamais que tu n'aies à le coller en clair quelque part.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Installer le CLI</strong> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Mac\nbrew install bitwarden-cli\n\n# Windows (via Chocolatey ou exécutable natif)\nchoco install bitwarden-cli\n\n# Cross-platform via npm\nnpm install -g @bitwarden/cli\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Workflow concret</strong> :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Une fois par session, tu déverrouilles ton coffre manuellement dans ton terminal :</li>\n</ol>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">bw unlock\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bitwarden te demande ton mot de passe maître. Une fois validé, il te retourne une commande à copier-coller :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">export BW_SESSION=\"eyJhbGciOi...\"\n</code></pre></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu colles cette commande dans ton shell. <strong class=\"font-semibold text-foreground\">Tant que cette variable d'env existe</strong>, toutes les commandes Bitwarden fonctionnent sans demander à nouveau ton mot de passe.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant, ton IA dans OpenCode peut récupérer n'importe quel secret à la volée :</p>\n</li>\n</ol>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Lister tes secrets\nbw list items --search \"OpenAI\"\n\n# Récupérer juste le mot de passe d'un item\nbw get password \"OpenAI API\"\n\n# Récupérer l'item complet en JSON\nbw get item \"OpenAI API\"\n</code></pre></div>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Quand tu as fini ta session, verrouille à nouveau :</li>\n</ol>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">bw lock\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le token expire automatiquement après inactivité, donc même si tu oublies, tu n'es pas exposé indéfiniment.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Avantage</strong> : ton IA peut accéder à tes secrets quand elle en a besoin (pour faire un appel API, configurer un MCP), mais <strong class=\"font-semibold text-foreground\">elle ne voit jamais ton mot de passe maître</strong>. Seul le token de session temporaire transite. Et tu peux révoquer l'accès à tout moment avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">bw lock</code>.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Prompt à donner à ton IA</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu veux qu'elle utilise un secret dans une tâche, dis-lui simplement :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'ai déverrouillé mon coffre Bitwarden. Mon BW_SESSION est exporté.\nRécupère ma clé API OpenAI avec `bw get password \"OpenAI API\"`\net utilise-la pour [tâche].\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Elle exécute, fait son boulot, et ton secret n'est jamais écrit en clair quelque part de persistant.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Et les secrets dans Obsidian ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est parfaitement OK, <strong class=\"font-semibold text-foreground\">à condition que ton coffre soit synchronisé via Obsidian Sync</strong> (chiffrement de bout en bout avec ton mot de passe d'encryption). Dans ce cas, une clé API dans une note ou dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> est chiffrée dès qu'elle quitte ta machine. C'est le setup par défaut recommandé.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux réflexes de bon sens, quand même :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ton coffre est en clair <strong class=\"font-semibold text-foreground\">sur ton disque local</strong> (seul le transfert vers le cloud est chiffré). Sur ta machine perso, ce n'est pas un souci. Sur une machine partagée, active le chiffrement disque (FileVault sur Mac, activé par défaut).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Ne pousse pas ton vault sur un GitHub public.</strong> Si tu veux le versionner sur Git, garde le repo privé, ou mieux, auto-hébergé (Gitea, voir semaine 3).</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Autrement dit : coffre en Obsidian Sync, tes clés y sont bien. Un password manager n'ajoute qu'un cran de sécurité optionnel, utile surtout pour des données client très sensibles.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Dans tes projets de développement</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les projets de code (sites web, apps), utilise un fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> à la racine et ajoute-le dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.gitignore</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code># .gitignore\n.env\n.env.local\n.env.*.local\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les valeurs peuvent rester en clair dans le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> (il est ignoré par git). Si tu utilises un password manager, tu peux aussi les injecter via son CLI au moment du déploiement (CI/CD ou script local), mais ce n'est pas obligatoire.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">8. Synchronisation du coffre</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu synchronises ton coffre avec Obsidian Sync, GitHub ou autre :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Obsidian Sync</strong> (recommandé) : tes données passent par les serveurs d'Obsidian, mais sont <strong class=\"font-semibold text-foreground\">chiffrées de bout en bout</strong> avec ton mot de passe d'encryption. Même Obsidian ne peut pas les lire.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">GitHub</strong> (repo privé) : stockage sur serveurs Microsoft (US, soumis au Cloud Act). GitHub ne lit pas le contenu pour entraîner Copilot tant que tu ne l'actives pas explicitement.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">GitLab self-hosted</strong> ou <strong class=\"font-semibold text-foreground\">Gitea</strong> sur ton propre serveur : alternative souveraine, plus technique. On installe Gitea en semaine 3 si tu prends ce chemin.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">9. Récapitulatif</h2>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Question</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Réponse</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">L'IA peut-elle tout faire par défaut sur mon ordi ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non. Elle demande validation au cas par cas. Tu peux activer l'auto-accept dans les réglages.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Mes fichiers quittent-ils mon ordi en bloc ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non. L'IA ne lit que les fichiers pertinents pour ta requête, puis envoie ces extraits seulement.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Faut-il deux coffres pour séparer perso et sensible ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Non. Tu peux changer de modèle selon la tâche dans le même coffre.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Comment avoir 0 conservation chez le provider ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Synthetic AI (abonnement 30 $/mois, GLM 5.2, ZDR) pour le privé, ou OpenRouter ZDR (au token) pour DeepSeek et les tests.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Et chez ChatGPT ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Désactive l'entraînement dans Data Controls. Reste rétention tant que le compte existe.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Existe-t-il des alternatives européennes ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Oui : Scaleway et OVHcloud sont les meilleures pures options souveraines. Mistral via API + ZDR est acceptable.</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Pour des données ultra sensibles ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Modèle local (Mac Studio Full Spec, Ollama / LM Studio).</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Où stocker mes API keys ?</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">En clair dans tes fichiers suffit, tant que ton coffre est en Obsidian Sync (chiffré E2E). Bitwarden est optionnel. Jamais dans un repo public ni un chat public.</td></tr></tbody></table></div>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends que l'IA demande validation par défaut, et que je peux activer l'auto-accept — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends que l'IA demande validation par défaut, et que je peux activer l'auto-accept</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai utilisé le mini-prompt pour configurer mes permissions opencode.json — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai utilisé le mini-prompt pour configurer mes permissions opencode.json</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai compris que l'IA ne lit que les fichiers pertinents (pas tout le coffre) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai compris que l'IA ne lit que les fichiers pertinents (pas tout le coffre)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais Synthetic AI comme option ZDR privée mise en avant (GLM 5.2, abonnement 30 $/mois) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais Synthetic AI comme option ZDR privée mise en avant (GLM 5.2, abonnement 30 $/mois)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai activé ZDR sur OpenRouter (Settings, Privacy) pour DeepSeek et les tests — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai activé ZDR sur OpenRouter (Settings, Privacy) pour DeepSeek et les tests</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai désactivé l'entraînement sur ChatGPT (Data Controls) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai désactivé l'entraînement sur ChatGPT (Data Controls)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que des alternatives européennes existent (Scaleway, OVHcloud) pour les cas où c'est nécessaire — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que des alternatives européennes existent (Scaleway, OVHcloud) pour les cas où c'est nécessaire</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync), jamais dans un repo public ni un chat public — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync), jamais dans un repo public ni un chat public</span></li></ul>",
      "content_markdown": "## Zoom sur la sécurité et la privacy\n\nTravailler avec l'IA dans tes fichiers locaux, ça soulève deux questions : qu'est-ce qu'elle peut faire sur ton ordinateur, et qu'est-ce qui sort vers le provider quand tu lui parles. Cette leçon répond aux deux, dans cet ordre.\n\n---\n\n## 1. L'IA n'a pas accès à tout par défaut\n\nC'est le premier point à comprendre. Quand tu lances OpenCode Desktop, **l'IA ne peut rien faire sans ta validation**. Elle a la configuration de base d'OpenCode, qui te demande explicitement avant chaque action :\n\n- Lire ce fichier : tu valides ?\n- Modifier cette note : tu valides ?\n- Exécuter cette commande bash : tu valides ?\n\nC'est volontaire. Tu gardes le contrôle de tout, mais ça peut vite devenir lourd au quotidien.\n\nMode strict\n\nValidation au cas par cas\n\nL'IA demande la permission avant chaque action. Maximum de sécurité, friction quotidienne forte.\n\nMode équilibré\n\nPermissions ciblées\n\nTu autorises les actions sûres (lecture, écriture dans ton coffre), tu bloques les risquées (rm, curl). Équilibre fluide.\n\nMode auto\n\nAuto-accept tout\n\nL'IA peut tout faire sans demander. Fluide pour le travail intensif, à éviter sur projets clients sensibles.\n\n### Le bouton \"accepter automatiquement\"\n\nDans les réglages d'OpenCode Desktop, tu peux activer une option qui dit à l'IA : « tu peux faire ce que tu veux sans me demander, je te fais confiance ». Pratique quand tu travailles à fond. Tu peux la désactiver à tout moment.\n\n> Compromis classique : confiance maximale (fluide mais l'IA peut tout faire) vs validation au cas par cas (sécurisé mais lent). La plupart des participants finissent par activer l'auto-accept dans leur coffre, et désactivent quand ils travaillent sur des projets clients sensibles.\n\n### Restreindre finement les permissions\n\nSi tu veux quelque chose entre les deux extrêmes (auto-accept ou validation totale), tu peux configurer **précisément** ce que l'IA peut faire dans le fichier `opencode.json` à la racine de ton workspace.\n\nC'est du JSON. Tu peux l'écrire toi-même en lisant la [documentation officielle d'OpenCode sur les permissions](https://opencode.ai/docs/permissions). Ou, mieux : tu demandes à l'IA de le faire pour toi.\n\n### Le mini-prompt pour configurer tes permissions sans toucher au JSON\n\nPlutôt que d'apprendre la syntaxe `opencode.json`, copie-colle ce prompt à ton IA dans OpenCode :\n\nPrompt à coller dans OpenCode\n\n```\nJe veux configurer tes permissions dans opencode.json.\n\nD'abord, lis la documentation officielle ici :\nhttps://opencode.ai/docs/permissions\n\nEnsuite, pose-moi ces questions une par une, attends ma réponse\n(oui / non / précise) avant de passer à la suivante :\n\n1. Tu peux lire les fichiers dans Second Cerveau/ sans me demander ?\n2. Tu peux écrire dans Second Cerveau/ sans me demander ?\n3. Tu peux accéder aux autres dossiers de mon Workspace ?\n4. Tu peux exécuter des commandes shell (git, ls, cat) sans me demander ?\n5. Tu peux exécuter des commandes réseau (curl, wget) sans me demander ?\n6. Tu peux exécuter des commandes destructrices (rm, mv, rmdir) sans me demander ?\n\nÀ la fin, mets à jour opencode.json avec mes choix, montre-moi le résultat,\net explique-moi en une phrase ce que ça change.\n```\n\nL'IA va lire la doc à jour, te poser les questions dans ton langage, et écrire le JSON pour toi. Tu valides à la fin. Tu n'as jamais à toucher au JSON manuellement.\n\n---\n\n## 2. Ce qui est envoyé au modèle (et ce qui ne l'est pas)\n\nC'est le deuxième point essentiel : **quand tu poses une question à ton IA, qu'est-ce qui sort de ton ordinateur exactement ?**\n\nLa réponse va te rassurer.\n\n### Ton coffre n'est pas uploadé en bloc\n\nÀ chaque requête, l'IA ne « charge » pas tout ton coffre en mémoire pour ensuite l'envoyer au provider. Voici ce qui se passe vraiment :\n\nSur ton ordinateur\n\nTout ton coffre reste local\n\n1. L'IA **scanne** les noms de fichiers et la structure\n2. Elle **identifie** les fichiers pertinents pour ta question\n3. Elle **lit** uniquement ceux-là (3, 5, parfois 20 fichiers)\n4. Elle **écrit** les modifications directement sur ton disque\n\nEnvoyé au provider IA\n\nUniquement des extraits\n\n1. Ta **question** (le prompt)\n2. Le **contenu** des fichiers que l'IA a lus\n3. L'historique de la conversation en cours\n4. Rien d'autre. Pas de scan global, pas d'upload du coffre\n\n**Image mentale :** l'IA ouvre 3 onglets de notes dans Obsidian, lit ces 3 notes, et c'est tout ce qui sort. Le reste du coffre reste invisible pour le provider.\n\n### Conséquence pratique\n\nTu **n'as pas besoin de deux coffres séparés** (un « sécurisé » et un « pas sécurisé »). L'IA ne va lire que ce dont elle a besoin pour la requête en cours.\n\nEt tu peux utiliser **différents modèles selon la sensibilité** de chaque tâche, dans le même coffre. Par exemple :\n\n- Tâche perso, brainstorm : DeepSeek V4 Flash sur OpenRouter ZDR\n- Tâche avec données clients : GLM 5.2 via Synthetic AI (abonnement ZDR)\n- Tâche créative sans enjeu : ChatGPT (GPT 5.6)\n\nTu bascules dans OpenCode Desktop en une seconde. Le coffre reste le même.\n\n---\n\n## 3. Pourquoi la confidentialité, c'est important\n\nSi tu te dis « j'ai rien à cacher, ça me préoccupe pas », regarde cette vidéo. Elle explique en détail ce qui se passe vraiment avec tes données quand tu parles à une IA, et pourquoi c'est bien plus large qu'un simple problème individuel.\n\nOù vont vraiment vos données quand vous parlez à l'IA\n\n40 minutes. Le contexte macro : Snowden, Cloud Act, marché de la prédiction, scénarios post-AGI.\n\nLes points clés en 1 minute :\n\n- **Snowden, 2013** : les agences de renseignement américaines (NSA Prism, programme XKeyscore) ont un accès direct aux serveurs de Google, Facebook, Apple, Microsoft. La devise interne : « on enregistre tout, on filtrera plus tard si besoin ». Le programme existe toujours, en plus puissant.\n- **Cloud Act, 2018** : toute entreprise US (peu importe où sont les serveurs) doit livrer les données au gouvernement américain sur demande. Donc même un data center « européen » d'AWS ou Azure est concerné.\n- **Politiques de rétention en pratique** : ChatGPT conserve par défaut tant que ton compte existe. Claude conserve 5 ans + 30 jours après suppression + jusqu'à 2 ans pour modération « trust & safety » humaine. La suppression vraiment effective est rarement immédiate.\n- **Le marché de la prédiction** : ton profil comportemental vaut de l'argent. C'est ce que documente Shoshana Zuboff dans *The Age of Surveillance Capitalism*. Cambridge Analytica, Brexit, élection Trump sont les exemples emblématiques.\n\nLa posture saine : considérer que tout ce qui sort vers un provider US est potentiellement archivé pour toujours, peu importe ce que dit leur politique de confidentialité officielle.\n\n---\n\n## 4. La confidentialité au quotidien : deux options ZDR\n\nC'est la recommandation par défaut pour 90 % des cas.\n\n**ZDR (Zero Data Retention)** signifie que ta requête arrive au provider, le modèle génère une réponse, et **tout est supprimé immédiatement**. Rien stocké, rien loggué, rien réutilisé pour entraîner un modèle. Le provider s'engage contractuellement et c'est auditable.\n\nPour ton usage privé, tu as deux options ZDR complémentaires. On **met en avant Synthetic AI** (abonnement privé) pour tout ce qui touche des données clients ou sensibles, et on garde **OpenRouter ZDR** (au token) pour DeepSeek et les tests.\n\n### Option 1 (à privilégier pour le privé) : Synthetic AI\n\nAbonnement privé · ZDR · mis en avant\n\nSynthetic AI (GLM 5.2)\n\n**Synthetic AI** est un **abonnement à 30 $/mois** (pas de paiement au token) qui te donne des tokens **ZDR (zéro rétention)** sur **GLM 5.2**, servis très rapidement, pour à peu près le prix d'un abonnement ChatGPT. C'est notre recommandation pour tout ce qui est privé : données clients, raisonnement sur des sujets sensibles, tâches complexes. Tu prends l'abonnement, tu connectes GLM 5.2 dans OpenCode, et tout passe en ZDR sans jamais réfléchir au coût par requête.\n\n[synthetic.new](https://synthetic.new/?referral=jhBi88o8juvemeR)\n\n### Option 2 : OpenRouter ZDR, au token (DeepSeek et tests)\n\nOpenRouter reste parfait pour **DeepSeek V4 Flash** (ton défaut ultra bon marché) et pour **tester** de nouveaux modèles à la demande, sans abonnement. Tu paies au token, tu actives le ZDR une seule fois, et tu es tranquille.\n\n![OpenRouter homepage](/images/ia-mars-2026/openrouter-homepage.png)\n\n[openrouter.ai](https://openrouter.ai) : 400+ modèles, 60+ providers, une seule API.\n\n1. Connecte-toi sur [openrouter.ai](https://openrouter.ai)\n2. Va dans **Settings** (en haut à droite)\n3. Section **Privacy** : active **Zero Data Retention**\n4. **Save**\n\nOpenRouter ne route alors que vers des providers qui ont signé l'engagement ZDR (Fireworks, Parasail, certaines instances DeepInfra...). Tes requêtes ne sont plus stockées.\n\nMis en avant · privé\n\nSynthetic AI (GLM 5.2, abonnement ZDR)\n\n- Entraînement sur tes données : **non**\n- Stockage de tes conversations : **non**\n- Accès humain à tes échanges : **non**\n- Modèle et tarif : **GLM 5.2, 30 $/mois**\n\nRecommandé · au token\n\nOpenRouter ZDR activé\n\n- Entraînement sur tes données : **non**\n- Stockage de tes conversations : **non**\n- Accès humain à tes échanges : **non**\n- Idéal pour : **DeepSeek et les tests**\n\nÀ éviter pour le sensible\n\nAbonnements ChatGPT Plus / Claude Pro\n\n- Entraînement : oui par défaut, opt-out manuel\n- Stockage : tant que le compte existe\n- Accès humain : possible (modération abus)\n- Rétention minimum : **30 jours après suppression**\n\n### Sur ChatGPT, désactive l'entraînement\n\nSi tu utilises ChatGPT Plus connecté à OpenCode Desktop, fais ce réglage manuellement :\n\n1. Va sur [chatgpt.com](https://chatgpt.com), clique sur ton avatar en haut à droite\n2. **Settings**, puis **Data Controls**\n3. Désactive **« Improve the model for everyone »**\n\nOpenAI ne peut plus utiliser tes conversations pour entraîner ses modèles. Note : la rétention reste tant que ton compte existe, ce n'est pas du ZDR. Pour les tâches sensibles, préfère Synthetic AI (GLM 5.2) ou OpenRouter ZDR.\n\n---\n\n## 5. Si tu préfères héberger en Europe\n\nPour ceux qui veulent une infrastructure non-US par principe (souveraineté, RGPD strict, Cloud Act), voici les options réelles à l'été 2026.\n\n### Recommandation : Scaleway Generative APIs\n\n[Scaleway](https://www.scaleway.com/en/generative-apis/) est la meilleure option européenne pure-play. Data centers en France, ZDR par défaut (pas besoin d'activer une option), pas d'entraînement sur tes données, RGPD natif. Ils proposent Llama 3, Mistral, Mixtral, DeepSeek R1. Pas dépendant d'AWS / Azure / GCP : infrastructure propre.\n\n![Scaleway Generative APIs](/images/ia-mars-2026/scaleway-generative-apis.png)\n\n[scaleway.com/en/generative-apis](https://www.scaleway.com/en/generative-apis/)\n\n### Alternative équivalente : OVHcloud AI Endpoints\n\n[OVHcloud AI Endpoints](https://www.ovhcloud.com/en/public-cloud/ai-endpoints/), data centers à Gravelines, plus de 40 modèles open source, certifié ISO 27001/27017/27018/27701. Souveraineté française complète, infrastructure 100 % propre.\n\n![OVHcloud AI Endpoints](/images/ia-mars-2026/ovhcloud-ai-endpoints.png)\n\n[ovhcloud.com/en/public-cloud/ai-endpoints](https://www.ovhcloud.com/en/public-cloud/ai-endpoints/)\n\n### Mistral AI : possible mais avec nuances\n\nMistral AI est français, leurs modèles (Mistral Large 3, Magistral, Mistral Small 4, Codestral) sont solides en 2026. Mais attention :\n\n- **Le Chat (gratuit ou payant)** : entraînement sur tes données activé par défaut, opt-out manuel, **pas de ZDR disponible**. À éviter pour un usage privacy-first.\n- **API / La Plateforme** : ZDR disponible **sur demande au support** avec justification. Pas activable d'un clic. Rétention par défaut 30 jours.\n- **Cloud Act** : Mistral utilise Microsoft Azure et Google Cloud comme sous-traitants pour l'inférence. Donc le Cloud Act peut techniquement s'appliquer, même si les serveurs sont en UE. Mistral Compute (data center propre en France, 18 000 GPU) est annoncé mais pas pleinement opérationnel.\n\n![Mistral AI homepage](/images/ia-mars-2026/mistral-homepage.png)\n\n[mistral.ai](https://mistral.ai)\n\nVerdict : Mistral via API + DPA signé + ZDR activé est acceptable. Mistral Le Chat, non recommandé pour des données sensibles.\n\n### Autres alternatives à connaître\n\n- **LLMBase** : trop petite et non vérifiable (entité légale opaque, revenus très modestes). **Non recommandé** pour un usage sérieux.\n- **Albert AI** (DINUM) : réservé aux agents de l'État, pas accessible aux particuliers.\n- **Lucie** (Linagora) : modèle français mais performances actuelles insuffisantes pour un usage knowledge worker.\n\n---\n\n## 6. Pour les données très sensibles : faire tourner le modèle en local\n\nSi tu travailles avec des données de santé, juridiques, hautement confidentielles, ou si tu veux la souveraineté absolue, **fais tourner le modèle sur ton propre matériel**. Rien ne sort de ton réseau.\n\nLa règle de base : pour que ça soit utilisable, le modèle doit tenir **entièrement dans ta RAM** (sur Mac, c'est de la RAM unifiée partagée avec le GPU). S'il déborde sur le disque, la vitesse s'effondre. Ton plafond de RAM détermine donc directement les modèles auxquels tu as accès.\n\nLe plus simple (CLI)\n\nOllama\n\nUne commande pour tout installer (`curl -fsSL ollama.com/install.sh | sh`), puis `ollama run qwen3:8b`. Idéal pour OpenCode Desktop qui s'y connecte en un clic.\n\n![Ollama homepage](/images/ia-mars-2026/ollama-homepage.png)\n\n[ollama.com](https://ollama.com)\n\nInterface graphique\n\nLM Studio\n\nUne app desktop avec catalogue de modèles, téléchargement en un clic, chat intégré, et un serveur local compatible OpenAI. Plus accessible si tu fuis le terminal.\n\n![LM Studio homepage](/images/ia-mars-2026/lmstudio-homepage.png)\n\n[lmstudio.ai](https://lmstudio.ai)\n\n### Tier 1 : 16 Go de RAM (MacBook Air M2, MacBook Pro M3 base)\n\nTu peux faire tourner des modèles de 3 à 8 milliards de paramètres en Q4 (quantisation 4 bits). C'est suffisant pour du chat, de l'aide à la rédaction, des recherches simples. **Pas suffisant pour de l'agentique avancé** (multi-step, tool calls complexes).\n\nModèles à essayer :\n\n- **[Gemma 4 E2B](https://deepmind.google/models/gemma)** (Google, ~3,5 Go en Q4). C'est le nouveau modèle Google sorti en avril 2026. Multimodal (texte + audio + image). DeepMind a annoncé en mai un projet « Accelerating Gemma 4 » qui ajoute du **multi-token prediction** (le modèle prédit plusieurs tokens à la fois, ce qui accélère l'inférence sans dégrader la qualité). À surveiller.\n- **Qwen 3 4B** ou **Qwen 3 8B** : très bon rapport qualité/taille, contexte 256K.\n- **Llama 3.2 3B** : rapide, qualité correcte pour du chat.\n\nVitesse attendue : 30 à 60 tokens/seconde sur Mac M3 16 Go. Confortable pour du chat, juste pour de l'agentique.\n\nL'intérêt à ce tier, c'est surtout de **comprendre comment le local fonctionne** et de tester. Pour un usage knowledge worker complet, tu seras vite limité.\n\n### Tier 2 : 32 à 64 Go de RAM (MacBook Pro M3 Max, Mac mini M4 Pro)\n\nC'est le tier où le local devient vraiment utilisable au quotidien. Les modèles 12 à 32 milliards de paramètres deviennent confortables.\n\n- **Gemma 4 26B-A4B** (Google, MoE, ~18 Go en Q4) : 3,8B de paramètres actifs seulement à chaque token, donc rapide.\n- **Qwen 3 32B** (Q4) : meilleur open weight 30B à l'été 2026.\n- **DeepSeek R1 32B** (Q4) : fort en raisonnement.\n- **Mistral Small 24B** (Q4) : inférence très rapide.\n\nSur 64 Go, les modèles 70B (~43 Go en Q4) deviennent accessibles : Llama 3.3 70B, DeepSeek R1 70B.\n\n### Tier 3 : 128 Go et plus (Mac Studio M3/M4 Ultra)\n\nC'est ici que tu peux faire tourner les **gros modèles open source frontières** (GLM 5.2, DeepSeek V4 Flash, Qwen 3 235B). Ordre de prix :\n\n- **Mac Studio M3 Ultra 192 Go** : 10 000 à 13 000 €\n- **Mac Studio M4 Ultra 512 Go** : 25 000 à 30 000 € (haut de gamme grand public absolu)\n\nÀ 192 Go, tu peux faire tourner :\n\n- **DeepSeek R1 70B en Q8** (~80 Go) : qualité quasi équivalente à la version full precision\n- **Qwen 3 235B MoE en Q2** (~90-100 Go) : 22B actifs à chaque token\n- **GLM 5.2 744B MoE en Q2** (~150 Go estimé) : 40B actifs\n- **Mistral Large 123B en Q4** (~75 Go)\n\nÀ 512 Go, **DeepSeek V4 Flash en Q4** ou même certains modèles 400B+ deviennent faisables.\n\n### Comprendre la quantisation (Q2, Q4, Q5...)\n\nUn modèle « brut » stocke ses paramètres en 16 bits (FP16). Le quantiser, c'est compresser ces paramètres sur moins de bits, pour qu'il prenne moins de RAM.\n\n| Niveau | Bits/poids | Effet sur la qualité | Quand l'utiliser |\n| --- | --- | --- | --- |\n| Q5 | ~5 bits | Quasi identique au full precision | Si tu as la RAM |\n| Q4 | ~4 bits | Légère perte, peu perceptible | Le défaut recommandé |\n| Q2 | ~2 bits | Dégradation visible : hallucinations, raisonnement moins fiable | Uniquement pour les très gros modèles (100B+) quand tu n'as pas le choix pour tenir en RAM |\n\nLe suffixe `K_M` ou `K_S` (K-quant Medium / Small) indique une variante optimisée qui préserve mieux les couches importantes du modèle. Pour Ollama, le défaut est généralement `Q4_K_M`, c'est très bien.\n\n### Pour aller plus loin\n\nSur le hardware et l'optimisation du local, je te recommande la chaîne YouTube **[@xcreate](https://www.youtube.com/@xcreate)** qui couvre le sujet en profondeur : choix de hardware, quantisation, comparaisons de modèles, retours d'expérience sur les Mac Studio.\n\n### Cas pratique : une équipe qui mutualise\n\nPour une boîte de 5 à 50 personnes, **un Mac Studio Full Spec partagé** devient rapidement rentable comparé à 10 ou 50 abonnements API. Tu installes Ollama dessus, tu exposes l'API en réseau local, chacun connecte son OpenCode Desktop dessus. Rien ne sort de l'infra. ROI typique : moins d'un an de mutualisation par rapport aux abonnements individuels.\n\n---\n\n## 7. Gérer ses secrets : API keys et mots de passe\n\nCommençons par dédramatiser. La dernière promo a passé un temps fou à installer et brancher Bitwarden. Dans la grande majorité des cas, tu n'en as pas besoin.\n\n### Si ton coffre est en Obsidian Sync, tes clés sont déjà chiffrées\n\nQuand ton coffre est synchronisé avec **Obsidian Sync**, tout est **chiffré de bout en bout** (E2E) avec ton mot de passe d'encryption. Même Obsidian ne peut pas lire tes fichiers.\n\nConséquence directe : avoir tes clés API en clair dans tes fichiers de config (`opencode.json`, `.env`) ou dans une note, **ce n'est pas un problème grave**. C'est chiffré E2E, le risque réel est très faible.\n\nTu n'es pas le Pentagone. Tu es un knowledge worker qui veut avancer vite avec son IA. Privilégie la **simplicité d'usage** plutôt que la complexité d'un password manager que tu vas galérer à connecter. Des clés en clair dans un coffre chiffré E2E, c'est très bien pour démarrer, et très bien pour durer.\n\n### Le bon sens minimal : 2 règles suffisent\n\n1. **Ne colle jamais une clé dans un espace public** : session ChatGPT partagée, Discord, forum, ticket support. Là, elle sort vraiment en clair chez un tiers.\n2. **Ne commite jamais une clé dans un repo Git public non chiffré.** Un `.env` poussé sur un GitHub public, c'est la fuite classique. Ajoute `.env` à ton `.gitignore` (détaillé en semaine 3) et le sujet est réglé.\n\nLe reste, c'est du confort.\n\n### Optionnel (avancé) : Bitwarden comme coffre central\n\nTu n'en as pas besoin pour le bootcamp. Mais si tu veux aller plus loin, ou si tu gères des **données client très sensibles** (santé, juridique, secrets d'une boîte tierce), un password manager centralise proprement tous tes secrets (API keys, mots de passe, tokens, clés SSH). [Bitwarden](https://bitwarden.com) est gratuit, open source, chiffré de bout en bout, avec app mobile et extension navigateur.\n\n![Bitwarden homepage](/images/ia-mars-2026/bitwarden-homepage.png)\n\n[bitwarden.com](https://bitwarden.com)\n\n### Connecter Bitwarden à ton IA via Bitwarden CLI\n\nBitwarden propose un CLI ([documentation officielle](https://bitwarden.com/help/cli/)) qui permet à ton IA de **récupérer un secret à la volée** dans tes scripts ou tes sessions, sans jamais que tu n'aies à le coller en clair quelque part.\n\n**Installer le CLI** :\n\n```\n# Mac\nbrew install bitwarden-cli\n\n# Windows (via Chocolatey ou exécutable natif)\nchoco install bitwarden-cli\n\n# Cross-platform via npm\nnpm install -g @bitwarden/cli\n```\n\n**Workflow concret** :\n\n1. Une fois par session, tu déverrouilles ton coffre manuellement dans ton terminal :\n\n```\nbw unlock\n```\n\nBitwarden te demande ton mot de passe maître. Une fois validé, il te retourne une commande à copier-coller :\n\n```\nexport BW_SESSION=\"eyJhbGciOi...\"\n```\n\n1. Tu colles cette commande dans ton shell. **Tant que cette variable d'env existe**, toutes les commandes Bitwarden fonctionnent sans demander à nouveau ton mot de passe.\n2. Maintenant, ton IA dans OpenCode peut récupérer n'importe quel secret à la volée :\n\n```\n# Lister tes secrets\nbw list items --search \"OpenAI\"\n\n# Récupérer juste le mot de passe d'un item\nbw get password \"OpenAI API\"\n\n# Récupérer l'item complet en JSON\nbw get item \"OpenAI API\"\n```\n\n1. Quand tu as fini ta session, verrouille à nouveau :\n\n```\nbw lock\n```\n\nLe token expire automatiquement après inactivité, donc même si tu oublies, tu n'es pas exposé indéfiniment.\n\n**Avantage** : ton IA peut accéder à tes secrets quand elle en a besoin (pour faire un appel API, configurer un MCP), mais **elle ne voit jamais ton mot de passe maître**. Seul le token de session temporaire transite. Et tu peux révoquer l'accès à tout moment avec `bw lock`.\n\n### Prompt à donner à ton IA\n\nQuand tu veux qu'elle utilise un secret dans une tâche, dis-lui simplement :\n\n```\nJ'ai déverrouillé mon coffre Bitwarden. Mon BW_SESSION est exporté.\nRécupère ma clé API OpenAI avec `bw get password \"OpenAI API\"`\net utilise-la pour [tâche].\n```\n\nElle exécute, fait son boulot, et ton secret n'est jamais écrit en clair quelque part de persistant.\n\n### Et les secrets dans Obsidian ?\n\nC'est parfaitement OK, **à condition que ton coffre soit synchronisé via Obsidian Sync** (chiffrement de bout en bout avec ton mot de passe d'encryption). Dans ce cas, une clé API dans une note ou dans `opencode.json` est chiffrée dès qu'elle quitte ta machine. C'est le setup par défaut recommandé.\n\nDeux réflexes de bon sens, quand même :\n\n- Ton coffre est en clair **sur ton disque local** (seul le transfert vers le cloud est chiffré). Sur ta machine perso, ce n'est pas un souci. Sur une machine partagée, active le chiffrement disque (FileVault sur Mac, activé par défaut).\n- **Ne pousse pas ton vault sur un GitHub public.** Si tu veux le versionner sur Git, garde le repo privé, ou mieux, auto-hébergé (Gitea, voir semaine 3).\n\nAutrement dit : coffre en Obsidian Sync, tes clés y sont bien. Un password manager n'ajoute qu'un cran de sécurité optionnel, utile surtout pour des données client très sensibles.\n\n### Dans tes projets de développement\n\nPour les projets de code (sites web, apps), utilise un fichier `.env` à la racine et ajoute-le dans `.gitignore` :\n\n```\n# .gitignore\n.env\n.env.local\n.env.*.local\n```\n\nLes valeurs peuvent rester en clair dans le `.env` (il est ignoré par git). Si tu utilises un password manager, tu peux aussi les injecter via son CLI au moment du déploiement (CI/CD ou script local), mais ce n'est pas obligatoire.\n\n---\n\n## 8. Synchronisation du coffre\n\nQuand tu synchronises ton coffre avec Obsidian Sync, GitHub ou autre :\n\n- **Obsidian Sync** (recommandé) : tes données passent par les serveurs d'Obsidian, mais sont **chiffrées de bout en bout** avec ton mot de passe d'encryption. Même Obsidian ne peut pas les lire.\n- **GitHub** (repo privé) : stockage sur serveurs Microsoft (US, soumis au Cloud Act). GitHub ne lit pas le contenu pour entraîner Copilot tant que tu ne l'actives pas explicitement.\n- **GitLab self-hosted** ou **Gitea** sur ton propre serveur : alternative souveraine, plus technique. On installe Gitea en semaine 3 si tu prends ce chemin.\n\n---\n\n## 9. Récapitulatif\n\n| Question | Réponse |\n| --- | --- |\n| L'IA peut-elle tout faire par défaut sur mon ordi ? | Non. Elle demande validation au cas par cas. Tu peux activer l'auto-accept dans les réglages. |\n| Mes fichiers quittent-ils mon ordi en bloc ? | Non. L'IA ne lit que les fichiers pertinents pour ta requête, puis envoie ces extraits seulement. |\n| Faut-il deux coffres pour séparer perso et sensible ? | Non. Tu peux changer de modèle selon la tâche dans le même coffre. |\n| Comment avoir 0 conservation chez le provider ? | Synthetic AI (abonnement 30 $/mois, GLM 5.2, ZDR) pour le privé, ou OpenRouter ZDR (au token) pour DeepSeek et les tests. |\n| Et chez ChatGPT ? | Désactive l'entraînement dans Data Controls. Reste rétention tant que le compte existe. |\n| Existe-t-il des alternatives européennes ? | Oui : Scaleway et OVHcloud sont les meilleures pures options souveraines. Mistral via API + ZDR est acceptable. |\n| Pour des données ultra sensibles ? | Modèle local (Mac Studio Full Spec, Ollama / LM Studio). |\n| Où stocker mes API keys ? | En clair dans tes fichiers suffit, tant que ton coffre est en Obsidian Sync (chiffré E2E). Bitwarden est optionnel. Jamais dans un repo public ni un chat public. |\n\n---\n\n- Je comprends que l'IA demande validation par défaut, et que je peux activer l'auto-accept\n- J'ai utilisé le mini-prompt pour configurer mes permissions opencode.json\n- J'ai compris que l'IA ne lit que les fichiers pertinents (pas tout le coffre)\n- Je connais Synthetic AI comme option ZDR privée mise en avant (GLM 5.2, abonnement 30 $/mois)\n- J'ai activé ZDR sur OpenRouter (Settings, Privacy) pour DeepSeek et les tests\n- J'ai désactivé l'entraînement sur ChatGPT (Data Controls)\n- Je sais que des alternatives européennes existent (Scaleway, OVHcloud) pour les cas où c'est nécessaire\n- Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync), jamais dans un repo public ni un chat public",
      "assets": [
        {
          "alt": "OpenRouter homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/openrouter-homepage.png",
          "path": "assets/01-openrouter-homepage.png",
          "bytes": 158752,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Scaleway Generative APIs",
          "original_url": "https://prisme.one/images/ia-mars-2026/scaleway-generative-apis.png",
          "path": "assets/02-scaleway-generative-apis.png",
          "bytes": 273230,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "OVHcloud AI Endpoints",
          "original_url": "https://prisme.one/images/ia-mars-2026/ovhcloud-ai-endpoints.png",
          "path": "assets/03-ovhcloud-ai-endpoints.png",
          "bytes": 163166,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Mistral AI homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/mistral-homepage.png",
          "path": "assets/04-mistral-ai-homepage.png",
          "bytes": 304761,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Ollama homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/ollama-homepage.png",
          "path": "assets/05-ollama-homepage.png",
          "bytes": 64153,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "LM Studio homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/lmstudio-homepage.png",
          "path": "assets/06-lm-studio-homepage.png",
          "bytes": 123222,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Bitwarden homepage",
          "original_url": "https://prisme.one/images/ia-mars-2026/bitwarden-homepage.png",
          "path": "assets/07-bitwarden-homepage.png",
          "bytes": 355068,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "documentation officielle d'OpenCode sur les permissions",
          "url": "https://opencode.ai/docs/permissions"
        },
        {
          "text": "synthetic.new",
          "url": "https://synthetic.new/?referral=jhBi88o8juvemeR"
        },
        {
          "text": "openrouter.ai",
          "url": "https://openrouter.ai/"
        },
        {
          "text": "openrouter.ai",
          "url": "https://openrouter.ai/"
        },
        {
          "text": "chatgpt.com",
          "url": "https://chatgpt.com/"
        },
        {
          "text": "Scaleway",
          "url": "https://www.scaleway.com/en/generative-apis/"
        },
        {
          "text": "scaleway.com/en/generative-apis",
          "url": "https://www.scaleway.com/en/generative-apis/"
        },
        {
          "text": "OVHcloud AI Endpoints",
          "url": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/"
        },
        {
          "text": "ovhcloud.com/en/public-cloud/ai-endpoints",
          "url": "https://www.ovhcloud.com/en/public-cloud/ai-endpoints/"
        },
        {
          "text": "mistral.ai",
          "url": "https://mistral.ai/"
        },
        {
          "text": "ollama.com",
          "url": "https://ollama.com/"
        },
        {
          "text": "lmstudio.ai",
          "url": "https://lmstudio.ai/"
        },
        {
          "text": "Gemma 4 E2B",
          "url": "https://deepmind.google/models/gemma"
        },
        {
          "text": "@xcreate",
          "url": "https://www.youtube.com/@xcreate"
        },
        {
          "text": "Bitwarden",
          "url": "https://bitwarden.com/"
        },
        {
          "text": "bitwarden.com",
          "url": "https://bitwarden.com/"
        },
        {
          "text": "documentation officielle",
          "url": "https://bitwarden.com/help/cli/"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.youtube-nocookie.com/embed/uIjp0Bx9mWg",
          "placement_index": 1,
          "provider": "YouTube",
          "title": "Où vont vraiment vos données quand vous parlez à l'IA",
          "title_source": "iframe-title",
          "video_id": "uIjp0Bx9mWg",
          "watch_url": "https://www.youtube.com/watch?v=uIjp0Bx9mWg"
        }
      ],
      "captured_at": "2026-08-03T10:05:04.502Z",
      "counts": {
        "code_blocks": 33,
        "headings": 35,
        "iframes": 1,
        "images": 7,
        "links": 17,
        "text_chars": 23608
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "10-semaine-1-coffre-equipe",
      "order": 10,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Configurer un coffre partagé avec son équipe",
      "slug": "semaine-1-coffre-equipe",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-coffre-equipe",
      "summary": "Créer un repo GitHub partagé pour les notes d'équipe, le lier à ton vault avec un symlink, et onboarder tes collègues.",
      "objective": "",
      "expected_output": "",
      "content_html": "<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Plusieurs projets, plusieurs coffres, et travailler en équipe</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/7e59489752e04a0989e0c384f31ca658\" title=\"Plusieurs projets, plusieurs coffres, et travailler en équipe\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"travailler-sur-plusieurs-projets-en-parallèle\">Travailler sur plusieurs projets en parallèle</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton second cerveau est parfait pour ton usage perso. Mais très vite, tu vas vouloir utiliser ton IA sur d'autres choses : un site web, une app, un projet client, des notes d'équipe. La question devient : comment ouvrir l'IA sur plusieurs projets sans tout mélanger ?</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Il y a trois options. Tu choisis selon ton besoin.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"option-a-un-projet-opencode-par-projet-cloisonnement\">Option A : un projet OpenCode par projet (cloisonnement)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu ouvres OpenCode Desktop directement sur le dossier d'un projet. C'est un <strong class=\"font-semibold text-foreground\">projet OpenCode</strong> à part entière : l'IA ne voit que ce dossier, rien d'autre.</p>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl rounded-xl border-2 border-zinc-200 bg-zinc-50 p-6\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">Option A : un projet OpenCode par dossier</div><div class=\"space-y-1.5 text-xs font-mono text-zinc-600\"><div class=\"text-purple-600 font-bold\">Second Cerveau/ <span class=\"text-emerald-600 font-sans\">← projet OpenCode si tu bosses sur tes notes</span></div><div class=\"pl-4\">opencode.json</div><div class=\"pl-4\">AGENTS.md</div><div class=\"pl-4\">0 INBOX/, 1 PROJETS/, 2 CASQUETTES/...</div><div class=\"text-amber-600 font-bold mt-2\">mon-site-web/ <span class=\"text-emerald-600 font-sans\">← projet OpenCode si tu bosses sur ton site</span></div><div class=\"pl-4\">opencode.json</div><div class=\"pl-4\">AGENTS.md</div><div class=\"pl-4\">src/, components/...</div><div class=\"text-blue-600 font-bold mt-2\">notes-equipe/ <span class=\"text-emerald-600 font-sans\">← projet OpenCode si tu bosses avec l'équipe</span></div><div class=\"pl-4\">opencode.json</div><div class=\"pl-4\">AGENTS.md</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour qui :</strong> projets clients sensibles, contextes vraiment différents, ou notes d'équipe que tu ne veux pas mélanger à ton perso. Si tu utilises Obsidian, chaque dossier est un coffre Obsidian séparé. Tu bascules avec « Switch vault ».</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La seule contrainte technique :</strong> le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> doit être <strong class=\"font-semibold text-foreground\">à la racine de chaque projet</strong>, là où tu lances l'IA. C'est lui qui dit où trouver les skills, les MCP, la config du projet.</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\"./4 TOOLS/skills\"]\n  }\n}\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'AGENTS.md à la racine décrit le contexte spécifique du projet. Comme ça l'IA a son cadre dès qu'elle démarre.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"option-b-un-workspace-racine-plusieurs-dossiers-dedans-recom\">Option B : un Workspace racine, plusieurs dossiers dedans (recommandé par défaut)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu ouvres toujours OpenCode au même endroit : un dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> racine. C'est un <strong class=\"font-semibold text-foreground\">seul projet OpenCode</strong> qui contient tous tes sous-dossiers (second cerveau + projets web + projets clients...).</p>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl rounded-xl border-2 border-zinc-200 bg-zinc-50 p-6\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">Option B : un seul projet OpenCode racine</div><div class=\"space-y-1.5 text-xs font-mono text-zinc-600\"><div class=\"text-zinc-500 font-bold\">Workspace/ <span class=\"text-emerald-600 font-sans font-semibold\">← projet OpenCode, toujours ici</span></div><div class=\"pl-4\"><span class=\"text-blue-600\">AGENTS.md</span> <span class=\"text-zinc-400 font-sans\">← décrit chaque dossier</span></div><div class=\"pl-4\"><span class=\"text-blue-600\">opencode.json</span> <span class=\"text-zinc-400 font-sans\">← skills.paths, MCP, config globale</span></div><div class=\"pl-4\"><span class=\"text-purple-600 font-bold\">Second Cerveau/</span> <span class=\"text-zinc-400 font-sans\">← ouvert dans Obsidian</span></div><div class=\"pl-8 text-zinc-500\">0 INBOX/, 1 PROJETS/, 2 CASQUETTES/...</div><div class=\"pl-4\"><span class=\"text-amber-600 font-bold\">mon-site-web/</span> <span class=\"text-zinc-400 font-sans\">← repo perso</span></div><div class=\"pl-4\"><span class=\"text-amber-600 font-bold\">projet-client-A/</span> <span class=\"text-zinc-400 font-sans\">← repo client</span></div><div class=\"pl-4\"><span class=\"text-amber-600 font-bold\">projet-perso/</span> <span class=\"text-zinc-400 font-sans\">← side project</span></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour qui :</strong> la plupart des cas. Tu n'as jamais à te demander où ouvrir l'IA. C'est toujours <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Seule chose à faire :</strong> quand tu ajoutes un nouveau dossier, mets à jour le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> à la racine pour expliquer ce qu'il contient. L'IA lit ce fichier au démarrage et sait quel dossier consulter selon ta question.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Exemple d'extrait à mettre dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace/AGENTS.md</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-markdown\">## Arbre du Workspace\n\n- `Second Cerveau/` : mon coffre Obsidian (notes perso, projets, casquettes)\n- `mon-site-web/` : repo du site Astro déployé sur Cloudflare Pages\n- `projet-client-A/` : notes et scripts pour le client A, sensible, ne pas pousser de secrets\n- `projet-perso/` : side project libre, expérimentations\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> à la racine, lui, sert à exposer les skills et les MCP à toutes tes sessions :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\"./Second Cerveau/4 TOOLS/skills\"]\n  }\n}\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"option-c-pas-migrer-du-tout-brancher-lia-sur-notion-ou-outli\">Option C : pas migrer du tout, brancher l'IA sur Notion ou Outline (MCP)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si ton équipe utilise déjà <strong class=\"font-semibold text-foreground\">Notion</strong>, <strong class=\"font-semibold text-foreground\">Outline</strong>, <strong class=\"font-semibold text-foreground\">Confluence</strong> ou un autre outil de doc interne, <strong class=\"font-semibold text-foreground\">ne migre pas tout dans Obsidian</strong>. Tu peux brancher l'IA directement sur la base existante via un <strong class=\"font-semibold text-foreground\">MCP</strong> (Model Context Protocol).</p>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl rounded-xl border-2 border-zinc-200 bg-zinc-50 p-6\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">Option C : OpenCode branché sur la base d'équipe via MCP</div><div class=\"space-y-1.5 text-xs text-zinc-600\"><div class=\"grid grid-cols-3 gap-3 items-center\"><div class=\"rounded-lg border border-purple-200 bg-purple-50 p-2 text-center\"><div class=\"font-bold text-purple-700\">Toi</div><div class=\"text-purple-500\">Second Cerveau Obsidian local</div></div><div class=\"text-center text-zinc-400 font-mono\">←→ MCP ←→</div><div class=\"rounded-lg border border-emerald-200 bg-emerald-50 p-2 text-center\"><div class=\"font-bold text-emerald-700\">Ton équipe</div><div class=\"text-emerald-500\">Notion / Outline / Confluence</div></div></div><div class=\"text-center text-zinc-500 mt-3 font-sans\">Tes collègues continuent leur outil, toi tu as ton coffre Obsidian + accès en lecture/écriture à leur base via l'IA.</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Le scénario :</strong> tu installes le MCP Notion dans ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>. Tu donnes tes credentials. À partir de là, l'IA peut <strong class=\"font-semibold text-foreground\">lire et écrire</strong> dans la base Notion de l'entreprise. Tes collègues continuent d'utiliser Notion comme avant, toi tu gardes ta vélocité IA sur ton coffre Obsidian local plus l'accès via MCP.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour qui :</strong> équipes non techniques ou organisations établies qui ont déjà des centaines de pages dans Notion/Outline. Migrer tout dans Obsidian serait un projet de plusieurs mois pour zéro gain. Le MCP te permet d'avoir le meilleur des deux mondes immédiatement.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Comment connecter un MCP : voir le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> (semaine 3) ou la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../07-outils-ia/lessons/23-semaine-1-installer-outils-ia/semaine-1-installer-outils-ia.html\">Installer ses outils IA</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"récap-quelle-option-pour-quel-cas\">Récap : quelle option pour quel cas</h2>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Ton cas</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Option</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Plusieurs projets indépendants, contextes très différents</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Option A</strong> : un projet OpenCode par dossier</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tu vis tes journées entre plusieurs dossiers liés (perso + pro + side)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Option B</strong> : un Workspace racine, MAJ AGENTS.md</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Ton équipe est déjà sur Notion / Outline et ne veut pas bouger</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Option C</strong> : MCP vers la base existante</td></tr></tbody></table></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Par défaut, démarre avec l'<strong class=\"font-semibold text-foreground\">Option B</strong>. C'est la plus simple à vivre au quotidien. Tu passeras à A ou C uniquement si ton contexte l'exige.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"addon-tout-voir-dans-un-seul-obsidian-symlinks-et-junctions\">Addon : tout voir dans un seul Obsidian (symlinks et junctions)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cas spécifique : tu es sur l'<strong class=\"font-semibold text-foreground\">Option A</strong> avec plusieurs coffres Obsidian séparés (par exemple, ton coffre perso + un coffre d'équipe synchronisé via Obsidian Sync). Tu trouves chiant de basculer en permanence entre les deux. Tu voudrais voir <strong class=\"font-semibold text-foreground\">toutes tes notes dans un seul Obsidian</strong>, le perso, avec le coffre d'équipe qui apparaît comme une casquette dedans.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La solution : un <strong class=\"font-semibold text-foreground\">raccourci système</strong> qui pointe d'un dossier à un autre, sans le dupliquer. Sur Mac/Linux on appelle ça un <strong class=\"font-semibold text-foreground\">symlink</strong>. Sur Windows, on utilise une <strong class=\"font-semibold text-foreground\">junction</strong> (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mklink /J</code>).</p>\n\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl mx-auto\"><div class=\"rounded-xl border-2 border-red-200 bg-red-50 p-5\"><div class=\"text-sm font-semibold text-red-700 mb-2 text-center\">Copier le dossier</div><div class=\"space-y-2 text-sm text-red-600\"><div>Deux copies du même contenu</div><div>Si tu modifies l'une, l'autre ne change pas</div><div>Prend le double de place</div><div>Impossible à synchroniser proprement</div></div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-semibold text-emerald-700 mb-2 text-center\">Symlink ou junction</div><div class=\"space-y-2 text-sm text-emerald-600\"><div>Un seul exemplaire physique</div><div>Modification visible partout</div><div>Zéro duplication</div><div>La sync ne tourne que sur le vrai dossier</div></div></div></div>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl rounded-xl border-2 border-zinc-200 bg-zinc-50 p-6\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">Un seul Obsidian, plusieurs dossiers liés</div><div class=\"space-y-1.5 text-xs font-mono text-zinc-600\"><div class=\"text-zinc-500 font-bold\">Workspace/</div><div class=\"pl-4\"><span class=\"text-purple-600 font-bold\">Second Cerveau/</span> <span class=\"text-zinc-400 font-sans\">← celui que tu ouvres dans Obsidian</span></div><div class=\"pl-8\">0 INBOX/, 1 PROJETS/</div><div class=\"pl-8 text-purple-600\">2 CASQUETTES/</div><div class=\"pl-12\">Coaching/, Dance/, Voyages/...</div><div class=\"pl-12\"><span class=\"text-emerald-600 font-bold\">Notes-Equipe/</span> <span class=\"text-emerald-500 font-sans\">→ symlink / junction vers ../../notes-equipe</span></div><div class=\"pl-4\"><span class=\"text-emerald-600 font-bold\">notes-equipe/</span> <span class=\"text-zinc-400 font-sans\">← le vrai dossier (coffre d'équipe synchronisé à part)</span></div><div class=\"pl-8 text-emerald-600\">Process/, Réunions/, Marketing/...</div></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"sur-mac-linux-symlink-ln--s\">Sur Mac / Linux : symlink (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ln -s</code>)</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Tu as un dossier séparé qui vit ailleurs dans le Workspace\n~/Workspace/notes-equipe/\n\n# Tu crées un symlink dans ton Second Cerveau, dans 2 CASQUETTES\ncd ~/Workspace/Second\\ Cerveau/2\\ CASQUETTES/\nln -s ../../notes-equipe Notes-Equipe\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"sur-windows-junction-mklink-j\">Sur Windows : junction (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mklink /J</code>)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur Windows, les vrais symlinks demandent le mode développeur ou des droits admin. Pas pratique. <strong class=\"font-semibold text-foreground\">L'équivalent fiable et sans droits admin pour les dossiers locaux</strong>, c'est la <strong class=\"font-semibold text-foreground\">junction</strong>. Obsidian Desktop, OpenCode et Git la traitent exactement comme un dossier normal.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre un terminal (cmd ou PowerShell), pas besoin de mode admin :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-cmd\">cd \"C:\\Users\\Toi\\Workspace\\Second Cerveau\\2 CASQUETTES\"\nmklink /J \"Notes-Equipe\" \"..\\..\\notes-equipe\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/J</code> crée une <strong class=\"font-semibold text-foreground\">junction</strong> (lien de jonction). C'est ce qui se rapproche le plus d'un symlink Unix dans la pratique : Windows considère le dossier comme réel, Obsidian Desktop le suit comme n'importe quel dossier.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">À noter :</strong> une junction ne marche que pour des dossiers <strong class=\"font-semibold text-foreground\">locaux sur le même volume</strong> (même lettre de lecteur). Si tu pointes vers un dossier sur un autre disque ou sur un partage réseau, utilise plutôt <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mklink /D</code> (symlink vrai) qui exige le mode développeur Windows activé.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"trois-points-importants\">Trois points importants</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Exclus le dossier lié d'Obsidian Sync</strong> du Second Cerveau qui contient le lien. Sinon Obsidian Sync va synchroniser deux fois le même contenu (une fois dans le coffre d'équipe, une fois dans ton perso via le lien) et créer des conflits. Va dans <strong class=\"font-semibold text-foreground\">Settings → Sync → Selected folders</strong> et désélectionne le dossier symlinké/junction.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sur mobile (Obsidian iOS / Android), les symlinks et junctions ne sont pas suivis.</strong> Si tu travailles beaucoup sur mobile, oublie cet addon : reste sur l'Option A et bascule entre coffres avec « Switch vault », ou passe à l'Option B où tout est nativement dans un seul dossier.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour partager des skills entre coffres</strong>, le symlink/junction n'est pas la meilleure approche. Utilise plutôt <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">skills.paths</code> dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> (voir section dédiée plus bas).</p>\n</li>\n</ol>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"synchroniser-un-coffre-avec-ton-équipe\">Synchroniser un coffre avec ton équipe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois la structure choisie, comment plusieurs personnes partagent un même coffre Obsidian ?</p>\n\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-2xl mx-auto\"><div class=\"rounded-xl border-2 border-red-200 bg-red-50 p-5\"><div class=\"text-sm font-semibold uppercase tracking-wider text-red-400 mb-3 text-center\">Privé : ton coffre perso</div><div class=\"space-y-2 text-sm text-red-700\"><div>Journal, phases de vie</div><div>Réflexions intimes</div><div>Objectifs perso</div><div>Notes de lecture, veille</div><div>Contexte global Eliott</div></div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-semibold uppercase tracking-wider text-emerald-400 mb-3 text-center\">Partagé : notes d'équipe</div><div class=\"space-y-2 text-sm text-emerald-700\"><div>Process de la boîte</div><div>Notes de réunion</div><div>Marketing, copy</div><div>Documentation produit</div><div>Clients, coaching</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux solutions selon ton équipe (la troisième, c'était l'Option C ci-dessus : MCP vers Notion/Outline).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"solution-recommandée-obsidian-sync-partagé\">Solution recommandée : Obsidian Sync partagé</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la solution la plus simple <strong class=\"font-semibold text-foreground\">si chaque membre de l'équipe peut avoir une licence Obsidian Sync</strong> (4 € par mois et par membre, payé par l'entreprise typiquement).</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Un membre crée un coffre Obsidian dédié à l'équipe (séparé de son perso).</li>\n<li class=\"leading-7\">Il active <strong class=\"font-semibold text-foreground\">Obsidian Sync</strong> dessus et invite les autres membres depuis l'interface.</li>\n<li class=\"leading-7\">Chacun installe Obsidian, se connecte à son compte, sélectionne le coffre partagé, entre le mot de passe d'encryption commun.</li>\n<li class=\"leading-7\">Tout est synchronisé en temps réel, chiffré de bout en bout (E2E).</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> 4 €/membre/mois. Pour une équipe de 5, c'est 20 €/mois. Largement rentable comparé à n'importe quelle autre solution une fois que tu as testé la stabilité.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Avantages :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Marche aussi sur <strong class=\"font-semibold text-foreground\">mobile</strong> sans config supplémentaire.</li>\n<li class=\"leading-7\">Pas de Git, pas de clone, pas de Personal Access Token à gérer.</li>\n<li class=\"leading-7\">Conflits gérés automatiquement.</li>\n<li class=\"leading-7\">Historique des versions intégré (jusqu'à 1 an selon ton plan).</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Côté IA : chaque membre lance OpenCode sur son <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code> racine (Option B) avec le coffre partagé dedans, ou directement sur le coffre d'équipe (Option A).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"alternative-gratuite-syncthing\">Alternative gratuite : Syncthing</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne veux pas payer Obsidian Sync, <a href=\"https://syncthing.net/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Syncthing</a> fait de la synchronisation peer-to-peer entre les machines des membres. C'est open source, gratuit, plus technique à mettre en place. Pas d'app mobile aussi propre qu'Obsidian Sync (app Android officieuse correcte, rien d'officiel sur iOS).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour qui :</strong> équipes tech qui ont déjà un setup serveur, ou bricoleurs qui acceptent le coût d'entrée technique.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À tester en sandbox avant de t'engager : la résolution de conflits Syncthing est moins fluide qu'Obsidian Sync, et il faut que les machines soient allumées en même temps pour la sync (ou avoir un nœud serveur permanent).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"partager-des-skills-en-équipe\">Partager des skills en équipe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as créé un skill custom utile (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/sync-compta</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/newsletter</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/onboarding-client</code>) et tu veux que toute l'équipe puisse l'utiliser ?</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"approche-simple-dans-le-coffre-partagé\">Approche simple : dans le coffre partagé</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si ton équipe partage déjà un coffre via Obsidian Sync, les skills vivent dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau d'équipe/4 TOOLS/skills/</code> et sont <strong class=\"font-semibold text-foreground\">automatiquement synchronisés</strong> à tout le monde. C'est l'option la plus naturelle. Tu n'as rien d'autre à configurer côté équipe.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque membre référence ce dossier dans son <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> racine (Option B) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./Second Cerveau d'équipe/4 TOOLS/skills\"\n    ]\n  }\n}\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"approche-multi-coffres-skillspaths-étendu\">Approche multi-coffres : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">skills.paths</code> étendu</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si chaque membre a son propre coffre perso, et qu'il y a en plus un dossier de skills d'équipe partagé séparément (Obsidian Sync dédié, repo Git, Syncthing, peu importe), tu pointes vers ces deux dossiers dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">skills.paths</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./skills-equipe\"\n    ]\n  }\n}\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode charge les skills des deux dossiers, et tout fonctionne dans la même interface. Chacun garde ses skills perso (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/welcome</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>...), et tout le monde profite des skills d'équipe (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/onboarding-client</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/newsletter</code>...).</p>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl rounded-xl border-2 border-zinc-200 bg-zinc-50 p-6\"><div class=\"text-sm font-bold text-zinc-700 mb-4 text-center\">skills.paths multi-dossiers</div><div class=\"space-y-1.5 text-xs font-mono text-zinc-600\"><div class=\"text-purple-600 font-bold\">Second Cerveau/4 TOOLS/skills/ <span class=\"text-zinc-400 font-sans\">← perso</span></div><div class=\"pl-4\">welcome.md, done.md, weekly-review.md</div><div class=\"text-emerald-600 font-bold mt-3\">skills-equipe/ <span class=\"text-zinc-400 font-sans\">← partagé (Obsidian Sync ou autre)</span></div><div class=\"pl-4\">onboarding-client.md, newsletter.md</div><div class=\"text-zinc-400 mt-3\">↓ chargés ensemble par opencode.json</div><div class=\"text-zinc-700 font-bold mt-2\">OpenCode Desktop</div><div class=\"pl-4\">/welcome, /done, /weekly-review</div><div class=\"pl-4\">/onboarding-client, /newsletter</div></div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"points-importants\">Points importants</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Toujours un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> à la racine du dossier où tu lances l'IA.</strong> C'est lui qui dit à OpenCode où trouver les skills, les MCP, la config. Sans ça, les skills ne sont pas chargés et tu te demandes pourquoi <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/welcome</code> ne fait rien.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> à la racine, c'est le contexte de base.</strong> L'IA le lit au démarrage. Si tu changes d'option (passer de A à B par exemple), pense à mettre à jour ce fichier pour qu'il décrive bien la nouvelle structure.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sur desktop, Obsidian suit nativement les symlinks (Mac/Linux) et les junctions (Windows).</strong> Sur mobile, oublie : utilise plutôt l'Option B ou Obsidian Sync sur un coffre dédié.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Obsidian Sync ne synchronise pas les fichiers cachés</strong> (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.opencode/</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.git/</code>). C'est pour ça qu'on met les skills dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">4 TOOLS/skills/</code> (visible), pas dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.opencode/</code> (caché). Vrai aussi pour l'AGENTS.md du Workspace : il doit être à la racine, pas dans un dossier caché.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais les 3 options : A (un projet OpenCode par dossier), B (un Workspace racine), C (MCP vers Notion/Outline) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais les 3 options : A (un projet OpenCode par dossier), B (un Workspace racine), C (MCP vers Notion/Outline)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que par défaut, je pars sur l'Option B : un Workspace racine avec tous mes dossiers dedans — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que par défaut, je pars sur l'Option B : un Workspace racine avec tous mes dossiers dedans</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que opencode.json doit être à la racine du dossier où je lance l'IA — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que opencode.json doit être à la racine du dossier où je lance l'IA</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que AGENTS.md à la racine décrit chaque sous-dossier pour orienter l'IA — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que AGENTS.md à la racine décrit chaque sous-dossier pour orienter l'IA</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Pour partager un coffre Obsidian en équipe, Obsidian Sync à 4 € par membre est la solution la plus simple — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Pour partager un coffre Obsidian en équipe, Obsidian Sync à 4 € par membre est la solution la plus simple</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais Syncthing comme alternative gratuite, et le MCP Notion/Outline si l'équipe ne veut pas migrer — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais Syncthing comme alternative gratuite, et le MCP Notion/Outline si l'équipe ne veut pas migrer</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que skills.paths dans opencode.json accepte plusieurs dossiers de skills — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que skills.paths dans opencode.json accepte plusieurs dossiers de skills</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si je veux tout voir dans un seul Obsidian : symlink (Mac/Linux) ou junction mklink /J (Windows), et exclure le dossier d'Obsidian Sync — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si je veux tout voir dans un seul Obsidian : symlink (Mac/Linux) ou junction mklink /J (Windows), et exclure le dossier d'Obsidian Sync</span></li></ul>",
      "content_markdown": "Plusieurs projets, plusieurs coffres, et travailler en équipe\n\n## Travailler sur plusieurs projets en parallèle\n\nTon second cerveau est parfait pour ton usage perso. Mais très vite, tu vas vouloir utiliser ton IA sur d'autres choses : un site web, une app, un projet client, des notes d'équipe. La question devient : comment ouvrir l'IA sur plusieurs projets sans tout mélanger ?\n\nIl y a trois options. Tu choisis selon ton besoin.\n\n---\n\n## Option A : un projet OpenCode par projet (cloisonnement)\n\nTu ouvres OpenCode Desktop directement sur le dossier d'un projet. C'est un **projet OpenCode** à part entière : l'IA ne voit que ce dossier, rien d'autre.\n\nOption A : un projet OpenCode par dossier\n\nSecond Cerveau/ ← projet OpenCode si tu bosses sur tes notes\n\nopencode.json\n\nAGENTS.md\n\n0 INBOX/, 1 PROJETS/, 2 CASQUETTES/...\n\nmon-site-web/ ← projet OpenCode si tu bosses sur ton site\n\nopencode.json\n\nAGENTS.md\n\nsrc/, components/...\n\nnotes-equipe/ ← projet OpenCode si tu bosses avec l'équipe\n\nopencode.json\n\nAGENTS.md\n\n**Pour qui :** projets clients sensibles, contextes vraiment différents, ou notes d'équipe que tu ne veux pas mélanger à ton perso. Si tu utilises Obsidian, chaque dossier est un coffre Obsidian séparé. Tu bascules avec « Switch vault ».\n\n**La seule contrainte technique :** le fichier `opencode.json` doit être **à la racine de chaque projet**, là où tu lances l'IA. C'est lui qui dit où trouver les skills, les MCP, la config du projet.\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\"./4 TOOLS/skills\"]\n  }\n}\n```\n\nL'AGENTS.md à la racine décrit le contexte spécifique du projet. Comme ça l'IA a son cadre dès qu'elle démarre.\n\n---\n\n## Option B : un Workspace racine, plusieurs dossiers dedans (recommandé par défaut)\n\nTu ouvres toujours OpenCode au même endroit : un dossier `Workspace` racine. C'est un **seul projet OpenCode** qui contient tous tes sous-dossiers (second cerveau + projets web + projets clients...).\n\nOption B : un seul projet OpenCode racine\n\nWorkspace/ ← projet OpenCode, toujours ici\n\nAGENTS.md ← décrit chaque dossier\n\nopencode.json ← skills.paths, MCP, config globale\n\nSecond Cerveau/ ← ouvert dans Obsidian\n\n0 INBOX/, 1 PROJETS/, 2 CASQUETTES/...\n\nmon-site-web/ ← repo perso\n\nprojet-client-A/ ← repo client\n\nprojet-perso/ ← side project\n\n**Pour qui :** la plupart des cas. Tu n'as jamais à te demander où ouvrir l'IA. C'est toujours `Workspace`.\n\n**Seule chose à faire :** quand tu ajoutes un nouveau dossier, mets à jour le `AGENTS.md` à la racine pour expliquer ce qu'il contient. L'IA lit ce fichier au démarrage et sait quel dossier consulter selon ta question.\n\nExemple d'extrait à mettre dans `Workspace/AGENTS.md` :\n\n```\n## Arbre du Workspace\n\n- `Second Cerveau/` : mon coffre Obsidian (notes perso, projets, casquettes)\n- `mon-site-web/` : repo du site Astro déployé sur Cloudflare Pages\n- `projet-client-A/` : notes et scripts pour le client A, sensible, ne pas pousser de secrets\n- `projet-perso/` : side project libre, expérimentations\n```\n\nLe fichier `opencode.json` à la racine, lui, sert à exposer les skills et les MCP à toutes tes sessions :\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\"./Second Cerveau/4 TOOLS/skills\"]\n  }\n}\n```\n\n---\n\n## Option C : pas migrer du tout, brancher l'IA sur Notion ou Outline (MCP)\n\nSi ton équipe utilise déjà **Notion**, **Outline**, **Confluence** ou un autre outil de doc interne, **ne migre pas tout dans Obsidian**. Tu peux brancher l'IA directement sur la base existante via un **MCP** (Model Context Protocol).\n\nOption C : OpenCode branché sur la base d'équipe via MCP\n\nToi\n\nSecond Cerveau Obsidian local\n\n←→ MCP ←→\n\nTon équipe\n\nNotion / Outline / Confluence\n\nTes collègues continuent leur outil, toi tu as ton coffre Obsidian + accès en lecture/écriture à leur base via l'IA.\n\n**Le scénario :** tu installes le MCP Notion dans ton `opencode.json`. Tu donnes tes credentials. À partir de là, l'IA peut **lire et écrire** dans la base Notion de l'entreprise. Tes collègues continuent d'utiliser Notion comme avant, toi tu gardes ta vélocité IA sur ton coffre Obsidian local plus l'accès via MCP.\n\n**Pour qui :** équipes non techniques ou organisations établies qui ont déjà des centaines de pages dans Notion/Outline. Migrer tout dans Obsidian serait un projet de plusieurs mois pour zéro gain. Le MCP te permet d'avoir le meilleur des deux mondes immédiatement.\n\nComment connecter un MCP : voir le skill `/connect-mcp` (semaine 3) ou la leçon [Installer ses outils IA](/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia).\n\n---\n\n## Récap : quelle option pour quel cas\n\n| Ton cas | Option |\n| --- | --- |\n| Plusieurs projets indépendants, contextes très différents | Option A : un projet OpenCode par dossier |\n| Tu vis tes journées entre plusieurs dossiers liés (perso + pro + side) | Option B : un Workspace racine, MAJ AGENTS.md |\n| Ton équipe est déjà sur Notion / Outline et ne veut pas bouger | Option C : MCP vers la base existante |\n\nPar défaut, démarre avec l'**Option B**. C'est la plus simple à vivre au quotidien. Tu passeras à A ou C uniquement si ton contexte l'exige.\n\n---\n\n## Addon : tout voir dans un seul Obsidian (symlinks et junctions)\n\nCas spécifique : tu es sur l'**Option A** avec plusieurs coffres Obsidian séparés (par exemple, ton coffre perso + un coffre d'équipe synchronisé via Obsidian Sync). Tu trouves chiant de basculer en permanence entre les deux. Tu voudrais voir **toutes tes notes dans un seul Obsidian**, le perso, avec le coffre d'équipe qui apparaît comme une casquette dedans.\n\nLa solution : un **raccourci système** qui pointe d'un dossier à un autre, sans le dupliquer. Sur Mac/Linux on appelle ça un **symlink**. Sur Windows, on utilise une **junction** (`mklink /J`).\n\nCopier le dossier\n\nDeux copies du même contenu\n\nSi tu modifies l'une, l'autre ne change pas\n\nPrend le double de place\n\nImpossible à synchroniser proprement\n\nSymlink ou junction\n\nUn seul exemplaire physique\n\nModification visible partout\n\nZéro duplication\n\nLa sync ne tourne que sur le vrai dossier\n\nUn seul Obsidian, plusieurs dossiers liés\n\nWorkspace/\n\nSecond Cerveau/ ← celui que tu ouvres dans Obsidian\n\n0 INBOX/, 1 PROJETS/\n\n2 CASQUETTES/\n\nCoaching/, Dance/, Voyages/...\n\nNotes-Equipe/ → symlink / junction vers ../../notes-equipe\n\nnotes-equipe/ ← le vrai dossier (coffre d'équipe synchronisé à part)\n\nProcess/, Réunions/, Marketing/...\n\n### Sur Mac / Linux : symlink (`ln -s`)\n\n```\n# Tu as un dossier séparé qui vit ailleurs dans le Workspace\n~/Workspace/notes-equipe/\n\n# Tu crées un symlink dans ton Second Cerveau, dans 2 CASQUETTES\ncd ~/Workspace/Second\\ Cerveau/2\\ CASQUETTES/\nln -s ../../notes-equipe Notes-Equipe\n```\n\n### Sur Windows : junction (`mklink /J`)\n\nSur Windows, les vrais symlinks demandent le mode développeur ou des droits admin. Pas pratique. **L'équivalent fiable et sans droits admin pour les dossiers locaux**, c'est la **junction**. Obsidian Desktop, OpenCode et Git la traitent exactement comme un dossier normal.\n\nOuvre un terminal (cmd ou PowerShell), pas besoin de mode admin :\n\n```\ncd \"C:\\Users\\Toi\\Workspace\\Second Cerveau\\2 CASQUETTES\"\nmklink /J \"Notes-Equipe\" \"..\\..\\notes-equipe\"\n```\n\nLe `/J` crée une **junction** (lien de jonction). C'est ce qui se rapproche le plus d'un symlink Unix dans la pratique : Windows considère le dossier comme réel, Obsidian Desktop le suit comme n'importe quel dossier.\n\n> À noter : une junction ne marche que pour des dossiers locaux sur le même volume (même lettre de lecteur). Si tu pointes vers un dossier sur un autre disque ou sur un partage réseau, utilise plutôt mklink /D (symlink vrai) qui exige le mode développeur Windows activé.\n\n### Trois points importants\n\n1. **Exclus le dossier lié d'Obsidian Sync** du Second Cerveau qui contient le lien. Sinon Obsidian Sync va synchroniser deux fois le même contenu (une fois dans le coffre d'équipe, une fois dans ton perso via le lien) et créer des conflits. Va dans **Settings → Sync → Selected folders** et désélectionne le dossier symlinké/junction.\n2. **Sur mobile (Obsidian iOS / Android), les symlinks et junctions ne sont pas suivis.** Si tu travailles beaucoup sur mobile, oublie cet addon : reste sur l'Option A et bascule entre coffres avec « Switch vault », ou passe à l'Option B où tout est nativement dans un seul dossier.\n3. **Pour partager des skills entre coffres**, le symlink/junction n'est pas la meilleure approche. Utilise plutôt `skills.paths` dans `opencode.json` (voir section dédiée plus bas).\n\n---\n\n## Synchroniser un coffre avec ton équipe\n\nUne fois la structure choisie, comment plusieurs personnes partagent un même coffre Obsidian ?\n\nPrivé : ton coffre perso\n\nJournal, phases de vie\n\nRéflexions intimes\n\nObjectifs perso\n\nNotes de lecture, veille\n\nContexte global Eliott\n\nPartagé : notes d'équipe\n\nProcess de la boîte\n\nNotes de réunion\n\nMarketing, copy\n\nDocumentation produit\n\nClients, coaching\n\nDeux solutions selon ton équipe (la troisième, c'était l'Option C ci-dessus : MCP vers Notion/Outline).\n\n### Solution recommandée : Obsidian Sync partagé\n\nC'est la solution la plus simple **si chaque membre de l'équipe peut avoir une licence Obsidian Sync** (4 € par mois et par membre, payé par l'entreprise typiquement).\n\n1. Un membre crée un coffre Obsidian dédié à l'équipe (séparé de son perso).\n2. Il active **Obsidian Sync** dessus et invite les autres membres depuis l'interface.\n3. Chacun installe Obsidian, se connecte à son compte, sélectionne le coffre partagé, entre le mot de passe d'encryption commun.\n4. Tout est synchronisé en temps réel, chiffré de bout en bout (E2E).\n\n**Coût :** 4 €/membre/mois. Pour une équipe de 5, c'est 20 €/mois. Largement rentable comparé à n'importe quelle autre solution une fois que tu as testé la stabilité.\n\n**Avantages :**\n\n- Marche aussi sur **mobile** sans config supplémentaire.\n- Pas de Git, pas de clone, pas de Personal Access Token à gérer.\n- Conflits gérés automatiquement.\n- Historique des versions intégré (jusqu'à 1 an selon ton plan).\n\nCôté IA : chaque membre lance OpenCode sur son `Workspace` racine (Option B) avec le coffre partagé dedans, ou directement sur le coffre d'équipe (Option A).\n\n### Alternative gratuite : Syncthing\n\nSi tu ne veux pas payer Obsidian Sync, [Syncthing](https://syncthing.net/) fait de la synchronisation peer-to-peer entre les machines des membres. C'est open source, gratuit, plus technique à mettre en place. Pas d'app mobile aussi propre qu'Obsidian Sync (app Android officieuse correcte, rien d'officiel sur iOS).\n\n**Pour qui :** équipes tech qui ont déjà un setup serveur, ou bricoleurs qui acceptent le coût d'entrée technique.\n\nÀ tester en sandbox avant de t'engager : la résolution de conflits Syncthing est moins fluide qu'Obsidian Sync, et il faut que les machines soient allumées en même temps pour la sync (ou avoir un nœud serveur permanent).\n\n---\n\n## Partager des skills en équipe\n\nTu as créé un skill custom utile (par exemple `/sync-compta`, `/newsletter`, `/onboarding-client`) et tu veux que toute l'équipe puisse l'utiliser ?\n\n### Approche simple : dans le coffre partagé\n\nSi ton équipe partage déjà un coffre via Obsidian Sync, les skills vivent dans `Second Cerveau d'équipe/4 TOOLS/skills/` et sont **automatiquement synchronisés** à tout le monde. C'est l'option la plus naturelle. Tu n'as rien d'autre à configurer côté équipe.\n\nChaque membre référence ce dossier dans son `opencode.json` racine (Option B) :\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./Second Cerveau d'équipe/4 TOOLS/skills\"\n    ]\n  }\n}\n```\n\n### Approche multi-coffres : `skills.paths` étendu\n\nSi chaque membre a son propre coffre perso, et qu'il y a en plus un dossier de skills d'équipe partagé séparément (Obsidian Sync dédié, repo Git, Syncthing, peu importe), tu pointes vers ces deux dossiers dans `skills.paths` :\n\n```\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./skills-equipe\"\n    ]\n  }\n}\n```\n\nOpenCode charge les skills des deux dossiers, et tout fonctionne dans la même interface. Chacun garde ses skills perso (`/done`, `/welcome`, `/weekly-review`...), et tout le monde profite des skills d'équipe (`/onboarding-client`, `/newsletter`...).\n\nskills.paths multi-dossiers\n\nSecond Cerveau/4 TOOLS/skills/ ← perso\n\nwelcome.md, done.md, weekly-review.md\n\nskills-equipe/ ← partagé (Obsidian Sync ou autre)\n\nonboarding-client.md, newsletter.md\n\n↓ chargés ensemble par opencode.json\n\nOpenCode Desktop\n\n/welcome, /done, /weekly-review\n\n/onboarding-client, /newsletter\n\n---\n\n## Points importants\n\n**Toujours un `opencode.json` à la racine du dossier où tu lances l'IA.** C'est lui qui dit à OpenCode où trouver les skills, les MCP, la config. Sans ça, les skills ne sont pas chargés et tu te demandes pourquoi `/welcome` ne fait rien.\n\n**`AGENTS.md` à la racine, c'est le contexte de base.** L'IA le lit au démarrage. Si tu changes d'option (passer de A à B par exemple), pense à mettre à jour ce fichier pour qu'il décrive bien la nouvelle structure.\n\n**Sur desktop, Obsidian suit nativement les symlinks (Mac/Linux) et les junctions (Windows).** Sur mobile, oublie : utilise plutôt l'Option B ou Obsidian Sync sur un coffre dédié.\n\n**Obsidian Sync ne synchronise pas les fichiers cachés** (`.opencode/`, `.claude/`, `.git/`). C'est pour ça qu'on met les skills dans `4 TOOLS/skills/` (visible), pas dans `.opencode/` (caché). Vrai aussi pour l'AGENTS.md du Workspace : il doit être à la racine, pas dans un dossier caché.\n\n---\n\n## Checklist\n\n- Je connais les 3 options : A (un projet OpenCode par dossier), B (un Workspace racine), C (MCP vers Notion/Outline)\n- Je sais que par défaut, je pars sur l'Option B : un Workspace racine avec tous mes dossiers dedans\n- Je sais que opencode.json doit être à la racine du dossier où je lance l'IA\n- Je sais que AGENTS.md à la racine décrit chaque sous-dossier pour orienter l'IA\n- Pour partager un coffre Obsidian en équipe, Obsidian Sync à 4 € par membre est la solution la plus simple\n- Je connais Syncthing comme alternative gratuite, et le MCP Notion/Outline si l'équipe ne veut pas migrer\n- Je sais que skills.paths dans opencode.json accepte plusieurs dossiers de skills\n- Si je veux tout voir dans un seul Obsidian : symlink (Mac/Linux) ou junction mklink /J (Windows), et exclure le dossier d'Obsidian Sync",
      "assets": [],
      "links": [
        {
          "text": "Installer ses outils IA",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia"
        },
        {
          "text": "Syncthing",
          "url": "https://syncthing.net/"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/7e59489752e04a0989e0c384f31ca658",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Plusieurs projets, plusieurs coffres, et travailler en équipe",
          "title_source": "iframe-title",
          "video_id": "7e59489752e04a0989e0c384f31ca658",
          "watch_url": "https://www.loom.com/share/7e59489752e04a0989e0c384f31ca658"
        }
      ],
      "captured_at": "2026-08-03T10:05:05.651Z",
      "counts": {
        "code_blocks": 50,
        "headings": 17,
        "iframes": 1,
        "images": 0,
        "links": 2,
        "text_chars": 13744
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "11-semaine-1-utiliser-ia-terminal",
      "order": 11,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Utiliser l'IA dans un terminal",
      "slug": "semaine-1-utiliser-ia-terminal",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-utiliser-ia-terminal",
      "summary": "Pour qui veut un workflow terminal en plus d'OpenCode Desktop : installer Claude Code ou OpenCode en CLI, configurer un terminal moderne (Ghostty, WezTerm, iTerm2), utiliser Tmux pour le multi-pane, créer un alias `cc`.",
      "objective": "Comprendre quand le terminal est pertinent (dev avancé, workflow flexible) et savoir installer un workflow IA terminal complet.",
      "expected_output": "Terminal moderne installé, Claude Code ou OpenCode en CLI fonctionnel, alias `cc` qui fait cd + lancement IA, optionnellement Tmux pour le multi-pane.",
      "content_html": "<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Utiliser l'IA dans un terminal</h1>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Setup terminal et sessions IA en parallèle</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/9a6d584703f54cb7ac7c71c729d4213a\" title=\"Setup terminal et sessions IA en parallèle\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Démo concrète : comment lancer plusieurs sessions IA en parallèle dans un terminal moderne.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode Desktop suffit largement pour suivre ce bootcamp. Tu n'as pas besoin du terminal pour construire ton second cerveau, créer tes skills, ou faire tourner tes rituels.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Mais le terminal devient pertinent dans deux cas. Cette leçon est pour toi si tu te reconnais dans l'un des deux.</p>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Pourquoi utiliser l'IA dans un terminal ?</h2>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Cas 1</div><div class=\"text-base font-bold text-blue-800 mb-2\">Développement avancé</div><div class=\"text-sm text-blue-700/80\">Tu veux que l'IA t'aide à coder, gérer git, builder un projet, lancer des scripts en parallèle de ton coffre. L'IA dans le terminal te donne un accès système complet : elle peut exécuter des commandes, manipuler git, installer des dépendances.</div></div><div class=\"rounded-xl border-2 border-purple-200 bg-purple-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-purple-500 mb-2\">Cas 2</div><div class=\"text-base font-bold text-purple-800 mb-2\">Workflow plus flexible</div><div class=\"text-sm text-purple-700/80\">Tu veux plusieurs sessions IA en parallèle dans des fenêtres différentes, des alias custom pour démarrer plus vite, des sessions persistantes que tu retrouves même après avoir fermé ton terminal. C'est la puissance d'un workflow terminal mature.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne te reconnais dans aucun des deux, reste sur OpenCode Desktop. Tu pourras toujours revenir à cette leçon plus tard.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Les commandes de base du terminal</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le terminal (aussi appelé « ligne de commande » ou « console ») est une interface texte pour communiquer avec ton ordinateur. Au lieu de cliquer, tu tapes.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as besoin que de <strong class=\"font-semibold text-foreground\">4 commandes</strong> pour le bootcamp.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Mac / Linux :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Voir où tu es (Print Working Directory)\npwd\n\n# Lister les fichiers du dossier actuel\nls\n\n# Changer de dossier\ncd nom-du-dossier\n\n# Revenir au dossier parent\ncd ..\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Windows (PowerShell) :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-powershell\"># Voir où tu es\npwd\n\n# Lister les fichiers\ndir\n# (ls fonctionne aussi sur PowerShell moderne)\n\n# Changer de dossier\ncd nom-du-dossier\n\n# Revenir au dossier parent\ncd ..\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Exercice pratique (3 minutes)</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ouvre ton terminal</li>\n<li class=\"leading-7\">Tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">pwd</code> puis Entrée : tu vois ton dossier actuel</li>\n<li class=\"leading-7\">Tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ls</code> (ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">dir</code> sur Windows) : tu vois les fichiers</li>\n<li class=\"leading-7\">Tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cd Desktop</code> puis <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ls</code> : tu entres dans le Bureau et tu vois son contenu</li>\n<li class=\"leading-7\">Tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cd ..</code> : tu reviens en arrière</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce Mac :</strong> Tu peux glisser-déposer un dossier dans le terminal après avoir tapé <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cd </code> (avec un espace) pour naviguer directement dedans.</p>\n</blockquote>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce Windows :</strong> Tu peux faire <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Shift + Clic droit</code> sur un dossier dans l'Explorateur et choisir « Ouvrir PowerShell ici ».</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. Tu n'auras pas besoin de plus pour ce bootcamp.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Quel terminal utiliser ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les terminaux par défaut (Terminal.app sur Mac, PowerShell sur Windows) fonctionnent. Mais un terminal moderne est plus rapide, plus lisible, et surtout te permet de gérer <strong class=\"font-semibold text-foreground\">plusieurs sessions IA en parallèle</strong>, ce qui change vraiment le quotidien.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Notre recommandation principale</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Choisis selon ton OS :</p>\n<div class=\"my-6 grid grid-cols-1 md:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Sur macOS</div><div class=\"text-lg font-bold text-emerald-900 mb-2\">cmux</div><p class=\"text-sm text-emerald-900/80 mb-2\">Un terminal moderne pensé pour piloter <strong>plusieurs sessions IA en parallèle</strong> dans la même fenêtre. Tu peux avoir Claude Code sur ton coffre, OpenCode sur un repo client, et une session libre, et basculer entre elles d'un raccourci. C'est la couche qui rend le terminal vraiment puissant.</p><div class=\"text-xs text-emerald-700\"><a href=\"https://cmux.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">cmux.com</a></div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Sur Windows</div><div class=\"text-lg font-bold text-blue-900 mb-2\">WezTerm</div><p class=\"text-sm text-blue-900/80 mb-2\">cmux n'est pas dispo sur Windows. <strong>WezTerm</strong> est la meilleure alternative : cross-platform, très configurable, GPU-accéléré, splits natifs pour avoir plusieurs sessions côte à côte. Excellent rendu, communauté active.</p><div class=\"text-xs text-blue-700\"><a href=\"https://wezterm.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">wezterm.org</a></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Les alternatives solides</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux explorer d'autres options :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-3\"><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-700 mb-1\"><a href=\"https://ghostty.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Ghostty</a></div><div class=\"text-xs text-zinc-500\">Gratuit, ultra-rapide, GPU-accéléré, minimaliste. Mac et Linux uniquement.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-700 mb-1\"><a href=\"https://iterm2.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">iTerm2</a></div><div class=\"text-xs text-zinc-500\">Le classique sur Mac. Splits, search, profils, hotkeys. Très solide, communauté énorme.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-700 mb-1\"><a href=\"https://alacritty.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Alacritty</a></div><div class=\"text-xs text-zinc-500\">Ultra-léger, GPU-accéléré, minimaliste à l'extrême. Mac, Windows, Linux.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-700 mb-1\"><a href=\"https://sw.kovidgoyal.net/kitty/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"text-blue-600 underline\">Kitty</a></div><div class=\"text-xs text-zinc-500\">Puissant, très configurable. Mac et Linux.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Installer Claude Code ou OpenCode en CLI</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Choisis ton interface. Les deux sont compatibles avec ton coffre, tu peux changer d'avis à tout moment sans rien perdre.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Claude Code (recommandé si tu as un abonnement Claude Pro/Max)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Suis le guide d'installation officiel : <a href=\"https://docs.anthropic.com/en/docs/claude-code\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">docs.anthropic.com/en/docs/claude-code</a>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois installé, tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code> dans ton terminal, connecte-toi avec ton compte Anthropic (le navigateur s'ouvre), c'est fait.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">OpenCode (multi-modèle)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Suis le guide d'installation officiel : <a href=\"https://opencode.ai/docs\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">opencode.ai/docs</a>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois installé, tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode</code> dans ton terminal, puis <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/model</code> pour configurer ton provider (OpenRouter recommandé, cf. la leçon principale d'installation).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Toujours ouvrir l'IA depuis ton workspace</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA n'a accès qu'au dossier dans lequel tu la lances. Si tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode</code> depuis ton Bureau, elle ne voit pas ton coffre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le geste à faire à chaque session :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">cd ~/Documents/WORKSPACE   # adapte au chemin de ton workspace\nclaude                      # ou opencode\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu te retrouves dans le bon dossier, avec l'IA chargée de tout le contexte (AGENTS.md, skills, etc.).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">L'alias <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cc</code> : démarrer en une frappe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Plutôt que de taper <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cd</code> puis <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code> (ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode</code>) à chaque session, crée un alias <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cc</code> qui fait les deux d'un coup.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plus simple : demande à ton IA de le créer pour toi.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Demande à ton IA</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Lance ton IA une première fois, puis donne-lui ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais que tu crées un alias \"cc\" dans mon terminal.\n\nQuand je tape \"cc\", il devrait :\n1. Aller dans le dossier de mon workspace (adapte le path)\n2. Lancer claude (ou opencode, à toi de choisir)\n\nModifie le bon fichier de config (.zshrc, .bashrc ou équivalent\nselon mon shell) pour que l'alias soit permanent.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va détecter ton shell, modifier le bon fichier de configuration, et créer l'alias.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Tester</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ferme et rouvre ton terminal, puis tape :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">cc\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu devrais te retrouver dans ton workspace avec ton IA lancée. Une seule frappe au lieu de deux commandes.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais quand le terminal devient pertinent (dev avancé ou workflow flexible) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais quand le terminal devient pertinent (dev avancé ou workflow flexible)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais les 4 commandes de base (pwd, ls, cd, cd ..) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais les 4 commandes de base (pwd, ls, cd, cd ..)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi mon terminal (cmux sur macOS, WezTerm sur Windows, ou une alternative) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi mon terminal (cmux sur macOS, WezTerm sur Windows, ou une alternative)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé Claude Code ou OpenCode en CLI — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé Claude Code ou OpenCode en CLI</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais toujours lancer l'IA depuis mon workspace — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais toujours lancer l'IA depuis mon workspace</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé l'alias `cc` qui fait cd + lancement de l'IA — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé l'alias `cc` qui fait cd + lancement de l'IA</span></li></ul>",
      "content_markdown": "# Utiliser l'IA dans un terminal\n\nSetup terminal et sessions IA en parallèle\n\nDémo concrète : comment lancer plusieurs sessions IA en parallèle dans un terminal moderne.\n\nOpenCode Desktop suffit largement pour suivre ce bootcamp. Tu n'as pas besoin du terminal pour construire ton second cerveau, créer tes skills, ou faire tourner tes rituels.\n\nMais le terminal devient pertinent dans deux cas. Cette leçon est pour toi si tu te reconnais dans l'un des deux.\n\n## Pourquoi utiliser l'IA dans un terminal ?\n\nCas 1\n\nDéveloppement avancé\n\nTu veux que l'IA t'aide à coder, gérer git, builder un projet, lancer des scripts en parallèle de ton coffre. L'IA dans le terminal te donne un accès système complet : elle peut exécuter des commandes, manipuler git, installer des dépendances.\n\nCas 2\n\nWorkflow plus flexible\n\nTu veux plusieurs sessions IA en parallèle dans des fenêtres différentes, des alias custom pour démarrer plus vite, des sessions persistantes que tu retrouves même après avoir fermé ton terminal. C'est la puissance d'un workflow terminal mature.\n\nSi tu ne te reconnais dans aucun des deux, reste sur OpenCode Desktop. Tu pourras toujours revenir à cette leçon plus tard.\n\n---\n\n## Les commandes de base du terminal\n\nLe terminal (aussi appelé « ligne de commande » ou « console ») est une interface texte pour communiquer avec ton ordinateur. Au lieu de cliquer, tu tapes.\n\nTu n'as besoin que de **4 commandes** pour le bootcamp.\n\n**Mac / Linux :**\n\n```\n# Voir où tu es (Print Working Directory)\npwd\n\n# Lister les fichiers du dossier actuel\nls\n\n# Changer de dossier\ncd nom-du-dossier\n\n# Revenir au dossier parent\ncd ..\n```\n\n**Windows (PowerShell) :**\n\n```\n# Voir où tu es\npwd\n\n# Lister les fichiers\ndir\n# (ls fonctionne aussi sur PowerShell moderne)\n\n# Changer de dossier\ncd nom-du-dossier\n\n# Revenir au dossier parent\ncd ..\n```\n\n### Exercice pratique (3 minutes)\n\n1. Ouvre ton terminal\n2. Tape `pwd` puis Entrée : tu vois ton dossier actuel\n3. Tape `ls` (ou `dir` sur Windows) : tu vois les fichiers\n4. Tape `cd Desktop` puis `ls` : tu entres dans le Bureau et tu vois son contenu\n5. Tape `cd ..` : tu reviens en arrière\n\n> Astuce Mac : Tu peux glisser-déposer un dossier dans le terminal après avoir tapé cd (avec un espace) pour naviguer directement dedans.\n\n> Astuce Windows : Tu peux faire Shift + Clic droit sur un dossier dans l'Explorateur et choisir « Ouvrir PowerShell ici ».\n\nC'est tout. Tu n'auras pas besoin de plus pour ce bootcamp.\n\n---\n\n## Quel terminal utiliser ?\n\nLes terminaux par défaut (Terminal.app sur Mac, PowerShell sur Windows) fonctionnent. Mais un terminal moderne est plus rapide, plus lisible, et surtout te permet de gérer **plusieurs sessions IA en parallèle**, ce qui change vraiment le quotidien.\n\n### Notre recommandation principale\n\nChoisis selon ton OS :\n\nSur macOS\n\ncmux\n\nUn terminal moderne pensé pour piloter **plusieurs sessions IA en parallèle** dans la même fenêtre. Tu peux avoir Claude Code sur ton coffre, OpenCode sur un repo client, et une session libre, et basculer entre elles d'un raccourci. C'est la couche qui rend le terminal vraiment puissant.\n\n[cmux.com](https://cmux.com/)\n\nSur Windows\n\nWezTerm\n\ncmux n'est pas dispo sur Windows. **WezTerm** est la meilleure alternative : cross-platform, très configurable, GPU-accéléré, splits natifs pour avoir plusieurs sessions côte à côte. Excellent rendu, communauté active.\n\n[wezterm.org](https://wezterm.org/)\n\n### Les alternatives solides\n\nSi tu veux explorer d'autres options :\n\n[Ghostty](https://ghostty.org/)\n\nGratuit, ultra-rapide, GPU-accéléré, minimaliste. Mac et Linux uniquement.\n\n[iTerm2](https://iterm2.com/)\n\nLe classique sur Mac. Splits, search, profils, hotkeys. Très solide, communauté énorme.\n\n[Alacritty](https://alacritty.org/)\n\nUltra-léger, GPU-accéléré, minimaliste à l'extrême. Mac, Windows, Linux.\n\n[Kitty](https://sw.kovidgoyal.net/kitty/)\n\nPuissant, très configurable. Mac et Linux.\n\n---\n\n## Installer Claude Code ou OpenCode en CLI\n\nChoisis ton interface. Les deux sont compatibles avec ton coffre, tu peux changer d'avis à tout moment sans rien perdre.\n\n### Claude Code (recommandé si tu as un abonnement Claude Pro/Max)\n\nSuis le guide d'installation officiel : [docs.anthropic.com/en/docs/claude-code](https://docs.anthropic.com/en/docs/claude-code).\n\nUne fois installé, tape `claude` dans ton terminal, connecte-toi avec ton compte Anthropic (le navigateur s'ouvre), c'est fait.\n\n### OpenCode (multi-modèle)\n\nSuis le guide d'installation officiel : [opencode.ai/docs](https://opencode.ai/docs).\n\nUne fois installé, tape `opencode` dans ton terminal, puis `/model` pour configurer ton provider (OpenRouter recommandé, cf. la leçon principale d'installation).\n\n---\n\n## Toujours ouvrir l'IA depuis ton workspace\n\nL'IA n'a accès qu'au dossier dans lequel tu la lances. Si tu lances `claude` ou `opencode` depuis ton Bureau, elle ne voit pas ton coffre.\n\nLe geste à faire à chaque session :\n\n```\ncd ~/Documents/WORKSPACE   # adapte au chemin de ton workspace\nclaude                      # ou opencode\n```\n\nTu te retrouves dans le bon dossier, avec l'IA chargée de tout le contexte (AGENTS.md, skills, etc.).\n\n---\n\n## L'alias `cc` : démarrer en une frappe\n\nPlutôt que de taper `cd` puis `claude` (ou `opencode`) à chaque session, crée un alias `cc` qui fait les deux d'un coup.\n\nLe plus simple : demande à ton IA de le créer pour toi.\n\n### Demande à ton IA\n\nLance ton IA une première fois, puis donne-lui ce prompt :\n\n```\nJ'aimerais que tu crées un alias \"cc\" dans mon terminal.\n\nQuand je tape \"cc\", il devrait :\n1. Aller dans le dossier de mon workspace (adapte le path)\n2. Lancer claude (ou opencode, à toi de choisir)\n\nModifie le bon fichier de config (.zshrc, .bashrc ou équivalent\nselon mon shell) pour que l'alias soit permanent.\n```\n\nL'IA va détecter ton shell, modifier le bon fichier de configuration, et créer l'alias.\n\n### Tester\n\nFerme et rouvre ton terminal, puis tape :\n\n```\ncc\n```\n\nTu devrais te retrouver dans ton workspace avec ton IA lancée. Une seule frappe au lieu de deux commandes.\n\n---\n\n- Je sais quand le terminal devient pertinent (dev avancé ou workflow flexible)\n- Je connais les 4 commandes de base (pwd, ls, cd, cd ..)\n- J'ai choisi mon terminal (cmux sur macOS, WezTerm sur Windows, ou une alternative)\n- J'ai installé Claude Code ou OpenCode en CLI\n- Je sais toujours lancer l'IA depuis mon workspace\n- J'ai créé l'alias `cc` qui fait cd + lancement de l'IA",
      "assets": [],
      "links": [
        {
          "text": "cmux.com",
          "url": "https://cmux.com/"
        },
        {
          "text": "wezterm.org",
          "url": "https://wezterm.org/"
        },
        {
          "text": "Ghostty",
          "url": "https://ghostty.org/"
        },
        {
          "text": "iTerm2",
          "url": "https://iterm2.com/"
        },
        {
          "text": "Alacritty",
          "url": "https://alacritty.org/"
        },
        {
          "text": "Kitty",
          "url": "https://sw.kovidgoyal.net/kitty/"
        },
        {
          "text": "docs.anthropic.com/en/docs/claude-code",
          "url": "https://docs.anthropic.com/en/docs/claude-code"
        },
        {
          "text": "opencode.ai/docs",
          "url": "https://opencode.ai/docs"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/9a6d584703f54cb7ac7c71c729d4213a",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Setup terminal et sessions IA en parallèle",
          "title_source": "iframe-title",
          "video_id": "9a6d584703f54cb7ac7c71c729d4213a",
          "watch_url": "https://www.loom.com/share/9a6d584703f54cb7ac7c71c729d4213a"
        }
      ],
      "captured_at": "2026-08-03T10:05:06.675Z",
      "counts": {
        "code_blocks": 28,
        "headings": 14,
        "iframes": 1,
        "images": 0,
        "links": 8,
        "text_chars": 5915
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "12-semaine-1-claude-code-coffre",
      "order": 12,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Utiliser Claude Code dans son coffre",
      "slug": "semaine-1-claude-code-coffre",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-claude-code-coffre",
      "summary": "Alternative à OpenCode Desktop pour les utilisateurs Claude Max : différence entre Claude Desktop (app) et Claude Code (CLI terminal), où sont configurés les MCP user-scope dans chacun, et comment partager les skills du coffre via un symlink (.claude/skills → Second Cerveau/4 TOOLS/skills).",
      "objective": "",
      "expected_output": "",
      "content_html": "<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Utiliser Claude Code dans son coffre</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/6978abe2509a4c588afa4ef1756fdd73\" title=\"Utiliser Claude Code dans son coffre\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Cette leçon s'adresse aux utilisateurs de Claude Code.</strong> OpenCode Desktop reste la stack recommandée par défaut dans ce bootcamp. Mais si tu as un abonnement Claude Max et que tu veux travailler dans Claude Code (CLI terminal ou Claude Desktop), cette leçon te montre comment l'intégrer proprement avec ton coffre.</p>\n</blockquote>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"deux-claude-code-deux-configurations\">Deux Claude Code, deux configurations</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Anthropic propose deux façons d'utiliser Claude Code :</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-sm font-bold text-violet-800 mb-2\">Claude Desktop (app GUI)</div><div class=\"text-xs text-violet-600 space-y-1\"><div>→ App graphique (macOS / Windows)</div><div>→ Chat classique avec interface visuelle</div><div>→ Idéal pour les discussions sans manipulation de fichiers lourde</div><div>→ MCP configurés dans un fichier JSON</div></div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-bold text-emerald-800 mb-2\">Claude Code (CLI terminal)</div><div class=\"text-xs text-emerald-600 space-y-1\"><div>→ Outil en ligne de commande, lancé dans un dossier</div><div>→ Voit tous les fichiers du dossier, peut les éditer</div><div>→ Idéal pour travailler dans ton coffre, comme OpenCode</div><div>→ MCP configurables via commande ou fichier JSON</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu peux utiliser les deux</strong>, mais elles ne partagent pas leur configuration : tu vas devoir installer tes MCP <strong class=\"font-semibold text-foreground\">deux fois</strong> si tu veux les retrouver dans les deux interfaces.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans le contexte de ce bootcamp (travailler dans ton coffre avec un agent qui voit tes fichiers), c'est <strong class=\"font-semibold text-foreground\">Claude Code (CLI terminal)</strong> qui est l'équivalent direct d'OpenCode Desktop.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ouvrir-claude-code-dans-ton-coffre\">Ouvrir Claude Code dans ton coffre</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si Claude Code n'est pas encore installé, suis la <a href=\"https://docs.claude.com/en/docs/claude-code/setup\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">page d'installation officielle d'Anthropic</a> (méthodes natives recommandées : Homebrew sur macOS, WinGet sur Windows, apt/dnf/apk sur Linux). Une fois installé, pour l'utiliser dans ton système :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Va dans ton Workspace racine\ncd ~/Documents/WORKSPACE\n\n# Lance Claude Code\nclaude\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Claude Code démarre, lit l'<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">CLAUDE.md</code> à la racine, remonte les parents s'il y en a, et a accès à tous les fichiers du dossier (Second Cerveau + autres projets).</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce :</strong> crée un alias dans ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.zshrc</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.bashrc</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">alias cco=\"cd ~/Documents/WORKSPACE &amp;&amp; claude\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu tapes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cco</code> n'importe où, tu atterris dans ton coffre avec Claude Code lancé.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"où-sont-rangés-les-mcp-au-niveau-user\">Où sont rangés les MCP au niveau user</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour qu'un MCP soit dispo dans <strong class=\"font-semibold text-foreground\">toutes tes sessions</strong> (peu importe le dossier où tu lances Claude Code), tu dois le configurer au <strong class=\"font-semibold text-foreground\">scope user</strong> (ce que les anciennes versions appelaient « global »).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pour-claude-code-cli-terminal\">Pour Claude Code (CLI terminal)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux options :</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Option 1 : la commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude mcp add</code> (la plus simple)</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">claude mcp add --scope user firecrawl npx -y firecrawl-mcp\nclaude mcp add --scope user playwright npx -y @playwright/mcp@latest\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces MCP sont disponibles partout, dans n'importe quel dossier où tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Option 2 : éditer le fichier de config user</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le fichier de config global de Claude Code CLI est <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude.json</code> (dans ton home, le même pour toutes tes sessions). Il contient ton OAuth, tes MCP au <strong class=\"font-semibold text-foreground\">scope user</strong> (dispos partout) <strong class=\"font-semibold text-foreground\">et</strong> au <strong class=\"font-semibold text-foreground\">scope local</strong> (privés à un projet précis, indexés par chemin), plus l'état de chaque projet. Tu peux y ajouter une section MCP à la main, mais la commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude mcp add</code> est plus propre : elle écrit au bon scope, fait des backups automatiques, et garde les 5 derniers backups.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Attention</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude.json</code> ≠ <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/</code>. Le <strong class=\"font-semibold text-foreground\">fichier</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.json</code> héberge la config MCP et l'état. Le <strong class=\"font-semibold text-foreground\">dossier</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/</code> (sans extension) héberge tes skills, agents et commandes user-level (cf. section suivante).</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pour-claude-desktop-app-gui\">Pour Claude Desktop (app GUI)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pas de commande dédiée. Tu édites directement le fichier JSON :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">macOS</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/Library/Application Support/Claude/claude_desktop_config.json</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Windows</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">%APPDATA%\\Claude\\claude_desktop_config.json</code></li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Format :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"mcpServers\": {\n    \"firecrawl\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"firecrawl-mcp\"],\n      \"env\": {\n        \"FIRECRAWL_API_KEY\": \"fc_xxxxx\"\n      }\n    },\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@playwright/mcp@latest\"]\n    }\n  }\n}\n</code></pre></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Important :</strong> après avoir édité ce fichier, <strong class=\"font-semibold text-foreground\">quitte complètement Claude Desktop</strong> (Cmd+Q sur macOS, pas juste fermer la fenêtre) et relance. L'app ne recharge pas la config à chaud.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour debug : les logs sont dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/Library/Logs/Claude/</code>. Le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mcp.log</code> donne les connexions, et <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mcp-server-&lt;NOM&gt;.log</code> donne les erreurs spécifiques à chaque serveur.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"différence-clé-à-retenir\">Différence clé à retenir</h3>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\"></th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Claude Code (CLI)</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Claude Desktop (app)</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Config MCP user</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude.json</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude mcp add --scope user</code></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/Library/Application Support/Claude/claude_desktop_config.json</code></td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Config MCP projet</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.mcp.json</code> à la racine du projet</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Pas de scope projet, tout est global</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Skills</td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/skills/</code> (user) ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills/</code> (projet)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Lus depuis <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/skills/</code> également</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Rechargement config</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">À chaque <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code> (auto)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Restart complet de l'app obligatoire</td></tr></tbody></table></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"skills-dans-claude-code-pas-de-skillspaths-déclaratif\">Skills dans Claude Code : pas de <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">skills.paths</code> déclaratif</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est <strong class=\"font-semibold text-foreground\">la grosse différence</strong> avec OpenCode. Dans OpenCode, tu listes des dossiers de skills dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./skills-equipe\"\n    ]\n  }\n}\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Et OpenCode charge tous les skills des chemins listés. <strong class=\"font-semibold text-foreground\">Claude Code ne supporte pas ça.</strong> Il lit les skills <strong class=\"font-semibold text-foreground\">uniquement</strong> dans deux endroits :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/skills/</code></strong> : skills <strong class=\"font-semibold text-foreground\">user / globaux</strong> (perso, dispos dans toutes tes sessions, peu importe le dossier où tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code>)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills/</code></strong> : skills <strong class=\"font-semibold text-foreground\">projet</strong> (à la racine du dossier où tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">claude</code>, non visibles ailleurs)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux détails utiles :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Hot reload</strong> : ajouter, éditer ou supprimer un skill prend effet dans la session courante, pas besoin de redémarrer Claude Code.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Conflit de nom</strong> : si un skill du même nom existe à plusieurs niveaux, l'ordre de priorité est <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">enterprise &gt; user &gt; project</code>.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tes skills vivent dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/</code> (la convention de ce bootcamp), Claude Code ne les voit pas par défaut.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-solution-symlink\">La solution : symlink</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu crées un <strong class=\"font-semibold text-foreground\">symlink</strong> (Mac/Linux) ou <strong class=\"font-semibold text-foreground\">junction</strong> (Windows) entre <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills</code> et le dossier réel de tes skills dans le coffre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Mac / Linux :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># À la racine de ton Workspace (là où tu lances claude)\ncd ~/Documents/WORKSPACE\n\n# Crée le dossier .claude s'il n'existe pas\nmkdir -p .claude\n\n# Symlink : .claude/skills pointe vers le vrai dossier\n# Important : le path source doit être relatif depuis l'emplacement du symlink,\n# donc on entre d'abord dans .claude puis on remonte d'un cran.\ncd .claude &amp;&amp; ln -s \"../Second Cerveau/4 TOOLS/skills\" skills &amp;&amp; cd ..\n</code></pre></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Si ta structure de coffre est custom</strong> (par exemple tu as renommé \"Second Cerveau\" en \"REFLECTIA\" ou utilisé une arbo différente d'IPCRA) : plutôt que de te battre avec les symlinks, demande à Claude Code de faire une passe sur l'ensemble du dossier pour corriger tous les chemins, et stocke tes skills directement dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills/</code>. C'est plus simple, ça évite les couches indirectes, et tu économises les tokens consommés par grep + résolution de symlink à chaque session.</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Windows (junction, sans droits admin) :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-cmd\">cd \"C:\\Users\\Toi\\Documents\\WORKSPACE\"\nmkdir .claude\nmklink /J \".claude\\skills\" \"Second Cerveau\\4 TOOLS\\skills\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Vérifie :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">ls -la .claude/skills/\n# Doit afficher le contenu de Second Cerveau/4 TOOLS/skills/\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À partir de là, Claude Code voit tous tes skills (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>...) comme s'ils étaient nativement dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills/</code>. Tu tapes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/</code> dans Claude Code, tu vois la liste complète.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"variante-skills-dispos-partout-via-claudeskills\">Variante : skills dispos partout via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/skills</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux que tes skills coffre soient dispos <strong class=\"font-semibold text-foreground\">dans tous les projets</strong> (pas seulement dans le Workspace), fais le symlink depuis <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/skills</code> à la place :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Attention : si tu as déjà des skills perso dans ~/.claude/skills, sauvegarde-les avant\nln -s ~/Documents/WORKSPACE/Second\\ Cerveau/4\\ TOOLS/skills ~/.claude/skills\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Trade-off : tu n'as plus de dossier user séparé pour des skills uniquement perso. Pour la plupart des cas, le symlink projet (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.claude/skills</code> dans le Workspace) suffit largement.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"récap-lancer-claude-code-dans-ton-coffre-proprement\">Récap : lancer Claude Code dans ton coffre proprement</h2>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-blue-400\">1.</div><div class=\"text-sm font-bold text-blue-700\">Installer Claude Code</div><div class=\"text-xs text-blue-500\"><a href=\"https://docs.claude.com/en/docs/claude-code/setup\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">Page d'installation officielle</a></div></div><div class=\"w-full max-w-md border-2 border-b-0 border-violet-200 bg-violet-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-violet-400\">2.</div><div class=\"text-sm font-bold text-violet-700\">Symlink des skills</div><div class=\"text-xs text-violet-500\"><code>ln -s \"Second Cerveau/4 TOOLS/skills\" .claude/skills</code></div></div><div class=\"w-full max-w-md border-2 border-b-0 border-purple-200 bg-purple-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-purple-400\">3.</div><div class=\"text-sm font-bold text-purple-700\">Ajouter tes MCP user-scope</div><div class=\"text-xs text-purple-500\"><code>claude mcp add --scope user firecrawl ...</code></div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-emerald-400\">4.</div><div class=\"text-sm font-bold text-emerald-700\">Lancer Claude Code dans le Workspace</div><div class=\"text-xs text-emerald-500\"><code>cd ~/Documents/WORKSPACE &amp;&amp; claude</code></div></div></div>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais la différence entre Claude Desktop (app GUI) et Claude Code (CLI terminal) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais la différence entre Claude Desktop (app GUI) et Claude Code (CLI terminal)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Claude Code installé via la page de doc officielle (https://docs.claude.com/en/docs/claude-code/setup) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Claude Code installé via la page de doc officielle (https://docs.claude.com/en/docs/claude-code/setup)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Symlink .claude/skills → Second Cerveau/4 TOOLS/skills créé à la racine du Workspace — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Symlink .claude/skills → Second Cerveau/4 TOOLS/skills créé à la racine du Workspace</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais où sont configurés les MCP user-scope dans Claude Code (~/.claude.json ou claude mcp add --scope user) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais où sont configurés les MCP user-scope dans Claude Code (~/.claude.json ou claude mcp add --scope user)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais où sont configurés les MCP dans Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json sur macOS) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais où sont configurés les MCP dans Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json sur macOS)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si j'utilise Claude Desktop : je sais qu'il faut quitter complètement (Cmd+Q) et relancer après chaque modif du JSON — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si j'utilise Claude Desktop : je sais qu'il faut quitter complètement (Cmd+Q) et relancer après chaque modif du JSON</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Claude Code lancé depuis mon Workspace : je vois mes skills via / — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Claude Code lancé depuis mon Workspace : je vois mes skills via /</span></li></ul>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sources\">Sources</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><a href=\"https://docs.claude.com/en/docs/claude-code/setup\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Set up Claude Code (page d'installation officielle)</a></li>\n<li class=\"leading-7\"><a href=\"https://docs.claude.com/en/docs/claude-code/mcp\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Connect Claude Code to tools via MCP</a></li>\n<li class=\"leading-7\"><a href=\"https://docs.claude.com/en/docs/claude-code/skills\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Extend Claude with skills</a></li>\n<li class=\"leading-7\"><a href=\"https://docs.claude.com/en/docs/claude-code/settings\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Claude Code settings</a></li>\n<li class=\"leading-7\"><a href=\"https://modelcontextprotocol.io/docs/develop/connect-local-servers\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Connect to local MCP servers (Claude Desktop)</a></li>\n</ul>",
      "content_markdown": "Utiliser Claude Code dans son coffre\n\n> Cette leçon s'adresse aux utilisateurs de Claude Code. OpenCode Desktop reste la stack recommandée par défaut dans ce bootcamp. Mais si tu as un abonnement Claude Max et que tu veux travailler dans Claude Code (CLI terminal ou Claude Desktop), cette leçon te montre comment l'intégrer proprement avec ton coffre.\n\n## Deux Claude Code, deux configurations\n\nAnthropic propose deux façons d'utiliser Claude Code :\n\nClaude Desktop (app GUI)\n\n→ App graphique (macOS / Windows)\n\n→ Chat classique avec interface visuelle\n\n→ Idéal pour les discussions sans manipulation de fichiers lourde\n\n→ MCP configurés dans un fichier JSON\n\nClaude Code (CLI terminal)\n\n→ Outil en ligne de commande, lancé dans un dossier\n\n→ Voit tous les fichiers du dossier, peut les éditer\n\n→ Idéal pour travailler dans ton coffre, comme OpenCode\n\n→ MCP configurables via commande ou fichier JSON\n\n**Tu peux utiliser les deux**, mais elles ne partagent pas leur configuration : tu vas devoir installer tes MCP **deux fois** si tu veux les retrouver dans les deux interfaces.\n\nDans le contexte de ce bootcamp (travailler dans ton coffre avec un agent qui voit tes fichiers), c'est **Claude Code (CLI terminal)** qui est l'équivalent direct d'OpenCode Desktop.\n\n---\n\n## Ouvrir Claude Code dans ton coffre\n\nSi Claude Code n'est pas encore installé, suis la [page d'installation officielle d'Anthropic](https://docs.claude.com/en/docs/claude-code/setup) (méthodes natives recommandées : Homebrew sur macOS, WinGet sur Windows, apt/dnf/apk sur Linux). Une fois installé, pour l'utiliser dans ton système :\n\n```\n# Va dans ton Workspace racine\ncd ~/Documents/WORKSPACE\n\n# Lance Claude Code\nclaude\n```\n\nClaude Code démarre, lit l'`AGENTS.md` ou `CLAUDE.md` à la racine, remonte les parents s'il y en a, et a accès à tous les fichiers du dossier (Second Cerveau + autres projets).\n\n> Astuce : crée un alias dans ton .zshrc ou .bashrc :\n> \n> alias cco=\"cd ~/Documents/WORKSPACE && claude\"\n> \n> Copier\n> \n> Tu tapes cco n'importe où, tu atterris dans ton coffre avec Claude Code lancé.\n\n---\n\n## Où sont rangés les MCP au niveau user\n\nPour qu'un MCP soit dispo dans **toutes tes sessions** (peu importe le dossier où tu lances Claude Code), tu dois le configurer au **scope user** (ce que les anciennes versions appelaient « global »).\n\n### Pour Claude Code (CLI terminal)\n\nDeux options :\n\n**Option 1 : la commande `claude mcp add` (la plus simple)**\n\n```\nclaude mcp add --scope user firecrawl npx -y firecrawl-mcp\nclaude mcp add --scope user playwright npx -y @playwright/mcp@latest\n```\n\nCes MCP sont disponibles partout, dans n'importe quel dossier où tu lances `claude`.\n\n**Option 2 : éditer le fichier de config user**\n\nLe fichier de config global de Claude Code CLI est `~/.claude.json` (dans ton home, le même pour toutes tes sessions). Il contient ton OAuth, tes MCP au **scope user** (dispos partout) **et** au **scope local** (privés à un projet précis, indexés par chemin), plus l'état de chaque projet. Tu peux y ajouter une section MCP à la main, mais la commande `claude mcp add` est plus propre : elle écrit au bon scope, fait des backups automatiques, et garde les 5 derniers backups.\n\n> Attention : ~/.claude.json ≠ ~/.claude/. Le fichier .json héberge la config MCP et l'état. Le dossier .claude/ (sans extension) héberge tes skills, agents et commandes user-level (cf. section suivante).\n\n### Pour Claude Desktop (app GUI)\n\nPas de commande dédiée. Tu édites directement le fichier JSON :\n\n- **macOS** : `~/Library/Application Support/Claude/claude_desktop_config.json`\n- **Windows** : `%APPDATA%\\Claude\\claude_desktop_config.json`\n\nFormat :\n\n```\n{\n  \"mcpServers\": {\n    \"firecrawl\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"firecrawl-mcp\"],\n      \"env\": {\n        \"FIRECRAWL_API_KEY\": \"fc_xxxxx\"\n      }\n    },\n    \"playwright\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@playwright/mcp@latest\"]\n    }\n  }\n}\n```\n\n> Important : après avoir édité ce fichier, quitte complètement Claude Desktop (Cmd+Q sur macOS, pas juste fermer la fenêtre) et relance. L'app ne recharge pas la config à chaud.\n> \n> Pour debug : les logs sont dans ~/Library/Logs/Claude/. Le fichier mcp.log donne les connexions, et mcp-server-<NOM>.log donne les erreurs spécifiques à chaque serveur.\n\n### Différence clé à retenir\n\n|  | Claude Code (CLI) | Claude Desktop (app) |\n| --- | --- | --- |\n| Config MCP user | ~/.claude.json ou claude mcp add --scope user | ~/Library/Application Support/Claude/claude_desktop_config.json |\n| Config MCP projet | .mcp.json à la racine du projet | Pas de scope projet, tout est global |\n| Skills | ~/.claude/skills/ (user) ou .claude/skills/ (projet) | Lus depuis ~/.claude/skills/ également |\n| Rechargement config | À chaque claude (auto) | Restart complet de l'app obligatoire |\n\n---\n\n## Skills dans Claude Code : pas de `skills.paths` déclaratif\n\nC'est **la grosse différence** avec OpenCode. Dans OpenCode, tu listes des dossiers de skills dans `opencode.json` :\n\n```\n{\n  \"skills\": {\n    \"paths\": [\n      \"./Second Cerveau/4 TOOLS/skills\",\n      \"./skills-equipe\"\n    ]\n  }\n}\n```\n\nEt OpenCode charge tous les skills des chemins listés. **Claude Code ne supporte pas ça.** Il lit les skills **uniquement** dans deux endroits :\n\n- **`~/.claude/skills/`** : skills **user / globaux** (perso, dispos dans toutes tes sessions, peu importe le dossier où tu lances `claude`)\n- **`.claude/skills/`** : skills **projet** (à la racine du dossier où tu lances `claude`, non visibles ailleurs)\n\nDeux détails utiles :\n\n- **Hot reload** : ajouter, éditer ou supprimer un skill prend effet dans la session courante, pas besoin de redémarrer Claude Code.\n- **Conflit de nom** : si un skill du même nom existe à plusieurs niveaux, l'ordre de priorité est `enterprise > user > project`.\n\nSi tes skills vivent dans `Second Cerveau/4 TOOLS/skills/` (la convention de ce bootcamp), Claude Code ne les voit pas par défaut.\n\n### La solution : symlink\n\nTu crées un **symlink** (Mac/Linux) ou **junction** (Windows) entre `.claude/skills` et le dossier réel de tes skills dans le coffre.\n\n**Mac / Linux :**\n\n```\n# À la racine de ton Workspace (là où tu lances claude)\ncd ~/Documents/WORKSPACE\n\n# Crée le dossier .claude s'il n'existe pas\nmkdir -p .claude\n\n# Symlink : .claude/skills pointe vers le vrai dossier\n# Important : le path source doit être relatif depuis l'emplacement du symlink,\n# donc on entre d'abord dans .claude puis on remonte d'un cran.\ncd .claude && ln -s \"../Second Cerveau/4 TOOLS/skills\" skills && cd ..\n```\n\n> Si ta structure de coffre est custom (par exemple tu as renommé \"Second Cerveau\" en \"REFLECTIA\" ou utilisé une arbo différente d'IPCRA) : plutôt que de te battre avec les symlinks, demande à Claude Code de faire une passe sur l'ensemble du dossier pour corriger tous les chemins, et stocke tes skills directement dans .claude/skills/. C'est plus simple, ça évite les couches indirectes, et tu économises les tokens consommés par grep + résolution de symlink à chaque session.\n\n**Windows (junction, sans droits admin) :**\n\n```\ncd \"C:\\Users\\Toi\\Documents\\WORKSPACE\"\nmkdir .claude\nmklink /J \".claude\\skills\" \"Second Cerveau\\4 TOOLS\\skills\"\n```\n\nVérifie :\n\n```\nls -la .claude/skills/\n# Doit afficher le contenu de Second Cerveau/4 TOOLS/skills/\n```\n\nÀ partir de là, Claude Code voit tous tes skills (`/initialisation`, `/import`, `/weekly-review`, `/done`...) comme s'ils étaient nativement dans `.claude/skills/`. Tu tapes `/` dans Claude Code, tu vois la liste complète.\n\n### Variante : skills dispos partout via `~/.claude/skills`\n\nSi tu veux que tes skills coffre soient dispos **dans tous les projets** (pas seulement dans le Workspace), fais le symlink depuis `~/.claude/skills` à la place :\n\n```\n# Attention : si tu as déjà des skills perso dans ~/.claude/skills, sauvegarde-les avant\nln -s ~/Documents/WORKSPACE/Second\\ Cerveau/4\\ TOOLS/skills ~/.claude/skills\n```\n\nTrade-off : tu n'as plus de dossier user séparé pour des skills uniquement perso. Pour la plupart des cas, le symlink projet (`.claude/skills` dans le Workspace) suffit largement.\n\n---\n\n## Récap : lancer Claude Code dans ton coffre proprement\n\n1.\n\nInstaller Claude Code\n\n[Page d'installation officielle](https://docs.claude.com/en/docs/claude-code/setup)\n\n2.\n\nSymlink des skills\n\n`ln -s \"Second Cerveau/4 TOOLS/skills\" .claude/skills`\n\n3.\n\nAjouter tes MCP user-scope\n\n`claude mcp add --scope user firecrawl ...`\n\n4.\n\nLancer Claude Code dans le Workspace\n\n`cd ~/Documents/WORKSPACE && claude`\n\n---\n\n- Je connais la différence entre Claude Desktop (app GUI) et Claude Code (CLI terminal)\n- Claude Code installé via la page de doc officielle (https://docs.claude.com/en/docs/claude-code/setup)\n- Symlink .claude/skills → Second Cerveau/4 TOOLS/skills créé à la racine du Workspace\n- Je sais où sont configurés les MCP user-scope dans Claude Code (~/.claude.json ou claude mcp add --scope user)\n- Je sais où sont configurés les MCP dans Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json sur macOS)\n- Si j'utilise Claude Desktop : je sais qu'il faut quitter complètement (Cmd+Q) et relancer après chaque modif du JSON\n- Claude Code lancé depuis mon Workspace : je vois mes skills via /\n\n## Sources\n\n- [Set up Claude Code (page d'installation officielle)](https://docs.claude.com/en/docs/claude-code/setup)\n- [Connect Claude Code to tools via MCP](https://docs.claude.com/en/docs/claude-code/mcp)\n- [Extend Claude with skills](https://docs.claude.com/en/docs/claude-code/skills)\n- [Claude Code settings](https://docs.claude.com/en/docs/claude-code/settings)\n- [Connect to local MCP servers (Claude Desktop)](https://modelcontextprotocol.io/docs/develop/connect-local-servers)",
      "assets": [],
      "links": [
        {
          "text": "page d'installation officielle d'Anthropic",
          "url": "https://docs.claude.com/en/docs/claude-code/setup"
        },
        {
          "text": "Page d'installation officielle",
          "url": "https://docs.claude.com/en/docs/claude-code/setup"
        },
        {
          "text": "Set up Claude Code (page d'installation officielle)",
          "url": "https://docs.claude.com/en/docs/claude-code/setup"
        },
        {
          "text": "Connect Claude Code to tools via MCP",
          "url": "https://docs.claude.com/en/docs/claude-code/mcp"
        },
        {
          "text": "Extend Claude with skills",
          "url": "https://docs.claude.com/en/docs/claude-code/skills"
        },
        {
          "text": "Claude Code settings",
          "url": "https://docs.claude.com/en/docs/claude-code/settings"
        },
        {
          "text": "Connect to local MCP servers (Claude Desktop)",
          "url": "https://modelcontextprotocol.io/docs/develop/connect-local-servers"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/6978abe2509a4c588afa4ef1756fdd73",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Utiliser Claude Code dans son coffre",
          "title_source": "iframe-title",
          "video_id": "6978abe2509a4c588afa4ef1756fdd73",
          "watch_url": "https://www.loom.com/share/6978abe2509a4c588afa4ef1756fdd73"
        }
      ],
      "captured_at": "2026-08-03T10:05:09.393Z",
      "counts": {
        "code_blocks": 66,
        "headings": 11,
        "iframes": 1,
        "images": 0,
        "links": 7,
        "text_chars": 8796
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "13-semaine-1-codex-coffre",
      "order": 13,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Utiliser Codex dans son coffre",
      "slug": "semaine-1-codex-coffre",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-codex-coffre",
      "summary": "Alternative à OpenCode Desktop pour les utilisateurs ChatGPT : installer Codex (la boucle agentique d'OpenAI), le connecter à ton abonnement ChatGPT via login (pas de clé API), configurer les MCP et brancher les skills de ton coffre.",
      "objective": "Codex ne lit les skills qu'à un seul endroit. Tu demandes à ton IA de créer un symlink vers ton vrai dossier de skills, et c'est réglé.",
      "expected_output": "",
      "content_html": "<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Cette leçon s'adresse aux utilisateurs de Codex.</strong> OpenCode Desktop reste la stack recommandée par défaut dans ce bootcamp. Mais si tu as un abonnement ChatGPT Plus ou Pro et que tu veux la boucle agentique d'OpenAI dans ton terminal, Codex (l'agent CLI de ChatGPT) s'installe proprement à côté de ton coffre. Cette leçon te montre comment, en te reposant au maximum sur ton IA.</p>\n</blockquote>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"utiliser-codex-dans-son-coffre\">Utiliser Codex dans son coffre</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Utiliser Codex avec ton système</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/d86c453a7cc744babac608030f79d34d\" title=\"Utiliser Codex avec ton système\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">La méthode rapide : rien ne change, tu rebranches juste tes MCP et tes skills, et tu laisses ton IA faire le travail.</div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"lidée-en-une-phrase\">L'idée en une phrase</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bonne nouvelle : <strong class=\"font-semibold text-foreground\">presque rien ne change.</strong> Le jour où tu passes d'OpenCode à Codex (ou à Claude Code, ou à un autre agent), tu ouvres l'agent dans ton dossier et tout ton contexte est déjà là : ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code>, tes notes, tes projets. Tu n'as pas à tout reconfigurer.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les <strong class=\"font-semibold text-foreground\">deux seules choses</strong> à rebrancher quand tu changes d'agent, ce sont <strong class=\"font-semibold text-foreground\">tes MCP</strong> et <strong class=\"font-semibold text-foreground\">tes skills</strong>. Pourquoi ? Parce que chaque outil a sa propre convention pour ranger ces deux-là. Tout le reste marche pareil dès que tu ouvres le bon dossier.</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">À rebrancher #1</div><div class=\"text-base font-bold text-blue-900 mb-2\">Tes MCP (les outils)</div><p class=\"text-sm text-blue-900/80\">Tu demandes à ton IA de reprendre ta config MCP existante (Claude / OpenCode) et de la transvaser dans Codex. Tu ne touches à rien à la main.</p></div><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">À rebrancher #2</div><div class=\"text-base font-bold text-emerald-900 mb-2\">Tes skills (les commandes)</div><p class=\"text-sm text-emerald-900/80\">Codex ne lit les skills qu'à un seul endroit. Tu demandes à ton IA de créer un symlink vers ton vrai dossier de skills, et c'est réglé.</p></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le reste de cette leçon, c'est juste ça : te connecter avec ton abonnement, puis rebrancher ces deux choses en laissant l'IA faire le travail.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-se-connecter-avec-ton-abonnement-chatgpt\">Étape 1 : Se connecter avec ton abonnement ChatGPT</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le gros intérêt de Codex : tu te connectes avec <strong class=\"font-semibold text-foreground\">ton compte ChatGPT</strong> (login), pas avec une clé API facturée au token.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Au premier lancement, tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">codex</code>, puis choisis <strong class=\"font-semibold text-foreground\">Sign in with ChatGPT</strong>. Ton navigateur s'ouvre, tu autorises, c'est réglé. Codex tourne alors dans le cadre de ton abonnement Plus / Pro / Business, <strong class=\"font-semibold text-foreground\">sans surcoût au token</strong>.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pourquoi ça compte :</strong> l'autre méthode, c'est une clé API OpenAI facturée à chaque token consommé, et ça chiffre vite. Avec le login ChatGPT, tu réutilises l'abonnement que tu paies déjà. Pour le détail abonnement vs API, voir <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../01-anatomie/lessons/2-semaine-1-structure-couts/semaine-1-structure-couts.html\">Structure des coûts →</a>.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-installer-et-lancer-codex-dans-ton-coffre\">Étape 2 : Installer et lancer Codex dans ton coffre</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Codex CLI s'installe en une commande :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># macOS / Linux (installeur officiel)\ncurl -fsSL https://chatgpt.com/codex/install.sh | sh\n\n# ou via npm (multi-plateforme)\nnpm install -g @openai/codex\n\n# ou via Homebrew (macOS)\nbrew install --cask codex\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur Windows :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-powershell\">powershell -ExecutionPolicy ByPass -c \"irm https://chatgpt.com/codex/install.ps1 | iex\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ensuite tu ouvres Codex <strong class=\"font-semibold text-foreground\">dans le dossier où tu veux travailler</strong> (c'est le principe le plus important : l'IA voit ce qui est dans le dossier où tu la lances) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Va dans ton Workspace racine, puis lance Codex\ncd ~/Documents/WORKSPACE &amp;&amp; codex\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Codex lit l'<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> à la racine (son fichier d'instructions natif) et a accès à tout ton coffre.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce :</strong> crée un alias <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cox</code> dans ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.zshrc</code> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">alias cox=\"cd ~/Documents/WORKSPACE &amp;&amp; codex\"</code>. Tu tapes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cox</code> de n'importe où, tu atterris dans ton coffre avec Codex lancé.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-rebrancher-tes-mcp-laisse-ton-ia-le-faire\">Étape 3 : Rebrancher tes MCP (laisse ton IA le faire)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as déjà tes MCP configurés dans Claude Code ou OpenCode. Pas besoin de tout refaire à la main : <strong class=\"font-semibold text-foreground\">demande à ton IA de les transvaser dans Codex.</strong> Colle-lui ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-text\">J'utilise déjà des MCP dans Claude Code et/ou OpenCode. Reprends ma\nconfiguration MCP existante et transvase-la dans Codex, dans mon fichier\n~/.codex/config.toml au niveau user (global), pour que ces MCP soient\nactifs dans tous mes projets. Vérifie ensuite avec \"codex mcp list\".\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA regarde ta config existante, la traduit au format de Codex, et c'est fonctionnel.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Où c'est rangé ?</strong> Codex stocke ses MCP dans un fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">config.toml</code>, à deux niveaux possibles :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.codex/config.toml</code></strong> (niveau ordinateur, <strong class=\"font-semibold text-foreground\">recommandé</strong>) : tes MCP sont dispos dans toutes tes sessions, quel que soit le dossier.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.codex/config.toml</code></strong> dans un projet : des MCP actifs <strong class=\"font-semibold text-foreground\">uniquement</strong> pour ce projet (pratique pour séparer un MCP pro d'un MCP perso).</li>\n</ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'app Codex a aussi un onglet <strong class=\"font-semibold text-foreground\">Plug-ins</strong> où tu peux voir et ajouter des MCP à la main. Mais le plus rapide reste de laisser l'IA s'auto-configurer : elle sait le faire, autant ne pas perdre de temps avec ça.</p>\n</blockquote>\n<div class=\"my-6 rounded-xl border border-border/60 bg-muted/30 overflow-hidden\"><button type=\"button\" class=\"flex items-center gap-3 w-full cursor-pointer px-5 py-4 text-left text-base font-semibold text-foreground hover:bg-muted/50 transition-colors\"><svg class=\"w-4 h-4 shrink-0 text-muted-foreground transition-transform duration-200 \" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z\"></path></svg>Le faire à la main (optionnel)</button></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-rebrancher-tes-skills-un-simple-symlink\">Étape 4 : Rebrancher tes skills (un simple symlink)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Petit piège à comprendre. Dans OpenCode, tu peux ranger tes skills <strong class=\"font-semibold text-foreground\">où tu veux</strong> : le fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> déclare le chemin, et l'IA va les chercher là. C'est parfait, tu synchronises tes skills comme tu veux.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Codex, lui (comme Claude Code et ChatGPT), ne fonctionne pas comme ça : il ne regarde les skills qu'à <strong class=\"font-semibold text-foreground\">un seul endroit imposé</strong>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.agents/skills</code>. Si tes skills sont ailleurs (dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills</code>, la convention du bootcamp), Codex ne les voit pas.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La solution, c'est la même que pour Claude Code : un <strong class=\"font-semibold text-foreground\">symlink</strong> (un lien miroir) entre <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.agents/skills</code> et ton vrai dossier de skills. Fais-le faire par ton IA, colle-lui ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-text\">Crée un symlink pour que Codex voie mes skills. Mes skills sont dans\n\"Second Cerveau/4 TOOLS/skills\" à la racine de mon Workspace. Crée un lien\nsymbolique \".agents/skills\" qui pointe vers ce dossier (au niveau du\nWorkspace, ou dans ~/.agents/skills si tu veux qu'ils soient dispos dans\nTOUS mes projets). Vérifie ensuite que le lien pointe au bon endroit.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois le symlink créé, Codex croit qu'il y a des skills rangés dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.agents/skills</code>, alors qu'en réalité ils vivent dans ton coffre. Tu tapes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/skills</code> (ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">$</code> pour mentionner un skill par son nom) dans Codex, tu vois ta liste.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La philosophie du bootcamp :</strong> évite de ranger tes skills <strong class=\"font-semibold text-foreground\">directement</strong> dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.agents/skills</code>. Sinon ils restent coincés dans Codex / ChatGPT. Mieux vaut qu'ils restent <strong class=\"font-semibold text-foreground\">transverses</strong>, dans ton second cerveau, dispos pour n'importe quel agent via le symlink. Ton système reste souverain, pas prisonnier d'un outil.</p>\n</blockquote>\n<div class=\"my-6 rounded-xl border border-border/60 bg-muted/30 overflow-hidden\"><button type=\"button\" class=\"flex items-center gap-3 w-full cursor-pointer px-5 py-4 text-left text-base font-semibold text-foreground hover:bg-muted/50 transition-colors\"><svg class=\"w-4 h-4 shrink-0 text-muted-foreground transition-transform duration-200 \" viewBox=\"0 0 16 16\" fill=\"currentColor\"><path d=\"M6.22 3.22a.75.75 0 0 1 1.06 0l4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 0 1 0-1.06Z\"></path></svg>Le faire à la main (Mac/Linux + Windows)</button></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"récap\">Récap</h2>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-blue-400\">1.</div><div class=\"text-sm font-bold text-blue-700\">Installer Codex</div><div class=\"text-xs text-blue-500\"><code>npm install -g @openai/codex</code> (ou Homebrew / installeur)</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-teal-200 bg-teal-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-teal-400\">2.</div><div class=\"text-sm font-bold text-teal-700\">Se connecter avec ChatGPT</div><div class=\"text-xs text-teal-500\"><strong>Sign in with ChatGPT</strong>, jamais une clé API</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-violet-200 bg-violet-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-violet-400\">3.</div><div class=\"text-sm font-bold text-violet-700\">Rebrancher les MCP</div><div class=\"text-xs text-violet-500\">Demander à l'IA de transvaser ta config dans Codex</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-purple-200 bg-purple-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-purple-400\">4.</div><div class=\"text-sm font-bold text-purple-700\">Rebrancher les skills</div><div class=\"text-xs text-purple-500\">Demander à l'IA le symlink <code>.agents/skills</code></div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-emerald-400\">5.</div><div class=\"text-sm font-bold text-emerald-700\">Ouvrir Codex dans le Workspace</div><div class=\"text-xs text-emerald-500\"><code>cd ~/Documents/WORKSPACE &amp;&amp; codex</code></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Retiens le principe : <strong class=\"font-semibold text-foreground\">quel que soit l'agent</strong> vers lequel tu vas (Claude Code, Codex, un autre), les deux seules choses à rebrancher sont <strong class=\"font-semibold text-foreground\">les MCP et les skills</strong>. Chacun a ses conventions pour ces deux-là. Le reste, tu ouvres dans le bon dossier et ça fonctionne.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais quand utiliser Codex (abonnement ChatGPT + boucle agentique GPT dans mon terminal) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais quand utiliser Codex (abonnement ChatGPT + boucle agentique GPT dans mon terminal)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Codex CLI installé (npm install -g @openai/codex, Homebrew, ou l'installeur officiel) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Codex CLI installé (npm install -g @openai/codex, Homebrew, ou l'installeur officiel)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je me connecte avec Sign in with ChatGPT (mon abonnement, pas une clé API facturée au token) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je me connecte avec Sign in with ChatGPT (mon abonnement, pas une clé API facturée au token)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mes MCP rebranchés : config transvasée par l'IA dans ~/.codex/config.toml — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mes MCP rebranchés : config transvasée par l'IA dans ~/.codex/config.toml</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mes skills rebranchés : symlink .agents/skills → Second Cerveau/4 TOOLS/skills — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mes skills rebranchés : symlink .agents/skills → Second Cerveau/4 TOOLS/skills</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Codex lancé depuis mon Workspace : je vois mes skills via /skills ou $ — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Codex lancé depuis mon Workspace : je vois mes skills via /skills ou $</span></li></ul>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sources\">Sources</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><a href=\"https://developers.openai.com/codex/cli\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Codex CLI (installation + connexion ChatGPT)</a></li>\n<li class=\"leading-7\"><a href=\"https://developers.openai.com/codex/mcp\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Connecter Codex à des outils via MCP</a></li>\n<li class=\"leading-7\"><a href=\"https://developers.openai.com/codex/skills\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Créer et connecter des skills à Codex</a></li>\n<li class=\"leading-7\"><a href=\"https://developers.openai.com/codex/config-basic\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Configuration de base (config.toml)</a></li>\n<li class=\"leading-7\"><a href=\"https://github.com/openai/codex\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Dépôt open source Codex (openai/codex)</a></li>\n</ul>",
      "content_markdown": "> Cette leçon s'adresse aux utilisateurs de Codex. OpenCode Desktop reste la stack recommandée par défaut dans ce bootcamp. Mais si tu as un abonnement ChatGPT Plus ou Pro et que tu veux la boucle agentique d'OpenAI dans ton terminal, Codex (l'agent CLI de ChatGPT) s'installe proprement à côté de ton coffre. Cette leçon te montre comment, en te reposant au maximum sur ton IA.\n\n## Utiliser Codex dans son coffre\n\nUtiliser Codex avec ton système\n\nLa méthode rapide : rien ne change, tu rebranches juste tes MCP et tes skills, et tu laisses ton IA faire le travail.\n\n### L'idée en une phrase\n\nBonne nouvelle : **presque rien ne change.** Le jour où tu passes d'OpenCode à Codex (ou à Claude Code, ou à un autre agent), tu ouvres l'agent dans ton dossier et tout ton contexte est déjà là : ton `AGENTS.md`, tes notes, tes projets. Tu n'as pas à tout reconfigurer.\n\nLes **deux seules choses** à rebrancher quand tu changes d'agent, ce sont **tes MCP** et **tes skills**. Pourquoi ? Parce que chaque outil a sa propre convention pour ranger ces deux-là. Tout le reste marche pareil dès que tu ouvres le bon dossier.\n\nÀ rebrancher #1\n\nTes MCP (les outils)\n\nTu demandes à ton IA de reprendre ta config MCP existante (Claude / OpenCode) et de la transvaser dans Codex. Tu ne touches à rien à la main.\n\nÀ rebrancher #2\n\nTes skills (les commandes)\n\nCodex ne lit les skills qu'à un seul endroit. Tu demandes à ton IA de créer un symlink vers ton vrai dossier de skills, et c'est réglé.\n\nLe reste de cette leçon, c'est juste ça : te connecter avec ton abonnement, puis rebrancher ces deux choses en laissant l'IA faire le travail.\n\n---\n\n## Étape 1 : Se connecter avec ton abonnement ChatGPT\n\nC'est le gros intérêt de Codex : tu te connectes avec **ton compte ChatGPT** (login), pas avec une clé API facturée au token.\n\nAu premier lancement, tape `codex`, puis choisis **Sign in with ChatGPT**. Ton navigateur s'ouvre, tu autorises, c'est réglé. Codex tourne alors dans le cadre de ton abonnement Plus / Pro / Business, **sans surcoût au token**.\n\n> Pourquoi ça compte : l'autre méthode, c'est une clé API OpenAI facturée à chaque token consommé, et ça chiffre vite. Avec le login ChatGPT, tu réutilises l'abonnement que tu paies déjà. Pour le détail abonnement vs API, voir Structure des coûts →.\n\n---\n\n## Étape 2 : Installer et lancer Codex dans ton coffre\n\nCodex CLI s'installe en une commande :\n\n```\n# macOS / Linux (installeur officiel)\ncurl -fsSL https://chatgpt.com/codex/install.sh | sh\n\n# ou via npm (multi-plateforme)\nnpm install -g @openai/codex\n\n# ou via Homebrew (macOS)\nbrew install --cask codex\n```\n\nSur Windows :\n\n```\npowershell -ExecutionPolicy ByPass -c \"irm https://chatgpt.com/codex/install.ps1 | iex\"\n```\n\nEnsuite tu ouvres Codex **dans le dossier où tu veux travailler** (c'est le principe le plus important : l'IA voit ce qui est dans le dossier où tu la lances) :\n\n```\n# Va dans ton Workspace racine, puis lance Codex\ncd ~/Documents/WORKSPACE && codex\n```\n\nCodex lit l'`AGENTS.md` à la racine (son fichier d'instructions natif) et a accès à tout ton coffre.\n\n> Astuce : crée un alias cox dans ton .zshrc : alias cox=\"cd ~/Documents/WORKSPACE && codex\". Tu tapes cox de n'importe où, tu atterris dans ton coffre avec Codex lancé.\n\n---\n\n## Étape 3 : Rebrancher tes MCP (laisse ton IA le faire)\n\nTu as déjà tes MCP configurés dans Claude Code ou OpenCode. Pas besoin de tout refaire à la main : **demande à ton IA de les transvaser dans Codex.** Colle-lui ce prompt :\n\n```\nJ'utilise déjà des MCP dans Claude Code et/ou OpenCode. Reprends ma\nconfiguration MCP existante et transvase-la dans Codex, dans mon fichier\n~/.codex/config.toml au niveau user (global), pour que ces MCP soient\nactifs dans tous mes projets. Vérifie ensuite avec \"codex mcp list\".\n```\n\nL'IA regarde ta config existante, la traduit au format de Codex, et c'est fonctionnel.\n\n**Où c'est rangé ?** Codex stocke ses MCP dans un fichier `config.toml`, à deux niveaux possibles :\n\n- **`~/.codex/config.toml`** (niveau ordinateur, **recommandé**) : tes MCP sont dispos dans toutes tes sessions, quel que soit le dossier.\n- **`.codex/config.toml`** dans un projet : des MCP actifs **uniquement** pour ce projet (pratique pour séparer un MCP pro d'un MCP perso).\n\n> L'app Codex a aussi un onglet Plug-ins où tu peux voir et ajouter des MCP à la main. Mais le plus rapide reste de laisser l'IA s'auto-configurer : elle sait le faire, autant ne pas perdre de temps avec ça.\n\nLe faire à la main (optionnel)\n\n---\n\n## Étape 4 : Rebrancher tes skills (un simple symlink)\n\nPetit piège à comprendre. Dans OpenCode, tu peux ranger tes skills **où tu veux** : le fichier `opencode.json` déclare le chemin, et l'IA va les chercher là. C'est parfait, tu synchronises tes skills comme tu veux.\n\nCodex, lui (comme Claude Code et ChatGPT), ne fonctionne pas comme ça : il ne regarde les skills qu'à **un seul endroit imposé**, `.agents/skills`. Si tes skills sont ailleurs (dans `Second Cerveau/4 TOOLS/skills`, la convention du bootcamp), Codex ne les voit pas.\n\nLa solution, c'est la même que pour Claude Code : un **symlink** (un lien miroir) entre `.agents/skills` et ton vrai dossier de skills. Fais-le faire par ton IA, colle-lui ce prompt :\n\n```\nCrée un symlink pour que Codex voie mes skills. Mes skills sont dans\n\"Second Cerveau/4 TOOLS/skills\" à la racine de mon Workspace. Crée un lien\nsymbolique \".agents/skills\" qui pointe vers ce dossier (au niveau du\nWorkspace, ou dans ~/.agents/skills si tu veux qu'ils soient dispos dans\nTOUS mes projets). Vérifie ensuite que le lien pointe au bon endroit.\n```\n\nUne fois le symlink créé, Codex croit qu'il y a des skills rangés dans `.agents/skills`, alors qu'en réalité ils vivent dans ton coffre. Tu tapes `/skills` (ou `$` pour mentionner un skill par son nom) dans Codex, tu vois ta liste.\n\n> La philosophie du bootcamp : évite de ranger tes skills directement dans .agents/skills. Sinon ils restent coincés dans Codex / ChatGPT. Mieux vaut qu'ils restent transverses, dans ton second cerveau, dispos pour n'importe quel agent via le symlink. Ton système reste souverain, pas prisonnier d'un outil.\n\nLe faire à la main (Mac/Linux + Windows)\n\n---\n\n## Récap\n\n1.\n\nInstaller Codex\n\n`npm install -g @openai/codex` (ou Homebrew / installeur)\n\n2.\n\nSe connecter avec ChatGPT\n\n**Sign in with ChatGPT**, jamais une clé API\n\n3.\n\nRebrancher les MCP\n\nDemander à l'IA de transvaser ta config dans Codex\n\n4.\n\nRebrancher les skills\n\nDemander à l'IA le symlink `.agents/skills`\n\n5.\n\nOuvrir Codex dans le Workspace\n\n`cd ~/Documents/WORKSPACE && codex`\n\nRetiens le principe : **quel que soit l'agent** vers lequel tu vas (Claude Code, Codex, un autre), les deux seules choses à rebrancher sont **les MCP et les skills**. Chacun a ses conventions pour ces deux-là. Le reste, tu ouvres dans le bon dossier et ça fonctionne.\n\n---\n\n- Je sais quand utiliser Codex (abonnement ChatGPT + boucle agentique GPT dans mon terminal)\n- Codex CLI installé (npm install -g @openai/codex, Homebrew, ou l'installeur officiel)\n- Je me connecte avec Sign in with ChatGPT (mon abonnement, pas une clé API facturée au token)\n- Mes MCP rebranchés : config transvasée par l'IA dans ~/.codex/config.toml\n- Mes skills rebranchés : symlink .agents/skills → Second Cerveau/4 TOOLS/skills\n- Codex lancé depuis mon Workspace : je vois mes skills via /skills ou $\n\n## Sources\n\n- [Codex CLI (installation + connexion ChatGPT)](https://developers.openai.com/codex/cli)\n- [Connecter Codex à des outils via MCP](https://developers.openai.com/codex/mcp)\n- [Créer et connecter des skills à Codex](https://developers.openai.com/codex/skills)\n- [Configuration de base (config.toml)](https://developers.openai.com/codex/config-basic)\n- [Dépôt open source Codex (openai/codex)](https://github.com/openai/codex)",
      "assets": [],
      "links": [
        {
          "text": "Structure des coûts →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-structure-couts"
        },
        {
          "text": "Codex CLI (installation + connexion ChatGPT)",
          "url": "https://developers.openai.com/codex/cli"
        },
        {
          "text": "Connecter Codex à des outils via MCP",
          "url": "https://developers.openai.com/codex/mcp"
        },
        {
          "text": "Créer et connecter des skills à Codex",
          "url": "https://developers.openai.com/codex/skills"
        },
        {
          "text": "Configuration de base (config.toml)",
          "url": "https://developers.openai.com/codex/config-basic"
        },
        {
          "text": "Dépôt open source Codex (openai/codex)",
          "url": "https://github.com/openai/codex"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/d86c453a7cc744babac608030f79d34d",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Utiliser Codex avec ton système",
          "title_source": "iframe-title",
          "video_id": "d86c453a7cc744babac608030f79d34d",
          "watch_url": "https://www.loom.com/share/d86c453a7cc744babac608030f79d34d"
        }
      ],
      "captured_at": "2026-08-03T10:05:11.440Z",
      "counts": {
        "code_blocks": 31,
        "headings": 8,
        "iframes": 1,
        "images": 0,
        "links": 6,
        "text_chars": 7274
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "14-semaine-3-credentials",
      "order": 14,
      "kind": "subsection",
      "section": "03-installation",
      "title": "Gérer ses credentials proprement",
      "slug": "semaine-3-credentials",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-3-credentials",
      "summary": "Organiser et sécuriser tes API keys, tokens et mots de passe. Bitwarden, Vaultwarden, macOS Keychain, bonnes pratiques .env.",
      "objective": "Séparer l'inventaire des comptes (Infrastructure.md) du coffre des secrets (password manager).",
      "expected_output": "Infrastructure.md à jour, password manager choisi, API keys migrées, .env dans .gitignore.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-problème-des-secrets-plus-petit-quon-ne-croit\">Le problème des secrets (plus petit qu'on ne croit)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu accumules des API keys, des tokens, des mots de passe. Anthropic, OpenAI, Telegram, Cloudron, NocoDB, PocketBase... Au début tu les mets dans un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code>, puis dans une note, puis dans un message Telegram \"pour ne pas oublier\".</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avant de sortir l'artillerie lourde, dédramatisons. La dernière promo a perdu un temps fou à installer et configurer Bitwarden. Dans la grande majorité des cas, tu n'en as pas besoin.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le vrai risque, ce n'est pas d'avoir une clé en clair dans un fichier. C'est qu'elle <strong class=\"font-semibold text-foreground\">fuite vers l'extérieur</strong>. Tant que tes secrets restent dans ton coffre chiffré de bout en bout (Obsidian Sync) et sur ton disque, tu es tranquille.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les patterns de fuite qui comptent vraiment :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> commité sur un repo git <strong class=\"font-semibold text-foreground\">public</strong></li>\n<li class=\"leading-7\">Une clé collée dans un <strong class=\"font-semibold text-foreground\">chat public</strong> (session ChatGPT partagée, Discord, forum)</li>\n<li class=\"leading-7\">Un secret affiché par l'IA dans une réponse que tu partages ensuite publiquement</li>\n<li class=\"leading-7\">Un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> envoyé en copier-coller par email ou messagerie non chiffrée</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ce qui n'est PAS un drame : une clé en clair dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> ou une note, <strong class=\"font-semibold text-foreground\">tant que ton coffre est chiffré E2E via Obsidian Sync</strong>. C'est le cas par défaut si tu as suivi le bootcamp.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-hiérarchie-recommandée\">La hiérarchie recommandée</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La règle fondamentale : <strong class=\"font-semibold text-foreground\">séparer l'inventaire du coffre</strong>. L'inventaire dit <em>ce qui existe</em>. Le coffre contient <em>les valeurs secrètes</em>.</p>\n<div class=\"my-8 flex flex-col items-center gap-4\"><div class=\"w-full max-w-2xl grid grid-cols-1 gap-3\"><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 px-5 py-4 flex items-start gap-4\"><div class=\"text-2xl mt-1\">1</div><div><div class=\"text-sm font-bold text-sky-700\">Inventaire des comptes</div><div class=\"text-xs text-sky-500 mt-1\">Quel service, quel email, quel usage</div><div class=\"text-xs text-sky-400 mt-1\">→ Note markdown (<code>Infrastructure.md</code>)</div></div></div><div class=\"rounded-xl border-2 border-red-200 bg-red-50 px-5 py-4 flex items-start gap-4\"><div class=\"text-2xl mt-1\">2</div><div><div class=\"text-sm font-bold text-red-700\">API keys / tokens / mots de passe (les VALEURS)</div><div class=\"text-xs text-red-500 mt-1\">Les secrets eux-mêmes</div><div class=\"text-xs text-red-400 mt-1\">→ En clair dans ton coffre Obsidian (chiffré E2E), ou password manager si tu veux</div></div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-4 flex items-start gap-4\"><div class=\"text-2xl mt-1\">3</div><div><div class=\"text-sm font-bold text-emerald-700\">Variables de dev local</div><div class=\"text-xs text-emerald-500 mt-1\">Fichiers <code>.env</code> avec les valeurs, dans un projet non public</div><div class=\"text-xs text-emerald-400 mt-1\">→ En clair si ton coffre est chiffré E2E, ou référence au password manager</div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">En résumé : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Infrastructure.md</code> dit \"j'ai un compte Anthropic à tel email\", sans jamais contenir la valeur. La clé API, elle, vit soit en clair dans ton coffre Obsidian chiffré E2E (le plus simple), soit dans un password manager si tu veux un cran de plus. L'important : elle n'est jamais exposée dans un espace public.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-niveaux-de-setup\">Les niveaux de setup</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Choisis selon ta situation. Pour la majorité des participants, le <strong class=\"font-semibold text-foreground\">niveau 0 suffit largement</strong>. Les niveaux suivants sont optionnels, pour ceux qui veulent un cran de plus ou qui gèrent des données client très sensibles.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"niveau-0-clés-en-clair-dans-ton-coffre-chiffré-e2e-recommand\">Niveau 0 : Clés en clair dans ton coffre chiffré E2E (recommandé par défaut)</h3>\n<div class=\"my-8 rounded-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-5 max-w-lg mx-auto\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-2\">Niveau 0 : Le plus simple, recommandé</div><div class=\"text-base font-bold text-emerald-700 mb-3\">Coffre Obsidian Sync (chiffré E2E)</div><div class=\"text-xs text-emerald-500 space-y-2\"><div>Zéro installation, zéro CLI à brancher</div><div>Tes clés en clair dans <code>.env</code>, <code>opencode.json</code> ou une note</div><div>Chiffrement de bout en bout géré par Obsidian Sync</div><div>Ton IA accède aux clés directement quand elle en a besoin</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le setup que <strong class=\"font-semibold text-foreground\">j'utilise personnellement</strong>. Je n'utilise pas Bitwarden. Mon coffre est synchronisé avec Obsidian Sync, donc chiffré de bout en bout, et mes clés vivent en clair dedans. Rien ne fuite tant que je ne pousse pas ça sur un repo public ou dans un chat public.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les 2 garde-fous : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.gitignore</code>, et jamais de clé dans un espace public. C'est tout.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"niveau-1-bitwarden-optionnel-pour-centraliser\">Niveau 1 : Bitwarden (optionnel, pour centraliser)</h3>\n<div class=\"my-8 rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-5 max-w-lg mx-auto\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-400 mb-2\">Niveau 1 : Optionnel, centraliser tes secrets</div><div class=\"text-base font-bold text-blue-700 mb-3\">Bitwarden</div><div class=\"text-xs text-blue-500 space-y-2\"><div>Gratuit, cloud, chiffré de bout en bout</div><div>Extension navigateur + app mobile</div><div>CLI disponible (<code>bw</code>) pour les scripts</div><div>MCP server officiel disponible</div><div>Setup en 10 minutes</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Setup :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Crée un compte sur <a href=\"https://bitwarden.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">bitwarden.com</a> (gratuit)</li>\n<li class=\"leading-7\">Installe l'extension navigateur</li>\n<li class=\"leading-7\">Pour chaque API key, crée une entrée dans Bitwarden avec le nom du service et la valeur</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour les plus techniques</strong> — Bitwarden a un CLI (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">bw</code>) et un <a href=\"https://github.com/bitwarden/mcp-server\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">MCP server officiel</a> qui permet à ton IA de récupérer des secrets de manière sécurisée :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Installer le CLI Bitwarden\nnpm install -g @bitwarden/cli\n\n# Se connecter\nbw login\n\n# Récupérer un secret\nbw get item \"Anthropic API Key\" | jq -r '.login.password'\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"niveau-2-macos-keychain-mac-users\">Niveau 2 : macOS Keychain (Mac users)</h3>\n<div class=\"my-8 rounded-xl border-2 border-purple-200 bg-purple-50 px-6 py-5 max-w-lg mx-auto\"><div class=\"text-xs font-semibold uppercase tracking-wider text-purple-400 mb-2\">Niveau 2 : Pour les utilisateurs Mac</div><div class=\"text-base font-bold text-purple-700 mb-3\">macOS Keychain</div><div class=\"text-xs text-purple-500 space-y-2\"><div>Déjà installé sur chaque Mac, zéro config</div><div>Commande <code>security</code> en terminal</div><div>Chiffré par le Secure Enclave du Mac</div><div>Gratuit, local, pas de cloud</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Stocker un secret :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Ajouter une API key au Keychain\nsecurity add-generic-password \\\n  -a \"mon-compte\" \\\n  -s \"ANTHROPIC_API_KEY\" \\\n  -w \"sk-ant-api03-xxxxx\" \\\n  -T \"\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Récupérer un secret :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Lire la valeur\nsecurity find-generic-password \\\n  -s \"ANTHROPIC_API_KEY\" \\\n  -w\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Utiliser dans un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> :</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Script qui génère le .env à partir du Keychain\necho \"ANTHROPIC_API_KEY=$(security find-generic-password -s ANTHROPIC_API_KEY -w)\" &gt; .env\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'avantage : rien ne quitte ta machine. L'inconvénient : c'est local — si tu as un serveur distant, les secrets ne sont pas synchronisés.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"niveau-3-vaultwarden-auto-hébergé\">Niveau 3 : Vaultwarden (auto-hébergé)</h3>\n<div class=\"my-8 rounded-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-5 max-w-lg mx-auto\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-2\">Niveau 3 : Pour les self-hosters</div><div class=\"text-base font-bold text-emerald-700 mb-3\">Vaultwarden</div><div class=\"text-xs text-emerald-500 space-y-2\"><div>Réimplémentation légère de Bitwarden, auto-hébergée</div><div>Installable via Cloudron (1 clic)</div><div>Tes données restent sur TON serveur</div><div>Compatible avec tous les clients Bitwarden</div><div>MCP server Bitwarden compatible</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as déjà un serveur Cloudron (semaine 3), Vaultwarden est disponible dans l'App Store Cloudron en un clic. Sinon, voici le docker-compose :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-yaml\">services:\n  vaultwarden:\n    image: vaultwarden/server:latest\n    container_name: vaultwarden\n    restart: unless-stopped\n    ports:\n      - \"8080:80\"\n    volumes:\n      - vaultwarden-data:/data\n    environment:\n      DOMAIN: \"https://vault.ton-domaine.com\"\n\nvolumes:\n  vaultwarden-data:\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois lancé, tu accèdes à l'interface web sur <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">https://vault.ton-domaine.com</code>, tu crées ton compte, et tu utilises les <strong class=\"font-semibold text-foreground\">mêmes clients Bitwarden</strong> (extension navigateur, app mobile, CLI) — ils sont compatibles.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comparatif\">Comparatif</h3>\n<div class=\"my-8 rounded-xl border border-zinc-200 overflow-hidden max-w-2xl mx-auto\"><div class=\"grid grid-cols-1 divide-y divide-zinc-200\"><div class=\"grid grid-cols-4 bg-zinc-100 px-4 py-2 text-xs font-semibold text-zinc-500 uppercase tracking-wide\"><div></div><div>Bitwarden</div><div>Keychain</div><div>Vaultwarden</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs\"><div class=\"text-zinc-600 font-medium\">Prix</div><div class=\"text-emerald-600\">Gratuit</div><div class=\"text-emerald-600\">Gratuit</div><div class=\"text-emerald-600\">Gratuit</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs bg-zinc-50\"><div class=\"text-zinc-600 font-medium\">Hébergement</div><div class=\"text-zinc-500\">Cloud Bitwarden</div><div class=\"text-zinc-500\">Local (Mac)</div><div class=\"text-zinc-500\">Ton serveur</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs\"><div class=\"text-zinc-600 font-medium\">Multi-device</div><div class=\"text-emerald-600\">Oui</div><div class=\"text-red-400\">Mac seulement</div><div class=\"text-emerald-600\">Oui</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs bg-zinc-50\"><div class=\"text-zinc-600 font-medium\">CLI</div><div class=\"text-emerald-600\">bw</div><div class=\"text-emerald-600\">security</div><div class=\"text-emerald-600\">bw</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs\"><div class=\"text-zinc-600 font-medium\">MCP</div><div class=\"text-emerald-600\">Officiel</div><div class=\"text-red-400\">Non</div><div class=\"text-emerald-600\">Compatible</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs bg-zinc-50\"><div class=\"text-zinc-600 font-medium\">Souveraineté</div><div class=\"text-amber-500\">Moyen</div><div class=\"text-emerald-600\">Total</div><div class=\"text-emerald-600\">Total</div></div><div class=\"grid grid-cols-4 px-4 py-2 text-xs\"><div class=\"text-zinc-600 font-medium\">Difficulté</div><div class=\"text-emerald-600\">Facile</div><div class=\"text-emerald-600\">Facile</div><div class=\"text-amber-500\">Moyen</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ma recommandation :</strong> reste au niveau 0. Des clés en clair dans un coffre chiffré E2E (Obsidian Sync) couvrent l'immense majorité des besoins, et c'est ce que j'utilise moi-même. Si un jour tu gères des données client très sensibles ou tu veux centraliser proprement, Bitwarden (niveau 1) est le meilleur point de départ, et la migration vers Vaultwarden reste transparente (mêmes clients, mêmes données).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-fichier-infrastructuremd\">Le fichier Infrastructure.md</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ton <strong class=\"font-semibold text-foreground\">registre</strong> — l'inventaire de tout ce qui tourne, sans les valeurs secrètes. Il vit dans ton vault Obsidian (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">4 TOOLS/Infrastructure.md</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">2 CASQUETTES/[ta casquette tech]/Infrastructure.md</code>).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"structure-recommandée\">Structure recommandée</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-markdown\"># Infrastructure\n\n## Serveurs\n| Service | URL | Usage |\n|---------|-----|-------|\n| Serveur principal | 65.xxx.xxx.xx | Cloudron, apps |\n| Cloudron | https://my.domaine.com | Panel admin |\n\n## APIs &amp; Services\n| Service | Email du compte | Usage | Secret dans |\n|---------|----------------|-------|-------------|\n| Anthropic | mon@email.com | Claude API | Coffre .env (E2E) |\n| OpenAI | mon@email.com | Whisper, GPT | Coffre .env (E2E) |\n| Telegram Bot | - | Bot IA perso | Bitwarden |\n\n## Bases de données\n| Service | URL | Usage |\n|---------|-----|-------|\n| NocoDB | https://nocodb.domaine.com | Données clients |\n| PocketBase | https://backend.domaine.com | Auth plateforme |\n\n## Domaines\n| Domaine | Registrar | Usage |\n|---------|-----------|-------|\n| mon-domaine.com | OVH | Site principal |\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce qui est dans ce fichier :</strong> les noms, les URLs, les emails de compte, les usages. L'IA peut lire ce fichier pour savoir quels services existent.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce qui n'est PAS dans ce fichier :</strong> les API keys, les tokens, les mots de passe. Jamais. La colonne \"Secret dans\" indique <em>où</em> trouver la valeur (ton coffre <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code>, Bitwarden, Keychain...), pas la valeur elle-même.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"bonnes-pratiques-env\">Bonnes pratiques <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code></h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"règle-1-env-dans-gitignore\">Règle 1 : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.gitignore</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Toujours. Sans exception. Vérifie maintenant :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Vérifier que .env est ignoré\ncat .gitignore | grep -i env\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si ce n'est pas le cas, ajoute :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code># Secrets\n.env\n.env.local\n.env.*.local\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"règle-2-créer-un-envexample\">Règle 2 : Créer un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env.example</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env.example</code> contient les <strong class=\"font-semibold text-foreground\">noms</strong> des variables sans les valeurs. Il est commité sur git — c'est la documentation de quelles variables sont nécessaires :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># .env.example — les noms sans les valeurs\nANTHROPIC_API_KEY=\nOPENAI_API_KEY=\nTELEGRAM_BOT_TOKEN=\nNOCODB_URL=\nNOCODB_TOKEN=\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu installes le projet sur une nouvelle machine, tu copies <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env.example</code> vers <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> et tu remplis les valeurs.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"règle-3-ne-jamais-commiter-un-env\">Règle 3 : Ne jamais commiter un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as déjà commité un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> par erreur :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Retirer le fichier du tracking git (sans le supprimer)\ngit rm --cached .env\ngit commit -m \"remove .env from tracking\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Attention :</strong> si le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> a été poussé sur un remote <strong class=\"font-semibold text-foreground\">public</strong> (GitHub, GitLab), les secrets sont compromis. Change toutes les clés API qui étaient dedans. Sur un remote privé ou chiffré le risque est bien plus faible, mais par précaution, change-les quand même.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pattern-avancé-optionnel-références-au-password-manager\">Pattern avancé (optionnel) : références au password manager</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Uniquement si tu utilises un password manager (niveau 1 ou 3). Au lieu de laisser les valeurs en clair dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code>, tu peux les injecter depuis le coffre au moment voulu :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Script setup-env.sh — génère le .env depuis Bitwarden\n#!/bin/bash\nbw unlock --check || bw unlock\n\necho \"ANTHROPIC_API_KEY=$(bw get password 'Anthropic API Key')\" &gt; .env\necho \"TELEGRAM_BOT_TOKEN=$(bw get password 'Telegram Bot')\" &gt;&gt; .env\necho \"NOCODB_TOKEN=$(bw get password 'NocoDB Token')\" &gt;&gt; .env\n\necho \"✓ .env généré depuis Bitwarden\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">./setup-env.sh</code> une fois, et ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> est rempli. Le script peut être commité (il ne contient aucun secret), le <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.env</code> généré ne l'est jamais.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé ou mis à jour mon fichier Infrastructure.md (sans valeurs secrètes) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé ou mis à jour mon fichier Infrastructure.md (sans valeurs secrètes)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi mon niveau de setup (clés en clair dans coffre E2E par défaut, password manager si besoin) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi mon niveau de setup (clés en clair dans coffre E2E par défaut, password manager si besoin)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync) ou un password manager, jamais dans un espace public — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync) ou un password manager, jamais dans un espace public</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mes fichiers .env sont dans .gitignore — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mes fichiers .env sont dans .gitignore</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai un .env.example avec les noms des variables (sans valeurs) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai un .env.example avec les noms des variables (sans valeurs)</span></li></ul>",
      "content_markdown": "## Le problème des secrets (plus petit qu'on ne croit)\n\nTu accumules des API keys, des tokens, des mots de passe. Anthropic, OpenAI, Telegram, Cloudron, NocoDB, PocketBase... Au début tu les mets dans un `.env`, puis dans une note, puis dans un message Telegram \"pour ne pas oublier\".\n\nAvant de sortir l'artillerie lourde, dédramatisons. La dernière promo a perdu un temps fou à installer et configurer Bitwarden. Dans la grande majorité des cas, tu n'en as pas besoin.\n\nLe vrai risque, ce n'est pas d'avoir une clé en clair dans un fichier. C'est qu'elle **fuite vers l'extérieur**. Tant que tes secrets restent dans ton coffre chiffré de bout en bout (Obsidian Sync) et sur ton disque, tu es tranquille.\n\nLes patterns de fuite qui comptent vraiment :\n\n1. Un `.env` commité sur un repo git **public**\n2. Une clé collée dans un **chat public** (session ChatGPT partagée, Discord, forum)\n3. Un secret affiché par l'IA dans une réponse que tu partages ensuite publiquement\n4. Un `.env` envoyé en copier-coller par email ou messagerie non chiffrée\n\nCe qui n'est PAS un drame : une clé en clair dans `.env`, `opencode.json` ou une note, **tant que ton coffre est chiffré E2E via Obsidian Sync**. C'est le cas par défaut si tu as suivi le bootcamp.\n\n---\n\n## La hiérarchie recommandée\n\nLa règle fondamentale : **séparer l'inventaire du coffre**. L'inventaire dit *ce qui existe*. Le coffre contient *les valeurs secrètes*.\n\n1\n\nInventaire des comptes\n\nQuel service, quel email, quel usage\n\n→ Note markdown (`Infrastructure.md`)\n\n2\n\nAPI keys / tokens / mots de passe (les VALEURS)\n\nLes secrets eux-mêmes\n\n→ En clair dans ton coffre Obsidian (chiffré E2E), ou password manager si tu veux\n\n3\n\nVariables de dev local\n\nFichiers `.env` avec les valeurs, dans un projet non public\n\n→ En clair si ton coffre est chiffré E2E, ou référence au password manager\n\nEn résumé : `Infrastructure.md` dit \"j'ai un compte Anthropic à tel email\", sans jamais contenir la valeur. La clé API, elle, vit soit en clair dans ton coffre Obsidian chiffré E2E (le plus simple), soit dans un password manager si tu veux un cran de plus. L'important : elle n'est jamais exposée dans un espace public.\n\n---\n\n## Les niveaux de setup\n\nChoisis selon ta situation. Pour la majorité des participants, le **niveau 0 suffit largement**. Les niveaux suivants sont optionnels, pour ceux qui veulent un cran de plus ou qui gèrent des données client très sensibles.\n\n### Niveau 0 : Clés en clair dans ton coffre chiffré E2E (recommandé par défaut)\n\nNiveau 0 : Le plus simple, recommandé\n\nCoffre Obsidian Sync (chiffré E2E)\n\nZéro installation, zéro CLI à brancher\n\nTes clés en clair dans `.env`, `opencode.json` ou une note\n\nChiffrement de bout en bout géré par Obsidian Sync\n\nTon IA accède aux clés directement quand elle en a besoin\n\nC'est le setup que **j'utilise personnellement**. Je n'utilise pas Bitwarden. Mon coffre est synchronisé avec Obsidian Sync, donc chiffré de bout en bout, et mes clés vivent en clair dedans. Rien ne fuite tant que je ne pousse pas ça sur un repo public ou dans un chat public.\n\nLes 2 garde-fous : `.env` dans `.gitignore`, et jamais de clé dans un espace public. C'est tout.\n\n### Niveau 1 : Bitwarden (optionnel, pour centraliser)\n\nNiveau 1 : Optionnel, centraliser tes secrets\n\nBitwarden\n\nGratuit, cloud, chiffré de bout en bout\n\nExtension navigateur + app mobile\n\nCLI disponible (`bw`) pour les scripts\n\nMCP server officiel disponible\n\nSetup en 10 minutes\n\n**Setup :**\n\n1. Crée un compte sur [bitwarden.com](https://bitwarden.com) (gratuit)\n2. Installe l'extension navigateur\n3. Pour chaque API key, crée une entrée dans Bitwarden avec le nom du service et la valeur\n\n**Pour les plus techniques** — Bitwarden a un CLI (`bw`) et un [MCP server officiel](https://github.com/bitwarden/mcp-server) qui permet à ton IA de récupérer des secrets de manière sécurisée :\n\n```\n# Installer le CLI Bitwarden\nnpm install -g @bitwarden/cli\n\n# Se connecter\nbw login\n\n# Récupérer un secret\nbw get item \"Anthropic API Key\" | jq -r '.login.password'\n```\n\n### Niveau 2 : macOS Keychain (Mac users)\n\nNiveau 2 : Pour les utilisateurs Mac\n\nmacOS Keychain\n\nDéjà installé sur chaque Mac, zéro config\n\nCommande `security` en terminal\n\nChiffré par le Secure Enclave du Mac\n\nGratuit, local, pas de cloud\n\n**Stocker un secret :**\n\n```\n# Ajouter une API key au Keychain\nsecurity add-generic-password \\\n  -a \"mon-compte\" \\\n  -s \"ANTHROPIC_API_KEY\" \\\n  -w \"sk-ant-api03-xxxxx\" \\\n  -T \"\"\n```\n\n**Récupérer un secret :**\n\n```\n# Lire la valeur\nsecurity find-generic-password \\\n  -s \"ANTHROPIC_API_KEY\" \\\n  -w\n```\n\n**Utiliser dans un `.env` :**\n\n```\n# Script qui génère le .env à partir du Keychain\necho \"ANTHROPIC_API_KEY=$(security find-generic-password -s ANTHROPIC_API_KEY -w)\" > .env\n```\n\nL'avantage : rien ne quitte ta machine. L'inconvénient : c'est local — si tu as un serveur distant, les secrets ne sont pas synchronisés.\n\n### Niveau 3 : Vaultwarden (auto-hébergé)\n\nNiveau 3 : Pour les self-hosters\n\nVaultwarden\n\nRéimplémentation légère de Bitwarden, auto-hébergée\n\nInstallable via Cloudron (1 clic)\n\nTes données restent sur TON serveur\n\nCompatible avec tous les clients Bitwarden\n\nMCP server Bitwarden compatible\n\nSi tu as déjà un serveur Cloudron (semaine 3), Vaultwarden est disponible dans l'App Store Cloudron en un clic. Sinon, voici le docker-compose :\n\n```\nservices:\n  vaultwarden:\n    image: vaultwarden/server:latest\n    container_name: vaultwarden\n    restart: unless-stopped\n    ports:\n      - \"8080:80\"\n    volumes:\n      - vaultwarden-data:/data\n    environment:\n      DOMAIN: \"https://vault.ton-domaine.com\"\n\nvolumes:\n  vaultwarden-data:\n```\n\nUne fois lancé, tu accèdes à l'interface web sur `https://vault.ton-domaine.com`, tu crées ton compte, et tu utilises les **mêmes clients Bitwarden** (extension navigateur, app mobile, CLI) — ils sont compatibles.\n\n### Comparatif\n\nBitwarden\n\nKeychain\n\nVaultwarden\n\nPrix\n\nGratuit\n\nGratuit\n\nGratuit\n\nHébergement\n\nCloud Bitwarden\n\nLocal (Mac)\n\nTon serveur\n\nMulti-device\n\nOui\n\nMac seulement\n\nOui\n\nCLI\n\nbw\n\nsecurity\n\nbw\n\nMCP\n\nOfficiel\n\nNon\n\nCompatible\n\nSouveraineté\n\nMoyen\n\nTotal\n\nTotal\n\nDifficulté\n\nFacile\n\nFacile\n\nMoyen\n\n**Ma recommandation :** reste au niveau 0. Des clés en clair dans un coffre chiffré E2E (Obsidian Sync) couvrent l'immense majorité des besoins, et c'est ce que j'utilise moi-même. Si un jour tu gères des données client très sensibles ou tu veux centraliser proprement, Bitwarden (niveau 1) est le meilleur point de départ, et la migration vers Vaultwarden reste transparente (mêmes clients, mêmes données).\n\n---\n\n## Le fichier Infrastructure.md\n\nC'est ton **registre** — l'inventaire de tout ce qui tourne, sans les valeurs secrètes. Il vit dans ton vault Obsidian (par exemple `4 TOOLS/Infrastructure.md` ou `2 CASQUETTES/[ta casquette tech]/Infrastructure.md`).\n\n### Structure recommandée\n\n```\n# Infrastructure\n\n## Serveurs\n| Service | URL | Usage |\n|---------|-----|-------|\n| Serveur principal | 65.xxx.xxx.xx | Cloudron, apps |\n| Cloudron | https://my.domaine.com | Panel admin |\n\n## APIs & Services\n| Service | Email du compte | Usage | Secret dans |\n|---------|----------------|-------|-------------|\n| Anthropic | mon@email.com | Claude API | Coffre .env (E2E) |\n| OpenAI | mon@email.com | Whisper, GPT | Coffre .env (E2E) |\n| Telegram Bot | - | Bot IA perso | Bitwarden |\n\n## Bases de données\n| Service | URL | Usage |\n|---------|-----|-------|\n| NocoDB | https://nocodb.domaine.com | Données clients |\n| PocketBase | https://backend.domaine.com | Auth plateforme |\n\n## Domaines\n| Domaine | Registrar | Usage |\n|---------|-----------|-------|\n| mon-domaine.com | OVH | Site principal |\n```\n\n**Ce qui est dans ce fichier :** les noms, les URLs, les emails de compte, les usages. L'IA peut lire ce fichier pour savoir quels services existent.\n\n**Ce qui n'est PAS dans ce fichier :** les API keys, les tokens, les mots de passe. Jamais. La colonne \"Secret dans\" indique *où* trouver la valeur (ton coffre `.env`, Bitwarden, Keychain...), pas la valeur elle-même.\n\n---\n\n## Bonnes pratiques `.env`\n\n### Règle 1 : `.env` dans `.gitignore`\n\nToujours. Sans exception. Vérifie maintenant :\n\n```\n# Vérifier que .env est ignoré\ncat .gitignore | grep -i env\n```\n\nSi ce n'est pas le cas, ajoute :\n\n```\n# Secrets\n.env\n.env.local\n.env.*.local\n```\n\n### Règle 2 : Créer un `.env.example`\n\nLe `.env.example` contient les **noms** des variables sans les valeurs. Il est commité sur git — c'est la documentation de quelles variables sont nécessaires :\n\n```\n# .env.example — les noms sans les valeurs\nANTHROPIC_API_KEY=\nOPENAI_API_KEY=\nTELEGRAM_BOT_TOKEN=\nNOCODB_URL=\nNOCODB_TOKEN=\n```\n\nQuand tu installes le projet sur une nouvelle machine, tu copies `.env.example` vers `.env` et tu remplis les valeurs.\n\n### Règle 3 : Ne jamais commiter un `.env`\n\nSi tu as déjà commité un `.env` par erreur :\n\n```\n# Retirer le fichier du tracking git (sans le supprimer)\ngit rm --cached .env\ngit commit -m \"remove .env from tracking\"\n```\n\n**Attention :** si le `.env` a été poussé sur un remote **public** (GitHub, GitLab), les secrets sont compromis. Change toutes les clés API qui étaient dedans. Sur un remote privé ou chiffré le risque est bien plus faible, mais par précaution, change-les quand même.\n\n### Pattern avancé (optionnel) : références au password manager\n\nUniquement si tu utilises un password manager (niveau 1 ou 3). Au lieu de laisser les valeurs en clair dans `.env`, tu peux les injecter depuis le coffre au moment voulu :\n\n```\n# Script setup-env.sh — génère le .env depuis Bitwarden\n#!/bin/bash\nbw unlock --check || bw unlock\n\necho \"ANTHROPIC_API_KEY=$(bw get password 'Anthropic API Key')\" > .env\necho \"TELEGRAM_BOT_TOKEN=$(bw get password 'Telegram Bot')\" >> .env\necho \"NOCODB_TOKEN=$(bw get password 'NocoDB Token')\" >> .env\n\necho \"✓ .env généré depuis Bitwarden\"\n```\n\nTu lances `./setup-env.sh` une fois, et ton `.env` est rempli. Le script peut être commité (il ne contient aucun secret), le `.env` généré ne l'est jamais.\n\n---\n\n## Checklist\n\n- J'ai créé ou mis à jour mon fichier Infrastructure.md (sans valeurs secrètes)\n- J'ai choisi mon niveau de setup (clés en clair dans coffre E2E par défaut, password manager si besoin)\n- Mes clés API sont dans un coffre chiffré E2E (Obsidian Sync) ou un password manager, jamais dans un espace public\n- Mes fichiers .env sont dans .gitignore\n- J'ai un .env.example avec les noms des variables (sans valeurs)",
      "assets": [],
      "links": [
        {
          "text": "bitwarden.com",
          "url": "https://bitwarden.com/"
        },
        {
          "text": "MCP server officiel",
          "url": "https://github.com/bitwarden/mcp-server"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:05:13.070Z",
      "counts": {
        "code_blocks": 56,
        "headings": 16,
        "iframes": 0,
        "images": 0,
        "links": 2,
        "text_chars": 9849
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "15-semaine-1-vault-perso",
      "order": 15,
      "kind": "section",
      "section": "04-initialisation",
      "title": "Initialiser son coffre avec /initialisation",
      "slug": "semaine-1-vault-perso",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-vault-perso",
      "summary": "Lancer /initialisation dans OpenCode Desktop pour personnaliser ton coffre. Tu donneras à l'IA ton contexte complet : qui tu es, ta vision (attracteur étrange), tes casquettes, tes projets et ta phase de vie. Sortie : Moi.md, Mon Parcours.md, casquettes, projets et phase initialisée avec daily/weekly notes.",
      "objective": "Avoir un coffre Obsidian entièrement personnalisé : Moi.md, casquettes, projets, phase de vie initialisée, plugins Obsidian configurés.",
      "expected_output": "Coffre configuré avec Moi.md + Mon Parcours.md, casquettes et projets créés, phase de vie initialisée avec daily/weekly notes pointées dessus.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Ce qu'on va faire</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tes outils sont installés, ton coffre est ouvert dans Obsidian et synchronisé, OpenCode Desktop est configuré avec tes providers. Maintenant on <strong class=\"font-semibold text-foreground\">donne vie au système</strong> : tu vas lancer le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>. L'IA va te poser des questions sur ta vie, ton parcours, tes projets, et créer toute la structure personnalisée de ton coffre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Compte <strong class=\"font-semibold text-foreground\">3 à 4 heures</strong>. C'est un investissement, pas une configuration. À la fin, l'IA te connaîtra mieux que la plupart de tes outils.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ne t'inquiète pas des temps de réflexion.</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> écrit tes fichiers <strong class=\"font-semibold text-foreground\">au fur et à mesure</strong> : tu vois la structure de ton coffre se créer en direct, fichier par fichier. Entre deux écritures, l'IA peut réfléchir un long moment sans rien afficher à l'écran. C'est normal, elle n'est pas bloquée, laisse-la aller au bout.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Étape 1 : Lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le moment. Dans <strong class=\"font-semibold text-foreground\">OpenCode Desktop</strong>, ouvert sur ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Workspace</code>, tape simplement :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/initialisation\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. Pas de terminal à ouvrir, pas de commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">cd</code> à taper. OpenCode Desktop lit déjà ton workspace et trouve le skill dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/initialisation/</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA prend le relais et te guide.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Étape 2 : Comment se passe l'initialisation</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> est une conversation guidée en plusieurs temps. Voici la séquence.</p>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-t-xl border-2 border-b-0 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-blue-400\">1.</div><div class=\"text-sm font-bold text-blue-700\">Prélude pédagogique</div><div class=\"text-xs text-blue-500\">L'IA t'explique ce qu'on va construire (workspace, IPCRA, contexte)</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-violet-200 bg-violet-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-violet-400\">2.</div><div class=\"text-sm font-bold text-violet-700\">Identité</div><div class=\"text-xs text-violet-500\">Ton prénom + comment tu veux appeler ton IA</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-purple-200 bg-purple-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-purple-400\">3 à 7.</div><div class=\"text-sm font-bold text-purple-700\">Décharge en 5 sections</div><div class=\"text-xs text-purple-500\">Qui je suis, vision, casquettes, projets, phase de vie</div></div><div class=\"w-full max-w-md border-2 border-b-0 border-amber-200 bg-amber-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-amber-400\">8.</div><div class=\"text-sm font-bold text-amber-700\">Récapitulatif et validation</div><div class=\"text-xs text-amber-500\">L'IA résume tout et te demande confirmation avant de créer les fichiers</div></div><div class=\"w-full max-w-md rounded-b-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-emerald-400\">9.</div><div class=\"text-sm font-bold text-emerald-700\">Génération des fichiers</div><div class=\"text-xs text-emerald-500\">L'IA crée toute ta structure personnalisée</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le geste à connaître : déposer des documents</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pendant les sections de décharge (étapes 3 à 7), tu peux <strong class=\"font-semibold text-foreground\">déposer des fichiers</strong> dans OpenCode pour compléter ou remplacer la conversation : CV, bios historiques, notes de parcours, offres écrites, briefs clients, anciens journaux. L'IA lit le document, en extrait ce qui compte, et te demande validation.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la meilleure manière de gagner du temps si tu as déjà du contenu structuré sur toi.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ce que l'IA crée à l'étape 9</h3>\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-md rounded-xl border-2 border-zinc-200 bg-zinc-50 px-5 py-4\"><div class=\"text-sm font-bold text-zinc-700 mb-3 text-center\">Ton coffre après <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></div><div class=\"space-y-1.5 text-xs font-mono text-zinc-600\"><div class=\"text-zinc-400\">Workspace/</div><div class=\"pl-4\"><span class=\"text-blue-600\">AGENTS.md</span> <span class=\"text-emerald-500 font-sans\">(nom IA + prénom remplacés)</span></div><div class=\"pl-4 text-zinc-400\">Second Cerveau/</div><div class=\"pl-8\"><span class=\"text-blue-600\">AGENTS.md</span> <span class=\"text-emerald-500 font-sans\">(nom + prénom remplacés)</span></div><div class=\"pl-8 text-zinc-400\">2 CASQUETTES/</div><div class=\"pl-12 text-purple-600\">Sur ma vie/</div><div class=\"pl-16\">Moi.md <span class=\"text-emerald-500 font-sans\">(qui tu es, style IA, valeurs)</span></div><div class=\"pl-16\">Mon Parcours.md <span class=\"text-emerald-500 font-sans\">(historique chronologique)</span></div><div class=\"pl-16 text-purple-600\">Life Phases/</div><div class=\"pl-20\">1 [Ta phase]/ <span class=\"text-emerald-500 font-sans\">(intention + daily/weekly notes ici)</span></div><div class=\"pl-12 text-purple-600\">[Casquette 1]/</div><div class=\"pl-12 text-purple-600\">[Casquette 2]/</div><div class=\"pl-8 text-zinc-400\">1 PROJETS/</div><div class=\"pl-12 text-blue-600\">[Projet 1]/</div><div class=\"pl-12 text-blue-600\">[Projet 2]/</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA configure aussi les <strong class=\"font-semibold text-foreground\">plugins Obsidian</strong> (daily notes, weekly notes) pour qu'ils pointent vers ta phase de vie active. Tu n'as rien à faire de plus.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Important : la génération se fait en direct.</strong> Même si le schéma présente la création des fichiers comme une étape finale, l'IA écrit en réalité ta structure <strong class=\"font-semibold text-foreground\">progressivement</strong>, tout au long de la conversation. Tu vois les fichiers apparaître un par un dans Obsidian. À la dernière promo, certains ont cru que le skill avait planté parce qu'il semblait tourner sans rien produire pendant des heures. Ce n'est plus le cas : la progression est visible au fil de l'eau. Si un temps de réflexion s'étire entre deux fichiers (l'IA construit ton contexte en profondeur), patiente, rien n'est bloqué.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Le principe fondamental : qualité IA = qualité du contexte</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avant de plonger dans les 5 sections, un rappel qui change tout.</p>\n\n<div class=\"my-8 flex flex-col items-center gap-3\"><div class=\"grid w-full max-w-lg grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-4 py-4 text-center\"><div class=\"text-sm font-bold text-zinc-500\">Sans contexte</div><div class=\"text-xs text-zinc-400 mt-2\">Réponses génériques</div><div class=\"text-xs text-zinc-400\">Conseils passe-partout</div><div class=\"text-xs text-zinc-400\">Ne connaît pas ta situation</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-4 py-4 text-center\"><div class=\"text-sm font-bold text-emerald-700\">Avec contexte riche</div><div class=\"text-xs text-emerald-500 mt-2\">Conseils personnalisés</div><div class=\"text-xs text-emerald-500\">Comprend tes contraintes</div><div class=\"text-xs text-emerald-500\">Adapté à TA situation</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La qualité de l'IA = le contexte que tu lui donnes.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est aussi simple que ça. Une IA sans contexte, c'est un assistant générique qui te donne des réponses génériques. Une IA avec un contexte riche et précis, c'est un partenaire de réflexion qui comprend tes projets, tes contraintes, ta façon de penser, et qui te donne des conseils pertinents, adaptés à <strong class=\"font-semibold text-foreground\">ta</strong> situation.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque commande, chaque agent, chaque automatisation qu'on va construire dans ce bootcamp repose sur ce contexte. C'est la fondation de tout. Plus tes réponses sont détaillées et honnêtes, mieux l'IA comprendra ta situation, et plus ses réponses seront pertinentes.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Note importante sur les exemples :</strong> Tous les exemples donnés plus bas (chiffres, offres, dates, contexte) sont inspirés de ma vie (Eliott) mais <strong class=\"font-semibold text-foreground\">volontairement modifiés et fictifs</strong>. Ils sont là pour t'inspirer et te montrer le niveau de précision attendu.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Deux façons de remplir les sections</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Option A : En parlant à l'IA (recommandée)</strong>\nTu réponds à voix haute via SuperWhisper directement dans la conversation <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>. Plus naturel, plus rapide. L'IA reformule ce qu'elle comprend et te pose des questions de clarification.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Option B : Avec un document écrit</strong>\nTu prépares un document avec toutes les infos en amont (le template est dans les ressources en bas de page), puis tu le déposes dans la conversation OpenCode. Plus classique, utile si tu veux y réfléchir au calme avant.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans les deux cas, le résultat est le même : un coffre entièrement personnalisé.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Vue d'ensemble des 5 sections</h2>\n\n<div class=\"my-8 flex flex-col items-center gap-2\"><div class=\"w-full max-w-lg grid grid-cols-5 gap-1.5\"><div class=\"rounded-lg border-2 border-blue-200 bg-blue-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-blue-700\">01</div><div class=\"text-xs text-blue-500 mt-1\">Qui je suis</div></div><div class=\"rounded-lg border-2 border-purple-200 bg-purple-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-purple-700\">02</div><div class=\"text-xs text-purple-500 mt-1\">Ma vision</div></div><div class=\"rounded-lg border-2 border-amber-200 bg-amber-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-amber-700\">03</div><div class=\"text-xs text-amber-500 mt-1\">Casquettes</div></div><div class=\"rounded-lg border-2 border-emerald-200 bg-emerald-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-emerald-700\">04</div><div class=\"text-xs text-emerald-500 mt-1\">Phase de vie</div></div><div class=\"rounded-lg border-2 border-rose-200 bg-rose-50 px-2 py-3 text-center\"><div class=\"text-xs font-bold text-rose-700\">05</div><div class=\"text-xs text-rose-500 mt-1\">Business</div></div></div><div class=\"text-xs text-zinc-400 italic\">Les 5 sections que l'IA te demande pendant <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Section 01 : Qui je suis</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va te demander ton parcours, ton mode de fonctionnement et tes passions. C'est la section la plus importante : prends le temps de la développer.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ton parcours</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pas un CV : la version personnelle. D'où tu viens, les tournants importants, ce qui t'a construit.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Règle d'or : sois chiffré et ultra-précis.</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Exemples de précision :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Pas \"j'ai lancé une boîte\" → \"J'ai lancé [Nom] en 2019. CA année 1 : 20k, année 2 : 80k, année 3 : 150k. Solo jusqu'en 2021, puis équipe de 3.\"</li>\n<li class=\"leading-7\">Pas \"j'ai travaillé dans la tech\" → \"Dev backend chez [Entreprise] (2015-2018), équipe de 12, stack Python/Django, 50k clients actifs.\"</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour chaque étape clé, documente :</strong> les dates précises, les chiffres, le contexte (pourquoi ce choix), ce que tu as appris.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ton fonctionnement</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Comment tu fonctionnes au quotidien. Ton type de personnalité, ta façon de prendre des décisions.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">MBTI</strong> : Passe le test gratuit sur <a href=\"https://www.16personalities.com/fr\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">16Personalities</a></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Forces</strong> : ce qui te vient facilement, ce que les autres remarquent chez toi</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Faiblesses</strong> : ce que tu procrastines, ce qui te coûte de l'énergie. Sois honnête, c'est pour l'IA.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Gestion du stress</strong> : comment tu réagis sous pression</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Prise de décision</strong> : analyse rationnelle, intuition, consultation ?</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Passions, intérêts et convictions</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Passions</strong> : les sujets sur lesquels tu peux passer des heures. Sois précis : pas \"la tech\", mais \"les systèmes de pensée augmentée, les PKM, l'IA appliquée au knowledge management\".</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Intérêts actuels</strong> : ce que tu explores, les livres que tu lis, les concepts que tu creuses.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Grandes convictions</strong> : tes opinions fortes, même non-consensuelles. L'IA doit connaître ton cadre de pensée.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Section 02 : Ma vision (l'attracteur étrange)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la section la plus puissante. Avant de répondre aux questions de l'IA, regarde ces deux vidéos. Elles posent le concept de <strong class=\"font-semibold text-foreground\">vision comme attracteur étrange</strong> : la force qui te tire vers le futur que tu veux, plutôt que tu pousses chaque jour à l'arrache.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">C'est quoi une vision ?</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/8c34da8c-1bc3-4b36-816a-e3249297a140?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"C'est quoi une vision ?\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Définissez votre vision</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/b3ec10cb-cd87-42f8-b515-8b332a448480?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Définissez votre vision\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pourquoi c'est crucial :</strong> sans vision claire, tu subis les opportunités au lieu de les choisir. La vision, c'est le phare qui guide tes décisions. Une seule question suffit alors : \"Est-ce que ça me rapproche de ma vision ?\"</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Journée idéale</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Décris ta journée parfaite dans le détail, du réveil au coucher. Écris au présent, comme si tu la vivais.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À quelle heure tu te réveilles ? Où es-tu ? Qu'est-ce que tu fais le matin, l'après-midi, le soir ? Avec qui tu interagis ? Quel type de travail tu fais ? Comment tu te détends ?</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sois concret.</strong> Ne dis pas \"je travaille sur des projets passionnants\" : dis \"j'écris pendant 2h le matin, puis je fais 3 appels clients l'après-midi\".</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Année idéale</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Projette-toi sur les 12 prochains mois. Tout se passe bien. Qu'est-ce qui s'est passé ?</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour chaque trimestre : où tu vis, sur quoi tu travailles, ce que tu as accompli, ce que tu as appris.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Vision à 5 ans</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ferme les yeux. Projette-toi 5 ans en avant. Couvre : lieu de vie, travail, revenus, relations, santé, apprentissage, création.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Actions quotidiennes essentielles</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Identifie les <strong class=\"font-semibold text-foreground\">3 à 5 actions que tu dois faire au quotidien pour être heureux</strong>. Pas des valeurs abstraites : des actions concrètes.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Exemples :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Apprendre pour comprendre le monde (lire, creuser des concepts)</li>\n<li class=\"leading-7\">Créer du contenu pour partager ce que je découvre</li>\n<li class=\"leading-7\">Bouger mon corps pour maintenir mon énergie</li>\n<li class=\"leading-7\">Passer du temps de qualité avec ma famille</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Section 03 : Casquettes et projets</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va te demander tes rôles permanents (casquettes) et tes initiatives en cours (projets).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Casquettes (rôles permanents)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une casquette ne finit jamais. C'est une responsabilité ongoing.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour chaque casquette :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Nom</strong> (1 mot) : Entrepreneur, Parent, Créateur, Apprenant...</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Responsabilité principale</strong> : en une phrase</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tâches récurrentes</strong> : ce que tu fais chaque semaine ou chaque mois</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Temps alloué</strong> : combien d'heures par semaine</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">North star</strong> : comment tu sais que tu réussis dans ce rôle</li>\n</ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">La règle :</strong> la plupart des gens ont entre 3 et 7 casquettes. Si tu en as plus de 8, certaines sont probablement des projets déguisés.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Projets actifs</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un projet <strong class=\"font-semibold text-foreground\">a une fin</strong>. Si ça n'a pas de deadline (même floue), c'est une casquette.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pour chaque projet :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Objectif clair</strong> : qu'est-ce qui sera vrai quand c'est terminé ?</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Deadline</strong> : même approximative</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Prochaines actions</strong> : les 2 à 3 trucs concrets à faire</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Casquette liée</strong> : sous quelle casquette ce projet tombe</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Section 04 : Ma phase de vie</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans ton coffre, on organise ton journaling par <strong class=\"font-semibold text-foreground\">phases de vie</strong>. Une phase, c'est une période avec un focus particulier : ça peut durer 3 semaines ou 6 mois. Regarde ces deux vidéos pour saisir le concept et savoir comment formuler la tienne.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">C'est quoi les phases de vie ?</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"C'est quoi les phases de vie ?\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Définissez votre phase de vie</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Définissez votre phase de vie\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand ton focus change (nouveau projet, déménagement, changement de cap), tu ouvres une nouvelle phase avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/new-life-phase</code>. Chaque phase a son propre dossier dans ton coffre, avec une intention, des objectifs, et c'est là que vivent tes notes quotidiennes et hebdomadaires. Ça te permet de retrouver facilement ce que tu faisais à une période donnée, et de faire un bilan quand tu passes à la suivante.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ce que l'IA va te demander</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Nom de la phase</strong> : \"Lancement solo\", \"Scale &amp; Systems\", \"Reconstruction\"...</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Période estimée</strong> : quand ça a commencé, durée estimée</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Intention</strong> : en 2 à 3 phrases, le fil rouge de cette période</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Objectifs de la phase</strong> : 3 max, concrets, mesurables</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Contraintes</strong> : temps dispo, énergie, budget, obligations</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Les stratégies par état</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un concept puissant : au lieu de planifier ta journée minute par minute, tu définis ce que tu fais en fonction de ton état.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Quand je suis surchargé</strong> : comment je me recentre, quelles tâches je priorise</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Quand je suis curieux/dispersé</strong> : comment je canalise, quelles explorations sont autorisées</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Quand je suis fatigué</strong> : tâches légères autorisées, interdictions, récupération</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Quand je suis dans le FLOW</strong> : comment je maximise, comment je protège ce temps</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Section 05 : Mon business (si applicable)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as une activité indépendante. L'IA te demandera :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Positionnement</strong> : quoi, pour qui, pourquoi toi</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Offres et tarifs</strong> : ce que tu vends, à quel prix</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Clients</strong> : profil type, nombre actuel</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Métriques clés</strong> : CA, MRR, taux de conversion, NPS...</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Acquisition</strong> : comment tu trouves tes clients (réseaux sociaux, SEO, bouche-à-oreille, publicité, partenariats...). Qu'est-ce qui fonctionne le mieux et qu'est-ce que tu voudrais développer.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Delivery</strong> : le parcours client de A à Z, de l'achat à la livraison du résultat. Tes process, tes outils, ce qui est automatisé et ce qui est manuel.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Équipe</strong> : si applicable</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Stack technique</strong> : outils utilisés quotidiennement</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Présence en ligne</strong> : URLs</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Plus tu es précis, mieux l'IA t'aide.</strong> Donne des chiffres, des noms, des URLs.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Conseils pour bien répondre</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Sois honnête.</strong> C'est pour l'IA, pas pour un recruteur.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Sois précis.</strong> Chiffres, dates, exemples concrets. L'IA travaille avec du contexte.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Utilise SuperWhisper.</strong> Parler est plus naturel et plus rapide qu'écrire.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Ne te censure pas.</strong> Tes faiblesses, tes doutes, tes contraintes : tout est utile.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Prends ton temps.</strong> Si tu fais l'option B (document écrit), compte 2 à 3 heures. Si tu fais l'option A (conversation), ça ira plus vite.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Étape 3 : Après l'initialisation</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> terminée :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Redémarre Obsidian</strong> pour que les plugins se configurent correctement</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Parcours les fichiers créés</strong> : ouvre <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Moi.md</code>, ta note de phase, ta première casquette. Vérifie que ça te ressemble.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Teste les daily notes</strong> : clique sur un jour dans le calendrier Obsidian. Une daily note se crée automatiquement dans ta phase de vie active.</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si quelque chose ne te plaît pas, dis-le à ton IA dans OpenCode Desktop. Elle modifie les fichiers en quelques secondes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Tu peux déjà commencer à l'utiliser</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton système est en place. N'attends pas la semaine 3 pour en tirer de la valeur. Commence dès maintenant à prendre des notes, capturer des idées, poser des questions à ton IA sur tes projets.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si c'est un peu brouillon au début, c'est normal et sans conséquence : tu peux restructurer, réorganiser et renommer n'importe quoi à tout moment. L'IA peut t'aider à reclasser plus tard. Plus tu commences tôt, plus elle aura de contexte pour t'aider, et meilleur sera tout ce qu'on construit dans les semaines suivantes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Découvrir les autres skills</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pendant que tu travailles, n'hésite pas à explorer les autres skills disponibles dans ton coffre. Tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/</code> dans OpenCode Desktop pour voir la liste. Tu en trouveras pour :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Routines quotidiennes</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/daily-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/inbox-processor</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Réflexion</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/thinking-partner</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/research-assistant</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Configuration</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/create-skill</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/new-life-phase</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Process (semaine 2)</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/map-process</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/new-automation</code></li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Édition</strong> : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/de-ai-ify</code></li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque skill est un fichier Markdown dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/</code>. Tu peux les ouvrir dans Obsidian pour comprendre comment ils fonctionnent, voire les modifier à ta sauce.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"/initialisation lancé dans OpenCode Desktop — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">/initialisation lancé dans OpenCode Desktop</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"L'IA connaît mon prénom et j'ai choisi son prénom — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">L'IA connaît mon prénom et j'ai choisi son prénom</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Section 'Qui je suis' remplie (parcours, fonctionnement, passions) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Section 'Qui je suis' remplie (parcours, fonctionnement, passions)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Section 'Ma vision' remplie (journée idéale, année, 5 ans, actions essentielles) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Section 'Ma vision' remplie (journée idéale, année, 5 ans, actions essentielles)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Section 'Casquettes et projets' remplie (rôles + projets actifs) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Section 'Casquettes et projets' remplie (rôles + projets actifs)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Section 'Phase de vie' remplie (nom, intention, objectifs, contraintes) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Section 'Phase de vie' remplie (nom, intention, objectifs, contraintes)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Section 'Business' remplie si applicable — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Section 'Business' remplie si applicable</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Récapitulatif validé, fichiers générés — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Récapitulatif validé, fichiers générés</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Moi.md et Mon Parcours.md créés dans 2 CASQUETTES/Sur ma vie/ — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Moi.md et Mon Parcours.md créés dans 2 CASQUETTES/Sur ma vie/</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Au moins une casquette et un projet créés — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Au moins une casquette et un projet créés</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Obsidian redémarré : plugins daily et weekly notes configurés — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Obsidian redémarré : plugins daily et weekly notes configurés</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Daily note testée via le calendrier — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Daily note testée via le calendrier</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> un coffre Obsidian entièrement personnalisé, connecté à ton IA, avec ton contexte, tes casquettes, tes projets et ta phase de vie. Ton système est opérationnel. Tu es prêt pour la Weekly Review et la suite du bootcamp.</p>\n</blockquote>",
      "content_markdown": "## Ce qu'on va faire\n\nTes outils sont installés, ton coffre est ouvert dans Obsidian et synchronisé, OpenCode Desktop est configuré avec tes providers. Maintenant on **donne vie au système** : tu vas lancer le skill `/initialisation`. L'IA va te poser des questions sur ta vie, ton parcours, tes projets, et créer toute la structure personnalisée de ton coffre.\n\nCompte **3 à 4 heures**. C'est un investissement, pas une configuration. À la fin, l'IA te connaîtra mieux que la plupart de tes outils.\n\n> Ne t'inquiète pas des temps de réflexion. /initialisation écrit tes fichiers au fur et à mesure : tu vois la structure de ton coffre se créer en direct, fichier par fichier. Entre deux écritures, l'IA peut réfléchir un long moment sans rien afficher à l'écran. C'est normal, elle n'est pas bloquée, laisse-la aller au bout.\n\n---\n\n## Étape 1 : Lancer `/initialisation`\n\nC'est le moment. Dans **OpenCode Desktop**, ouvert sur ton `Workspace`, tape simplement :\n\n```\n/initialisation\n```\n\nC'est tout. Pas de terminal à ouvrir, pas de commande `cd` à taper. OpenCode Desktop lit déjà ton workspace et trouve le skill dans `Second Cerveau/4 TOOLS/skills/initialisation/`.\n\nL'IA prend le relais et te guide.\n\n---\n\n## Étape 2 : Comment se passe l'initialisation\n\nLe skill `/initialisation` est une conversation guidée en plusieurs temps. Voici la séquence.\n\n1.\n\nPrélude pédagogique\n\nL'IA t'explique ce qu'on va construire (workspace, IPCRA, contexte)\n\n2.\n\nIdentité\n\nTon prénom + comment tu veux appeler ton IA\n\n3 à 7.\n\nDécharge en 5 sections\n\nQui je suis, vision, casquettes, projets, phase de vie\n\n8.\n\nRécapitulatif et validation\n\nL'IA résume tout et te demande confirmation avant de créer les fichiers\n\n9.\n\nGénération des fichiers\n\nL'IA crée toute ta structure personnalisée\n\n### Le geste à connaître : déposer des documents\n\nPendant les sections de décharge (étapes 3 à 7), tu peux **déposer des fichiers** dans OpenCode pour compléter ou remplacer la conversation : CV, bios historiques, notes de parcours, offres écrites, briefs clients, anciens journaux. L'IA lit le document, en extrait ce qui compte, et te demande validation.\n\nC'est la meilleure manière de gagner du temps si tu as déjà du contenu structuré sur toi.\n\n### Ce que l'IA crée à l'étape 9\n\nTon coffre après `/initialisation`\n\nWorkspace/\n\nAGENTS.md (nom IA + prénom remplacés)\n\nSecond Cerveau/\n\nAGENTS.md (nom + prénom remplacés)\n\n2 CASQUETTES/\n\nSur ma vie/\n\nMoi.md (qui tu es, style IA, valeurs)\n\nMon Parcours.md (historique chronologique)\n\nLife Phases/\n\n1 [Ta phase]/ (intention + daily/weekly notes ici)\n\n[Casquette 1]/\n\n[Casquette 2]/\n\n1 PROJETS/\n\n[Projet 1]/\n\n[Projet 2]/\n\nL'IA configure aussi les **plugins Obsidian** (daily notes, weekly notes) pour qu'ils pointent vers ta phase de vie active. Tu n'as rien à faire de plus.\n\n> Important : la génération se fait en direct. Même si le schéma présente la création des fichiers comme une étape finale, l'IA écrit en réalité ta structure progressivement, tout au long de la conversation. Tu vois les fichiers apparaître un par un dans Obsidian. À la dernière promo, certains ont cru que le skill avait planté parce qu'il semblait tourner sans rien produire pendant des heures. Ce n'est plus le cas : la progression est visible au fil de l'eau. Si un temps de réflexion s'étire entre deux fichiers (l'IA construit ton contexte en profondeur), patiente, rien n'est bloqué.\n\n---\n\n## Le principe fondamental : qualité IA = qualité du contexte\n\nAvant de plonger dans les 5 sections, un rappel qui change tout.\n\nSans contexte\n\nRéponses génériques\n\nConseils passe-partout\n\nNe connaît pas ta situation\n\nAvec contexte riche\n\nConseils personnalisés\n\nComprend tes contraintes\n\nAdapté à TA situation\n\n**La qualité de l'IA = le contexte que tu lui donnes.**\n\nC'est aussi simple que ça. Une IA sans contexte, c'est un assistant générique qui te donne des réponses génériques. Une IA avec un contexte riche et précis, c'est un partenaire de réflexion qui comprend tes projets, tes contraintes, ta façon de penser, et qui te donne des conseils pertinents, adaptés à **ta** situation.\n\nChaque commande, chaque agent, chaque automatisation qu'on va construire dans ce bootcamp repose sur ce contexte. C'est la fondation de tout. Plus tes réponses sont détaillées et honnêtes, mieux l'IA comprendra ta situation, et plus ses réponses seront pertinentes.\n\n> Note importante sur les exemples : Tous les exemples donnés plus bas (chiffres, offres, dates, contexte) sont inspirés de ma vie (Eliott) mais volontairement modifiés et fictifs. Ils sont là pour t'inspirer et te montrer le niveau de précision attendu.\n\n### Deux façons de remplir les sections\n\n**Option A : En parlant à l'IA (recommandée)** Tu réponds à voix haute via SuperWhisper directement dans la conversation `/initialisation`. Plus naturel, plus rapide. L'IA reformule ce qu'elle comprend et te pose des questions de clarification.\n\n**Option B : Avec un document écrit** Tu prépares un document avec toutes les infos en amont (le template est dans les ressources en bas de page), puis tu le déposes dans la conversation OpenCode. Plus classique, utile si tu veux y réfléchir au calme avant.\n\nDans les deux cas, le résultat est le même : un coffre entièrement personnalisé.\n\n---\n\n## Vue d'ensemble des 5 sections\n\n01\n\nQui je suis\n\n02\n\nMa vision\n\n03\n\nCasquettes\n\n04\n\nPhase de vie\n\n05\n\nBusiness\n\nLes 5 sections que l'IA te demande pendant `/initialisation`\n\n---\n\n## Section 01 : Qui je suis\n\nL'IA va te demander ton parcours, ton mode de fonctionnement et tes passions. C'est la section la plus importante : prends le temps de la développer.\n\n### Ton parcours\n\nPas un CV : la version personnelle. D'où tu viens, les tournants importants, ce qui t'a construit.\n\n**Règle d'or : sois chiffré et ultra-précis.**\n\n**Exemples de précision :**\n\n- Pas \"j'ai lancé une boîte\" → \"J'ai lancé [Nom] en 2019. CA année 1 : 20k, année 2 : 80k, année 3 : 150k. Solo jusqu'en 2021, puis équipe de 3.\"\n- Pas \"j'ai travaillé dans la tech\" → \"Dev backend chez [Entreprise] (2015-2018), équipe de 12, stack Python/Django, 50k clients actifs.\"\n\n**Pour chaque étape clé, documente :** les dates précises, les chiffres, le contexte (pourquoi ce choix), ce que tu as appris.\n\n### Ton fonctionnement\n\nComment tu fonctionnes au quotidien. Ton type de personnalité, ta façon de prendre des décisions.\n\n- **MBTI** : Passe le test gratuit sur [16Personalities](https://www.16personalities.com/fr)\n- **Forces** : ce qui te vient facilement, ce que les autres remarquent chez toi\n- **Faiblesses** : ce que tu procrastines, ce qui te coûte de l'énergie. Sois honnête, c'est pour l'IA.\n- **Gestion du stress** : comment tu réagis sous pression\n- **Prise de décision** : analyse rationnelle, intuition, consultation ?\n\n### Passions, intérêts et convictions\n\n- **Passions** : les sujets sur lesquels tu peux passer des heures. Sois précis : pas \"la tech\", mais \"les systèmes de pensée augmentée, les PKM, l'IA appliquée au knowledge management\".\n- **Intérêts actuels** : ce que tu explores, les livres que tu lis, les concepts que tu creuses.\n- **Grandes convictions** : tes opinions fortes, même non-consensuelles. L'IA doit connaître ton cadre de pensée.\n\n---\n\n## Section 02 : Ma vision (l'attracteur étrange)\n\nC'est la section la plus puissante. Avant de répondre aux questions de l'IA, regarde ces deux vidéos. Elles posent le concept de **vision comme attracteur étrange** : la force qui te tire vers le futur que tu veux, plutôt que tu pousses chaque jour à l'arrache.\n\nC'est quoi une vision ?\n\nDéfinissez votre vision\n\n**Pourquoi c'est crucial :** sans vision claire, tu subis les opportunités au lieu de les choisir. La vision, c'est le phare qui guide tes décisions. Une seule question suffit alors : \"Est-ce que ça me rapproche de ma vision ?\"\n\n### Journée idéale\n\nDécris ta journée parfaite dans le détail, du réveil au coucher. Écris au présent, comme si tu la vivais.\n\nÀ quelle heure tu te réveilles ? Où es-tu ? Qu'est-ce que tu fais le matin, l'après-midi, le soir ? Avec qui tu interagis ? Quel type de travail tu fais ? Comment tu te détends ?\n\n> Sois concret. Ne dis pas \"je travaille sur des projets passionnants\" : dis \"j'écris pendant 2h le matin, puis je fais 3 appels clients l'après-midi\".\n\n### Année idéale\n\nProjette-toi sur les 12 prochains mois. Tout se passe bien. Qu'est-ce qui s'est passé ?\n\nPour chaque trimestre : où tu vis, sur quoi tu travailles, ce que tu as accompli, ce que tu as appris.\n\n### Vision à 5 ans\n\nFerme les yeux. Projette-toi 5 ans en avant. Couvre : lieu de vie, travail, revenus, relations, santé, apprentissage, création.\n\n### Actions quotidiennes essentielles\n\nIdentifie les **3 à 5 actions que tu dois faire au quotidien pour être heureux**. Pas des valeurs abstraites : des actions concrètes.\n\n**Exemples :**\n\n- Apprendre pour comprendre le monde (lire, creuser des concepts)\n- Créer du contenu pour partager ce que je découvre\n- Bouger mon corps pour maintenir mon énergie\n- Passer du temps de qualité avec ma famille\n\n---\n\n## Section 03 : Casquettes et projets\n\nL'IA va te demander tes rôles permanents (casquettes) et tes initiatives en cours (projets).\n\n### Casquettes (rôles permanents)\n\nUne casquette ne finit jamais. C'est une responsabilité ongoing.\n\n**Pour chaque casquette :**\n\n- **Nom** (1 mot) : Entrepreneur, Parent, Créateur, Apprenant...\n- **Responsabilité principale** : en une phrase\n- **Tâches récurrentes** : ce que tu fais chaque semaine ou chaque mois\n- **Temps alloué** : combien d'heures par semaine\n- **North star** : comment tu sais que tu réussis dans ce rôle\n\n> La règle : la plupart des gens ont entre 3 et 7 casquettes. Si tu en as plus de 8, certaines sont probablement des projets déguisés.\n\n### Projets actifs\n\nUn projet **a une fin**. Si ça n'a pas de deadline (même floue), c'est une casquette.\n\n**Pour chaque projet :**\n\n- **Objectif clair** : qu'est-ce qui sera vrai quand c'est terminé ?\n- **Deadline** : même approximative\n- **Prochaines actions** : les 2 à 3 trucs concrets à faire\n- **Casquette liée** : sous quelle casquette ce projet tombe\n\n---\n\n## Section 04 : Ma phase de vie\n\nDans ton coffre, on organise ton journaling par **phases de vie**. Une phase, c'est une période avec un focus particulier : ça peut durer 3 semaines ou 6 mois. Regarde ces deux vidéos pour saisir le concept et savoir comment formuler la tienne.\n\nC'est quoi les phases de vie ?\n\nDéfinissez votre phase de vie\n\nQuand ton focus change (nouveau projet, déménagement, changement de cap), tu ouvres une nouvelle phase avec `/new-life-phase`. Chaque phase a son propre dossier dans ton coffre, avec une intention, des objectifs, et c'est là que vivent tes notes quotidiennes et hebdomadaires. Ça te permet de retrouver facilement ce que tu faisais à une période donnée, et de faire un bilan quand tu passes à la suivante.\n\n### Ce que l'IA va te demander\n\n- **Nom de la phase** : \"Lancement solo\", \"Scale & Systems\", \"Reconstruction\"...\n- **Période estimée** : quand ça a commencé, durée estimée\n- **Intention** : en 2 à 3 phrases, le fil rouge de cette période\n- **Objectifs de la phase** : 3 max, concrets, mesurables\n- **Contraintes** : temps dispo, énergie, budget, obligations\n\n### Les stratégies par état\n\nUn concept puissant : au lieu de planifier ta journée minute par minute, tu définis ce que tu fais en fonction de ton état.\n\n- **Quand je suis surchargé** : comment je me recentre, quelles tâches je priorise\n- **Quand je suis curieux/dispersé** : comment je canalise, quelles explorations sont autorisées\n- **Quand je suis fatigué** : tâches légères autorisées, interdictions, récupération\n- **Quand je suis dans le FLOW** : comment je maximise, comment je protège ce temps\n\n---\n\n## Section 05 : Mon business (si applicable)\n\nSi tu as une activité indépendante. L'IA te demandera :\n\n- **Positionnement** : quoi, pour qui, pourquoi toi\n- **Offres et tarifs** : ce que tu vends, à quel prix\n- **Clients** : profil type, nombre actuel\n- **Métriques clés** : CA, MRR, taux de conversion, NPS...\n- **Acquisition** : comment tu trouves tes clients (réseaux sociaux, SEO, bouche-à-oreille, publicité, partenariats...). Qu'est-ce qui fonctionne le mieux et qu'est-ce que tu voudrais développer.\n- **Delivery** : le parcours client de A à Z, de l'achat à la livraison du résultat. Tes process, tes outils, ce qui est automatisé et ce qui est manuel.\n- **Équipe** : si applicable\n- **Stack technique** : outils utilisés quotidiennement\n- **Présence en ligne** : URLs\n\n**Plus tu es précis, mieux l'IA t'aide.** Donne des chiffres, des noms, des URLs.\n\n---\n\n## Conseils pour bien répondre\n\n- **Sois honnête.** C'est pour l'IA, pas pour un recruteur.\n- **Sois précis.** Chiffres, dates, exemples concrets. L'IA travaille avec du contexte.\n- **Utilise SuperWhisper.** Parler est plus naturel et plus rapide qu'écrire.\n- **Ne te censure pas.** Tes faiblesses, tes doutes, tes contraintes : tout est utile.\n- **Prends ton temps.** Si tu fais l'option B (document écrit), compte 2 à 3 heures. Si tu fais l'option A (conversation), ça ira plus vite.\n\n---\n\n## Étape 3 : Après l'initialisation\n\nUne fois `/initialisation` terminée :\n\n1. **Redémarre Obsidian** pour que les plugins se configurent correctement\n2. **Parcours les fichiers créés** : ouvre `Moi.md`, ta note de phase, ta première casquette. Vérifie que ça te ressemble.\n3. **Teste les daily notes** : clique sur un jour dans le calendrier Obsidian. Une daily note se crée automatiquement dans ta phase de vie active.\n\nSi quelque chose ne te plaît pas, dis-le à ton IA dans OpenCode Desktop. Elle modifie les fichiers en quelques secondes.\n\n---\n\n## Tu peux déjà commencer à l'utiliser\n\nTon système est en place. N'attends pas la semaine 3 pour en tirer de la valeur. Commence dès maintenant à prendre des notes, capturer des idées, poser des questions à ton IA sur tes projets.\n\nSi c'est un peu brouillon au début, c'est normal et sans conséquence : tu peux restructurer, réorganiser et renommer n'importe quoi à tout moment. L'IA peut t'aider à reclasser plus tard. Plus tu commences tôt, plus elle aura de contexte pour t'aider, et meilleur sera tout ce qu'on construit dans les semaines suivantes.\n\n---\n\n## Découvrir les autres skills\n\nPendant que tu travailles, n'hésite pas à explorer les autres skills disponibles dans ton coffre. Tape `/` dans OpenCode Desktop pour voir la liste. Tu en trouveras pour :\n\n- **Routines quotidiennes** : `/daily-review`, `/weekly-review`, `/done`, `/inbox-processor`\n- **Réflexion** : `/thinking-partner`, `/research-assistant`, `/notes-permanentes`\n- **Configuration** : `/connect-mcp`, `/create-skill`, `/new-life-phase`, `/import`\n- **Process (semaine 2)** : `/map-process`, `/new-automation`\n- **Édition** : `/de-ai-ify`\n\nChaque skill est un fichier Markdown dans `Second Cerveau/4 TOOLS/skills/`. Tu peux les ouvrir dans Obsidian pour comprendre comment ils fonctionnent, voire les modifier à ta sauce.\n\n---\n\n## Checklist\n\n- /initialisation lancé dans OpenCode Desktop\n- L'IA connaît mon prénom et j'ai choisi son prénom\n- Section 'Qui je suis' remplie (parcours, fonctionnement, passions)\n- Section 'Ma vision' remplie (journée idéale, année, 5 ans, actions essentielles)\n- Section 'Casquettes et projets' remplie (rôles + projets actifs)\n- Section 'Phase de vie' remplie (nom, intention, objectifs, contraintes)\n- Section 'Business' remplie si applicable\n- Récapitulatif validé, fichiers générés\n- Moi.md et Mon Parcours.md créés dans 2 CASQUETTES/Sur ma vie/\n- Au moins une casquette et un projet créés\n- Obsidian redémarré : plugins daily et weekly notes configurés\n- Daily note testée via le calendrier\n\n> Output attendu : un coffre Obsidian entièrement personnalisé, connecté à ton IA, avec ton contexte, tes casquettes, tes projets et ta phase de vie. Ton système est opérationnel. Tu es prêt pour la Weekly Review et la suite du bootcamp.",
      "assets": [],
      "links": [
        {
          "text": "16Personalities",
          "url": "https://www.16personalities.com/fr"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/8c34da8c-1bc3-4b36-816a-e3249297a140?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 1,
          "provider": "Bunny Stream",
          "title": "C'est quoi une vision ?",
          "title_source": "iframe-title",
          "video_id": "8c34da8c-1bc3-4b36-816a-e3249297a140",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/8c34da8c-1bc3-4b36-816a-e3249297a140?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/b3ec10cb-cd87-42f8-b515-8b332a448480?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Définissez votre vision",
          "title_source": "iframe-title",
          "video_id": "b3ec10cb-cd87-42f8-b515-8b332a448480",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/b3ec10cb-cd87-42f8-b515-8b332a448480?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 3,
          "provider": "Bunny Stream",
          "title": "C'est quoi les phases de vie ?",
          "title_source": "iframe-title",
          "video_id": "a3fdb469-bc89-471b-a58f-a2d022f53e07",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 4,
          "provider": "Bunny Stream",
          "title": "Définissez votre phase de vie",
          "title_source": "iframe-title",
          "video_id": "fa1e6e29-ae42-427f-814c-eb52583b7961",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        }
      ],
      "captured_at": "2026-08-03T10:05:15.320Z",
      "counts": {
        "code_blocks": 31,
        "headings": 29,
        "iframes": 4,
        "images": 0,
        "links": 1,
        "text_chars": 14997
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "16-semaine-1-importer-notes",
      "order": 16,
      "kind": "subsection",
      "section": "04-initialisation",
      "title": "Importer ses notes existantes",
      "slug": "semaine-1-importer-notes",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-importer-notes",
      "summary": "Migrer tes notes depuis Notion, Evernote, Google Keep, Bear ou Apple Notes dans ton nouveau vault.",
      "objective": "",
      "expected_output": "",
      "content_html": "<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Cette leçon est optionnelle si tu pars de zéro.</strong> Si tu as déjà des notes ou des chats Claude / ChatGPT que tu utilises encore, lis-la avant de lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code>. Elle t'évitera d'importer n'importe quoi n'importe comment.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pourquoi-importer\">Pourquoi importer ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA est aussi puissante que ce qu'elle sait de toi. Si tu as passé des années à accumuler des notes, des process, des réflexions, des conversations avec Claude ou ChatGPT : tout ça est du contexte dormant. L'objectif de l'import, c'est de le <strong class=\"font-semibold text-foreground\">réveiller</strong> : transformer ce passé en contexte actif que l'IA peut utiliser pour travailler avec toi.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Mais attention : on n'importe pas tout, et on n'importe pas tout d'un coup.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-as-tu-vraiment-envie-dimporter\">Étape 1 : As-tu vraiment envie d'importer ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avant de tout télécharger, pose-toi la question honnêtement. Importer prend du temps et de l'attention. Si tu importes des piles de notes qui ne te servent plus, tu pollues ton coffre et ton IA passera son temps à lire des trucs morts.</p>\n<div class=\"my-8 rounded-xl border border-zinc-200 bg-white overflow-hidden\"><div class=\"grid grid-cols-1 sm:grid-cols-2 divide-y sm:divide-y-0 sm:divide-x divide-zinc-200\"><div class=\"p-6\"><div class=\"text-sm font-bold text-emerald-600 uppercase tracking-wider mb-3\">Importe si...</div><div class=\"text-sm text-zinc-600 space-y-2\"><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Tu as un corpus de notes ou de chats vraiment utiles que tu consultes encore aujourd'hui</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Tu veux que l'IA connaisse ton passé pour mieux travailler sur tes projets actuels</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Tu as des process documentés que tu réutilises régulièrement</div></div></div><div class=\"p-6\"><div class=\"text-sm font-bold text-zinc-500 uppercase tracking-wider mb-3\">N'importe pas si...</div><div class=\"text-sm text-zinc-600 space-y-2\"><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> Tu n'as pas regardé ces notes depuis 2 ans</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> Ce sont des tâches, du Kanban, du PM (laisse-les dans Notion / Linear)</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> C'est juste pour \"ne rien perdre\" : laisse en archive externe, c'est très bien</div></div></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"contexte-ou-project-management\">Contexte ou project management ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la première vraie question. Pour chaque source de notes, demande-toi :</p>\n<div class=\"my-8 rounded-xl border border-zinc-200 bg-white overflow-hidden\"><div class=\"grid grid-cols-1 sm:grid-cols-2 divide-y sm:divide-y-0 sm:divide-x divide-zinc-200\"><div class=\"p-6\"><div class=\"text-sm font-bold text-zinc-500 uppercase tracking-wider mb-3\">C'est du project management ?</div><div class=\"text-sm text-zinc-600 space-y-2 mb-4\"><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> Tâches à faire, deadlines, tableaux Kanban</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> Bases de données partagées en équipe</div><div class=\"flex items-start gap-2\"><span class=\"text-zinc-300 mt-0.5\">→</span> Tickets, sprints, roadmaps</div></div><div class=\"rounded-lg bg-zinc-50 border border-zinc-200 p-3 text-center\"><div class=\"text-sm font-bold text-zinc-700\">Laisse où c'est</div><div class=\"text-xs text-zinc-500 mt-1\">Notion, Airtable, Linear restent les meilleurs outils. L'IA s'y connecte via MCP.</div></div></div><div class=\"p-6\"><div class=\"text-sm font-bold text-emerald-600 uppercase tracking-wider mb-3\">C'est du contexte ?</div><div class=\"text-sm text-zinc-600 space-y-2 mb-4\"><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Notes de réunion, décisions, bilans</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Process, méthodes, façons de travailler</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Réflexions, journaling, notes de lecture</div><div class=\"flex items-start gap-2\"><span class=\"text-emerald-400 mt-0.5\">→</span> Conversations Claude / ChatGPT sur tes sujets</div></div><div class=\"rounded-lg bg-emerald-50 border border-emerald-200 p-3 text-center\"><div class=\"text-sm font-bold text-emerald-700\">Importe dans le coffre</div><div class=\"text-xs text-emerald-600 mt-1\">C'est ça qui enrichit l'IA.</div></div></div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-quest-ce-que-tu-vas-importer\">Étape 2 : Qu'est-ce que tu vas importer ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu décides d'importer, identifie tes sources. La grande majorité des gens ont deux familles principales :</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-sm font-bold text-blue-800 mb-2\">1. Tes chats historiques Claude / ChatGPT</div><div class=\"text-xs text-blue-600 mt-2\">Souvent des années de réflexion partagée avec ces modèles. La plupart des gens oublient cette source : c'est pourtant la plus dense en contexte sur toi, tes projets, ta façon de penser.</div></div><div class=\"rounded-xl border-2 border-purple-200 bg-purple-50 p-5\"><div class=\"text-sm font-bold text-purple-800 mb-2\">2. Tes anciennes notes</div><div class=\"text-xs text-purple-600 mt-2\">Notion, Evernote, Apple Notes, fichiers Markdown, Bear, Google Keep, dossiers de fichiers Word / PDF / PowerPoint... Tout ce que tu as accumulé ailleurs.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"et-aussi-actif-ou-archivé\">Et aussi : actif ou archivé ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour chaque source, deuxième question rapide : c'est actif ou c'est terminé ?</p>\n<div class=\"my-8 flex flex-col sm:flex-row gap-4 items-stretch\"><div class=\"flex-1 rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-sm font-bold text-blue-800 mb-2\">Actif ou de référence</div><div class=\"text-xs text-blue-600 space-y-1\"><div>→ Projets en cours</div><div>→ Process que tu utilises encore</div><div>→ Casquettes actuelles</div><div>→ Références consultées régulièrement</div></div><div class=\"mt-3 rounded-lg bg-white border border-blue-100 p-2 text-center\"><div class=\"text-xs font-bold text-blue-700\">→ PROJETS / CASQUETTES / RESSOURCES</div></div></div><div class=\"flex-1 rounded-xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-sm font-bold text-zinc-600 mb-2\">Terminé ou obsolète</div><div class=\"text-xs text-zinc-500 space-y-1\"><div>→ Projets terminés</div><div>→ Anciennes entreprises</div><div>→ Process abandonnés</div><div>→ Notes de 2019 sur sujets dépassés</div></div><div class=\"mt-3 rounded-lg bg-white border border-zinc-200 p-2 text-center\"><div class=\"text-xs font-bold text-zinc-500\">→ ARCHIVES (ou supprimer)</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Si tu doutes</strong>, mets dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code> et laisse l'IA proposer. Tu valides après.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-préalable-télécharger-et-préparer-tes-sources\">Étape 3 (préalable) : Télécharger et préparer tes sources</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette étape se fait <strong class=\"font-semibold text-foreground\">en amont, avant de lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code></strong>. Tu télécharges tout ce que tu veux importer et tu le déposes dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/_Import/</code>. Plus tu prépares proprement, mieux la commande travaille ensuite.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment-exporter-chaque-source\">Comment exporter chaque source</h3>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tip :</strong> lance les 4 exports IA en début de session. Ils arrivent par email pendant que tu fais autre chose (Claude/ChatGPT mettent souvent moins de 10 min, Gemini quelques minutes à plusieurs heures selon le volume). Les liens email Claude et ChatGPT sont valides <strong>24h seulement</strong> : télécharge dès que tu reçois.</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Conversations ChatGPT (OpenAI) :</strong> icône profil en bas à gauche → <strong class=\"font-semibold text-foreground\">Settings</strong> → <strong class=\"font-semibold text-foreground\">Data Controls</strong> → <strong class=\"font-semibold text-foreground\">Export Data</strong> → <strong class=\"font-semibold text-foreground\">Export</strong> → confirmer. Tu reçois un email avec un lien (valide 24h). L'export peut prendre <strong class=\"font-semibold text-foreground\">jusqu'à 7 jours</strong> mais arrive souvent en quelques minutes. Tu obtiens un ZIP avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">conversations.json</code> (historique complet, structure <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mapping{}</code> avec arbre des messages), <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">chat.html</code> (lisible), <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">user.json</code>, fichiers uploadés. Dépose le ZIP entier (ou juste <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">conversations.json</code>) dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Conversations Claude (Anthropic) :</strong> dans Claude web ou Claude Desktop, initiales en bas à gauche → <strong class=\"font-semibold text-foreground\">Settings</strong> → <strong class=\"font-semibold text-foreground\">Privacy</strong> → <strong class=\"font-semibold text-foreground\">Export data</strong>. Tu reçois un email avec un JSON (valide 24h). Structure : array de conversations, chacune avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">uuid</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">name</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">chat_messages[]</code> (sender human/assistant, text, attachments). <strong class=\"font-semibold text-foreground\">Pas d'export possible depuis l'app iOS/Android</strong>, fais-le depuis le web/desktop. Dépose le JSON dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Conversations Gemini (Google) :</strong> va sur <a href=\"https://takeout.google.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">takeout.google.com</a> → <strong class=\"font-semibold text-foreground\">Deselect all</strong> → coche uniquement <strong class=\"font-semibold text-foreground\">My Activity</strong> → clique \"All activity data included\" → <strong class=\"font-semibold text-foreground\">Deselect all</strong> → coche uniquement <strong class=\"font-semibold text-foreground\">Gemini Apps</strong> → OK → suis le wizard. Tu reçois un email Google avec lien Drive ou direct. Tu obtiens un ZIP avec HTML lisible <strong class=\"font-semibold text-foreground\">et</strong> JSON brut sous <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Takeout/My Activity/Gemini Apps/</code>. <strong class=\"font-semibold text-foreground\">Piège fréquent :</strong> sans le double filtre \"My Activity → Gemini Apps\", tu télécharges tout ton historique Google entier. Bien insister sur cette étape.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Conversations Mistral Le Chat :</strong> Le Chat → Settings → <strong class=\"font-semibold text-foreground\">Export data</strong> (téléchargement direct, pas d'email asynchrone). Format JSON, bulk export en beta en 2026. Bonus : dans Mistral Code, commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/cmd</code> pour exporter une conversation isolée au format portable.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Notion :</strong> Settings → Export all workspace content → format <strong class=\"font-semibold text-foreground\">Markdown &amp; CSV</strong>. Décompresse le ZIP, copie dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Evernote :</strong> Fichier → Exporter → format <strong class=\"font-semibold text-foreground\">ENEX</strong>. Dépose dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Apple Notes :</strong> pas d'export natif. Utilise <a href=\"https://apps.apple.com/app/exporter/id1099120373\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Exporter</a> (Mac, gratuit) → export Markdown.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Bear :</strong> export Markdown depuis l'app.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Google Keep :</strong> <a href=\"https://takeout.google.com/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">takeout.google.com</a>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Fichiers .md / .txt :</strong> copie directe.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"limites-à-connaître\">Limites à connaître</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Volume ChatGPT :</strong> un export de gros utilisateur peut faire 50 à 200 Mo de JSON. La commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> le découpe en notes individuelles, donc OK, mais sois patient au premier scan.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Auto-parsing :</strong> la commande reconnaît automatiquement les structures Claude (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">chat_messages</code>) et ChatGPT (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mapping</code>). Pour Gemini et Mistral, l'agent va devoir improviser ou tu peux convertir manuellement. Prévois un round dédié si tu as beaucoup de ces deux-là.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Conversations courtes (moins de 5 échanges) :</strong> sont mises en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ARCHIVE</code> par défaut. Bonne pratique pour ne pas polluer le coffre avec des micro-conversations sans valeur.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Conversations entières en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">KEEP_NOTE</code> :</strong> mauvaise idée. La valeur est diffuse dans un chat brut. Préfère toujours <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">EXTRACT_CONTEXT</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">SUMMARIZE</code>.</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"formats-reconnus-dans-import\">Formats reconnus dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code></h3>\n<div class=\"my-8 rounded-xl border border-zinc-200 bg-white overflow-hidden\"><div class=\"divide-y divide-zinc-100\"><div class=\"grid grid-cols-3 px-4 py-2 bg-zinc-50 text-xs font-semibold text-zinc-500 uppercase tracking-wide\"><div>Format</div><div>Compatibilité</div><div>Que faire</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center\"><div class=\"text-sm text-zinc-700\">Markdown (.md) / Texte (.txt)</div><div><span class=\"text-xs bg-emerald-100 text-emerald-700 px-2 py-0.5 rounded-full font-medium\">Direct</span></div><div class=\"text-xs text-zinc-500\">Copie dans _Import/ tel quel</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center\"><div class=\"text-sm text-zinc-700\">Export Notion / Evernote (ENEX)</div><div><span class=\"text-xs bg-emerald-100 text-emerald-700 px-2 py-0.5 rounded-full font-medium\">Direct</span></div><div class=\"text-xs text-zinc-500\">Décompresse si ZIP, copie dans _Import/</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center bg-blue-50/40\"><div class=\"text-sm text-zinc-700\">Conversations Claude / ChatGPT (JSON)</div><div><span class=\"text-xs bg-blue-100 text-blue-700 px-2 py-0.5 rounded-full font-medium\">Auto-parsé</span></div><div class=\"text-xs text-zinc-600\">Dépose le JSON, <code>/import</code> le découpe en une note par conversation</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center bg-amber-50/40\"><div class=\"text-sm text-zinc-700\">PDF, Word, PowerPoint, Excel</div><div><span class=\"text-xs bg-amber-100 text-amber-700 px-2 py-0.5 rounded-full font-medium\">Conversion auto</span></div><div class=\"text-xs text-zinc-600\"><code>/import</code> installe <strong>MarkItDown</strong> si besoin et convertit en .md</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center\"><div class=\"text-sm text-zinc-700\">Quelques images d'illustration</div><div><span class=\"text-xs bg-emerald-100 text-emerald-700 px-2 py-0.5 rounded-full font-medium\">OK</span></div><div class=\"text-xs text-zinc-500\">Si elles illustrent des notes précises, dans _Import/, l'IA les rattachera</div></div><div class=\"grid grid-cols-3 px-4 py-3 items-center bg-zinc-50/60\"><div class=\"text-sm text-zinc-700\">Bibliothèque d'images / vidéos</div><div><span class=\"text-xs bg-zinc-200 text-zinc-600 px-2 py-0.5 rounded-full font-medium\">À côté</span></div><div class=\"text-xs text-zinc-500\">Le coffre n'est pas une médiathèque. Garde ta base dans Drive, Dropbox ou un dossier dédié.</div></div></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Images :</strong> tu peux glisser <strong class=\"font-semibold text-foreground\">quelques images</strong> pour illustrer une note (un schéma, une capture). Ne rapatrie pas ta bibliothèque entière. Le coffre est un cerveau textuel, pas une photothèque. Pour une vraie médiathèque, garde un dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Médias/</code> à côté du Workspace, ou un Dropbox dédié.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"markitdown-installé-par-import\">MarkItDown : installé par <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as <strong class=\"font-semibold text-foreground\">rien à installer manuellement</strong> : à l'étape de préparation, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> détecte les PDF/Word/PowerPoint, vérifie si <a href=\"https://github.com/microsoft/markitdown\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">MarkItDown (Microsoft)</a> est dispo sur ta machine, et <strong class=\"font-semibold text-foreground\">l'installe à ta place s'il manque</strong> (avec confirmation). Tu n'as donc pas besoin de Python ou de bricoler en amont.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux quand même l'installer toi-même avant : colle ce prompt dans OpenCode Desktop avant de lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Installe MarkItDown sur ma machine. Source officielle :\nhttps://github.com/microsoft/markitdown\n\nDétecte mon OS et ce que j'ai déjà (Python, pip, uv, brew...),\nchoisis la meilleure méthode et fais-la tourner. Vérifie ensuite\nque `markitdown --help` fonctionne. Guide-moi si tu rencontres un\nblocage plutôt que de pousser un workaround.\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-importer-progressivement-pas-tout-dun-coup\">Étape 4 : Importer progressivement, pas tout d'un coup</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est <strong class=\"font-semibold text-foreground\">le principe le plus important</strong> de toute la leçon. Plus tu donnes peu à la fois à l'IA, mieux elle travaille.</p>\n<div class=\"my-8 rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-sm font-bold text-amber-800 mb-2\">Pourquoi pas tout d'un coup ?</div><div class=\"text-xs text-amber-700 space-y-1\"><div>→ Le contexte de l'IA est limité. Plus tu lui balances de notes en même temps, plus elle perd en finesse et en cohérence.</div><div>→ Tu ne peux pas vraiment valider 800 propositions de routage. Tu vas faire « OK » par fatigue.</div><div>→ En cas de gros loupé, tu reviens en arrière sur des centaines de fichiers déjà déplacés.</div></div><div class=\"text-sm font-bold text-amber-800 mt-4 mb-2\">Le bon réflexe : rounds courts et thématiques</div><div class=\"text-xs text-amber-700 space-y-1\"><div>→ <strong>Par source</strong> : un round Claude, un round ChatGPT, un round Notion. Pas tout mélangé.</div><div>→ <strong>Par batch de ~100 notes max</strong> : déjà beaucoup. Au-delà, l'IA dérape ou tu décroches.</div><div>→ <strong>Par projet ou casquette</strong> si tu as un très gros corpus : « cette semaine, j'importe tout ce qui touche au projet X » suffit comme cadre.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"un-workflow-type\">Un workflow type</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Semaine 1 :\n  Round 1 → Import des chats Claude (1 export JSON dans _Import/)\n  Round 2 → Import des chats ChatGPT (idem)\n\nSemaine 2 :\n  Round 3 → Import Notion : tout ce qui touche au projet A\n  Round 4 → Import Notion : tout ce qui touche aux casquettes Santé / Sport\n\nSemaine 3 :\n  Round 5 → Reste des notes Notion\n  Round 6 → Apple Notes / Bear / fichiers vrac\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Entre chaque round, tu peux relancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code>. Le dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code> est conçu pour ça : tu vides, tu remplis, tu relances.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-5-lancer-import-plan-mode-puis-build-mode\">Étape 5 : Lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> (plan mode puis build mode)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">_Import/</code> est prêt (avec les fichiers d'un round, pas tout en même temps), tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code>. La commande travaille en <strong class=\"font-semibold text-foreground\">deux temps clairs</strong> : plan d'abord, exécution ensuite.</p>\n<div class=\"my-8 flex flex-col sm:flex-row gap-4 items-stretch\"><div class=\"flex-1 rounded-xl border-2 border-purple-200 bg-purple-50 p-5\"><div class=\"text-sm font-bold text-purple-800 mb-2\">PLAN MODE</div><div class=\"text-xs text-purple-600 space-y-1\"><div>→ Alignement profond (contenu détaillé, intention, ce que tu sais déjà devoir archiver, projet central, budget tokens)</div><div>→ Préparation auto : MarkItDown installé si besoin, JSON Claude/ChatGPT parsés en notes individuelles</div><div>→ Scan initial : l'agent principal fait un <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ls</code> du dossier et échantillonne pour saisir le style du corpus</div><div>→ Table de routage : il lit Moi.md, projets, casquettes avec leurs mots-clés</div><div>→ Délégation à des sous-agents briefés (contexte vault + intention + corpus + mots-clés)</div><div>→ Plan global agrégé soumis à validation</div></div><div class=\"text-xs italic text-purple-500 mt-3\">Aucune écriture pendant cette phase. Tu peux ajuster note par note ou demander à voir le contenu d'un item avant de décider.</div></div><div class=\"flex-1 rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-bold text-emerald-800 mb-2\">BUILD MODE</div><div class=\"text-xs text-emerald-600 space-y-1\"><div>→ Exécution par lots de 15 items</div><div>→ Rapport intermédiaire après chaque lot</div><div>→ Pause / stop possible à tout moment</div><div>→ Récap final + feedback loop</div></div><div class=\"text-xs italic text-emerald-500 mt-3\">À la fin, l'IA te demande comment elle aurait pu faire mieux et te propose d'éditer son skill.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-4-verdicts-possibles-par-item\">Les 4 verdicts possibles par item</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ce qui rend <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> puissant. Pour chaque note ou conversation, l'IA tranche entre <strong class=\"font-semibold text-foreground\">quatre actions</strong>, pas une seule :</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-sm font-bold text-emerald-800\">KEEP_NOTE</div><div class=\"text-xs text-emerald-600 mt-2\">La note est utile telle quelle. Elle est rangée dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">1 PROJETS/</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">2 CASQUETTES/</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/</code>.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-sm font-bold text-blue-800\">EXTRACT_CONTEXT</div><div class=\"text-xs text-blue-600 mt-2\">L'info utile est extraite et ajoutée à <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Moi.md</code>, à la note du projet ou de la casquette. L'original part en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/_extraits/</code>.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-sm font-bold text-violet-800\">SUMMARIZE</div><div class=\"text-xs text-violet-600 mt-2\">Plusieurs notes redondantes sur un sujet → une seule note de synthèse. Les sources partent en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/_resumes-sources/</code>.</div></div><div class=\"rounded-xl border-2 border-zinc-300 bg-zinc-50 p-5\"><div class=\"text-sm font-bold text-zinc-700\">ARCHIVE</div><div class=\"text-xs text-zinc-500 mt-2\">Bruce Lee : « discard what is useless ». La note part en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code>.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment-lancer\">Comment lancer</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/import\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. L'IA prend le relais et te guide depuis l'alignement jusqu'au feedback final.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"coût-et-clé-openrouter-pour-les-gros-rounds\">Coût et clé OpenRouter (pour les gros rounds)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si un round dépasse les 100 items, ou si tu importes plusieurs années de chats, les sous-agents de scan peuvent <strong class=\"font-semibold text-foreground\">consommer beaucoup de tokens</strong>. Trois options pour ne pas dégommer ton abonnement principal :</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-1-clé-openrouter-avec-deepseek-v4-flash\">Option 1 : clé OpenRouter avec DeepSeek V4 Flash</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu fournis à <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/import</code> une clé OpenRouter, et la commande route les sous-agents de scan/routing vers <strong class=\"font-semibold text-foreground\">DeepSeek V4 Flash</strong> (10x moins cher qu'un modèle frontier, largement suffisant pour du routing de notes). Ton abonnement ChatGPT Plus ou Claude Max reste libre pour le reste de ta journée.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À l'alignement initial (plan mode), indique que tu as une clé OpenRouter. L'IA te confirme et l'utilise pour les sous-agents.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-2-plan-max-à-100-mois-minimum\">Option 2 : plan Max à 100 €/mois minimum</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne veux pas gérer une clé séparée, <strong class=\"font-semibold text-foreground\">assure-toi d'avoir un plan Max</strong> (Claude Max à 100 €/mois ou ChatGPT Pro). Les plans basiques ne tiennent pas un gros round.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-3-juste-faire-des-rounds-plus-petits\">Option 3 : juste faire des rounds plus petits</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est l'esprit de l'étape 4 : si tu fais des rounds de 100 notes ou 1 export Claude à la fois, le coût reste raisonnable même sur un plan classique.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais distinguer contexte (à importer) et project management (à laisser dans Notion / Linear) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais distinguer contexte (à importer) et project management (à laisser dans Notion / Linear)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai identifié mes deux familles de sources : chats Claude/ChatGPT + anciennes notes — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai identifié mes deux familles de sources : chats Claude/ChatGPT + anciennes notes</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai exporté en JSON les conversations Claude (Settings → Privacy → Export data) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai exporté en JSON les conversations Claude (Settings → Privacy → Export data)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai exporté en JSON les conversations ChatGPT (Settings → Data Controls → Export) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai exporté en JSON les conversations ChatGPT (Settings → Data Controls → Export)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai exporté mes notes Notion / Evernote / Apple Notes / autres dans les bons formats — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai exporté mes notes Notion / Evernote / Apple Notes / autres dans les bons formats</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que je n'importe pas tout d'un coup : rounds courts (~100 notes max) et séparés par source — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que je n'importe pas tout d'un coup : rounds courts (~100 notes max) et séparés par source</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que /import installe MarkItDown lui-même si j'ai des PDF/Word/PowerPoint — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que /import installe MarkItDown lui-même si j'ai des PDF/Word/PowerPoint</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi mon budget : clé OpenRouter DeepSeek, plan Max suffisant, ou rounds courts — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi mon budget : clé OpenRouter DeepSeek, plan Max suffisant, ou rounds courts</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Premier round préparé dans _Import/ : 1 source à la fois — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Premier round préparé dans _Import/ : 1 source à la fois</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Lancé /import → conversation d'alignement faite (intention claire) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Lancé /import → conversation d'alignement faite (intention claire)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"PLAN MODE : plan de routing validé avant exécution — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">PLAN MODE : plan de routing validé avant exécution</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"BUILD MODE : exécution par lots, sources rangées dans les bons dossiers IPCRA — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">BUILD MODE : exécution par lots, sources rangées dans les bons dossiers IPCRA</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Feedback donné à la commande à la fin — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Feedback donné à la commande à la fin</span></li></ul>",
      "content_markdown": "> Cette leçon est optionnelle si tu pars de zéro. Si tu as déjà des notes ou des chats Claude / ChatGPT que tu utilises encore, lis-la avant de lancer /import. Elle t'évitera d'importer n'importe quoi n'importe comment.\n\n---\n\n## Pourquoi importer ?\n\nL'IA est aussi puissante que ce qu'elle sait de toi. Si tu as passé des années à accumuler des notes, des process, des réflexions, des conversations avec Claude ou ChatGPT : tout ça est du contexte dormant. L'objectif de l'import, c'est de le **réveiller** : transformer ce passé en contexte actif que l'IA peut utiliser pour travailler avec toi.\n\nMais attention : on n'importe pas tout, et on n'importe pas tout d'un coup.\n\n---\n\n## Étape 1 : As-tu vraiment envie d'importer ?\n\nAvant de tout télécharger, pose-toi la question honnêtement. Importer prend du temps et de l'attention. Si tu importes des piles de notes qui ne te servent plus, tu pollues ton coffre et ton IA passera son temps à lire des trucs morts.\n\nImporte si...\n\n→ Tu as un corpus de notes ou de chats vraiment utiles que tu consultes encore aujourd'hui\n\n→ Tu veux que l'IA connaisse ton passé pour mieux travailler sur tes projets actuels\n\n→ Tu as des process documentés que tu réutilises régulièrement\n\nN'importe pas si...\n\n→ Tu n'as pas regardé ces notes depuis 2 ans\n\n→ Ce sont des tâches, du Kanban, du PM (laisse-les dans Notion / Linear)\n\n→ C'est juste pour \"ne rien perdre\" : laisse en archive externe, c'est très bien\n\n### Contexte ou project management ?\n\nC'est la première vraie question. Pour chaque source de notes, demande-toi :\n\nC'est du project management ?\n\n→ Tâches à faire, deadlines, tableaux Kanban\n\n→ Bases de données partagées en équipe\n\n→ Tickets, sprints, roadmaps\n\nLaisse où c'est\n\nNotion, Airtable, Linear restent les meilleurs outils. L'IA s'y connecte via MCP.\n\nC'est du contexte ?\n\n→ Notes de réunion, décisions, bilans\n\n→ Process, méthodes, façons de travailler\n\n→ Réflexions, journaling, notes de lecture\n\n→ Conversations Claude / ChatGPT sur tes sujets\n\nImporte dans le coffre\n\nC'est ça qui enrichit l'IA.\n\n---\n\n## Étape 2 : Qu'est-ce que tu vas importer ?\n\nSi tu décides d'importer, identifie tes sources. La grande majorité des gens ont deux familles principales :\n\n1. Tes chats historiques Claude / ChatGPT\n\nSouvent des années de réflexion partagée avec ces modèles. La plupart des gens oublient cette source : c'est pourtant la plus dense en contexte sur toi, tes projets, ta façon de penser.\n\n2. Tes anciennes notes\n\nNotion, Evernote, Apple Notes, fichiers Markdown, Bear, Google Keep, dossiers de fichiers Word / PDF / PowerPoint... Tout ce que tu as accumulé ailleurs.\n\n### Et aussi : actif ou archivé ?\n\nPour chaque source, deuxième question rapide : c'est actif ou c'est terminé ?\n\nActif ou de référence\n\n→ Projets en cours\n\n→ Process que tu utilises encore\n\n→ Casquettes actuelles\n\n→ Références consultées régulièrement\n\n→ PROJETS / CASQUETTES / RESSOURCES\n\nTerminé ou obsolète\n\n→ Projets terminés\n\n→ Anciennes entreprises\n\n→ Process abandonnés\n\n→ Notes de 2019 sur sujets dépassés\n\n→ ARCHIVES (ou supprimer)\n\n**Si tu doutes**, mets dans `_Import/` et laisse l'IA proposer. Tu valides après.\n\n---\n\n## Étape 3 (préalable) : Télécharger et préparer tes sources\n\nCette étape se fait **en amont, avant de lancer `/import`**. Tu télécharges tout ce que tu veux importer et tu le déposes dans `Second Cerveau/_Import/`. Plus tu prépares proprement, mieux la commande travaille ensuite.\n\n### Comment exporter chaque source\n\n> Tip : lance les 4 exports IA en début de session. Ils arrivent par email pendant que tu fais autre chose (Claude/ChatGPT mettent souvent moins de 10 min, Gemini quelques minutes à plusieurs heures selon le volume). Les liens email Claude et ChatGPT sont valides 24h seulement : télécharge dès que tu reçois.\n\n**Conversations ChatGPT (OpenAI) :** icône profil en bas à gauche → **Settings** → **Data Controls** → **Export Data** → **Export** → confirmer. Tu reçois un email avec un lien (valide 24h). L'export peut prendre **jusqu'à 7 jours** mais arrive souvent en quelques minutes. Tu obtiens un ZIP avec `conversations.json` (historique complet, structure `mapping{}` avec arbre des messages), `chat.html` (lisible), `user.json`, fichiers uploadés. Dépose le ZIP entier (ou juste `conversations.json`) dans `_Import/`.\n\n**Conversations Claude (Anthropic) :** dans Claude web ou Claude Desktop, initiales en bas à gauche → **Settings** → **Privacy** → **Export data**. Tu reçois un email avec un JSON (valide 24h). Structure : array de conversations, chacune avec `uuid`, `name`, `chat_messages[]` (sender human/assistant, text, attachments). **Pas d'export possible depuis l'app iOS/Android**, fais-le depuis le web/desktop. Dépose le JSON dans `_Import/`.\n\n**Conversations Gemini (Google) :** va sur [takeout.google.com](https://takeout.google.com) → **Deselect all** → coche uniquement **My Activity** → clique \"All activity data included\" → **Deselect all** → coche uniquement **Gemini Apps** → OK → suis le wizard. Tu reçois un email Google avec lien Drive ou direct. Tu obtiens un ZIP avec HTML lisible **et** JSON brut sous `Takeout/My Activity/Gemini Apps/`. **Piège fréquent :** sans le double filtre \"My Activity → Gemini Apps\", tu télécharges tout ton historique Google entier. Bien insister sur cette étape.\n\n**Conversations Mistral Le Chat :** Le Chat → Settings → **Export data** (téléchargement direct, pas d'email asynchrone). Format JSON, bulk export en beta en 2026. Bonus : dans Mistral Code, commande `/cmd` pour exporter une conversation isolée au format portable.\n\n**Notion :** Settings → Export all workspace content → format **Markdown & CSV**. Décompresse le ZIP, copie dans `_Import/`.\n\n**Evernote :** Fichier → Exporter → format **ENEX**. Dépose dans `_Import/`.\n\n**Apple Notes :** pas d'export natif. Utilise [Exporter](https://apps.apple.com/app/exporter/id1099120373) (Mac, gratuit) → export Markdown.\n\n**Bear :** export Markdown depuis l'app.\n\n**Google Keep :** [takeout.google.com](https://takeout.google.com).\n\n**Fichiers .md / .txt :** copie directe.\n\n### Limites à connaître\n\n- **Volume ChatGPT :** un export de gros utilisateur peut faire 50 à 200 Mo de JSON. La commande `/import` le découpe en notes individuelles, donc OK, mais sois patient au premier scan.\n- **Auto-parsing :** la commande reconnaît automatiquement les structures Claude (`chat_messages`) et ChatGPT (`mapping`). Pour Gemini et Mistral, l'agent va devoir improviser ou tu peux convertir manuellement. Prévois un round dédié si tu as beaucoup de ces deux-là.\n- **Conversations courtes (moins de 5 échanges) :** sont mises en `ARCHIVE` par défaut. Bonne pratique pour ne pas polluer le coffre avec des micro-conversations sans valeur.\n- **Conversations entières en `KEEP_NOTE` :** mauvaise idée. La valeur est diffuse dans un chat brut. Préfère toujours `EXTRACT_CONTEXT` ou `SUMMARIZE`.\n\n### Formats reconnus dans `_Import/`\n\nFormat\n\nCompatibilité\n\nQue faire\n\nMarkdown (.md) / Texte (.txt)\n\nDirect\n\nCopie dans _Import/ tel quel\n\nExport Notion / Evernote (ENEX)\n\nDirect\n\nDécompresse si ZIP, copie dans _Import/\n\nConversations Claude / ChatGPT (JSON)\n\nAuto-parsé\n\nDépose le JSON, `/import` le découpe en une note par conversation\n\nPDF, Word, PowerPoint, Excel\n\nConversion auto\n\n`/import` installe **MarkItDown** si besoin et convertit en .md\n\nQuelques images d'illustration\n\nOK\n\nSi elles illustrent des notes précises, dans _Import/, l'IA les rattachera\n\nBibliothèque d'images / vidéos\n\nÀ côté\n\nLe coffre n'est pas une médiathèque. Garde ta base dans Drive, Dropbox ou un dossier dédié.\n\n> Images : tu peux glisser quelques images pour illustrer une note (un schéma, une capture). Ne rapatrie pas ta bibliothèque entière. Le coffre est un cerveau textuel, pas une photothèque. Pour une vraie médiathèque, garde un dossier Médias/ à côté du Workspace, ou un Dropbox dédié.\n\n### MarkItDown : installé par `/import`\n\nTu n'as **rien à installer manuellement** : à l'étape de préparation, `/import` détecte les PDF/Word/PowerPoint, vérifie si [MarkItDown (Microsoft)](https://github.com/microsoft/markitdown) est dispo sur ta machine, et **l'installe à ta place s'il manque** (avec confirmation). Tu n'as donc pas besoin de Python ou de bricoler en amont.\n\nSi tu veux quand même l'installer toi-même avant : colle ce prompt dans OpenCode Desktop avant de lancer `/import` :\n\n```\nInstalle MarkItDown sur ma machine. Source officielle :\nhttps://github.com/microsoft/markitdown\n\nDétecte mon OS et ce que j'ai déjà (Python, pip, uv, brew...),\nchoisis la meilleure méthode et fais-la tourner. Vérifie ensuite\nque `markitdown --help` fonctionne. Guide-moi si tu rencontres un\nblocage plutôt que de pousser un workaround.\n```\n\n---\n\n## Étape 4 : Importer progressivement, pas tout d'un coup\n\nC'est **le principe le plus important** de toute la leçon. Plus tu donnes peu à la fois à l'IA, mieux elle travaille.\n\nPourquoi pas tout d'un coup ?\n\n→ Le contexte de l'IA est limité. Plus tu lui balances de notes en même temps, plus elle perd en finesse et en cohérence.\n\n→ Tu ne peux pas vraiment valider 800 propositions de routage. Tu vas faire « OK » par fatigue.\n\n→ En cas de gros loupé, tu reviens en arrière sur des centaines de fichiers déjà déplacés.\n\nLe bon réflexe : rounds courts et thématiques\n\n→ **Par source** : un round Claude, un round ChatGPT, un round Notion. Pas tout mélangé.\n\n→ **Par batch de ~100 notes max** : déjà beaucoup. Au-delà, l'IA dérape ou tu décroches.\n\n→ **Par projet ou casquette** si tu as un très gros corpus : « cette semaine, j'importe tout ce qui touche au projet X » suffit comme cadre.\n\n### Un workflow type\n\n```\nSemaine 1 :\n  Round 1 → Import des chats Claude (1 export JSON dans _Import/)\n  Round 2 → Import des chats ChatGPT (idem)\n\nSemaine 2 :\n  Round 3 → Import Notion : tout ce qui touche au projet A\n  Round 4 → Import Notion : tout ce qui touche aux casquettes Santé / Sport\n\nSemaine 3 :\n  Round 5 → Reste des notes Notion\n  Round 6 → Apple Notes / Bear / fichiers vrac\n```\n\nEntre chaque round, tu peux relancer `/import`. Le dossier `_Import/` est conçu pour ça : tu vides, tu remplis, tu relances.\n\n---\n\n## Étape 5 : Lancer `/import` (plan mode puis build mode)\n\nQuand `_Import/` est prêt (avec les fichiers d'un round, pas tout en même temps), tu lances `/import`. La commande travaille en **deux temps clairs** : plan d'abord, exécution ensuite.\n\nPLAN MODE\n\n→ Alignement profond (contenu détaillé, intention, ce que tu sais déjà devoir archiver, projet central, budget tokens)\n\n→ Préparation auto : MarkItDown installé si besoin, JSON Claude/ChatGPT parsés en notes individuelles\n\n→ Scan initial : l'agent principal fait un `ls` du dossier et échantillonne pour saisir le style du corpus\n\n→ Table de routage : il lit Moi.md, projets, casquettes avec leurs mots-clés\n\n→ Délégation à des sous-agents briefés (contexte vault + intention + corpus + mots-clés)\n\n→ Plan global agrégé soumis à validation\n\nAucune écriture pendant cette phase. Tu peux ajuster note par note ou demander à voir le contenu d'un item avant de décider.\n\nBUILD MODE\n\n→ Exécution par lots de 15 items\n\n→ Rapport intermédiaire après chaque lot\n\n→ Pause / stop possible à tout moment\n\n→ Récap final + feedback loop\n\nÀ la fin, l'IA te demande comment elle aurait pu faire mieux et te propose d'éditer son skill.\n\n### Les 4 verdicts possibles par item\n\nC'est ce qui rend `/import` puissant. Pour chaque note ou conversation, l'IA tranche entre **quatre actions**, pas une seule :\n\nKEEP_NOTE\n\nLa note est utile telle quelle. Elle est rangée dans `1 PROJETS/`, `2 CASQUETTES/` ou `3 RESSOURCES/`.\n\nEXTRACT_CONTEXT\n\nL'info utile est extraite et ajoutée à `Moi.md`, à la note du projet ou de la casquette. L'original part en `5 ARCHIVE/_extraits/`.\n\nSUMMARIZE\n\nPlusieurs notes redondantes sur un sujet → une seule note de synthèse. Les sources partent en `5 ARCHIVE/_resumes-sources/`.\n\nARCHIVE\n\nBruce Lee : « discard what is useless ». La note part en `5 ARCHIVE/`.\n\n### Comment lancer\n\n```\n/import\n```\n\nC'est tout. L'IA prend le relais et te guide depuis l'alignement jusqu'au feedback final.\n\n---\n\n## Coût et clé OpenRouter (pour les gros rounds)\n\nSi un round dépasse les 100 items, ou si tu importes plusieurs années de chats, les sous-agents de scan peuvent **consommer beaucoup de tokens**. Trois options pour ne pas dégommer ton abonnement principal :\n\n### Option 1 : clé OpenRouter avec DeepSeek V4 Flash\n\nTu fournis à `/import` une clé OpenRouter, et la commande route les sous-agents de scan/routing vers **DeepSeek V4 Flash** (10x moins cher qu'un modèle frontier, largement suffisant pour du routing de notes). Ton abonnement ChatGPT Plus ou Claude Max reste libre pour le reste de ta journée.\n\nÀ l'alignement initial (plan mode), indique que tu as une clé OpenRouter. L'IA te confirme et l'utilise pour les sous-agents.\n\n### Option 2 : plan Max à 100 €/mois minimum\n\nSi tu ne veux pas gérer une clé séparée, **assure-toi d'avoir un plan Max** (Claude Max à 100 €/mois ou ChatGPT Pro). Les plans basiques ne tiennent pas un gros round.\n\n### Option 3 : juste faire des rounds plus petits\n\nC'est l'esprit de l'étape 4 : si tu fais des rounds de 100 notes ou 1 export Claude à la fois, le coût reste raisonnable même sur un plan classique.\n\n---\n\n- Je sais distinguer contexte (à importer) et project management (à laisser dans Notion / Linear)\n- J'ai identifié mes deux familles de sources : chats Claude/ChatGPT + anciennes notes\n- J'ai exporté en JSON les conversations Claude (Settings → Privacy → Export data)\n- J'ai exporté en JSON les conversations ChatGPT (Settings → Data Controls → Export)\n- J'ai exporté mes notes Notion / Evernote / Apple Notes / autres dans les bons formats\n- Je sais que je n'importe pas tout d'un coup : rounds courts (~100 notes max) et séparés par source\n- Je sais que /import installe MarkItDown lui-même si j'ai des PDF/Word/PowerPoint\n- J'ai choisi mon budget : clé OpenRouter DeepSeek, plan Max suffisant, ou rounds courts\n- Premier round préparé dans _Import/ : 1 source à la fois\n- Lancé /import → conversation d'alignement faite (intention claire)\n- PLAN MODE : plan de routing validé avant exécution\n- BUILD MODE : exécution par lots, sources rangées dans les bons dossiers IPCRA\n- Feedback donné à la commande à la fin",
      "assets": [],
      "links": [
        {
          "text": "takeout.google.com",
          "url": "https://takeout.google.com/"
        },
        {
          "text": "Exporter",
          "url": "https://apps.apple.com/app/exporter/id1099120373"
        },
        {
          "text": "takeout.google.com",
          "url": "https://takeout.google.com/"
        },
        {
          "text": "MarkItDown (Microsoft)",
          "url": "https://github.com/microsoft/markitdown"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:05:16.741Z",
      "counts": {
        "code_blocks": 53,
        "headings": 19,
        "iframes": 0,
        "images": 0,
        "links": 4,
        "text_chars": 13505
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "17-semaine-1-deja-second-cerveau",
      "order": 17,
      "kind": "subsection",
      "section": "04-initialisation",
      "title": "Et si j'avais déjà un second cerveau ?",
      "slug": "semaine-1-deja-second-cerveau",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-deja-second-cerveau",
      "summary": "Que faire si tu arrives avec un coffre Obsidian existant : garder ta structure (et adapter mes skills) ou adopter celle de Prisme (et importer ton contenu). Vidéo Loom + 2 prompts prêts à coller dans OpenCode.",
      "objective": "Choisir en conscience entre garder ta structure existante ou adopter celle de Prisme One, et lancer le bon prompt pour migrer sans tout perdre.",
      "expected_output": "Soit les skills Prisme adaptés à ta structure (scénario A), soit ton contenu importé dans la structure Prisme + /initialisation passée en mode 'coffre existant' (scénario B).",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"tu-as-déjà-un-second-cerveau\">Tu as déjà un second cerveau ?</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Et si j'avais déjà un second cerveau ?</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/ef208f0faa7647cea9f691ca684e3edb\" title=\"Et si j'avais déjà un second cerveau ?\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Deux scénarios courants : garder ta structure existante ou adopter celle de Prisme. Comment trancher, et le prompt pour chaque cas.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu regardes cette leçon, c'est que tu arrives au bootcamp avec un coffre Obsidian déjà en place. Soit parce que tu as suivi <strong class=\"font-semibold text-foreground\">Atomic Knowledge</strong> dans le passé (donc ta structure ressemble à la mienne), soit parce que tu as construit ta propre ontologie au fil du temps.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux questions reviennent toujours :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Faut-il <strong class=\"font-semibold text-foreground\">adopter ma structure</strong> (celle du Vault Template Prisme One) ou <strong class=\"font-semibold text-foreground\">garder la tienne</strong> ?</li>\n<li class=\"leading-7\">Faut-il <strong class=\"font-semibold text-foreground\">refaire <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code></strong> ? Et comment importer l'existant sans tout perdre ?</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette leçon te donne les deux scénarios et les prompts pour chacun.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Avant tout, respire.</strong> Ton coffre existant est un <strong class=\"font-semibold text-foreground\">atout</strong>, pas un problème : c'est du contenu, du contexte, parfois des années de notes que l'IA va pouvoir exploiter directement. La règle de cette leçon : <strong class=\"font-semibold text-foreground\">on ne casse rien, on adapte</strong>. Quel que soit ton point de départ (ancien élève Atomic Knowledge, utilisateur Claude Code, ontologie maison très personnelle), il existe un chemin propre pour intégrer Prisme One sans rien perdre. À la dernière promo, ceux qui ont décroché ont surtout voulu tout migrer d'un coup, en force. On va faire l'inverse : par étapes, en gardant un filet de sécurité à chaque instant.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"dabord-prends-une-vraie-décision\">D'abord : prends une vraie décision</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le coffre Prisme One est le résultat de <strong class=\"font-semibold text-foreground\">plusieurs années d'itération</strong>. La structure (IPCRA), les phases de vie, les rituels (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/inbox-processor</code>), le ruissellement automatique, tout ça est interconnecté. C'est une vraie ontologie pensée pour fonctionner avec une IA en permanence.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Mon conseil</strong> : avant de décider de garder ta structure, lis (ou relis) ces 4 leçons :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-3\"><a href=\"../../../01-anatomie/lessons/1-semaine-1-anatomie-systeme/semaine-1-anatomie-systeme.html\" class=\"rounded-lg border border-zinc-200 bg-white p-4 hover:border-blue-300 hover:bg-blue-50/30 transition-colors no-underline\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Comprendre l'anatomie de ton système</div><div class=\"text-xs text-zinc-600\">La vision globale : workspace, coffre, agents, rituels.</div></a><a href=\"../../../06-second-cerveau/lessons/19-semaine-1-principes-second-cerveau/semaine-1-principes-second-cerveau.html\" class=\"rounded-lg border border-zinc-200 bg-white p-4 hover:border-blue-300 hover:bg-blue-50/30 transition-colors no-underline\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Comprendre votre second cerveau</div><div class=\"text-xs text-zinc-600\">IPCRA, phases de vie, ruissellement, mémoire inter-sessions.</div></a><a href=\"../../../06-second-cerveau/lessons/20-semaine-1-contexte-holistique/semaine-1-contexte-holistique.html\" class=\"rounded-lg border border-zinc-200 bg-white p-4 hover:border-blue-300 hover:bg-blue-50/30 transition-colors no-underline\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Le contexte holistique</div><div class=\"text-xs text-zinc-600\">Pourquoi le système doit tout savoir sur toi pour être utile.</div></a><a href=\"../../../03-installation/lessons/6-semaine-1-naviguer-obsidian/semaine-1-naviguer-obsidian.html\" class=\"rounded-lg border border-zinc-200 bg-white p-4 hover:border-blue-300 hover:bg-blue-50/30 transition-colors no-underline\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Naviguer dans Obsidian</div><div class=\"text-xs text-zinc-600\">Les patterns d'utilisation pensés pour l'IA.</div></a></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois que tu as compris <strong class=\"font-semibold text-foreground\">pourquoi</strong> ces choix ont été faits, tu peux trancher en conscience. Tu sauras si tu veux essayer la structure Prisme, garder la tienne, ou un mix.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Honnêtement : tu as acheté cette formation aussi pour l'ontologie. Donne-lui sa chance avant de la rejeter. Quitte à revenir sur la tienne plus tard.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-2-scénarios\">Les 2 scénarios</h2>\n<div class=\"my-6 grid grid-cols-1 md:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Scénario A</div><div class=\"text-base font-bold text-violet-900 mb-2\">Je veux garder ma structure</div><p class=\"text-sm text-violet-900/80\">Tu as une ontologie qui te va bien (autre que IPCRA). Tu veux profiter de la puissance des skills Prisme, mais sans changer ton organisation de dossiers. → <strong>Prompt A</strong> pour adapter mes skills à ta structure.</p></div><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Scénario B</div><div class=\"text-base font-bold text-emerald-900 mb-2\">J'adopte la structure Prisme</div><p class=\"text-sm text-emerald-900/80\">Tu veux essayer la structure complète. Tu vas importer ton contenu existant dans les dossiers Prisme (Projets, Casquettes, Ressources), puis lancer une <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> adaptée qui ne recrée pas tout mais s'appuie sur ce que tu as déjà. → <strong>Prompt B</strong>.</p></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment-choisir-selon-ton-cas\">Comment choisir selon ton cas</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tu viens d'Atomic Knowledge</strong> (ta structure ressemble déjà à IPCRA) : vise le <strong class=\"font-semibold text-foreground\">Scénario B</strong>. Ton organisation est quasi identique à celle de Prisme, l'import sera quasi transparent et tu récupères l'intégration native des skills, sans adaptation.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tu es utilisateur Claude Code</strong> avec un setup maison (skills perso, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/</code>, instructions custom) : lis le <strong class=\"font-semibold text-foreground\">Cas hybride</strong> plus bas avant de trancher. Tu as sûrement des réglages globaux à nettoyer pour repartir proprement.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tu as une ontologie maison très différente</strong> à laquelle tu tiens vraiment : <strong class=\"font-semibold text-foreground\">Scénario A</strong>, tu gardes ta structure et tu adaptes les skills à ton organisation.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tu as un framework avancé</strong> (beaucoup de liens internes, plugins configurés, automatisations) : va au <strong class=\"font-semibold text-foreground\">Cas hybride</strong> plus bas, pensé pour migrer par zones sans casser l'existant.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Dans le doute</strong> : fais un essai <strong class=\"font-semibold text-foreground\">Scénario B sur une copie</strong> de ton coffre (voir « Si tu veux mixer » en bas). Tu ne risques rien, le contenu reste portable.</li>\n</ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Cas particulier</strong> : tu n'as <strong class=\"font-semibold text-foreground\">pas</strong> de coffre Obsidian, mais des notes dans Notion, Apple Notes, Google Docs, etc. ? Saute cette leçon et va directement à <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../16-semaine-1-importer-notes/semaine-1-importer-notes.html\">Importer ses notes existantes</a>. L'IA redispatche tout dans la bonne structure.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"scénario-a-garder-ta-structure-adapter-mes-skills\">Scénario A : garder ta structure, adapter mes skills</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-principe\">Le principe</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu télécharges le Vault Template Prisme One (cf. <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/4-semaine-1-installation-technique/semaine-1-installation-technique.html\">Installation technique</a>), tu le décompresses <strong class=\"font-semibold text-foreground\">à l'intérieur de ton dossier de Second Cerveau actuel</strong>, et tu demandes à l'IA de réécrire les <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">CLAUDE.md</code> et tous les <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">SKILL.md</code> pour qu'ils pointent vers <strong class=\"font-semibold text-foreground\">ta</strong> structure plutôt que vers IPCRA.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les seuls fichiers à modifier sont :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> (racine + <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/AGENTS.md</code>) : ils décrivent l'arborescence et le routage</li>\n<li class=\"leading-7\">Les <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">SKILL.md</code> dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">4 TOOLS/skills/*/</code> : ils référencent souvent des paths spécifiques (life phases, projets, casquettes...)</li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> : pour indiquer le chemin de tes skills si tu les déplaces</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-prompt-à-coller-dans-opencode\">Le prompt à coller dans OpenCode</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre OpenCode dans le dossier qui contient à la fois ton coffre actuel et le template Prisme, puis colle ce prompt :</p>\n<div class=\"my-6 rounded-xl border border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Prompt A — Adapter mes skills à ta structure</div><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'ai téléchargé le Vault Template Prisme One dans mon coffre existant.\nJe veux garder MA structure de dossiers (pas adopter IPCRA), mais\nprofiter de tous les skills et de l'intelligence du template.\n\nVoici ce que je veux que tu fasses :\n\n1. Commence par lire ma structure actuelle (ls + cat des notes\n   d'ontologie si elles existent chez moi). Demande-moi de la\n   confirmer ou la décrire si elle n'est pas explicite.\n\n2. Lis ENSUITE tous les fichiers du template Prisme One :\n   - AGENTS.md à la racine\n   - Second Cerveau/AGENTS.md\n   - Second Cerveau/CLAUDE.md\n   - tous les SKILL.md dans Second Cerveau/4 TOOLS/skills/*/\n   - opencode.json\n\n3. Pour chacun, identifie chaque référence à un path, un dossier,\n   une convention IPCRA (0 INBOX, 1 PROJETS, 2 CASQUETTES, etc.),\n   au concept de Life Phases, à un format de note. Liste-les moi\n   pour validation avant de modifier quoi que ce soit.\n\n4. Réécris ces fichiers en remplaçant chaque référence par ce qui\n   existe chez moi. Si un concept (par ex. Life Phases) n'existe\n   pas dans mon système, propose-moi soit de le garder en\n   l'adaptant, soit de l'enlever.\n\n5. Mets à jour opencode.json pour pointer vers le dossier où sont\n   stockés mes skills.\n\n6. À la fin, montre-moi un diff propre de tous les fichiers\n   modifiés et explique-moi ce qui a changé.\n\nNe touche pas aux fichiers de contenu (mes notes, mes projets) :\nuniquement aux fichiers d'ontologie / d'instructions IA.\n</code></pre></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À la fin de cette opération, tu as <strong class=\"font-semibold text-foreground\">les skills Prisme One qui fonctionnent dans ta structure</strong>. Tu n'as pas besoin de relancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, vu que ton contenu est déjà en place.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"scénario-b-adopter-la-structure-prisme-one\">Scénario B : adopter la structure Prisme One</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-principe\">Le principe</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu télécharges le Vault Template, tu en fais ton <strong class=\"font-semibold text-foreground\">nouveau</strong> coffre, et tu <strong class=\"font-semibold text-foreground\">copies</strong> ton contenu existant dans les bons dossiers :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tes projets actifs → <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">1 PROJETS/</code></li>\n<li class=\"leading-7\">Tes casquettes (responsabilités ongoing) → <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">2 CASQUETTES/</code></li>\n<li class=\"leading-7\">Tes ressources, références, articles → <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/</code></li>\n<li class=\"leading-7\">Tes archives → <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code></li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as un dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.obsidian</code> personnalisé (plugins, thèmes, raccourcis), copie-le aussi par-dessus celui du template pour garder ta config.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"puis-initialisation-adaptée\">Puis : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> adaptée</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois ton contenu copié, lance <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code> mais avec une instruction supplémentaire : l'IA ne doit PAS recréer tout de zéro. Elle doit lire ce que tu as déjà, te poser des questions pour combler les trous (Moi.md, vision, parcours, phase de vie active), et créer les notes de contexte pour tes projets/casquettes existants.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-prompt-à-coller-dans-opencode\">Le prompt à coller dans OpenCode</h3>\n<div class=\"my-6 rounded-xl border border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Prompt B — /initialisation sur un coffre existant</div><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Lance /initialisation, MAIS attention : j'ai déjà un second cerveau,\ndonc les dossiers 1 PROJETS/, 2 CASQUETTES/, 3 RESSOURCES/ sont\ndéjà remplis avec mon contenu existant. Tu ne dois PAS recréer ces\ndossiers ou écraser ce qui est dedans.\n\nCe que je veux que tu fasses :\n\nPHASE 1 — Lecture\n  - Liste et lis tout le contenu existant dans 1 PROJETS/,\n    2 CASQUETTES/, 3 RESSOURCES/, 5 ARCHIVE/ et _Import/.\n  - Identifie ce qui existe déjà : projets actifs, casquettes,\n    notes de contexte, vision, phase de vie active.\n\nPHASE 2 — Diagnostic\n  - Pour chaque projet et chaque casquette : vérifie qu'il y a\n    une note de contexte (même nom que le dossier). Liste celles\n    qui manquent.\n  - Vérifie l'existence de 2 CASQUETTES/Sur ma vie/Moi.md,\n    Mon Parcours.md, et d'une phase de vie active dans Life Phases/.\n  - Liste ce qui manque dans mon contexte holistique.\n\nPHASE 3 — Questions\n  - Pose-moi les questions de /initialisation UNIQUEMENT sur ce\n    qui manque (ne re-demande pas ce que je t'ai déjà donné dans\n    mes fichiers).\n  - Par exemple : si Moi.md existe mais sans vision claire, fais-moi\n    réfléchir à ma vision. Si une casquette n'a pas de note de\n    contexte, demande-moi ce qu'elle recouvre.\n\nPHASE 4 — Création\n  - Crée les notes de contexte manquantes pour chaque projet et\n    casquette existant.\n  - Crée Moi.md / Mon Parcours.md / la phase de vie active si elles\n    n'existent pas, à partir de ce que je t'aurai dit.\n\nPHASE 5 — Recap\n  - Montre-moi un récap final : ce qui était déjà là, ce que tu\n    as créé, ce qu'il reste à faire (s'il reste des choses).\n\nNe touche jamais à mes notes existantes sauf si je te le demande\nexplicitement.\n</code></pre></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À la fin, tu as un coffre Prisme One <strong class=\"font-semibold text-foreground\">avec ton contenu</strong> et <strong class=\"font-semibold text-foreground\">avec un contexte holistique complet</strong> (Moi.md, vision, projets et casquettes documentés, phase de vie active).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-hybride-tu-as-déjà-un-framework-avancé\">Cas hybride : tu as déjà un framework avancé</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le cas qui a fait décrocher le plus de monde à la dernière promo : anciens élèves Atomic Knowledge et utilisateurs Claude Code arrivés avec un <strong class=\"font-semibold text-foreground\">système déjà sophistiqué</strong> (ontologie maison mûre, dizaines de liens internes, plugins Obsidian configurés, parfois un setup Claude Code complet avec ses propres skills et son <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/</code>). Le réflexe qui fait perdre pied : vouloir tout basculer d'un coup. Ne repars pas de zéro et ne casse pas ce qui marche. Voici le pas-à-pas pour migrer proprement, par petits pas.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-pas-à-pas\">Le pas-à-pas</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sauvegarde d'abord.</strong> Duplique ton coffre entier (copier-coller du dossier, ou un commit git si ton coffre est versionné). Tu travailles sur la copie, l'original reste intact. C'est ton filet de sécurité : quoi qu'il arrive, tu peux revenir en arrière.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Fais l'inventaire.</strong> Demande à l'IA de lister ta structure actuelle : dossiers, notes d'ontologie, plugins <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.obsidian</code> installés, skills perso, et tout fichier d'instructions (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">CLAUDE.md</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.cursorrules</code>...). Tu dois savoir exactement ce que tu as avant de bouger quoi que ce soit.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Décide dossier par dossier.</strong> Plutôt qu'un choix global A ou B, tranche zone par zone : par exemple garder ta structure de projets mais adopter les Life Phases de Prisme. L'IA t'aide à mapper chaque dossier existant vers son équivalent Prisme (ou à le laisser tel quel).</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Préserve tes liens et tes plugins.</strong> C'est le point sensible. Si tu déplaces ou renommes des dossiers, tes <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[liens internes]]</code> peuvent casser. Fais les déplacements <strong class=\"font-semibold text-foreground\">depuis Obsidian</strong> (qui met à jour les liens automatiquement), jamais depuis le Finder. Et copie ton dossier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.obsidian</code> par-dessus celui du template pour garder tes plugins, thèmes et raccourcis.</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Migre par petits lots.</strong> Une casquette, puis un projet, puis une ressource. Vérifie après chaque lot que les liens tiennent et que les skills tournent. Tu évites le big-bang où tout casse d'un coup sans savoir pourquoi (c'est exactement le piège qui a fait abandonner les gens).</p>\n</li>\n<li class=\"leading-7\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Vérifie l'intégrité des liens.</strong> À la fin, ouvre la vue graphe d'Obsidian et repère les liens orphelins ou cassés. Demande à l'IA de réparer les références restantes.</p>\n</li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"nettoie-ton-claudeclaudemd-hérité\">Nettoie ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code> hérité</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu utilisais déjà Claude Code, tu as très probablement un fichier <strong class=\"font-semibold text-foreground\">global</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code> : des instructions qui s'appliquent à <strong class=\"font-semibold text-foreground\">toutes</strong> tes sessions, quel que soit le projet ou le dossier ouvert. C'est un piège classique après une migration : ces vieilles instructions viennent <strong class=\"font-semibold text-foreground\">polluer</strong> ton nouveau système Prisme (règles contradictoires, chemins qui n'existent plus, conventions ou persona d'un ancien setup). Résultat, ton IA se comporte bizarrement sans que tu comprennes pourquoi.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Deux façons de régler ça :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Nettoyer</strong> : ouvre <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code> et retire tout ce qui concerne ton ancien système (chemins, conventions de dossiers, personas, projets terminés). Garde uniquement ce qui est réellement transverse à toutes tes sessions (ta langue, ton style d'écriture par défaut).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Fusionner</strong> : ce qui a de la valeur mais qui est spécifique à ton second cerveau, déplace-le dans les <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> du coffre Prisme (là où c'est censé vivre), puis allège d'autant le fichier global.</li>\n</ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Règle simple</strong> : le fichier <strong class=\"font-semibold text-foreground\">global</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code> ne doit contenir que ce qui vaut pour TOUS tes projets. Tout ce qui est propre à ton second cerveau vit dans les <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> du coffre. Un fichier global trop chargé, c'est la première cause de comportements incohérents juste après une migration.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"si-tu-veux-mixer\">Si tu veux mixer</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est OK. Tu peux faire un essai Scénario B sur une copie de ton coffre, tester la structure pendant 2-3 semaines, et revenir à la tienne si ça ne te va pas. <strong class=\"font-semibold text-foreground\">Le contenu reste portable</strong> (juste des fichiers <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.md</code>). Ce qui prend du temps à recréer, c'est l'ontologie et les skills, pas les notes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ce-quil-faut-retenir\">Ce qu'il faut retenir</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ton coffre existant est un <strong class=\"font-semibold text-foreground\">atout</strong> : on adapte, on ne casse rien</li>\n<li class=\"leading-7\">Le système est <strong class=\"font-semibold text-foreground\">fait pour être personnalisé</strong>, pas pour être imposé tel quel</li>\n<li class=\"leading-7\">L'ontologie IPCRA + Life Phases + rituels représente une vraie valeur, donne-lui sa chance avant de la rejeter</li>\n<li class=\"leading-7\">Tu n'es pas pénalisé dans le bootcamp si tu gardes ta structure, <strong class=\"font-semibold text-foreground\">mais tu perds en intégration native</strong> (les skills marchent sans adaptation sur la structure Prisme)</li>\n<li class=\"leading-7\">Framework avancé ? Migre <strong class=\"font-semibold text-foreground\">par petits lots</strong> sur une copie, et déplace tes notes <strong class=\"font-semibold text-foreground\">depuis Obsidian</strong> pour préserver tes liens</li>\n<li class=\"leading-7\">Utilisateur Claude Code : <strong class=\"font-semibold text-foreground\">nettoie ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude/CLAUDE.md</code> global</strong> pour qu'il ne pollue pas ton nouveau système</li>\n<li class=\"leading-7\">Si tu n'as pas de coffre Obsidian du tout, va dans <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../16-semaine-1-importer-notes/semaine-1-importer-notes.html\">Importer ses notes</a>, c'est plus direct</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai lu (ou relu) les 4 leçons sur l'ontologie Prisme avant de décider — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai lu (ou relu) les 4 leçons sur l'ontologie Prisme avant de décider</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi mon scénario (A : garder ma structure, B : adopter Prisme) selon mon cas — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi mon scénario (A : garder ma structure, B : adopter Prisme) selon mon cas</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai exécuté le prompt correspondant dans OpenCode et validé le résultat — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai exécuté le prompt correspondant dans OpenCode et validé le résultat</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si scénario A : mes skills Prisme fonctionnent dans ma structure — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si scénario A : mes skills Prisme fonctionnent dans ma structure</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si scénario B : mon contenu existant est dans les bons dossiers + notes de contexte créées — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si scénario B : mon contenu existant est dans les bons dossiers + notes de contexte créées</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si cas hybride : coffre sauvegardé sur une copie, migration par petits lots, liens vérifiés dans la vue graphe — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si cas hybride : coffre sauvegardé sur une copie, migration par petits lots, liens vérifiés dans la vue graphe</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si j'utilisais Claude Code : j'ai nettoyé ou fusionné mon ~/.claude/CLAUDE.md global — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si j'utilisais Claude Code : j'ai nettoyé ou fusionné mon ~/.claude/CLAUDE.md global</span></li></ul>",
      "content_markdown": "## Tu as déjà un second cerveau ?\n\nEt si j'avais déjà un second cerveau ?\n\nDeux scénarios courants : garder ta structure existante ou adopter celle de Prisme. Comment trancher, et le prompt pour chaque cas.\n\nSi tu regardes cette leçon, c'est que tu arrives au bootcamp avec un coffre Obsidian déjà en place. Soit parce que tu as suivi **Atomic Knowledge** dans le passé (donc ta structure ressemble à la mienne), soit parce que tu as construit ta propre ontologie au fil du temps.\n\nDeux questions reviennent toujours :\n\n1. Faut-il **adopter ma structure** (celle du Vault Template Prisme One) ou **garder la tienne** ?\n2. Faut-il **refaire `/initialisation`** ? Et comment importer l'existant sans tout perdre ?\n\nCette leçon te donne les deux scénarios et les prompts pour chacun.\n\n> Avant tout, respire. Ton coffre existant est un atout, pas un problème : c'est du contenu, du contexte, parfois des années de notes que l'IA va pouvoir exploiter directement. La règle de cette leçon : on ne casse rien, on adapte. Quel que soit ton point de départ (ancien élève Atomic Knowledge, utilisateur Claude Code, ontologie maison très personnelle), il existe un chemin propre pour intégrer Prisme One sans rien perdre. À la dernière promo, ceux qui ont décroché ont surtout voulu tout migrer d'un coup, en force. On va faire l'inverse : par étapes, en gardant un filet de sécurité à chaque instant.\n\n---\n\n## D'abord : prends une vraie décision\n\nLe coffre Prisme One est le résultat de **plusieurs années d'itération**. La structure (IPCRA), les phases de vie, les rituels (`/done`, `/weekly-review`, `/inbox-processor`), le ruissellement automatique, tout ça est interconnecté. C'est une vraie ontologie pensée pour fonctionner avec une IA en permanence.\n\n**Mon conseil** : avant de décider de garder ta structure, lis (ou relis) ces 4 leçons :\n\n[Comprendre l'anatomie de ton systèmeLa vision globale : workspace, coffre, agents, rituels.](/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme)[Comprendre votre second cerveauIPCRA, phases de vie, ruissellement, mémoire inter-sessions.](/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau)[Le contexte holistiquePourquoi le système doit tout savoir sur toi pour être utile.](/plateforme/ia-juillet-2026/semaine-1-contexte-holistique)[Naviguer dans ObsidianLes patterns d'utilisation pensés pour l'IA.](/plateforme/ia-juillet-2026/semaine-1-naviguer-obsidian)\n\nUne fois que tu as compris **pourquoi** ces choix ont été faits, tu peux trancher en conscience. Tu sauras si tu veux essayer la structure Prisme, garder la tienne, ou un mix.\n\n> Honnêtement : tu as acheté cette formation aussi pour l'ontologie. Donne-lui sa chance avant de la rejeter. Quitte à revenir sur la tienne plus tard.\n\n---\n\n## Les 2 scénarios\n\nScénario A\n\nJe veux garder ma structure\n\nTu as une ontologie qui te va bien (autre que IPCRA). Tu veux profiter de la puissance des skills Prisme, mais sans changer ton organisation de dossiers. → **Prompt A** pour adapter mes skills à ta structure.\n\nScénario B\n\nJ'adopte la structure Prisme\n\nTu veux essayer la structure complète. Tu vas importer ton contenu existant dans les dossiers Prisme (Projets, Casquettes, Ressources), puis lancer une `/initialisation` adaptée qui ne recrée pas tout mais s'appuie sur ce que tu as déjà. → **Prompt B**.\n\n### Comment choisir selon ton cas\n\n- **Tu viens d'Atomic Knowledge** (ta structure ressemble déjà à IPCRA) : vise le **Scénario B**. Ton organisation est quasi identique à celle de Prisme, l'import sera quasi transparent et tu récupères l'intégration native des skills, sans adaptation.\n- **Tu es utilisateur Claude Code** avec un setup maison (skills perso, `~/.claude/`, instructions custom) : lis le **Cas hybride** plus bas avant de trancher. Tu as sûrement des réglages globaux à nettoyer pour repartir proprement.\n- **Tu as une ontologie maison très différente** à laquelle tu tiens vraiment : **Scénario A**, tu gardes ta structure et tu adaptes les skills à ton organisation.\n- **Tu as un framework avancé** (beaucoup de liens internes, plugins configurés, automatisations) : va au **Cas hybride** plus bas, pensé pour migrer par zones sans casser l'existant.\n- **Dans le doute** : fais un essai **Scénario B sur une copie** de ton coffre (voir « Si tu veux mixer » en bas). Tu ne risques rien, le contenu reste portable.\n\n> Cas particulier : tu n'as pas de coffre Obsidian, mais des notes dans Notion, Apple Notes, Google Docs, etc. ? Saute cette leçon et va directement à Importer ses notes existantes. L'IA redispatche tout dans la bonne structure.\n\n---\n\n## Scénario A : garder ta structure, adapter mes skills\n\n### Le principe\n\nTu télécharges le Vault Template Prisme One (cf. [Installation technique](/plateforme/ia-juillet-2026/semaine-1-installation-technique)), tu le décompresses **à l'intérieur de ton dossier de Second Cerveau actuel**, et tu demandes à l'IA de réécrire les `AGENTS.md`, `CLAUDE.md` et tous les `SKILL.md` pour qu'ils pointent vers **ta** structure plutôt que vers IPCRA.\n\nLes seuls fichiers à modifier sont :\n\n- `AGENTS.md` (racine + `Second Cerveau/AGENTS.md`) : ils décrivent l'arborescence et le routage\n- Les `SKILL.md` dans `4 TOOLS/skills/*/` : ils référencent souvent des paths spécifiques (life phases, projets, casquettes...)\n- `opencode.json` : pour indiquer le chemin de tes skills si tu les déplaces\n\n### Le prompt à coller dans OpenCode\n\nOuvre OpenCode dans le dossier qui contient à la fois ton coffre actuel et le template Prisme, puis colle ce prompt :\n\nPrompt A — Adapter mes skills à ta structure\n\n```\nJ'ai téléchargé le Vault Template Prisme One dans mon coffre existant.\nJe veux garder MA structure de dossiers (pas adopter IPCRA), mais\nprofiter de tous les skills et de l'intelligence du template.\n\nVoici ce que je veux que tu fasses :\n\n1. Commence par lire ma structure actuelle (ls + cat des notes\n   d'ontologie si elles existent chez moi). Demande-moi de la\n   confirmer ou la décrire si elle n'est pas explicite.\n\n2. Lis ENSUITE tous les fichiers du template Prisme One :\n   - AGENTS.md à la racine\n   - Second Cerveau/AGENTS.md\n   - Second Cerveau/CLAUDE.md\n   - tous les SKILL.md dans Second Cerveau/4 TOOLS/skills/*/\n   - opencode.json\n\n3. Pour chacun, identifie chaque référence à un path, un dossier,\n   une convention IPCRA (0 INBOX, 1 PROJETS, 2 CASQUETTES, etc.),\n   au concept de Life Phases, à un format de note. Liste-les moi\n   pour validation avant de modifier quoi que ce soit.\n\n4. Réécris ces fichiers en remplaçant chaque référence par ce qui\n   existe chez moi. Si un concept (par ex. Life Phases) n'existe\n   pas dans mon système, propose-moi soit de le garder en\n   l'adaptant, soit de l'enlever.\n\n5. Mets à jour opencode.json pour pointer vers le dossier où sont\n   stockés mes skills.\n\n6. À la fin, montre-moi un diff propre de tous les fichiers\n   modifiés et explique-moi ce qui a changé.\n\nNe touche pas aux fichiers de contenu (mes notes, mes projets) :\nuniquement aux fichiers d'ontologie / d'instructions IA.\n```\n\nÀ la fin de cette opération, tu as **les skills Prisme One qui fonctionnent dans ta structure**. Tu n'as pas besoin de relancer `/initialisation`, vu que ton contenu est déjà en place.\n\n---\n\n## Scénario B : adopter la structure Prisme One\n\n### Le principe\n\nTu télécharges le Vault Template, tu en fais ton **nouveau** coffre, et tu **copies** ton contenu existant dans les bons dossiers :\n\n- Tes projets actifs → `1 PROJETS/`\n- Tes casquettes (responsabilités ongoing) → `2 CASQUETTES/`\n- Tes ressources, références, articles → `3 RESSOURCES/`\n- Tes archives → `5 ARCHIVE/`\n\nSi tu as un dossier `.obsidian` personnalisé (plugins, thèmes, raccourcis), copie-le aussi par-dessus celui du template pour garder ta config.\n\n### Puis : `/initialisation` adaptée\n\nUne fois ton contenu copié, lance `/initialisation` mais avec une instruction supplémentaire : l'IA ne doit PAS recréer tout de zéro. Elle doit lire ce que tu as déjà, te poser des questions pour combler les trous (Moi.md, vision, parcours, phase de vie active), et créer les notes de contexte pour tes projets/casquettes existants.\n\n### Le prompt à coller dans OpenCode\n\nPrompt B — /initialisation sur un coffre existant\n\n```\nLance /initialisation, MAIS attention : j'ai déjà un second cerveau,\ndonc les dossiers 1 PROJETS/, 2 CASQUETTES/, 3 RESSOURCES/ sont\ndéjà remplis avec mon contenu existant. Tu ne dois PAS recréer ces\ndossiers ou écraser ce qui est dedans.\n\nCe que je veux que tu fasses :\n\nPHASE 1 — Lecture\n  - Liste et lis tout le contenu existant dans 1 PROJETS/,\n    2 CASQUETTES/, 3 RESSOURCES/, 5 ARCHIVE/ et _Import/.\n  - Identifie ce qui existe déjà : projets actifs, casquettes,\n    notes de contexte, vision, phase de vie active.\n\nPHASE 2 — Diagnostic\n  - Pour chaque projet et chaque casquette : vérifie qu'il y a\n    une note de contexte (même nom que le dossier). Liste celles\n    qui manquent.\n  - Vérifie l'existence de 2 CASQUETTES/Sur ma vie/Moi.md,\n    Mon Parcours.md, et d'une phase de vie active dans Life Phases/.\n  - Liste ce qui manque dans mon contexte holistique.\n\nPHASE 3 — Questions\n  - Pose-moi les questions de /initialisation UNIQUEMENT sur ce\n    qui manque (ne re-demande pas ce que je t'ai déjà donné dans\n    mes fichiers).\n  - Par exemple : si Moi.md existe mais sans vision claire, fais-moi\n    réfléchir à ma vision. Si une casquette n'a pas de note de\n    contexte, demande-moi ce qu'elle recouvre.\n\nPHASE 4 — Création\n  - Crée les notes de contexte manquantes pour chaque projet et\n    casquette existant.\n  - Crée Moi.md / Mon Parcours.md / la phase de vie active si elles\n    n'existent pas, à partir de ce que je t'aurai dit.\n\nPHASE 5 — Recap\n  - Montre-moi un récap final : ce qui était déjà là, ce que tu\n    as créé, ce qu'il reste à faire (s'il reste des choses).\n\nNe touche jamais à mes notes existantes sauf si je te le demande\nexplicitement.\n```\n\nÀ la fin, tu as un coffre Prisme One **avec ton contenu** et **avec un contexte holistique complet** (Moi.md, vision, projets et casquettes documentés, phase de vie active).\n\n---\n\n## Cas hybride : tu as déjà un framework avancé\n\nC'est le cas qui a fait décrocher le plus de monde à la dernière promo : anciens élèves Atomic Knowledge et utilisateurs Claude Code arrivés avec un **système déjà sophistiqué** (ontologie maison mûre, dizaines de liens internes, plugins Obsidian configurés, parfois un setup Claude Code complet avec ses propres skills et son `~/.claude/`). Le réflexe qui fait perdre pied : vouloir tout basculer d'un coup. Ne repars pas de zéro et ne casse pas ce qui marche. Voici le pas-à-pas pour migrer proprement, par petits pas.\n\n### Le pas-à-pas\n\n1. **Sauvegarde d'abord.** Duplique ton coffre entier (copier-coller du dossier, ou un commit git si ton coffre est versionné). Tu travailles sur la copie, l'original reste intact. C'est ton filet de sécurité : quoi qu'il arrive, tu peux revenir en arrière.\n2. **Fais l'inventaire.** Demande à l'IA de lister ta structure actuelle : dossiers, notes d'ontologie, plugins `.obsidian` installés, skills perso, et tout fichier d'instructions (`AGENTS.md`, `CLAUDE.md`, `~/.claude/CLAUDE.md`, `.cursorrules`...). Tu dois savoir exactement ce que tu as avant de bouger quoi que ce soit.\n3. **Décide dossier par dossier.** Plutôt qu'un choix global A ou B, tranche zone par zone : par exemple garder ta structure de projets mais adopter les Life Phases de Prisme. L'IA t'aide à mapper chaque dossier existant vers son équivalent Prisme (ou à le laisser tel quel).\n4. **Préserve tes liens et tes plugins.** C'est le point sensible. Si tu déplaces ou renommes des dossiers, tes `[[liens internes]]` peuvent casser. Fais les déplacements **depuis Obsidian** (qui met à jour les liens automatiquement), jamais depuis le Finder. Et copie ton dossier `.obsidian` par-dessus celui du template pour garder tes plugins, thèmes et raccourcis.\n5. **Migre par petits lots.** Une casquette, puis un projet, puis une ressource. Vérifie après chaque lot que les liens tiennent et que les skills tournent. Tu évites le big-bang où tout casse d'un coup sans savoir pourquoi (c'est exactement le piège qui a fait abandonner les gens).\n6. **Vérifie l'intégrité des liens.** À la fin, ouvre la vue graphe d'Obsidian et repère les liens orphelins ou cassés. Demande à l'IA de réparer les références restantes.\n\n### Nettoie ton `~/.claude/CLAUDE.md` hérité\n\nSi tu utilisais déjà Claude Code, tu as très probablement un fichier **global** `~/.claude/CLAUDE.md` : des instructions qui s'appliquent à **toutes** tes sessions, quel que soit le projet ou le dossier ouvert. C'est un piège classique après une migration : ces vieilles instructions viennent **polluer** ton nouveau système Prisme (règles contradictoires, chemins qui n'existent plus, conventions ou persona d'un ancien setup). Résultat, ton IA se comporte bizarrement sans que tu comprennes pourquoi.\n\nDeux façons de régler ça :\n\n- **Nettoyer** : ouvre `~/.claude/CLAUDE.md` et retire tout ce qui concerne ton ancien système (chemins, conventions de dossiers, personas, projets terminés). Garde uniquement ce qui est réellement transverse à toutes tes sessions (ta langue, ton style d'écriture par défaut).\n- **Fusionner** : ce qui a de la valeur mais qui est spécifique à ton second cerveau, déplace-le dans les `AGENTS.md` du coffre Prisme (là où c'est censé vivre), puis allège d'autant le fichier global.\n\n> Règle simple : le fichier global ~/.claude/CLAUDE.md ne doit contenir que ce qui vaut pour TOUS tes projets. Tout ce qui est propre à ton second cerveau vit dans les AGENTS.md du coffre. Un fichier global trop chargé, c'est la première cause de comportements incohérents juste après une migration.\n\n---\n\n## Si tu veux mixer\n\nC'est OK. Tu peux faire un essai Scénario B sur une copie de ton coffre, tester la structure pendant 2-3 semaines, et revenir à la tienne si ça ne te va pas. **Le contenu reste portable** (juste des fichiers `.md`). Ce qui prend du temps à recréer, c'est l'ontologie et les skills, pas les notes.\n\n---\n\n## Ce qu'il faut retenir\n\n- Ton coffre existant est un **atout** : on adapte, on ne casse rien\n- Le système est **fait pour être personnalisé**, pas pour être imposé tel quel\n- L'ontologie IPCRA + Life Phases + rituels représente une vraie valeur, donne-lui sa chance avant de la rejeter\n- Tu n'es pas pénalisé dans le bootcamp si tu gardes ta structure, **mais tu perds en intégration native** (les skills marchent sans adaptation sur la structure Prisme)\n- Framework avancé ? Migre **par petits lots** sur une copie, et déplace tes notes **depuis Obsidian** pour préserver tes liens\n- Utilisateur Claude Code : **nettoie ton `~/.claude/CLAUDE.md` global** pour qu'il ne pollue pas ton nouveau système\n- Si tu n'as pas de coffre Obsidian du tout, va dans [Importer ses notes](/plateforme/ia-juillet-2026/semaine-1-importer-notes), c'est plus direct\n\n---\n\n- J'ai lu (ou relu) les 4 leçons sur l'ontologie Prisme avant de décider\n- J'ai choisi mon scénario (A : garder ma structure, B : adopter Prisme) selon mon cas\n- J'ai exécuté le prompt correspondant dans OpenCode et validé le résultat\n- Si scénario A : mes skills Prisme fonctionnent dans ma structure\n- Si scénario B : mon contenu existant est dans les bons dossiers + notes de contexte créées\n- Si cas hybride : coffre sauvegardé sur une copie, migration par petits lots, liens vérifiés dans la vue graphe\n- Si j'utilisais Claude Code : j'ai nettoyé ou fusionné mon ~/.claude/CLAUDE.md global",
      "assets": [],
      "links": [
        {
          "text": "Comprendre l'anatomie de ton systèmeLa vision globale : workspace, coffre, agents, rituels.",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-anatomie-systeme"
        },
        {
          "text": "Comprendre votre second cerveauIPCRA, phases de vie, ruissellement, mémoire inter-sessions.",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau"
        },
        {
          "text": "Le contexte holistiquePourquoi le système doit tout savoir sur toi pour être utile.",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-contexte-holistique"
        },
        {
          "text": "Naviguer dans ObsidianLes patterns d'utilisation pensés pour l'IA.",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-naviguer-obsidian"
        },
        {
          "text": "Importer ses notes existantes",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-importer-notes"
        },
        {
          "text": "Installation technique",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installation-technique"
        },
        {
          "text": "Importer ses notes",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-importer-notes"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/ef208f0faa7647cea9f691ca684e3edb",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Et si j'avais déjà un second cerveau ?",
          "title_source": "iframe-title",
          "video_id": "ef208f0faa7647cea9f691ca684e3edb",
          "watch_url": "https://www.loom.com/share/ef208f0faa7647cea9f691ca684e3edb"
        }
      ],
      "captured_at": "2026-08-03T10:05:29.174Z",
      "counts": {
        "code_blocks": 42,
        "headings": 16,
        "iframes": 1,
        "images": 0,
        "links": 7,
        "text_chars": 14489
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "18-semaine-1-parler-a-lia",
      "order": 18,
      "kind": "section",
      "section": "05-principes-ia",
      "title": "Bien utiliser l'IA : les 6 principes essentiels",
      "slug": "semaine-1-parler-a-lia",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-parler-a-lia",
      "summary": "Les 6 réflexes qui font la différence entre un usage moyen et un usage maîtrisé de l'IA. À regarder avant de te lancer dans le reste de la formation : tu vas économiser des heures, payer beaucoup moins cher, et obtenir des réponses pertinentes dès le premier coup.",
      "objective": "Adopter les 6 réflexes qui font la différence entre un usage moyen et un usage maîtrisé de l'IA, économisant du temps et de l'argent au passage.",
      "expected_output": "Réflexes plan mode + nouvelle conversation par objectif + MCP-check ancrés au quotidien. Au moins une session terminée par /done.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"bien-utiliser-lia-les-6-principes-essentiels\">Bien utiliser l'IA : les 6 principes essentiels</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avant d'attaquer le contenu pédagogique (comprendre ton second cerveau, installer tes outils, créer tes skills), il y a une couche fondamentale à poser : <strong class=\"font-semibold text-foreground\">comment bien parler à l'IA</strong>. Six principes simples qui vont changer du tout au tout la qualité de ce que tu obtiens, et qui te font économiser énormément de temps et d'argent au passage.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Bien utiliser l'IA : les fondamentaux</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/7b753107da104f039b35d473e6a8fdee\" title=\"Bien utiliser l'IA : les fondamentaux\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Clarté de pensée, plan mode, fenêtre de contexte, gestion des MCP, amélioration continue des skills, /done.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif de cette leçon : que tu partes de cette base et que tu évolues vers un usage qui t'est propre, en comprenant de plus en plus finement les limites et les capacités de l'IA. C'est ce qui va affiner ta façon de lui communiquer des informations et des demandes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-1-ne-jamais-déléguer-la-clarté-de-pensée-à-lia\">Principe 1 : Ne jamais déléguer la clarté de pensée à l'IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le premier réflexe à ancrer. Quand tu commences à prompter une IA pour qu'elle réalise un travail, <strong class=\"font-semibold text-foreground\">tu dois avoir une clarté de pensée absolue</strong> sur ce que tu veux. Pas l'IA. Toi.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-red-200 bg-red-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-red-600 mb-1\">Anti-pattern</div><div class=\"text-base font-bold text-red-900 mb-2\">Laisser l'IA décider pour toi</div><p class=\"text-sm text-red-900/80\">Tu lances un prompt vague genre \"fais-moi quelque chose de bien sur X\" et tu acceptes ce qui sort. Résultat : l'IA hallucine ton goût, choisit à ta place, et tu te retrouves avec quelque chose de générique qui ne te ressemble pas.</p></div><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Bon réflexe</div><div class=\"text-base font-bold text-emerald-900 mb-2\">Clarifier d'abord, prompter ensuite</div><p class=\"text-sm text-emerald-900/80\">Tu sais ce que tu veux, ton goût, ton intention, ta sensibilité. Tu le formules clairement, puis tu fais exécuter. Le résultat est juste, du premier coup.</p></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"et-si-tu-nas-pas-encore-les-idées-claires\">Et si tu n'as pas encore les idées claires ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux utiliser l'IA pour <strong class=\"font-semibold text-foreground\">t'aider à clarifier</strong>, sans qu'elle décide à ta place. Le bootcamp inclut un skill dédié pour ça : <strong class=\"font-semibold text-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/thinking-partner</code></strong>.</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/thinking-partner\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu lui dis l'objectif de ta session de réflexion, il devient un partenaire socratique qui pose les bonnes questions pour clarifier tes pensées, sans te donner de réponse prématurée. La clarté reste de toi, l'IA t'aide juste à l'extraire.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Règle simple :</strong> la clarté de pensée, le goût, l'attention, la sensibilité, ça repart toujours de toi. L'IA exécute, elle n'invente pas ton intention.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-2-toujours-commencer-en-plan-mode\">Principe 2 : Toujours commencer en Plan mode</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu démarres une session de travail, <strong class=\"font-semibold text-foreground\">commence systématiquement en plan mode</strong>. C'est le mode où l'IA a un fonctionnement restreint : elle peut lire des fichiers, appeler des outils pour enrichir son contexte, mais elle <strong class=\"font-semibold text-foreground\">ne peut pas écrire ni exécuter</strong>.</p>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-xl border-2 border-violet-200 bg-violet-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold text-violet-500\">Étape 1</div><div class=\"text-base font-bold text-violet-700\">Plan mode</div><div class=\"text-xs text-violet-600 mt-1\">L'IA lit, explore, appelle des outils. Elle ne touche à rien.</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-md rounded-xl border-2 border-amber-200 bg-amber-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold text-amber-500\">Étape 2</div><div class=\"text-base font-bold text-amber-700\">Elle propose un plan</div><div class=\"text-xs text-amber-600 mt-1\">Plan structuré : \"voilà ce que je vais faire, dans cet ordre\".</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-md rounded-xl border-2 border-rose-200 bg-rose-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold text-rose-500\">Étape 3 : STOP</div><div class=\"text-base font-bold text-rose-700\">Tu valides (ou tu ajustes)</div><div class=\"text-xs text-rose-600 mt-1\">C'est ton checkpoint. Tu alignes l'IA avant qu'elle exécute.</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-md rounded-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold text-emerald-500\">Étape 4</div><div class=\"text-base font-bold text-emerald-700\">Build mode</div><div class=\"text-xs text-emerald-600 mt-1\">L'IA exécute le plan validé. Liste de to-do qui apparaît au-dessus de la barre.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cest-puissant\">Pourquoi c'est puissant</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plan mode te permet de faire des tâches <strong class=\"font-semibold text-foreground\">en one-shot</strong>. C'est-à-dire que si tu clarifies bien avant, tu évites toutes les itérations inutiles qui viennent ensuite. Au lieu de \"ah non, pas comme ça, refais\", tu valides le plan, l'IA exécute, c'est juste du premier coup.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Concrètement, l'IA propose un plan du genre :</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Plan proposé :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Comprendre la structure actuelle du site</li>\n<li class=\"leading-7\">Créer la nouvelle page</li>\n<li class=\"leading-7\">Rédiger le texte</li>\n<li class=\"leading-7\">Te faire valider le texte</li>\n<li class=\"leading-7\">Intégrer sur le site</li>\n</ol>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu valides, et l'affichage passe en mode build avec ta to-do list visible. Tu vois exactement où l'IA en est, étape par étape.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-3-comprendre-la-fenêtre-de-contexte\">Principe 3 : Comprendre la fenêtre de contexte</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est probablement le concept le plus important à intégrer pour bien utiliser l'IA. Tous les modèles ont une <strong class=\"font-semibold text-foreground\">fenêtre de contexte</strong> : la quantité maximale d'information qu'ils peuvent garder en mémoire dans une conversation.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-tailles-courantes-en-2026\">Les tailles courantes en 2026</h3>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-4 gap-3 text-center\"><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-3 py-4\"><div class=\"text-sm font-bold text-zinc-700\">100 k</div><div class=\"text-xs text-zinc-500 mt-1\">Petits modèles</div><div class=\"text-xs text-zinc-400 mt-1\">~75 k mots</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-3 py-4\"><div class=\"text-sm font-bold text-blue-700\">200 à 260 k</div><div class=\"text-xs text-blue-500 mt-1\">Standard 2026</div><div class=\"text-xs text-blue-400 mt-1\">~150 à 200 k mots</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 px-3 py-4\"><div class=\"text-sm font-bold text-violet-700\">500 k à 1 M</div><div class=\"text-xs text-violet-500 mt-1\">Frontière haut de gamme</div><div class=\"text-xs text-violet-400 mt-1\">~1,3 M mots</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 px-3 py-4\"><div class=\"text-sm font-bold text-amber-700\">+1 M</div><div class=\"text-xs text-amber-500 mt-1\">Expérimental</div><div class=\"text-xs text-amber-400 mt-1\">Très coûteux</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cest-crucial-le-coût-computationnel-et-la-perte-de-\">Pourquoi c'est crucial : le coût computationnel et la perte de précision</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette mémoire est <strong class=\"font-semibold text-foreground\">extrêmement coûteuse en termes de calcul</strong>. Chaque nouveau token qui arrive déclenche deux multiplications avec <strong class=\"font-semibold text-foreground\">tous les tokens précédents</strong>, et ce <strong class=\"font-semibold text-foreground\">60 fois d'affilée</strong> (une fois par couche du modèle). On parle de <strong class=\"font-semibold text-foreground\">centaines de millions de multiplications par mot généré</strong>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour rendre ça gérable à grande échelle, les constructeurs d'IA utilisent des astuces. Par exemple, sur DeepSeek :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Une couche sur deux ne lit que <strong class=\"font-semibold text-foreground\">1 000 tokens sur 1 million</strong> (les plus pertinents)</li>\n<li class=\"leading-7\">Les tokens sont <strong class=\"font-semibold text-foreground\">compactés par blocs de 128</strong> (l'IA garde une idée globale de chaque bloc, pas les détails)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Résultat : <strong class=\"font-semibold text-foreground\">plus ta conversation est longue, plus l'IA devient imprécise</strong>. Si tu es au token 900 000 dans une conversation très longue, l'IA va commencer à <strong class=\"font-semibold text-foreground\">se perdre</strong>, oublier les instructions du début, halluciner sur les détails. C'est ce qui te frustre quand tu sens que \"l'IA ne suit plus\".</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"la-solution-une-conversation-un-objectif\">La solution : une conversation = un objectif</h3>\n<div class=\"my-6 rounded-2xl border-2 border-emerald-300 bg-emerald-50 p-5\"><div class=\"text-base font-bold text-emerald-900 mb-2\">Règle d'or</div><p class=\"text-sm text-emerald-900/80 mb-2\">Ne pas tout enchaîner dans une seule conversation longue. Ouvre une nouvelle conversation à chaque changement d'objectif.</p><p class=\"text-sm text-emerald-900/80\">Tentation classique : tu commences ta journée avec \"tiens, j'aimerais clarifier ma journée\", puis \"ok, du coup commençons cette tâche\", puis \"ah, continuons là-dessus\"... C'est agréable parce qu'on a l'impression que l'IA nous connaît. Mais ça pollue ta fenêtre de contexte avec tout le journaling de la veille, les détails du repas, etc. Au bout d'un moment, l'IA devient lente et hallucine.</p></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-pattern-à-adopter\">Le pattern à adopter</h3>\n<div class=\"my-8 flex flex-col items-center gap-3 max-w-2xl mx-auto\"><div class=\"w-full rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3\"><div class=\"font-bold text-blue-700\">1. Conversation A : Planification de la journée</div><div class=\"text-xs text-blue-600 mt-1\">Tu clarifies tes priorités, l'IA t'aide à structurer.</div></div><div class=\"text-zinc-400 text-lg\">↓</div><div class=\"w-full rounded-xl border-2 border-violet-200 bg-violet-50 px-5 py-3\"><div class=\"font-bold text-violet-700\">2. Fin de la conversation A</div><div class=\"text-xs text-violet-600 mt-1\">Tu dis : \"Génère-moi un brief court pour transmettre à la prochaine conversation.\"</div></div><div class=\"text-zinc-400 text-lg\">↓</div><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3\"><div class=\"font-bold text-emerald-700\">3. Conversation B : Tâche du jour (par exemple créer une présentation)</div><div class=\"text-xs text-emerald-600 mt-1\">Tu colles le brief, tu pars en plan mode pour clarifier, puis build mode pour exécuter en one-shot.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bonus : <strong class=\"font-semibold text-foreground\">les conversations courtes coûtent beaucoup moins cher</strong> que les longues, parce que tu ne refais pas tourner la fenêtre saturée à chaque message. Ton portefeuille te dit merci.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-4-attention-aux-mcp-activés\">Principe 4 : Attention aux MCP activés</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voici un point que la plupart des gens ignorent et qui peut <strong class=\"font-semibold text-foreground\">multiplier ton coût par 8</strong> sans que tu t'en aperçoives.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"lexpérience-qui-parle\">L'expérience qui parle</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu ouvres une nouvelle session, tu actives 4 MCP (par exemple Firecrawl, Playwright, Notion, Linear), et tu envoies un simple \"test\". Concrètement, \"test\" c'est <strong class=\"font-semibold text-foreground\">un seul mot</strong>, donc à peu près <strong class=\"font-semibold text-foreground\">1 token</strong>. Avec le prompt système, tu devrais être à <strong class=\"font-semibold text-foreground\">environ 1 000 tokens</strong> au total.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sauf que tu te retrouves à... <strong class=\"font-semibold text-foreground\">47 000 tokens d'entrée</strong>.</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-red-200 bg-red-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-red-600 mb-1\">Avec 4 MCP activés</div><div class=\"text-3xl font-bold text-red-900 mb-1\">47 000 tokens</div><div class=\"text-xs text-red-700/80\">Pour envoyer juste \"test\". Si tu es à la consommation, ça te coûte déjà 2 centimes pour rien.</div></div><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Avec 0 MCP activé</div><div class=\"text-3xl font-bold text-emerald-900 mb-1\">6 000 tokens</div><div class=\"text-xs text-emerald-700/80\">Pour exactement la même requête. Moins de bruit, plus de pertinence, beaucoup moins cher.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cette-différence\">Pourquoi cette différence</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu actives un MCP, l'IA reçoit non seulement l'accès à l'outil, mais aussi <strong class=\"font-semibold text-foreground\">une description détaillée de chaque outil exposé par ce MCP</strong>. Notion MCP par exemple, c'est 30 à 50 tools, chacun avec sa description, ses paramètres, ses exemples. Multiplié par 4 MCP, tu te retrouves avec des dizaines de milliers de tokens uniquement de description, <strong class=\"font-semibold text-foreground\">avant même que ta vraie question soit traitée</strong>.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-bonnes-pratiques\">Les bonnes pratiques</h3>\n<div class=\"my-6 rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><ul class=\"text-sm text-amber-900 space-y-2 list-disc list-inside\"><li><strong>Désactive tous les MCP au démarrage</strong> d'une nouvelle conversation. Pars de zéro.</li><li><strong>Active uniquement ce dont tu as strictement besoin</strong> pour la conversation en cours. Tu écris ta newsletter ? Active Firecrawl seul. Tu travailles sur du code ? Active Playwright seul.</li><li><strong>Vérifie en haut à droite de l'écran</strong> les MCP actifs avant chaque nouvelle session. Le réflexe \"MCP-check\" doit devenir aussi naturel que vérifier ton micro avant un call.</li><li><strong>Bénéfice secondaire :</strong> ton contexte de base (AGENTS.md, Moi.md) prend une part beaucoup plus grande dans le contexte total. Donc ton style, tes préférences, tes process pèsent plus dans la réponse de l'IA.</li></ul></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-5-faire-évoluer-tes-skills-par-métacognition\">Principe 5 : Faire évoluer tes skills par métacognition</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tes skills (les commandes IA que tu crées en semaine 2) ne sont jamais parfaits du premier coup. La bonne nouvelle : <strong class=\"font-semibold text-foreground\">ils peuvent s'améliorer tout seuls</strong>, à condition que tu leur en donnes l'occasion.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-réflexe-à-ancrer\">Le réflexe à ancrer</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À la fin de chaque session où tu as utilisé un skill, et où tu as dû reprendre l'IA plusieurs fois (\"non, pas ce titre\", \"reformule plus court\", \"manque ça\"), demande-lui ceci :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Fais de la métacognition sur tous les points où je t'ai repris dans cette\nsession. Mets à jour le skill [nom-du-skill] pour intégrer ces consignes\ndans ton fonctionnement de base. La prochaine fois, je ne devrais plus\navoir à te les redire.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va lire son propre skill, repérer ce qui manquait, et le réécrire avec les nouvelles règles. À la session suivante, le skill sera meilleur. Au bout de 3 ou 4 itérations, il est fiable.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"et-pour-les-usages-pas-encore-en-skill\">Et pour les usages pas encore en skill ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as un usage que tu fais \"à la main\" pour la première fois (par exemple écrire une vidéo YouTube sans avoir de skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/youtube</code>), tu peux le transformer en skill <strong class=\"font-semibold text-foreground\">à partir de la conversation où tu l'as fait</strong> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>À partir de tout ce qu'on s'est dit dans cette conversation, génère-moi\nun skill pour qu'on puisse refaire ce type de tâche plus facilement la\nprochaine fois. Utilise /create-skill pour respecter les bonnes normes\net la structure standard.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/create-skill</code> est déjà incluse dans ton coffre. Elle te guide pour créer un skill qui respecte le bon format (frontmatter, méthode, exemples, règles). Tu pars d'une vraie conversation, tu en extrais une méthode réutilisable.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"principe-6-done-à-la-fin-de-chaque-session\">Principe 6 : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code> à la fin de chaque session</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le dernier réflexe, peut-être le plus simple. <strong class=\"font-semibold text-foreground\">À la fin de chaque session, tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>.</strong></p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/done\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ce que ça fait :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">L'IA fait un bilan court de ce qui s'est passé dans la session.</li>\n<li class=\"leading-7\">Elle identifie ce qu'elle a appris sur toi, tes préférences, tes projets.</li>\n<li class=\"leading-7\">Elle met à jour les contextes pertinents (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Moi.md</code>, fichier de phase de vie, note du projet en cours, AGENTS.md si besoin).</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'effet cumulé est puissant : <strong class=\"font-semibold text-foreground\">ton contexte holistique reste à jour en permanence</strong>. Chaque conversation enrichit ton coffre. Au bout d'un mois, l'IA te connaît mieux que la plupart de tes collègues. Au bout de trois mois, c'est un vrai bras droit.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>, ton contexte stagne. Avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code> après chaque session, il s'enrichit en continu. C'est probablement le plus petit effort pour le plus gros effet long terme.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"en-résumé\">En résumé</h2>\n<div class=\"my-8 flex flex-col gap-2 max-w-2xl mx-auto\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-emerald-700 mt-0.5 shrink-0\">1.</div><div class=\"text-sm text-emerald-900\"><strong>Ne délègue jamais ta clarté de pensée.</strong> Le goût et l'intention repartent toujours de toi.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-violet-700 mt-0.5 shrink-0\">2.</div><div class=\"text-sm text-violet-900\"><strong>Commence toujours en plan mode.</strong> Valide le plan, puis passe en build mode pour exécuter en one-shot.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-blue-700 mt-0.5 shrink-0\">3.</div><div class=\"text-sm text-blue-900\"><strong>Une conversation = un objectif.</strong> Brief de transition entre deux conversations, pas tout dans la même.</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-amber-700 mt-0.5 shrink-0\">4.</div><div class=\"text-sm text-amber-900\"><strong>Active uniquement les MCP nécessaires.</strong> Sinon tu paies 8x plus cher pour des descriptions d'outils que tu n'utilises pas.</div></div><div class=\"rounded-xl border-2 border-rose-200 bg-rose-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-rose-700 mt-0.5 shrink-0\">5.</div><div class=\"text-sm text-rose-900\"><strong>Améliore tes skills par métacognition.</strong> À chaque session, \"améliore ton skill avec ce que je t'ai dit\".</div></div><div class=\"rounded-xl border-2 border-zinc-300 bg-zinc-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-base font-bold text-zinc-700 mt-0.5 shrink-0\">6.</div><div class=\"text-sm text-zinc-900\"><strong><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code> à la fin de chaque session.</strong> Ton contexte holistique s'enrichit en continu.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est un excellent point de départ. Avec ces six réflexes, tu vas avoir des résultats radicalement meilleurs qu'avec un usage \"ChatGPT classique\". À partir de là, tu vas affiner ta façon de communiquer avec l'IA au fil du temps, et comprendre de mieux en mieux ses limites et ses capacités.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai compris pourquoi la clarté de pensée doit rester de moi (l'IA exécute, n'invente pas l'intention) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai compris pourquoi la clarté de pensée doit rester de moi (l'IA exécute, n'invente pas l'intention)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais utiliser /thinking-partner pour clarifier mes idées avant de prompter — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais utiliser /thinking-partner pour clarifier mes idées avant de prompter</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je commence systématiquement mes sessions en plan mode et je valide le plan avant build mode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je commence systématiquement mes sessions en plan mode et je valide le plan avant build mode</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends pourquoi une conversation longue dégrade la précision (compaction, oublis) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends pourquoi une conversation longue dégrade la précision (compaction, oublis)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je crée une nouvelle conversation par objectif au lieu de tout enchaîner dans la même — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je crée une nouvelle conversation par objectif au lieu de tout enchaîner dans la même</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je vérifie les MCP activés en haut à droite et je désactive ceux dont je n'ai pas besoin — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je vérifie les MCP activés en haut à droite et je désactive ceux dont je n'ai pas besoin</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé d'améliorer un skill via 'fais de la métacognition sur cette session' — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé d'améliorer un skill via 'fais de la métacognition sur cette session'</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je tape /done à la fin de chaque session pour enrichir mes contextes — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je tape /done à la fin de chaque session pour enrichir mes contextes</span></li></ul>",
      "content_markdown": "## Bien utiliser l'IA : les 6 principes essentiels\n\nAvant d'attaquer le contenu pédagogique (comprendre ton second cerveau, installer tes outils, créer tes skills), il y a une couche fondamentale à poser : **comment bien parler à l'IA**. Six principes simples qui vont changer du tout au tout la qualité de ce que tu obtiens, et qui te font économiser énormément de temps et d'argent au passage.\n\nBien utiliser l'IA : les fondamentaux\n\nClarté de pensée, plan mode, fenêtre de contexte, gestion des MCP, amélioration continue des skills, /done.\n\nL'objectif de cette leçon : que tu partes de cette base et que tu évolues vers un usage qui t'est propre, en comprenant de plus en plus finement les limites et les capacités de l'IA. C'est ce qui va affiner ta façon de lui communiquer des informations et des demandes.\n\n---\n\n## Principe 1 : Ne jamais déléguer la clarté de pensée à l'IA\n\nC'est le premier réflexe à ancrer. Quand tu commences à prompter une IA pour qu'elle réalise un travail, **tu dois avoir une clarté de pensée absolue** sur ce que tu veux. Pas l'IA. Toi.\n\nAnti-pattern\n\nLaisser l'IA décider pour toi\n\nTu lances un prompt vague genre \"fais-moi quelque chose de bien sur X\" et tu acceptes ce qui sort. Résultat : l'IA hallucine ton goût, choisit à ta place, et tu te retrouves avec quelque chose de générique qui ne te ressemble pas.\n\nBon réflexe\n\nClarifier d'abord, prompter ensuite\n\nTu sais ce que tu veux, ton goût, ton intention, ta sensibilité. Tu le formules clairement, puis tu fais exécuter. Le résultat est juste, du premier coup.\n\n### Et si tu n'as pas encore les idées claires ?\n\nTu peux utiliser l'IA pour **t'aider à clarifier**, sans qu'elle décide à ta place. Le bootcamp inclut un skill dédié pour ça : **`/thinking-partner`**.\n\n```\n/thinking-partner\n```\n\nTu lui dis l'objectif de ta session de réflexion, il devient un partenaire socratique qui pose les bonnes questions pour clarifier tes pensées, sans te donner de réponse prématurée. La clarté reste de toi, l'IA t'aide juste à l'extraire.\n\n> Règle simple : la clarté de pensée, le goût, l'attention, la sensibilité, ça repart toujours de toi. L'IA exécute, elle n'invente pas ton intention.\n\n---\n\n## Principe 2 : Toujours commencer en Plan mode\n\nQuand tu démarres une session de travail, **commence systématiquement en plan mode**. C'est le mode où l'IA a un fonctionnement restreint : elle peut lire des fichiers, appeler des outils pour enrichir son contexte, mais elle **ne peut pas écrire ni exécuter**.\n\nÉtape 1\n\nPlan mode\n\nL'IA lit, explore, appelle des outils. Elle ne touche à rien.\n\n▼\n\nÉtape 2\n\nElle propose un plan\n\nPlan structuré : \"voilà ce que je vais faire, dans cet ordre\".\n\n▼\n\nÉtape 3 : STOP\n\nTu valides (ou tu ajustes)\n\nC'est ton checkpoint. Tu alignes l'IA avant qu'elle exécute.\n\n▼\n\nÉtape 4\n\nBuild mode\n\nL'IA exécute le plan validé. Liste de to-do qui apparaît au-dessus de la barre.\n\n### Pourquoi c'est puissant\n\nLe plan mode te permet de faire des tâches **en one-shot**. C'est-à-dire que si tu clarifies bien avant, tu évites toutes les itérations inutiles qui viennent ensuite. Au lieu de \"ah non, pas comme ça, refais\", tu valides le plan, l'IA exécute, c'est juste du premier coup.\n\nConcrètement, l'IA propose un plan du genre :\n\n> Plan proposé :\n> \n> Comprendre la structure actuelle du site\n> Créer la nouvelle page\n> Rédiger le texte\n> Te faire valider le texte\n> Intégrer sur le site\n\nTu valides, et l'affichage passe en mode build avec ta to-do list visible. Tu vois exactement où l'IA en est, étape par étape.\n\n---\n\n## Principe 3 : Comprendre la fenêtre de contexte\n\nC'est probablement le concept le plus important à intégrer pour bien utiliser l'IA. Tous les modèles ont une **fenêtre de contexte** : la quantité maximale d'information qu'ils peuvent garder en mémoire dans une conversation.\n\n### Les tailles courantes en 2026\n\n100 k\n\nPetits modèles\n\n~75 k mots\n\n200 à 260 k\n\nStandard 2026\n\n~150 à 200 k mots\n\n500 k à 1 M\n\nFrontière haut de gamme\n\n~1,3 M mots\n\n+1 M\n\nExpérimental\n\nTrès coûteux\n\n### Pourquoi c'est crucial : le coût computationnel et la perte de précision\n\nCette mémoire est **extrêmement coûteuse en termes de calcul**. Chaque nouveau token qui arrive déclenche deux multiplications avec **tous les tokens précédents**, et ce **60 fois d'affilée** (une fois par couche du modèle). On parle de **centaines de millions de multiplications par mot généré**.\n\nPour rendre ça gérable à grande échelle, les constructeurs d'IA utilisent des astuces. Par exemple, sur DeepSeek :\n\n- Une couche sur deux ne lit que **1 000 tokens sur 1 million** (les plus pertinents)\n- Les tokens sont **compactés par blocs de 128** (l'IA garde une idée globale de chaque bloc, pas les détails)\n\nRésultat : **plus ta conversation est longue, plus l'IA devient imprécise**. Si tu es au token 900 000 dans une conversation très longue, l'IA va commencer à **se perdre**, oublier les instructions du début, halluciner sur les détails. C'est ce qui te frustre quand tu sens que \"l'IA ne suit plus\".\n\n### La solution : une conversation = un objectif\n\nRègle d'or\n\nNe pas tout enchaîner dans une seule conversation longue. Ouvre une nouvelle conversation à chaque changement d'objectif.\n\nTentation classique : tu commences ta journée avec \"tiens, j'aimerais clarifier ma journée\", puis \"ok, du coup commençons cette tâche\", puis \"ah, continuons là-dessus\"... C'est agréable parce qu'on a l'impression que l'IA nous connaît. Mais ça pollue ta fenêtre de contexte avec tout le journaling de la veille, les détails du repas, etc. Au bout d'un moment, l'IA devient lente et hallucine.\n\n### Le pattern à adopter\n\n1. Conversation A : Planification de la journée\n\nTu clarifies tes priorités, l'IA t'aide à structurer.\n\n↓\n\n2. Fin de la conversation A\n\nTu dis : \"Génère-moi un brief court pour transmettre à la prochaine conversation.\"\n\n↓\n\n3. Conversation B : Tâche du jour (par exemple créer une présentation)\n\nTu colles le brief, tu pars en plan mode pour clarifier, puis build mode pour exécuter en one-shot.\n\nBonus : **les conversations courtes coûtent beaucoup moins cher** que les longues, parce que tu ne refais pas tourner la fenêtre saturée à chaque message. Ton portefeuille te dit merci.\n\n---\n\n## Principe 4 : Attention aux MCP activés\n\nVoici un point que la plupart des gens ignorent et qui peut **multiplier ton coût par 8** sans que tu t'en aperçoives.\n\n### L'expérience qui parle\n\nTu ouvres une nouvelle session, tu actives 4 MCP (par exemple Firecrawl, Playwright, Notion, Linear), et tu envoies un simple \"test\". Concrètement, \"test\" c'est **un seul mot**, donc à peu près **1 token**. Avec le prompt système, tu devrais être à **environ 1 000 tokens** au total.\n\nSauf que tu te retrouves à... **47 000 tokens d'entrée**.\n\nAvec 4 MCP activés\n\n47 000 tokens\n\nPour envoyer juste \"test\". Si tu es à la consommation, ça te coûte déjà 2 centimes pour rien.\n\nAvec 0 MCP activé\n\n6 000 tokens\n\nPour exactement la même requête. Moins de bruit, plus de pertinence, beaucoup moins cher.\n\n### Pourquoi cette différence\n\nQuand tu actives un MCP, l'IA reçoit non seulement l'accès à l'outil, mais aussi **une description détaillée de chaque outil exposé par ce MCP**. Notion MCP par exemple, c'est 30 à 50 tools, chacun avec sa description, ses paramètres, ses exemples. Multiplié par 4 MCP, tu te retrouves avec des dizaines de milliers de tokens uniquement de description, **avant même que ta vraie question soit traitée**.\n\n### Les bonnes pratiques\n\n- **Désactive tous les MCP au démarrage** d'une nouvelle conversation. Pars de zéro.\n- **Active uniquement ce dont tu as strictement besoin** pour la conversation en cours. Tu écris ta newsletter ? Active Firecrawl seul. Tu travailles sur du code ? Active Playwright seul.\n- **Vérifie en haut à droite de l'écran** les MCP actifs avant chaque nouvelle session. Le réflexe \"MCP-check\" doit devenir aussi naturel que vérifier ton micro avant un call.\n- **Bénéfice secondaire :** ton contexte de base (AGENTS.md, Moi.md) prend une part beaucoup plus grande dans le contexte total. Donc ton style, tes préférences, tes process pèsent plus dans la réponse de l'IA.\n\n---\n\n## Principe 5 : Faire évoluer tes skills par métacognition\n\nTes skills (les commandes IA que tu crées en semaine 2) ne sont jamais parfaits du premier coup. La bonne nouvelle : **ils peuvent s'améliorer tout seuls**, à condition que tu leur en donnes l'occasion.\n\n### Le réflexe à ancrer\n\nÀ la fin de chaque session où tu as utilisé un skill, et où tu as dû reprendre l'IA plusieurs fois (\"non, pas ce titre\", \"reformule plus court\", \"manque ça\"), demande-lui ceci :\n\n```\nFais de la métacognition sur tous les points où je t'ai repris dans cette\nsession. Mets à jour le skill [nom-du-skill] pour intégrer ces consignes\ndans ton fonctionnement de base. La prochaine fois, je ne devrais plus\navoir à te les redire.\n```\n\nL'IA va lire son propre skill, repérer ce qui manquait, et le réécrire avec les nouvelles règles. À la session suivante, le skill sera meilleur. Au bout de 3 ou 4 itérations, il est fiable.\n\n### Et pour les usages pas encore en skill ?\n\nSi tu as un usage que tu fais \"à la main\" pour la première fois (par exemple écrire une vidéo YouTube sans avoir de skill `/youtube`), tu peux le transformer en skill **à partir de la conversation où tu l'as fait** :\n\n```\nÀ partir de tout ce qu'on s'est dit dans cette conversation, génère-moi\nun skill pour qu'on puisse refaire ce type de tâche plus facilement la\nprochaine fois. Utilise /create-skill pour respecter les bonnes normes\net la structure standard.\n```\n\nLa commande `/create-skill` est déjà incluse dans ton coffre. Elle te guide pour créer un skill qui respecte le bon format (frontmatter, méthode, exemples, règles). Tu pars d'une vraie conversation, tu en extrais une méthode réutilisable.\n\n---\n\n## Principe 6 : `/done` à la fin de chaque session\n\nLe dernier réflexe, peut-être le plus simple. **À la fin de chaque session, tape `/done`.**\n\n```\n/done\n```\n\nCe que ça fait :\n\n- L'IA fait un bilan court de ce qui s'est passé dans la session.\n- Elle identifie ce qu'elle a appris sur toi, tes préférences, tes projets.\n- Elle met à jour les contextes pertinents (`Moi.md`, fichier de phase de vie, note du projet en cours, AGENTS.md si besoin).\n\nL'effet cumulé est puissant : **ton contexte holistique reste à jour en permanence**. Chaque conversation enrichit ton coffre. Au bout d'un mois, l'IA te connaît mieux que la plupart de tes collègues. Au bout de trois mois, c'est un vrai bras droit.\n\n> Sans /done, ton contexte stagne. Avec /done après chaque session, il s'enrichit en continu. C'est probablement le plus petit effort pour le plus gros effet long terme.\n\n---\n\n## En résumé\n\n1.\n\n**Ne délègue jamais ta clarté de pensée.** Le goût et l'intention repartent toujours de toi.\n\n2.\n\n**Commence toujours en plan mode.** Valide le plan, puis passe en build mode pour exécuter en one-shot.\n\n3.\n\n**Une conversation = un objectif.** Brief de transition entre deux conversations, pas tout dans la même.\n\n4.\n\n**Active uniquement les MCP nécessaires.** Sinon tu paies 8x plus cher pour des descriptions d'outils que tu n'utilises pas.\n\n5.\n\n**Améliore tes skills par métacognition.** À chaque session, \"améliore ton skill avec ce que je t'ai dit\".\n\n6.\n\n**`/done` à la fin de chaque session.** Ton contexte holistique s'enrichit en continu.\n\nC'est un excellent point de départ. Avec ces six réflexes, tu vas avoir des résultats radicalement meilleurs qu'avec un usage \"ChatGPT classique\". À partir de là, tu vas affiner ta façon de communiquer avec l'IA au fil du temps, et comprendre de mieux en mieux ses limites et ses capacités.\n\n---\n\n- J'ai compris pourquoi la clarté de pensée doit rester de moi (l'IA exécute, n'invente pas l'intention)\n- Je sais utiliser /thinking-partner pour clarifier mes idées avant de prompter\n- Je commence systématiquement mes sessions en plan mode et je valide le plan avant build mode\n- Je comprends pourquoi une conversation longue dégrade la précision (compaction, oublis)\n- Je crée une nouvelle conversation par objectif au lieu de tout enchaîner dans la même\n- Je vérifie les MCP activés en haut à droite et je désactive ceux dont je n'ai pas besoin\n- J'ai testé d'améliorer un skill via 'fais de la métacognition sur cette session'\n- Je tape /done à la fin de chaque session pour enrichir mes contextes",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/7b753107da104f039b35d473e6a8fdee",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Bien utiliser l'IA : les fondamentaux",
          "title_source": "iframe-title",
          "video_id": "7b753107da104f039b35d473e6a8fdee",
          "watch_url": "https://www.loom.com/share/7b753107da104f039b35d473e6a8fdee"
        }
      ],
      "captured_at": "2026-08-03T10:05:30.407Z",
      "counts": {
        "code_blocks": 17,
        "headings": 19,
        "iframes": 1,
        "images": 0,
        "links": 0,
        "text_chars": 11866
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "19-semaine-1-principes-second-cerveau",
      "order": 19,
      "kind": "section",
      "section": "06-second-cerveau",
      "title": "Comprendre votre second cerveau",
      "slug": "semaine-1-principes-second-cerveau",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-principes-second-cerveau",
      "summary": "Maintenant que ton coffre est initialisé, on prend le temps de comprendre comment il fonctionne : IPCRA, Phases de Vie, rituels, carry-forward, mémoire inter-sessions, ruissellement via skills.",
      "objective": "Avoir une image claire de la mécanique du coffre pour savoir où mettre quoi, comment ça évolue dans le temps, et comment l'IA en tire parti.",
      "expected_output": "Capable d'expliquer en 2 minutes : IPCRA, phase de vie, ruissellement, et pourquoi /done / /weekly-review existent.",
      "content_html": "<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Les principes du second cerveau</h1>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces principes viennent de mes formations Atomic Knowledge et Atomic Timing, et ils sont au cœur du système qu'on installe ensemble. Cette leçon résume tout, avec les vidéos d'origine en bonus pour aller plus loin.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ipcra-organiser-par-utilité-pas-par-thème\">IPCRA : organiser par utilité, pas par thème</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La méthode IPCRA, c'est la fondation du coffre. Au lieu de te demander « c'est quoi ? » quand tu ranges une note, tu te demandes <strong class=\"font-semibold text-foreground\">« à quoi ça sert ? »</strong></p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Dossier</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Question</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Durée de vie</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">0 INBOX</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Je ne sais pas encore</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Temporaire, à traiter</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">1 PROJETS</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Ça a une fin (deadline)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Jusqu'à complétion</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">2 CASQUETTES</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">C'est permanent (rôle ongoing)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tant que le rôle existe</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">3 RESSOURCES</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">C'est une référence utile</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tant que c'est pertinent</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">4 TOOLS</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Ça sert d'outillage (templates, scripts, skills)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tant que tu travailles avec</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">5 ARCHIVE</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">C'est terminé</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Conservation passive</td></tr></tbody></table></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"projets-vs-casquettes\">Projets vs Casquettes</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la distinction la plus importante :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Projet</strong> = a une fin. « Lancer le bootcamp », « Déménager », « Écrire un livre ». Quand c'est fini, ça va dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code>.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Casquette</strong> = n'a pas de fin. « Entrepreneur », « Parent », « Créateur », « Apprenant ». C'est un rôle permanent, une responsabilité ongoing.</li>\n</ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Règle pratique :</strong> si ça n'a pas de deadline (même floue), c'est une casquette. La plupart des gens ont entre 3 et 7 casquettes.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-flux-ipcra\">Le flux IPCRA</h3>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-xs rounded-xl border-2 border-zinc-300 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-base font-bold text-zinc-700\">Tout arrive dans 0 INBOX</div></div><div class=\"h-6 w-px bg-zinc-300\"></div><div class=\"rounded-lg bg-zinc-100 px-4 py-2 text-sm font-medium text-zinc-600 italic\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">« À quoi ça sert ? »</p></div><div class=\"h-6 w-px bg-zinc-300\"></div><div class=\"grid w-full max-w-lg grid-cols-4 gap-2\"><div class=\"rounded-lg border-2 border-blue-200 bg-blue-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-blue-700\">1 PROJETS</div><div class=\"text-xs text-blue-400 mt-1\">A une fin</div></div><div class=\"rounded-lg border-2 border-purple-200 bg-purple-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-purple-700\">2 CASQ.</div><div class=\"text-xs text-purple-400 mt-1\">Permanent</div></div><div class=\"rounded-lg border-2 border-emerald-200 bg-emerald-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-emerald-700\">3 RESS.</div><div class=\"text-xs text-emerald-400 mt-1\">Référence</div></div><div class=\"rounded-lg border-2 border-zinc-200 bg-zinc-50 px-3 py-3 text-center\"><div class=\"text-xs font-bold text-zinc-500\">5 ARCHIVE</div><div class=\"text-xs text-zinc-400 mt-1\">Terminé</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'inbox est un <strong class=\"font-semibold text-foreground\">tampon</strong>, pas un dossier permanent. Le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/inbox-processor</code> t'aide à la vider régulièrement.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pour-aller-plus-loin-les-vidéos-dorigine\">Pour aller plus loin : les vidéos d'origine</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces deux vidéos viennent d'Atomic Notes (ancien Atomic Knowledge). Elles posent les bases de la méthode IPCRA en profondeur. Pas obligatoires pour suivre le bootcamp, mais très utiles si tu veux comprendre la logique en détail.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Overview du système Atomic Notes (11 min)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315659/cbaba611-8668-4e11-b02e-b576851abd5c?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Overview du système Atomic Notes (11 min)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Vue d'ensemble : pourquoi cette approche, comment les briques s'articulent.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Créer les dossiers IPCRA (17 min)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315659/a9bdd944-710b-41cd-a3ed-79b1cc38e7b0?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Créer les dossiers IPCRA (17 min)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le détail de la méthode IPCRA, dossier par dossier, avec démonstration dans Obsidian.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-phases-de-vie\">Les Phases de Vie</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-concept\">Le concept</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La vie avance par <strong class=\"font-semibold text-foreground\">phases</strong>, pas en cycles fixes. Une phase se termine quand l'énergie change, pas parce que le calendrier le dit.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Exemples de phases :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">« Lancement solo » (3 mois intenses de création)</li>\n<li class=\"leading-7\">« Scale &amp; Systems » (focus sur la structure)</li>\n<li class=\"leading-7\">« Reconstruction » (après un burnout ou un changement majeur)</li>\n<li class=\"leading-7\">« Exploration » (période de recherche et d'apprentissage)</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pourquoi-cest-puissant\">Pourquoi c'est puissant</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton journaling est organisé <strong class=\"font-semibold text-foreground\">par phase</strong>, pas en vrac. Daily notes et weekly notes se rangent dans le dossier de ta phase active :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>2 CASQUETTES/Sur ma vie/Life Phases/\n├── 1 Ma première phase/\n│   ├── 1 Intention.md          ← Objectifs de la phase\n│   ├── 2026-05-12.md           ← Daily note\n│   ├── 2026-05-13.md           ← Daily note\n│   ├── 2026-W20.md             ← Weekly note\n│   └── ...\n├── 2 Deuxième phase/\n│   ├── 1 Intention.md\n│   ├── 2 Bilan.md              ← Bilan rempli quand la phase se termine\n│   └── ...\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu reliras tes notes dans 6 mois, tu verras exactement ce que tu faisais et pensais <strong class=\"font-semibold text-foreground\">pendant chaque période de ta vie</strong>. C'est incomparablement plus riche qu'un dossier « Journal 2026 ».</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"changer-de-phase\">Changer de phase</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand l'énergie change (nouveau projet majeur, déménagement, tournant de vie) tu lances :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/new-life-phase Nom de la phase\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA fait le bilan de la phase actuelle, crée le nouveau dossier, et redirige automatiquement les daily notes et weekly notes vers le nouvel espace.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pour-aller-plus-loin-les-vidéos-datomic-timing\">Pour aller plus loin : les vidéos d'Atomic Timing</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces vidéos viennent d'Atomic Timing, où je creuse vraiment le concept des phases de vie. Tu y trouveras tout ce qu'il faut pour comprendre pourquoi cette organisation marche, comment poser une intention de phase, et comment passer d'une phase à la suivante.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">C'est quoi les phases de vie ?</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"C'est quoi les phases de vie ?\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le concept, son origine, et pourquoi c'est plus utile qu'un agenda annuel.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Définissez votre phase de vie</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Définissez votre phase de vie\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">L'exercice concret pour identifier où tu en es et formuler ton intention de phase.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Comment changer de phase de vie ?</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/223e4b6a-d83e-4f93-b41a-0c087ee1b32f?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Comment changer de phase de vie ?\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Les signaux qui indiquent qu'une phase se termine, et comment faire la transition proprement.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-rituels-du-système\">Les rituels du système</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le système ne vit que si tu l'utilises régulièrement. Voici les deux rituels essentiels via les skills installés dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/</code>.</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-2 gap-4 max-w-lg mx-auto\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-2\">À chaque session</div><div class=\"text-sm font-bold text-emerald-700\"><code>/done</code></div><div class=\"text-xs text-emerald-500 mt-2\">Log la session, met à jour les contextes des projets et casquettes touchés.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-400 mb-2\">Une fois par semaine</div><div class=\"text-sm font-bold text-blue-700\"><code>/weekly-review</code></div><div class=\"text-xs text-blue-500 mt-2\">Bilan, carry-forward, plan par jour pour la semaine suivante.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voir la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../21-semaine-1-weekly-review/semaine-1-weekly-review.html\">Utiliser l'IA comme un assistant personnel</a> pour le détail du rituel hebdomadaire.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-ruissellement-flux-de-contexte\">Le ruissellement (flux de contexte)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand l'IA fait quelque chose pour toi, l'information remonte automatiquement à travers les bonnes notes. À 3 niveaux.</p>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-sm rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-emerald-700\">Action de session</div><div class=\"text-xs text-emerald-500\">Éditer, créer, décider, capturer une idée...</div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 2 : automatique</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-blue-700\">Daily note de la phase active</div><div class=\"text-xs text-blue-500\">Le log de la session, fait par <code>/done</code></div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 3 : automatique</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-purple-200 bg-purple-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-purple-700\">Note de contexte du projet ou de la casquette</div><div class=\"text-xs text-purple-500\">Les décisions et faits remontent</div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs font-medium\">▼ Niveau 4 : avec validation</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-sm rounded-xl border-2 border-zinc-300 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-sm font-bold text-zinc-700\">Moi.md ou intention de phase</div><div class=\"text-xs text-zinc-500\">Si changement majeur, avec ton accord explicite</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as rien à gérer manuellement. <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code> orchestre tout ce flux. Les mises à jour de notes projet et casquette se font automatiquement. Les mises à jour de <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Moi.md</code> ou de l'intention de phase te demandent toujours validation explicite.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-carry-forward\">Le carry-forward</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le carry-forward garantit que <strong class=\"font-semibold text-foreground\">rien ne se perd</strong> entre les semaines. Quand tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>, l'IA lit ta weekly note précédente et récupère toutes les cases non cochées (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">- [ ]</code>). Elles sont automatiquement réinjectées dans la nouvelle semaine.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si une tâche traîne depuis 3 semaines, c'est un signal clair : soit tu la fais, soit tu décides consciemment de l'abandonner.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"questions-fréquentes\">Questions fréquentes</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"casquette-vs-projet-comment-choisir\">Casquette vs Projet : comment choisir ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La règle est simple : <strong class=\"font-semibold text-foreground\">est-ce que ça a une fin ?</strong></p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Exemple</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Type</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Pourquoi</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Entrepreneur</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Casquette</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Permanent, tu ne « finis » pas d'être entrepreneur</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Parent</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Casquette</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Permanent, rôle de vie</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Sportif</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Casquette</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Permanent, identité ongoing</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Lancer une nouvelle offre</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Projet</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">A une date de fin, quand c'est lancé, c'est fini</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Organiser l'anniversaire de sa fille</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Projet</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">A une date de fin, le jour J</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Déménager</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Projet</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">A une date de fin, quand t'es installé</td></tr></tbody></table></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quelle-granularité-pour-les-casquettes\">Quelle granularité pour les casquettes ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Commence par 3 à 5 casquettes larges : Entrepreneur, Parent, Sportif, Créateur. Tu affineras plus tard quand tu verras ce qui manque. Le piège, c'est de vouloir tout découper dès le début, ça crée de la complexité inutile. L'IA t'aidera à restructurer quand le besoin se présentera.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"je-croyais-quobsidian-cétait-de-ne-pas-siloter\">« Je croyais qu'Obsidian, c'était de ne pas siloter ? »</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">IPCRA organise les <strong class=\"font-semibold text-foreground\">fichiers</strong>, c'est la structure physique de ton vault. Mais les <strong class=\"font-semibold text-foreground\">wikilinks</strong> (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[liens entre notes]]</code>) créent les connexions entre concepts, indépendamment des dossiers. Une note dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">1 PROJETS/</code> peut référencer une note dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">2 CASQUETTES/</code> sans problème.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les dossiers, c'est du rangement. Les liens, c'est de la pensée. Les deux coexistent.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quand-est-ce-quon-bouge-une-note-de-1-projets-à-5-archive\">Quand est-ce qu'on bouge une note de <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">1 PROJETS/</code> à <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code> ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand le projet est officiellement terminé. La note de contexte du projet a une frontmatter <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">status: active</code>, tu la passes en <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">status: archived</code> et tu déplaces le dossier dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">5 ARCHIVE/</code>. L'IA peut le faire pour toi à la fin du projet.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends IPCRA (Inbox, Projets, Casquettes, Ressources, Tools, Archive) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends IPCRA (Inbox, Projets, Casquettes, Ressources, Tools, Archive)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends la différence entre Projet (a une fin) et Casquette (permanent) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends la différence entre Projet (a une fin) et Casquette (permanent)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends les Phases de Vie et pourquoi le journaling est organisé par phase — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends les Phases de Vie et pourquoi le journaling est organisé par phase</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je connais les rituels essentiels (/done et /weekly-review) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je connais les rituels essentiels (/done et /weekly-review)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends le ruissellement à 3 niveaux (daily, note de contexte, Moi.md ou intention) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends le ruissellement à 3 niveaux (daily, note de contexte, Moi.md ou intention)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que les tâches non complétées sont automatiquement reportées (carry-forward) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que les tâches non complétées sont automatiquement reportées (carry-forward)</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> compréhension d'IPCRA, des Life Phases, des rituels et du ruissellement. Tu sais comment le système fonctionne et pourquoi chaque pièce est importante.</p>\n</blockquote>",
      "content_markdown": "# Les principes du second cerveau\n\nCes principes viennent de mes formations Atomic Knowledge et Atomic Timing, et ils sont au cœur du système qu'on installe ensemble. Cette leçon résume tout, avec les vidéos d'origine en bonus pour aller plus loin.\n\n---\n\n## IPCRA : organiser par utilité, pas par thème\n\nLa méthode IPCRA, c'est la fondation du coffre. Au lieu de te demander « c'est quoi ? » quand tu ranges une note, tu te demandes **« à quoi ça sert ? »**\n\n| Dossier | Question | Durée de vie |\n| --- | --- | --- |\n| 0 INBOX | Je ne sais pas encore | Temporaire, à traiter |\n| 1 PROJETS | Ça a une fin (deadline) | Jusqu'à complétion |\n| 2 CASQUETTES | C'est permanent (rôle ongoing) | Tant que le rôle existe |\n| 3 RESSOURCES | C'est une référence utile | Tant que c'est pertinent |\n| 4 TOOLS | Ça sert d'outillage (templates, scripts, skills) | Tant que tu travailles avec |\n| 5 ARCHIVE | C'est terminé | Conservation passive |\n\n### Projets vs Casquettes\n\nC'est la distinction la plus importante :\n\n- **Projet** = a une fin. « Lancer le bootcamp », « Déménager », « Écrire un livre ». Quand c'est fini, ça va dans `5 ARCHIVE/`.\n- **Casquette** = n'a pas de fin. « Entrepreneur », « Parent », « Créateur », « Apprenant ». C'est un rôle permanent, une responsabilité ongoing.\n\n> Règle pratique : si ça n'a pas de deadline (même floue), c'est une casquette. La plupart des gens ont entre 3 et 7 casquettes.\n\n### Le flux IPCRA\n\nTout arrive dans 0 INBOX\n\n« À quoi ça sert ? »\n\n1 PROJETS\n\nA une fin\n\n2 CASQ.\n\nPermanent\n\n3 RESS.\n\nRéférence\n\n5 ARCHIVE\n\nTerminé\n\nL'inbox est un **tampon**, pas un dossier permanent. Le skill `/inbox-processor` t'aide à la vider régulièrement.\n\n### Pour aller plus loin : les vidéos d'origine\n\nCes deux vidéos viennent d'Atomic Notes (ancien Atomic Knowledge). Elles posent les bases de la méthode IPCRA en profondeur. Pas obligatoires pour suivre le bootcamp, mais très utiles si tu veux comprendre la logique en détail.\n\nOverview du système Atomic Notes (11 min)\n\nVue d'ensemble : pourquoi cette approche, comment les briques s'articulent.\n\nCréer les dossiers IPCRA (17 min)\n\nLe détail de la méthode IPCRA, dossier par dossier, avec démonstration dans Obsidian.\n\n---\n\n## Les Phases de Vie\n\n### Le concept\n\nLa vie avance par **phases**, pas en cycles fixes. Une phase se termine quand l'énergie change, pas parce que le calendrier le dit.\n\nExemples de phases :\n\n- « Lancement solo » (3 mois intenses de création)\n- « Scale & Systems » (focus sur la structure)\n- « Reconstruction » (après un burnout ou un changement majeur)\n- « Exploration » (période de recherche et d'apprentissage)\n\n### Pourquoi c'est puissant\n\nTon journaling est organisé **par phase**, pas en vrac. Daily notes et weekly notes se rangent dans le dossier de ta phase active :\n\n```\n2 CASQUETTES/Sur ma vie/Life Phases/\n├── 1 Ma première phase/\n│   ├── 1 Intention.md          ← Objectifs de la phase\n│   ├── 2026-05-12.md           ← Daily note\n│   ├── 2026-05-13.md           ← Daily note\n│   ├── 2026-W20.md             ← Weekly note\n│   └── ...\n├── 2 Deuxième phase/\n│   ├── 1 Intention.md\n│   ├── 2 Bilan.md              ← Bilan rempli quand la phase se termine\n│   └── ...\n```\n\nQuand tu reliras tes notes dans 6 mois, tu verras exactement ce que tu faisais et pensais **pendant chaque période de ta vie**. C'est incomparablement plus riche qu'un dossier « Journal 2026 ».\n\n### Changer de phase\n\nQuand l'énergie change (nouveau projet majeur, déménagement, tournant de vie) tu lances :\n\n```\n/new-life-phase Nom de la phase\n```\n\nL'IA fait le bilan de la phase actuelle, crée le nouveau dossier, et redirige automatiquement les daily notes et weekly notes vers le nouvel espace.\n\n### Pour aller plus loin : les vidéos d'Atomic Timing\n\nCes vidéos viennent d'Atomic Timing, où je creuse vraiment le concept des phases de vie. Tu y trouveras tout ce qu'il faut pour comprendre pourquoi cette organisation marche, comment poser une intention de phase, et comment passer d'une phase à la suivante.\n\nC'est quoi les phases de vie ?\n\nLe concept, son origine, et pourquoi c'est plus utile qu'un agenda annuel.\n\nDéfinissez votre phase de vie\n\nL'exercice concret pour identifier où tu en es et formuler ton intention de phase.\n\nComment changer de phase de vie ?\n\nLes signaux qui indiquent qu'une phase se termine, et comment faire la transition proprement.\n\n---\n\n## Les rituels du système\n\nLe système ne vit que si tu l'utilises régulièrement. Voici les deux rituels essentiels via les skills installés dans `Second Cerveau/4 TOOLS/skills/`.\n\nÀ chaque session\n\n`/done`\n\nLog la session, met à jour les contextes des projets et casquettes touchés.\n\nUne fois par semaine\n\n`/weekly-review`\n\nBilan, carry-forward, plan par jour pour la semaine suivante.\n\nVoir la leçon [Utiliser l'IA comme un assistant personnel](/plateforme/ia-juillet-2026/semaine-1-weekly-review) pour le détail du rituel hebdomadaire.\n\n---\n\n## Le ruissellement (flux de contexte)\n\nQuand l'IA fait quelque chose pour toi, l'information remonte automatiquement à travers les bonnes notes. À 3 niveaux.\n\nAction de session\n\nÉditer, créer, décider, capturer une idée...\n\n▼ Niveau 2 : automatique\n\nDaily note de la phase active\n\nLe log de la session, fait par `/done`\n\n▼ Niveau 3 : automatique\n\nNote de contexte du projet ou de la casquette\n\nLes décisions et faits remontent\n\n▼ Niveau 4 : avec validation\n\nMoi.md ou intention de phase\n\nSi changement majeur, avec ton accord explicite\n\nTu n'as rien à gérer manuellement. `/done` orchestre tout ce flux. Les mises à jour de notes projet et casquette se font automatiquement. Les mises à jour de `Moi.md` ou de l'intention de phase te demandent toujours validation explicite.\n\n---\n\n## Le carry-forward\n\nLe carry-forward garantit que **rien ne se perd** entre les semaines. Quand tu lances `/weekly-review`, l'IA lit ta weekly note précédente et récupère toutes les cases non cochées (`- [ ]`). Elles sont automatiquement réinjectées dans la nouvelle semaine.\n\nSi une tâche traîne depuis 3 semaines, c'est un signal clair : soit tu la fais, soit tu décides consciemment de l'abandonner.\n\n---\n\n## Questions fréquentes\n\n### Casquette vs Projet : comment choisir ?\n\nLa règle est simple : **est-ce que ça a une fin ?**\n\n| Exemple | Type | Pourquoi |\n| --- | --- | --- |\n| Entrepreneur | Casquette | Permanent, tu ne « finis » pas d'être entrepreneur |\n| Parent | Casquette | Permanent, rôle de vie |\n| Sportif | Casquette | Permanent, identité ongoing |\n| Lancer une nouvelle offre | Projet | A une date de fin, quand c'est lancé, c'est fini |\n| Organiser l'anniversaire de sa fille | Projet | A une date de fin, le jour J |\n| Déménager | Projet | A une date de fin, quand t'es installé |\n\n### Quelle granularité pour les casquettes ?\n\nCommence par 3 à 5 casquettes larges : Entrepreneur, Parent, Sportif, Créateur. Tu affineras plus tard quand tu verras ce qui manque. Le piège, c'est de vouloir tout découper dès le début, ça crée de la complexité inutile. L'IA t'aidera à restructurer quand le besoin se présentera.\n\n### « Je croyais qu'Obsidian, c'était de ne pas siloter ? »\n\nIPCRA organise les **fichiers**, c'est la structure physique de ton vault. Mais les **wikilinks** (`[[liens entre notes]]`) créent les connexions entre concepts, indépendamment des dossiers. Une note dans `1 PROJETS/` peut référencer une note dans `2 CASQUETTES/` sans problème.\n\nLes dossiers, c'est du rangement. Les liens, c'est de la pensée. Les deux coexistent.\n\n### Quand est-ce qu'on bouge une note de `1 PROJETS/` à `5 ARCHIVE/` ?\n\nQuand le projet est officiellement terminé. La note de contexte du projet a une frontmatter `status: active`, tu la passes en `status: archived` et tu déplaces le dossier dans `5 ARCHIVE/`. L'IA peut le faire pour toi à la fin du projet.\n\n---\n\n## Checklist\n\n- Je comprends IPCRA (Inbox, Projets, Casquettes, Ressources, Tools, Archive)\n- Je comprends la différence entre Projet (a une fin) et Casquette (permanent)\n- Je comprends les Phases de Vie et pourquoi le journaling est organisé par phase\n- Je connais les rituels essentiels (/done et /weekly-review)\n- Je comprends le ruissellement à 3 niveaux (daily, note de contexte, Moi.md ou intention)\n- Je sais que les tâches non complétées sont automatiquement reportées (carry-forward)\n\n> Output attendu : compréhension d'IPCRA, des Life Phases, des rituels et du ruissellement. Tu sais comment le système fonctionne et pourquoi chaque pièce est importante.",
      "assets": [],
      "links": [
        {
          "text": "Utiliser l'IA comme un assistant personnel",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-weekly-review"
        }
      ],
      "videos": [
        {
          "duration": "11 min",
          "embed_url": "https://iframe.mediadelivery.net/embed/315659/cbaba611-8668-4e11-b02e-b576851abd5c?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 1,
          "provider": "Bunny Stream",
          "title": "Overview du système Atomic Notes",
          "title_source": "iframe-title",
          "video_id": "cbaba611-8668-4e11-b02e-b576851abd5c",
          "watch_url": "https://iframe.mediadelivery.net/embed/315659/cbaba611-8668-4e11-b02e-b576851abd5c?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "17 min",
          "embed_url": "https://iframe.mediadelivery.net/embed/315659/a9bdd944-710b-41cd-a3ed-79b1cc38e7b0?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Créer les dossiers IPCRA",
          "title_source": "iframe-title",
          "video_id": "a9bdd944-710b-41cd-a3ed-79b1cc38e7b0",
          "watch_url": "https://iframe.mediadelivery.net/embed/315659/a9bdd944-710b-41cd-a3ed-79b1cc38e7b0?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 3,
          "provider": "Bunny Stream",
          "title": "C'est quoi les phases de vie ?",
          "title_source": "iframe-title",
          "video_id": "a3fdb469-bc89-471b-a58f-a2d022f53e07",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/a3fdb469-bc89-471b-a58f-a2d022f53e07?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 4,
          "provider": "Bunny Stream",
          "title": "Définissez votre phase de vie",
          "title_source": "iframe-title",
          "video_id": "fa1e6e29-ae42-427f-814c-eb52583b7961",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/fa1e6e29-ae42-427f-814c-eb52583b7961?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/223e4b6a-d83e-4f93-b41a-0c087ee1b32f?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 5,
          "provider": "Bunny Stream",
          "title": "Comment changer de phase de vie ?",
          "title_source": "iframe-title",
          "video_id": "223e4b6a-d83e-4f93-b41a-0c087ee1b32f",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/223e4b6a-d83e-4f93-b41a-0c087ee1b32f?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        }
      ],
      "captured_at": "2026-08-03T10:05:33.001Z",
      "counts": {
        "code_blocks": 22,
        "headings": 19,
        "iframes": 5,
        "images": 0,
        "links": 1,
        "text_chars": 7843
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "20-semaine-1-contexte-holistique",
      "order": 20,
      "kind": "subsection",
      "section": "06-second-cerveau",
      "title": "Les processus de capture",
      "slug": "semaine-1-contexte-holistique",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-contexte-holistique",
      "summary": "Pourquoi le contexte holistique change tout, et comment alimenter ton coffre au quotidien : capture vocale (SuperWhisper), capture web (Readwise / Web Clipper), capture messages (Telegram → S3), capture mobile.",
      "objective": "",
      "expected_output": "",
      "content_html": "<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Les processus de capture en pratique</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/da2de59ca0dc489aac28d1a54d5af1a1\" title=\"Les processus de capture en pratique\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Pourquoi un processus par situation, et comment l'incarner sans friction au quotidien.</div></div>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ton-système-est-ton-second-cerveau-numérique\">Ton système est ton second cerveau numérique</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tout ce qu'on a construit depuis le début de la semaine 1 (le coffre, les casquettes, les phases de vie, les rituels) converge vers un seul objectif : <strong class=\"font-semibold text-foreground\">faire de ton système une extension de toi-même.</strong></p>\n<div class=\"my-8 flex justify-center\"><img alt=\"Schéma du système : ton second cerveau numérique alimenté par tes processus de capture\" class=\"w-full max-w-3xl\" src=\"assets/01-schema-du-systeme-ton-second-cerveau-numerique-alimente-par-tes-processus-de-cap.png\"></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Plus ton système en sait sur toi, plus il est utile. C'est aussi simple que ça.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif final : qu'il soit <strong class=\"font-semibold text-foreground\">omniscient sur ta vie et tes projets</strong>. Pas pour te surveiller, pour te servir. Quand tu lui demandes de t'aider à prendre une décision, il a le contexte. Quand tu lui demandes d'organiser ta semaine, il connaît tes priorités. Quand tu lui demandes de rédiger un message, il connaît ton style et ton interlocuteur.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un assistant sans contexte, c'est un stagiaire qui arrive le premier jour. Un assistant avec tout ton contexte, c'est un bras droit qui te connaît depuis des années.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-piège-de-la-désuétude\">Le piège de la désuétude</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est LE piège dans lequel tombent 90 % des gens qui commencent un système de productivité. Et il est vicieux.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voilà comment ça se passe :</p>\n<div class=\"my-8 flex flex-col gap-3 max-w-xl mx-auto\"><div class=\"rounded-xl border-2 border-red-200 bg-red-50 p-4\"><div class=\"font-bold text-red-700 mb-1\">1. Tu oublies de capturer quelque chose</div><div class=\"text-sm text-red-600\">Une réunion pas notée, un lien pas sauvegardé, une réflexion pas écrite.</div></div><div class=\"flex justify-center text-zinc-300 text-xl\">↓</div><div class=\"rounded-xl border-2 border-orange-200 bg-orange-50 p-4\"><div class=\"font-bold text-orange-700 mb-1\">2. Tu cherches l'info et elle n'est pas là</div><div class=\"text-sm text-orange-600\">Tu demandes à l'IA, elle ne sait pas. Tu cherches dans ton coffre, rien.</div></div><div class=\"flex justify-center text-zinc-300 text-xl\">↓</div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-4\"><div class=\"font-bold text-amber-700 mb-1\">3. Tu perds confiance dans le système</div><div class=\"text-sm text-amber-600\">« À quoi bon, il ne sait même pas ça... »</div></div><div class=\"flex justify-center text-zinc-300 text-xl\">↓</div><div class=\"rounded-xl border-2 border-red-300 bg-red-100 p-4\"><div class=\"font-bold text-red-800 mb-1\">4. Tu arrêtes de l'utiliser</div><div class=\"text-sm text-red-700\">Le coffre prend la poussière. L'IA redevient un chatbot générique. Retour à la case départ.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">C'est un cercle vicieux.</strong> Moins tu mets dedans, moins c'est utile, moins tu l'utilises, moins tu mets dedans.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La clé pour éviter ça : <strong class=\"font-semibold text-foreground\">capturer TOUT, sans friction.</strong> Et pour capturer sans friction, il te faut un processus adapté à chaque situation de ta vie.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-processus-de-capture\">Les processus de capture</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour que ton contexte soit vraiment omniscient, il faut que <strong class=\"font-semibold text-foreground\">chaque type de situation</strong> ait son propre chemin de capture. Si ça demande trop d'effort, tu ne le feras pas. La friction est l'ennemi.</p>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Situation</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Outil</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Ce qui se passe</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Lecture</strong> (articles, livres, PDF)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Readwise Reader + plugin Obsidian</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tes surlignages arrivent automatiquement dans ton coffre</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Sur l'ordi</strong> (pages web)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Obsidian Web Clipper</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Capture en 1 clic dans ton coffre</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Sur mobile</strong> (pages web et articles)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Obsidian Web Clipper mobile</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Pareil, depuis ton téléphone</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">En réunion</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Fathom</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Transcription automatique dans ton coffre</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Réflexions du jour</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Daily notes ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/daily-review</code></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tu écris, l'IA a le contexte</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">Bilan hebdo</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code> chaque dimanche</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Prise de recul et priorisation</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\"><strong class=\"font-semibold text-foreground\">En déplacement / à l'oral</strong></td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Daily notes via Obsidian Mobile (puis bot Telegram en S3)</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Tu notes à la volée</td></tr></tbody></table></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif : <strong class=\"font-semibold text-foreground\">zéro friction pour chaque situation.</strong> Si capturer demande trop d'effort, tu ne le feras pas. Et si tu ne le fais pas, ton système meurt.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"lecture-articles-livres-pdf-readwise-reader\">Lecture (articles, livres, PDF) : Readwise Reader</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est peut-être le processus de capture le plus sous-estimé. On lit tous des articles, des livres, des PDF, mais 95 % de ce qu'on lit disparaît en quelques jours.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Readwise Reader</strong> résout ce problème. C'est une app de lecture (web et mobile) qui te permet de lire et surligner tout au même endroit : articles, newsletters, livres numériques, PDF, fils Twitter, podcasts.</p>\n<div class=\"my-6\"><img alt=\"Page d'accueil de Readwise Reader\" class=\"w-full rounded-xl border border-zinc-200\" src=\"assets/02-page-d-accueil-de-readwise-reader.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">Readwise Reader : tes lectures et tes surlignages au même endroit, sur ordi et sur mobile.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Le flux est simple :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tu lis un article ou un livre dans Readwise Reader</li>\n<li class=\"leading-7\">Tu surlignes les passages qui te marquent (comme dans un livre physique)</li>\n<li class=\"leading-7\">Le <strong class=\"font-semibold text-foreground\">plugin Obsidian Readwise</strong> synchronise automatiquement tes surlignages dans ton coffre</li>\n<li class=\"leading-7\">Résultat : tout ce que tu lis enrichit ton second cerveau, <strong class=\"font-semibold text-foreground\">sans rien faire de plus</strong></li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le truc puissant : c'est 100 % passif. Tu lis normalement, tu surlignes ce qui t'intéresse, et ton coffre s'enrichit tout seul.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Comment le mettre en place :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Crée un compte sur <a href=\"https://readwise.io/read\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">readwise.io/read</a> (gratuit pour commencer, puis ~10 $/mois)</li>\n<li class=\"leading-7\">Installe l'extension Readwise Reader sur ton navigateur pour sauvegarder des articles</li>\n<li class=\"leading-7\">Dans Obsidian, installe le plugin communautaire <strong class=\"font-semibold text-foreground\">Readwise Official</strong> (Réglages → Plugins communautaires → chercher « Readwise »)</li>\n<li class=\"leading-7\">Connecte le plugin à ton compte Readwise (il te donne un token)</li>\n<li class=\"leading-7\">Configure le dossier de destination (ex : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/Readwise/</code>)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À partir de maintenant, chaque surlignage que tu fais dans Readwise Reader arrive dans ton coffre. Et quand tu demandes à ton IA de t'aider sur un sujet, elle a accès à tout ce que tu as lu et retenu.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce pour trouver des livres numériques :</strong> <a href=\"https://annas-archive.gd/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Anna's Archive</a> est une bibliothèque en ligne où tu peux trouver la plupart des livres en format numérique (ePub, PDF). Tu les importes dans Readwise Reader et tu lis/surlignes comme d'habitude. Alternative francophone avec un filtre langue intégré : <a href=\"https://fr.welib.org/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">WeLib</a> (43 millions de livres, 98 millions d'articles). En arrière, les deux semblent puiser dans la même base de données. Téléchargements gratuits limités à 1/heure ou liens plus lents, le payant accélère mais ne reverse rien aux auteurs : à n'utiliser que pour des livres déjà achetés en physique ou dans une logique d'archive perso.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Readwise et Reader (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/317b2581-6d4d-43fe-932a-9a285857d407?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Readwise et Reader (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Setup complet, plugin Obsidian, et façon d'utiliser Readwise au quotidien pour vraiment retenir ce que tu lis.</div></div>\n<div class=\"my-6 rounded-2xl border-2 border-indigo-200 bg-indigo-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-indigo-600 mb-1\">En complément, si tu lis beaucoup de PDF scientifiques</div><div class=\"text-base font-bold text-indigo-900 mb-2\">Zotero</div><p class=\"text-sm text-indigo-900/80 mb-2\">Si ta vie de lecture passe par des articles académiques, des papiers de recherche ou des livres en PDF lourds, <a href=\"https://www.zotero.org/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-semibold\">Zotero</a> est l'outil de référence pour gérer ta bibliothèque : import en un clic depuis ton navigateur, métadonnées et citations propres, annotations dans le lecteur intégré, exports BibTeX/Markdown.</p><p class=\"text-sm text-indigo-900/80 mb-2\">Le combo qui marche bien : <strong>Zotero pour stocker et annoter</strong> tes PDFs scientifiques, puis tu envoies tes notes annotées vers ton coffre Obsidian (plugin <a href=\"https://github.com/aidenlx/better-bibtex-zotero-integration\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">Zotero Integration</a> ou export Markdown manuel) pour les retrouver dans ton second cerveau aux côtés de tes lectures Readwise.</p><p class=\"text-xs text-indigo-700/80\"><strong>Quand le sortir :</strong> chercheurs, doctorants, professions médicales/scientifiques, ou toute personne qui empile des PDFs techniques. Pour de la lecture grand public (articles, newsletters, ebooks), Readwise Reader suffit largement.</p></div>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"sur-lordi-et-sur-mobile-obsidian-web-clipper\">Sur l'ordi (et sur mobile) : Obsidian Web Clipper</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu tombes sur un article intéressant, une page web utile, une référence ? <strong class=\"font-semibold text-foreground\">Un clic</strong> et c'est dans ton coffre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Obsidian Web Clipper est une extension de navigateur qui capture le contenu d'une page web directement dans Obsidian. Tu peux configurer le dossier de destination, le template de la note, et c'est parti.</p>\n<div class=\"my-6\"><img alt=\"Page Obsidian Web Clipper\" class=\"w-full rounded-xl border border-zinc-200\" src=\"assets/03-page-obsidian-web-clipper.png\"><div class=\"text-xs text-zinc-500 text-center mt-2\">Obsidian Web Clipper : capture web vers ton coffre, en un clic. Aussi disponible sur mobile.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Comment l'installer sur ordi :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://obsidian.md/clipper\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">obsidian.md/clipper</a> ou cherche « Obsidian Web Clipper » dans le store de ton navigateur (Chrome, Firefox, Safari, Edge, Brave)</li>\n<li class=\"leading-7\">Installe l'extension</li>\n<li class=\"leading-7\">Connecte-la à ton coffre Obsidian (elle détecte automatiquement les coffres ouverts)</li>\n<li class=\"leading-7\">Configure le dossier de destination par défaut (ex : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0 INBOX/</code>)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Sur mobile :</strong> Web Clipper est aussi disponible sur <strong class=\"font-semibold text-foreground\">iOS et Android</strong> maintenant que tu as Obsidian Mobile installé. Tu peux clipper depuis Safari (iOS) ou ton navigateur Android via le menu de partage natif, et la note arrive dans le même coffre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant, quand tu vois quelque chose d'intéressant sur le web (ordi ou mobile), un clic et c'est capturé. Zéro friction.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"en-réunion-fathom\">En réunion : Fathom</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On l'a vu plus tôt dans la semaine 1. Fathom tourne en arrière-plan pendant tes visios (Zoom, Meet, Teams) et transcrit automatiquement tout. La transcription arrive dans ton coffre via une automatisation qu'on configurera plus tard.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as rien à faire. C'est le processus de capture le plus puissant parce qu'il est <strong class=\"font-semibold text-foreground\">100 % automatique</strong>. Pas de friction du tout.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"réflexions-du-jour-daily-notes\">Réflexions du jour : daily notes</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque jour, tu as un espace libre pour noter ce qui te passe par la tête. Clique sur le jour dans le calendrier Obsidian, et écris. Pas besoin de format, c'est ton espace.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux aussi lancer <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/daily-review</code> avec ton IA pour une réflexion guidée en fin de journée.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"bilan-hebdo-weekly-review\">Bilan hebdo : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque dimanche (ou lundi matin), tu fais ta weekly review. On la verra en détail dans la leçon suivante. C'est le moment où tu prends du recul, tu fais le point, et tu planifies la suite.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"en-déplacement-à-loral\">En déplacement / à l'oral</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est souvent le maillon manquant. Tu marches, tu es sous la douche (mentalement), en voiture, et tu as une idée. Si tu ne la captures pas dans les 30 secondes, elle disparaît.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Deux solutions</strong> dans le bootcamp :</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">1. En attendant la semaine 3 : Obsidian Mobile + daily note</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as déjà Obsidian Mobile installé sur ton téléphone (et synchronisé via Obsidian Sync). Quand une idée te vient :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ouvre Obsidian Mobile</li>\n<li class=\"leading-7\">Ouvre ta daily note du jour (ou crée-la d'un tap)</li>\n<li class=\"leading-7\">Écris (ou dicte à la voix native d'iOS/Android)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est plus lent qu'un bot Telegram, mais ça marche tout de suite et ça enrichit ton coffre dès maintenant.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">2. À partir de la semaine 3 : bot Telegram</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">En semaine 3, on installe un <strong class=\"font-semibold text-foreground\">bot Telegram</strong> qui envoie tes notes vocales directement dans ton coffre. Tu parles, il transcrit, la note arrive dans ton inbox. C'est aussi le moyen d'interagir avec ton IA depuis ton téléphone.</p>\n<div class=\"my-6 rounded-xl border-2 border-amber-300 bg-amber-50 p-5\"><div class=\"font-bold text-amber-800 mb-2\">Ne tentez pas d'installer le bot Telegram tout de suite</div><div class=\"text-sm text-amber-700\">Le bot Telegram et l'accès mobile complet sont configurés en <strong>semaine 3</strong>. Il y a encore des ajustements en cours sur cette partie. On le fait ensemble, pas à pas, ne prends pas d'avance là-dessus, tu risquerais de te bloquer.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-rituels-essentiels\">Les rituels essentiels</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avec tous ces processus de capture en place, il reste un ingrédient crucial : <strong class=\"font-semibold text-foreground\">les rituels</strong>. Ce sont eux qui gardent ton système vivant et à jour.</p>\n<div class=\"my-8 flex flex-col gap-3 max-w-lg mx-auto\"><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-4\"><div class=\"font-bold text-amber-700\"><code>/done</code> : à la fin d'une session</div><div class=\"text-sm text-amber-600\">L'IA sauvegarde ce qui s'est passé dans la session. Le contexte est mis à jour pour la prochaine fois.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4\"><div class=\"font-bold text-emerald-700\"><code>/weekly-review</code> : une fois par semaine</div><div class=\"text-sm text-emerald-600\">Le bilan complet. Brain dump, organisation par énergie, priorisation.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-4\"><div class=\"font-bold text-blue-700\"><code>/inbox-processor</code> : quand l'inbox déborde</div><div class=\"text-sm text-blue-600\">L'IA trie les notes de ton inbox dans les bons dossiers, en te demandant validation pour chaque.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le <strong class=\"font-semibold text-foreground\">minimum vital</strong>. Si tu fais juste ces trois choses, ton système reste vivant. Si tu en oublies un, le contexte commence à se dégrader.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-cercle-vertueux\">Le cercle vertueux</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tout est en place (les processus de capture ET les rituels), une dynamique s'installe :</p>\n<div class=\"my-8 flex flex-col sm:flex-row gap-3 items-stretch max-w-3xl mx-auto\"><div class=\"flex-1 rounded-xl border-2 border-blue-200 bg-blue-50 p-4 text-center\"><div class=\"font-bold text-blue-700\">Tu captures plus</div><div class=\"text-xs text-blue-600 mt-1\">Chaque situation a son processus. Zéro friction.</div></div><div class=\"hidden sm:flex items-center text-zinc-300 text-xl\">→</div><div class=\"flex-1 rounded-xl border-2 border-violet-200 bg-violet-50 p-4 text-center\"><div class=\"font-bold text-violet-700\">Le contexte s'enrichit</div><div class=\"text-xs text-violet-600 mt-1\">Ton coffre devient une mine d'or de connaissances.</div></div><div class=\"hidden sm:flex items-center text-zinc-300 text-xl\">→</div><div class=\"flex-1 rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4 text-center\"><div class=\"font-bold text-emerald-700\">L'IA devient pertinente</div><div class=\"text-xs text-emerald-600 mt-1\">Ses réponses sont précises, personnalisées, utiles.</div></div><div class=\"hidden sm:flex items-center text-zinc-300 text-xl\">→</div><div class=\"flex-1 rounded-xl border-2 border-amber-200 bg-amber-50 p-4 text-center\"><div class=\"font-bold text-amber-700\">Tu lui fais confiance</div><div class=\"text-xs text-amber-600 mt-1\">Tu l'utilises plus. Tu captures plus. Et ça recommence.</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">C'est exponentiel.</strong> Les premiers jours, le système est un peu vide et l'IA est générique. Après une semaine de capture, elle commence à te connaître. Après un mois, elle te connaît mieux que la plupart de tes collègues. Après trois mois, c'est un véritable bras droit.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Chaque note que tu captures, chaque weekly review que tu fais, chaque réunion que Fathom transcrit, tout ça s'accumule et renforce le système. C'est un investissement composé : les retours sont lents au début et exponentiels ensuite.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-test-décisif\">Le test décisif</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pose-toi cette question : <strong class=\"font-semibold text-foreground\">« Si je demande à mon IA de résumer ma semaine, est-ce qu'elle peut le faire ? »</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si oui, ton contexte est holistique. Si non, il manque des morceaux.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif : pouvoir poser n'importe quelle question sur ta vie professionnelle (et même personnelle) à ton IA et obtenir une réponse pertinente. Pas parce qu'elle invente, parce qu'elle <strong class=\"font-semibold text-foreground\">sait</strong>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"checklist\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends pourquoi le contexte doit être holistique — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends pourquoi le contexte doit être holistique</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé Obsidian Web Clipper sur mon navigateur (et sur mobile si pertinent) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé Obsidian Web Clipper sur mon navigateur (et sur mobile si pertinent)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé un compte Readwise Reader et installé le plugin Obsidian — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé un compte Readwise Reader et installé le plugin Obsidian</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai un processus de capture pour chaque situation (lecture, ordi, mobile, réunion, réflexions, déplacement) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai un processus de capture pour chaque situation (lecture, ordi, mobile, réunion, réflexions, déplacement)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que pour les notes en déplacement, j'utilise Obsidian Mobile en attendant le bot Telegram (semaine 3) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que pour les notes en déplacement, j'utilise Obsidian Mobile en attendant le bot Telegram (semaine 3)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Les rituels /done et /weekly-review sont identifiés comme essentiels — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Les rituels /done et /weekly-review sont identifiés comme essentiels</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> tu as un processus de capture pour chaque situation de ta vie, les rituels essentiels sont identifiés, et tu comprends le cercle vertueux qui rend ton système de plus en plus puissant avec le temps.</p>\n</blockquote>",
      "content_markdown": "Les processus de capture en pratique\n\nPourquoi un processus par situation, et comment l'incarner sans friction au quotidien.\n\n## Ton système est ton second cerveau numérique\n\nTout ce qu'on a construit depuis le début de la semaine 1 (le coffre, les casquettes, les phases de vie, les rituels) converge vers un seul objectif : **faire de ton système une extension de toi-même.**\n\n![Schéma du système : ton second cerveau numérique alimenté par tes processus de capture](/images/ia-mars-2026/systeme-second-cerveau.png)\n\nPlus ton système en sait sur toi, plus il est utile. C'est aussi simple que ça.\n\nL'objectif final : qu'il soit **omniscient sur ta vie et tes projets**. Pas pour te surveiller, pour te servir. Quand tu lui demandes de t'aider à prendre une décision, il a le contexte. Quand tu lui demandes d'organiser ta semaine, il connaît tes priorités. Quand tu lui demandes de rédiger un message, il connaît ton style et ton interlocuteur.\n\nUn assistant sans contexte, c'est un stagiaire qui arrive le premier jour. Un assistant avec tout ton contexte, c'est un bras droit qui te connaît depuis des années.\n\n---\n\n## Le piège de la désuétude\n\nC'est LE piège dans lequel tombent 90 % des gens qui commencent un système de productivité. Et il est vicieux.\n\nVoilà comment ça se passe :\n\n1. Tu oublies de capturer quelque chose\n\nUne réunion pas notée, un lien pas sauvegardé, une réflexion pas écrite.\n\n↓\n\n2. Tu cherches l'info et elle n'est pas là\n\nTu demandes à l'IA, elle ne sait pas. Tu cherches dans ton coffre, rien.\n\n↓\n\n3. Tu perds confiance dans le système\n\n« À quoi bon, il ne sait même pas ça... »\n\n↓\n\n4. Tu arrêtes de l'utiliser\n\nLe coffre prend la poussière. L'IA redevient un chatbot générique. Retour à la case départ.\n\n**C'est un cercle vicieux.** Moins tu mets dedans, moins c'est utile, moins tu l'utilises, moins tu mets dedans.\n\nLa clé pour éviter ça : **capturer TOUT, sans friction.** Et pour capturer sans friction, il te faut un processus adapté à chaque situation de ta vie.\n\n---\n\n## Les processus de capture\n\nPour que ton contexte soit vraiment omniscient, il faut que **chaque type de situation** ait son propre chemin de capture. Si ça demande trop d'effort, tu ne le feras pas. La friction est l'ennemi.\n\n| Situation | Outil | Ce qui se passe |\n| --- | --- | --- |\n| Lecture (articles, livres, PDF) | Readwise Reader + plugin Obsidian | Tes surlignages arrivent automatiquement dans ton coffre |\n| Sur l'ordi (pages web) | Obsidian Web Clipper | Capture en 1 clic dans ton coffre |\n| Sur mobile (pages web et articles) | Obsidian Web Clipper mobile | Pareil, depuis ton téléphone |\n| En réunion | Fathom | Transcription automatique dans ton coffre |\n| Réflexions du jour | Daily notes ou /daily-review | Tu écris, l'IA a le contexte |\n| Bilan hebdo | /weekly-review chaque dimanche | Prise de recul et priorisation |\n| En déplacement / à l'oral | Daily notes via Obsidian Mobile (puis bot Telegram en S3) | Tu notes à la volée |\n\nL'objectif : **zéro friction pour chaque situation.** Si capturer demande trop d'effort, tu ne le feras pas. Et si tu ne le fais pas, ton système meurt.\n\n---\n\n### Lecture (articles, livres, PDF) : Readwise Reader\n\nC'est peut-être le processus de capture le plus sous-estimé. On lit tous des articles, des livres, des PDF, mais 95 % de ce qu'on lit disparaît en quelques jours.\n\n**Readwise Reader** résout ce problème. C'est une app de lecture (web et mobile) qui te permet de lire et surligner tout au même endroit : articles, newsletters, livres numériques, PDF, fils Twitter, podcasts.\n\n![Page d'accueil de Readwise Reader](/images/ia-mars-2026/readwise-reader.png)\n\nReadwise Reader : tes lectures et tes surlignages au même endroit, sur ordi et sur mobile.\n\n**Le flux est simple :**\n\n1. Tu lis un article ou un livre dans Readwise Reader\n2. Tu surlignes les passages qui te marquent (comme dans un livre physique)\n3. Le **plugin Obsidian Readwise** synchronise automatiquement tes surlignages dans ton coffre\n4. Résultat : tout ce que tu lis enrichit ton second cerveau, **sans rien faire de plus**\n\nLe truc puissant : c'est 100 % passif. Tu lis normalement, tu surlignes ce qui t'intéresse, et ton coffre s'enrichit tout seul.\n\n**Comment le mettre en place :**\n\n1. Crée un compte sur [readwise.io/read](https://readwise.io/read) (gratuit pour commencer, puis ~10 $/mois)\n2. Installe l'extension Readwise Reader sur ton navigateur pour sauvegarder des articles\n3. Dans Obsidian, installe le plugin communautaire **Readwise Official** (Réglages → Plugins communautaires → chercher « Readwise »)\n4. Connecte le plugin à ton compte Readwise (il te donne un token)\n5. Configure le dossier de destination (ex : `3 RESSOURCES/Readwise/`)\n\nÀ partir de maintenant, chaque surlignage que tu fais dans Readwise Reader arrive dans ton coffre. Et quand tu demandes à ton IA de t'aider sur un sujet, elle a accès à tout ce que tu as lu et retenu.\n\n**Astuce pour trouver des livres numériques :** [Anna's Archive](https://annas-archive.gd/) est une bibliothèque en ligne où tu peux trouver la plupart des livres en format numérique (ePub, PDF). Tu les importes dans Readwise Reader et tu lis/surlignes comme d'habitude. Alternative francophone avec un filtre langue intégré : [WeLib](https://fr.welib.org/) (43 millions de livres, 98 millions d'articles). En arrière, les deux semblent puiser dans la même base de données. Téléchargements gratuits limités à 1/heure ou liens plus lents, le payant accélère mais ne reverse rien aux auteurs : à n'utiliser que pour des livres déjà achetés en physique ou dans une logique d'archive perso.\n\nReadwise et Reader (Atomic Knowledge)\n\nSetup complet, plugin Obsidian, et façon d'utiliser Readwise au quotidien pour vraiment retenir ce que tu lis.\n\nEn complément, si tu lis beaucoup de PDF scientifiques\n\nZotero\n\nSi ta vie de lecture passe par des articles académiques, des papiers de recherche ou des livres en PDF lourds, [Zotero](https://www.zotero.org) est l'outil de référence pour gérer ta bibliothèque : import en un clic depuis ton navigateur, métadonnées et citations propres, annotations dans le lecteur intégré, exports BibTeX/Markdown.\n\nLe combo qui marche bien : **Zotero pour stocker et annoter** tes PDFs scientifiques, puis tu envoies tes notes annotées vers ton coffre Obsidian (plugin [Zotero Integration](https://github.com/aidenlx/better-bibtex-zotero-integration) ou export Markdown manuel) pour les retrouver dans ton second cerveau aux côtés de tes lectures Readwise.\n\n**Quand le sortir :** chercheurs, doctorants, professions médicales/scientifiques, ou toute personne qui empile des PDFs techniques. Pour de la lecture grand public (articles, newsletters, ebooks), Readwise Reader suffit largement.\n\n---\n\n### Sur l'ordi (et sur mobile) : Obsidian Web Clipper\n\nTu tombes sur un article intéressant, une page web utile, une référence ? **Un clic** et c'est dans ton coffre.\n\nObsidian Web Clipper est une extension de navigateur qui capture le contenu d'une page web directement dans Obsidian. Tu peux configurer le dossier de destination, le template de la note, et c'est parti.\n\n![Page Obsidian Web Clipper](/images/ia-mars-2026/obsidian-web-clipper.png)\n\nObsidian Web Clipper : capture web vers ton coffre, en un clic. Aussi disponible sur mobile.\n\n**Comment l'installer sur ordi :**\n\n1. Va sur [obsidian.md/clipper](https://obsidian.md/clipper) ou cherche « Obsidian Web Clipper » dans le store de ton navigateur (Chrome, Firefox, Safari, Edge, Brave)\n2. Installe l'extension\n3. Connecte-la à ton coffre Obsidian (elle détecte automatiquement les coffres ouverts)\n4. Configure le dossier de destination par défaut (ex : `0 INBOX/`)\n\n**Sur mobile :** Web Clipper est aussi disponible sur **iOS et Android** maintenant que tu as Obsidian Mobile installé. Tu peux clipper depuis Safari (iOS) ou ton navigateur Android via le menu de partage natif, et la note arrive dans le même coffre.\n\nMaintenant, quand tu vois quelque chose d'intéressant sur le web (ordi ou mobile), un clic et c'est capturé. Zéro friction.\n\n---\n\n### En réunion : Fathom\n\nOn l'a vu plus tôt dans la semaine 1. Fathom tourne en arrière-plan pendant tes visios (Zoom, Meet, Teams) et transcrit automatiquement tout. La transcription arrive dans ton coffre via une automatisation qu'on configurera plus tard.\n\nTu n'as rien à faire. C'est le processus de capture le plus puissant parce qu'il est **100 % automatique**. Pas de friction du tout.\n\n---\n\n### Réflexions du jour : daily notes\n\nChaque jour, tu as un espace libre pour noter ce qui te passe par la tête. Clique sur le jour dans le calendrier Obsidian, et écris. Pas besoin de format, c'est ton espace.\n\nTu peux aussi lancer `/daily-review` avec ton IA pour une réflexion guidée en fin de journée.\n\n---\n\n### Bilan hebdo : `/weekly-review`\n\nChaque dimanche (ou lundi matin), tu fais ta weekly review. On la verra en détail dans la leçon suivante. C'est le moment où tu prends du recul, tu fais le point, et tu planifies la suite.\n\n---\n\n### En déplacement / à l'oral\n\nC'est souvent le maillon manquant. Tu marches, tu es sous la douche (mentalement), en voiture, et tu as une idée. Si tu ne la captures pas dans les 30 secondes, elle disparaît.\n\n**Deux solutions** dans le bootcamp :\n\n**1. En attendant la semaine 3 : Obsidian Mobile + daily note**\n\nTu as déjà Obsidian Mobile installé sur ton téléphone (et synchronisé via Obsidian Sync). Quand une idée te vient :\n\n1. Ouvre Obsidian Mobile\n2. Ouvre ta daily note du jour (ou crée-la d'un tap)\n3. Écris (ou dicte à la voix native d'iOS/Android)\n\nC'est plus lent qu'un bot Telegram, mais ça marche tout de suite et ça enrichit ton coffre dès maintenant.\n\n**2. À partir de la semaine 3 : bot Telegram**\n\nEn semaine 3, on installe un **bot Telegram** qui envoie tes notes vocales directement dans ton coffre. Tu parles, il transcrit, la note arrive dans ton inbox. C'est aussi le moyen d'interagir avec ton IA depuis ton téléphone.\n\nNe tentez pas d'installer le bot Telegram tout de suite\n\nLe bot Telegram et l'accès mobile complet sont configurés en **semaine 3**. Il y a encore des ajustements en cours sur cette partie. On le fait ensemble, pas à pas, ne prends pas d'avance là-dessus, tu risquerais de te bloquer.\n\n---\n\n## Les rituels essentiels\n\nAvec tous ces processus de capture en place, il reste un ingrédient crucial : **les rituels**. Ce sont eux qui gardent ton système vivant et à jour.\n\n`/done` : à la fin d'une session\n\nL'IA sauvegarde ce qui s'est passé dans la session. Le contexte est mis à jour pour la prochaine fois.\n\n`/weekly-review` : une fois par semaine\n\nLe bilan complet. Brain dump, organisation par énergie, priorisation.\n\n`/inbox-processor` : quand l'inbox déborde\n\nL'IA trie les notes de ton inbox dans les bons dossiers, en te demandant validation pour chaque.\n\nC'est le **minimum vital**. Si tu fais juste ces trois choses, ton système reste vivant. Si tu en oublies un, le contexte commence à se dégrader.\n\n---\n\n## Le cercle vertueux\n\nQuand tout est en place (les processus de capture ET les rituels), une dynamique s'installe :\n\nTu captures plus\n\nChaque situation a son processus. Zéro friction.\n\n→\n\nLe contexte s'enrichit\n\nTon coffre devient une mine d'or de connaissances.\n\n→\n\nL'IA devient pertinente\n\nSes réponses sont précises, personnalisées, utiles.\n\n→\n\nTu lui fais confiance\n\nTu l'utilises plus. Tu captures plus. Et ça recommence.\n\n**C'est exponentiel.** Les premiers jours, le système est un peu vide et l'IA est générique. Après une semaine de capture, elle commence à te connaître. Après un mois, elle te connaît mieux que la plupart de tes collègues. Après trois mois, c'est un véritable bras droit.\n\nChaque note que tu captures, chaque weekly review que tu fais, chaque réunion que Fathom transcrit, tout ça s'accumule et renforce le système. C'est un investissement composé : les retours sont lents au début et exponentiels ensuite.\n\n---\n\n## Le test décisif\n\nPose-toi cette question : **« Si je demande à mon IA de résumer ma semaine, est-ce qu'elle peut le faire ? »**\n\nSi oui, ton contexte est holistique. Si non, il manque des morceaux.\n\nL'objectif : pouvoir poser n'importe quelle question sur ta vie professionnelle (et même personnelle) à ton IA et obtenir une réponse pertinente. Pas parce qu'elle invente, parce qu'elle **sait**.\n\n---\n\n## Checklist\n\n- Je comprends pourquoi le contexte doit être holistique\n- J'ai installé Obsidian Web Clipper sur mon navigateur (et sur mobile si pertinent)\n- J'ai créé un compte Readwise Reader et installé le plugin Obsidian\n- J'ai un processus de capture pour chaque situation (lecture, ordi, mobile, réunion, réflexions, déplacement)\n- Je sais que pour les notes en déplacement, j'utilise Obsidian Mobile en attendant le bot Telegram (semaine 3)\n- Les rituels /done et /weekly-review sont identifiés comme essentiels\n\n> Output attendu : tu as un processus de capture pour chaque situation de ta vie, les rituels essentiels sont identifiés, et tu comprends le cercle vertueux qui rend ton système de plus en plus puissant avec le temps.",
      "assets": [
        {
          "alt": "Schéma du système : ton second cerveau numérique alimenté par tes processus de capture",
          "original_url": "https://prisme.one/images/ia-mars-2026/systeme-second-cerveau.png",
          "path": "assets/01-schema-du-systeme-ton-second-cerveau-numerique-alimente-par-tes-processus-de-cap.png",
          "bytes": 1518273,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Page d'accueil de Readwise Reader",
          "original_url": "https://prisme.one/images/ia-mars-2026/readwise-reader.png",
          "path": "assets/02-page-d-accueil-de-readwise-reader.png",
          "bytes": 720845,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        },
        {
          "alt": "Page Obsidian Web Clipper",
          "original_url": "https://prisme.one/images/ia-mars-2026/obsidian-web-clipper.png",
          "path": "assets/03-page-obsidian-web-clipper.png",
          "bytes": 139032,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "readwise.io/read",
          "url": "https://readwise.io/read"
        },
        {
          "text": "Anna's Archive",
          "url": "https://annas-archive.gd/"
        },
        {
          "text": "WeLib",
          "url": "https://fr.welib.org/"
        },
        {
          "text": "Zotero",
          "url": "https://www.zotero.org/"
        },
        {
          "text": "Zotero Integration",
          "url": "https://github.com/aidenlx/better-bibtex-zotero-integration"
        },
        {
          "text": "obsidian.md/clipper",
          "url": "https://obsidian.md/clipper"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/da2de59ca0dc489aac28d1a54d5af1a1",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Les processus de capture en pratique",
          "title_source": "iframe-title",
          "video_id": "da2de59ca0dc489aac28d1a54d5af1a1",
          "watch_url": "https://www.loom.com/share/da2de59ca0dc489aac28d1a54d5af1a1"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/317b2581-6d4d-43fe-932a-9a285857d407?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Readwise et Reader",
          "title_source": "iframe-title",
          "video_id": "317b2581-6d4d-43fe-932a-9a285857d407",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/317b2581-6d4d-43fe-932a-9a285857d407?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        }
      ],
      "captured_at": "2026-08-03T10:05:34.055Z",
      "counts": {
        "code_blocks": 9,
        "headings": 13,
        "iframes": 2,
        "images": 3,
        "links": 6,
        "text_chars": 12025
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "21-semaine-1-weekly-review",
      "order": 21,
      "kind": "subsection",
      "section": "06-second-cerveau",
      "title": "Bonus : Utiliser l'IA comme un assistant personnel",
      "slug": "semaine-1-weekly-review",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-weekly-review",
      "summary": "Le réflexe central : passer par l'IA pour la plupart de tes tâches. Le journaling au quotidien (daily notes) et la weekly review hebdomadaire deviennent le carburant qui rend l'assistant vraiment pertinent.",
      "objective": "Adopter le réflexe IA-first sur tes tâches courantes, configurer le plugin Calendar, et ancrer le rituel /weekly-review.",
      "expected_output": "Plugin Calendar configuré, première weekly review complétée, rituel hebdomadaire planifié.",
      "content_html": "<h1 class=\"text-3xl font-bold tracking-tight mt-8 mb-4\">Utiliser l'IA comme un assistant personnel</h1>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">L'IA comme assistant personnel permanent</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/3a9c08c3f2dc48b5925e9c5e5b52dcf2\" title=\"L'IA comme assistant personnel permanent\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Démo : comment passer par l'IA pour tout, weekly review et plan jour par jour.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as un contexte holistique sur ta vie, ton coffre est synchronisé, l'IA y est connectée en permanence. Maintenant on installe le réflexe central : <strong class=\"font-semibold text-foreground\">passer par l'IA pour tout.</strong></p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"lobjectif-clarté-absolue\">L'objectif : clarté absolue</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton IA connaît ton parcours, ta vision, tes casquettes, tes projets, ta phase de vie. Elle a accès à ton journaling quotidien et hebdomadaire. Plus tu écris dedans, plus elle te connaît finement.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le résultat : tu peux <strong class=\"font-semibold text-foreground\">décharger ta charge mentale sur elle</strong> au lieu de tout garder en tête. C'est ça qu'on cherche.</p>\n<div class=\"my-8 grid grid-cols-1 sm:grid-cols-3 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-2\">Pour toi</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Moins de charge mentale</div><div class=\"text-sm text-emerald-700/80\">Tu n'as plus à tout retenir. Tu lui parles, elle écrit, elle range. Ton cerveau est libre pour penser, pas pour archiver.</div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Pour l'IA</div><div class=\"text-base font-bold text-blue-800 mb-2\">Contexte vivant</div><div class=\"text-sm text-blue-700/80\">Elle voit ton quotidien en temps réel. Plus tu lui parles, plus ses réponses sont précises et alignées sur toi.</div></div><div class=\"rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-500 mb-2\">Pour le système</div><div class=\"text-base font-bold text-amber-800 mb-2\">Contextes à jour</div><div class=\"text-sm text-amber-700/80\">À chaque session, elle ruissèle l'info dans les bonnes notes (projet, casquette, phase). Pas de maintenance manuelle.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-nouveau-réflexe-faire-toutes-tes-tâches-via-lia\">Le nouveau réflexe : faire toutes tes tâches via l'IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le changement de posture, c'est de <strong class=\"font-semibold text-foreground\">ne plus considérer l'IA comme un outil qu'on consulte ponctuellement</strong>, mais comme un assistant qui t'accompagne en permanence. Tu lui parles comme tu parlerais à un bras droit qui te connaît depuis des années.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quelques exemples concrets :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-3\"><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Brainstorming</div><div class=\"text-xs text-zinc-600\">« J'hésite entre A et B sur le projet X. Donne-moi 5 angles que je n'ai pas considérés. »</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Décision</div><div class=\"text-xs text-zinc-600\">« Aide-moi à trancher sur Y. Challenge-moi avec ce que tu sais de ma vision. »</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Rédaction</div><div class=\"text-xs text-zinc-600\">« Je te dicte mes idées, structure-les pour un post LinkedIn dans mon style. »</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Planning</div><div class=\"text-xs text-zinc-600\">« Voici ma semaine. Aide-moi à la prioriser sachant mes deadlines projet. »</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Réflexion</div><div class=\"text-xs text-zinc-600\">« J'ai un doute sur mon orientation pro. Relis Moi.md et Mon Parcours.md, et challenge-moi. »</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Mémoire</div><div class=\"text-xs text-zinc-600\">« Qu'est-ce qu'on s'était dit la semaine dernière sur le client Z ? »</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">À chaque fois que tu fais ça, <strong class=\"font-semibold text-foreground\">elle met à jour automatiquement les contextes concernés</strong> (note de projet, casquette, daily note, intention de phase si pertinent). Tu n'as rien à classer manuellement, le ruissellement fait le travail.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-journaling-carburant-de-lassistant\">Le journaling, carburant de l'assistant</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tout cela ne marche que si tu <strong class=\"font-semibold text-foreground\">alimentes le système</strong> au quotidien. Le carburant, c'est ton journaling. Deux types de notes, toutes deux dans ta phase de vie active :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-1\">Daily notes</div><div class=\"text-base font-bold text-blue-800 mb-2\">Ton espace libre du jour</div><div class=\"text-sm text-blue-700/80\">Pensées, idées, événements, ressentis. Plus les logs de tes sessions IA (ajoutés automatiquement par <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>). Pas de format imposé.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-500 mb-1\">Weekly notes</div><div class=\"text-base font-bold text-emerald-800 mb-2\">Ta feuille de route de la semaine</div><div class=\"text-sm text-emerald-700/80\">Intentions transverses + plan par jour. Créée chaque dimanche via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/weekly-review</code>.</div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"configurer-le-plugin-calendar-5-minutes\">Configurer le plugin Calendar (5 minutes)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plugin Calendar est le centre de commande de ton journaling. Il crée tes daily et weekly notes au bon endroit en un clic.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans Obsidian, va dans <strong class=\"font-semibold text-foreground\">Réglages</strong> (icône engrenage)</li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Plugins tiers</strong> et active <strong class=\"font-semibold text-foreground\">Calendar</strong> (déjà installé dans le template)</li>\n<li class=\"leading-7\">Dans <strong class=\"font-semibold text-foreground\">Réglages → Calendar</strong> : active <strong class=\"font-semibold text-foreground\">Show week number</strong> et vérifie que le <strong class=\"font-semibold text-foreground\">Weekly Note Folder</strong> pointe vers ta phase de vie active</li>\n<li class=\"leading-7\">Dans <strong class=\"font-semibold text-foreground\">Réglages → Daily Notes</strong> : vérifie que le <strong class=\"font-semibold text-foreground\">Folder</strong> pointe vers la même phase de vie active</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as déjà lancé <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/initialisation</code>, ces réglages sont normalement déjà configurés. Vérifie quand même.</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Comment ça marche au quotidien :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Clique sur un jour dans le calendrier (barre latérale droite) : crée ou ouvre la daily note du jour</li>\n<li class=\"leading-7\">Clique sur un numéro de semaine (W12, W13...) : crée ou ouvre la weekly note de la semaine</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est tout. Pas besoin de naviguer dans les dossiers, pas besoin de créer les fichiers à la main.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-rituel-central-la-weekly-review\">Le rituel central : la weekly review</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est <strong class=\"font-semibold text-foreground\">l'élément le plus important</strong> à tenir dans ta routine. Une fois par semaine, tu prends 20 minutes pour décharger TOUT le contexte de la semaine écoulée et co-construire le plan de la semaine suivante avec ton IA.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pourquoi c'est central :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tout est frais dans ta tête, tu peux tout déverser</li>\n<li class=\"leading-7\">L'IA scanne en parallèle tes notes modifiées pour ne rien rater</li>\n<li class=\"leading-7\">Les tâches non complétées sont automatiquement reportées (carry-forward)</li>\n<li class=\"leading-7\">Tu sors avec un plan clair pour 7 jours</li>\n<li class=\"leading-7\">L'IA repart pour la semaine avec un contexte parfaitement à jour</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quand\">Quand ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Dimanche soir ou lundi matin.</strong> Choisis le moment qui te convient et bloque-le dans ton agenda. C'est non négociable, comme une douche.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"comment\">Comment ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode Desktop (ouvert sur ton Workspace), tape :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/weekly-review\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA prend le relais. Conversation guidée en quelques étapes :</p>\n<div class=\"my-6 flex flex-col gap-2 max-w-2xl mx-auto\"><div class=\"rounded-lg border border-zinc-200 bg-white p-3 flex items-start gap-3\"><div class=\"shrink-0 w-7 h-7 rounded-full bg-blue-100 text-blue-700 flex items-center justify-center text-xs font-bold\">1</div><div class=\"flex-1\"><div class=\"font-semibold text-zinc-800\">Lecture du contexte + scan de la semaine</div><div class=\"text-xs text-zinc-500\">L'IA lit Moi.md, tes daily notes, et scanne les fichiers modifiés cette semaine.</div></div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-3 flex items-start gap-3\"><div class=\"shrink-0 w-7 h-7 rounded-full bg-blue-100 text-blue-700 flex items-center justify-center text-xs font-bold\">2</div><div class=\"flex-1\"><div class=\"font-semibold text-zinc-800\">Carry-forward des tâches non complétées</div><div class=\"text-xs text-zinc-500\">Elle lit ta weekly note précédente et récupère toutes les cases non cochées.</div></div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-3 flex items-start gap-3\"><div class=\"shrink-0 w-7 h-7 rounded-full bg-blue-100 text-blue-700 flex items-center justify-center text-xs font-bold\">3</div><div class=\"flex-1\"><div class=\"font-semibold text-zinc-800\">Brain dump : comment s'est passée ta semaine ?</div><div class=\"text-xs text-zinc-500\">Tu réponds librement (parle avec SuperWhisper si tu veux). Ce qui a avancé, bloqué, émergé.</div></div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-3 flex items-start gap-3\"><div class=\"shrink-0 w-7 h-7 rounded-full bg-blue-100 text-blue-700 flex items-center justify-center text-xs font-bold\">4</div><div class=\"flex-1\"><div class=\"font-semibold text-zinc-800\">Plan de la semaine suivante</div><div class=\"text-xs text-zinc-500\">Intentions transverses + actions par jour (Lundi à Dimanche). L'IA intègre les tâches carry-forward dans les bonnes journées.</div></div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-3 flex items-start gap-3\"><div class=\"shrink-0 w-7 h-7 rounded-full bg-blue-100 text-blue-700 flex items-center justify-center text-xs font-bold\">5</div><div class=\"flex-1\"><div class=\"font-semibold text-zinc-800\">Génération de la weekly note</div><div class=\"text-xs text-zinc-500\">Tu valides, elle crée la note dans ta phase de vie active.</div></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-format-de-la-weekly-note\">Le format de la weekly note</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-markdown\">---\ntype: weekly\nweek: 2026-W19\nphase: \"Ma phase\"\n---\n# 2026-W19 (5-11 mai)\n\n## Transverse / Intentions\n- Avancer sur le projet X\n- Préserver mon énergie créative le matin\n\n## Lundi\n- [ ] Tâche 1\n\n## Mardi\n- [ ] Tâche 2\n- [ ] Tâche carry-forward\n\n...\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Simple, lisible, <strong class=\"font-semibold text-foreground\">adapté à ton vrai rythme</strong>. Pas d'usine à gaz.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"premier-test\">Premier test</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour ta toute première weekly review, tu n'as peut-être pas grand-chose à raconter (tu viens de finir l'installation). C'est normal. Fais-la quand même :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Raconte ton setup de la semaine</li>\n<li class=\"leading-7\">Pose tes intentions pour la suivante</li>\n<li class=\"leading-7\">Liste 2-3 tâches concrètes à faire</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'important : <strong class=\"font-semibold text-foreground\">ancrer le rituel dès le départ</strong>. Mieux vaut une weekly review pauvre qu'une weekly review jamais faite.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"lerreur-à-éviter\">L'erreur à éviter</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ne pas faire la weekly review parce que « tu n'as pas le temps ».</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est exactement quand tu manques de temps que la review est la plus utile. 20 minutes pour gagner 7 jours de clarté, c'est le meilleur ROI de ta semaine.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Les gens les plus occupés sont ceux qui en ont le plus besoin. Sans elle, tu cours dans tous les sens. Avec elle, tu avances dans la bonne direction, et ton IA t'aide à tenir le cap.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pour-aller-plus-loin-daily-notes-et-routines\">Pour aller plus loin : daily notes et routines</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ces vidéos viennent d'Atomic Knowledge, Atomic Notes et Atomic Timing. Elles approfondissent les briques sur lesquelles repose la weekly review : daily notes, routine de maintenance, et logique des routines hebdo.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Les notes quotidiennes (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/7bee6bbf-1ccd-4e38-88ca-0e0b0d0c3328?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Les notes quotidiennes (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le carburant de la weekly review : comment faire vivre tes daily notes au quotidien.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Mettre en place une routine de maintenance (Atomic Notes)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315659/99a366b0-5703-495d-a1a1-4f393c2fdf45?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Mettre en place une routine de maintenance (Atomic Notes)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le rituel hebdo qui garde ton système vivant, exactement ce que fait /weekly-review.</div></div>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Créer des routines (Atomic Timing)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315661/b912bb6c-f7b6-4638-9c37-31e7cdd4b13d?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Créer des routines (Atomic Timing)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Pourquoi les routines structurent ta productivité sur le long terme.</div></div>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends le réflexe : passer par l'IA pour la plupart de mes tâches du quotidien — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends le réflexe : passer par l'IA pour la plupart de mes tâches du quotidien</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Plugin Calendar activé dans Obsidian, daily et weekly notes pointent vers ma phase active — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Plugin Calendar activé dans Obsidian, daily et weekly notes pointent vers ma phase active</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais créer une daily note ou une weekly note en un clic dans le calendrier — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais créer une daily note ou une weekly note en un clic dans le calendrier</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai compris le format de la weekly note (intentions transverses + plan par jour) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai compris le format de la weekly note (intentions transverses + plan par jour)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Première weekly review lancée via /weekly-review — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Première weekly review lancée via /weekly-review</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Rituel hebdomadaire planifié (dimanche soir ou lundi matin) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Rituel hebdomadaire planifié (dimanche soir ou lundi matin)</span></li></ul>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Output attendu :</strong> plugin Calendar configuré, première weekly review complétée avec intentions transverses + plan par jour, rituel hebdomadaire ancré dans ta routine.</p>\n</blockquote>",
      "content_markdown": "# Utiliser l'IA comme un assistant personnel\n\nL'IA comme assistant personnel permanent\n\nDémo : comment passer par l'IA pour tout, weekly review et plan jour par jour.\n\nTu as un contexte holistique sur ta vie, ton coffre est synchronisé, l'IA y est connectée en permanence. Maintenant on installe le réflexe central : **passer par l'IA pour tout.**\n\n---\n\n## L'objectif : clarté absolue\n\nTon IA connaît ton parcours, ta vision, tes casquettes, tes projets, ta phase de vie. Elle a accès à ton journaling quotidien et hebdomadaire. Plus tu écris dedans, plus elle te connaît finement.\n\nLe résultat : tu peux **décharger ta charge mentale sur elle** au lieu de tout garder en tête. C'est ça qu'on cherche.\n\nPour toi\n\nMoins de charge mentale\n\nTu n'as plus à tout retenir. Tu lui parles, elle écrit, elle range. Ton cerveau est libre pour penser, pas pour archiver.\n\nPour l'IA\n\nContexte vivant\n\nElle voit ton quotidien en temps réel. Plus tu lui parles, plus ses réponses sont précises et alignées sur toi.\n\nPour le système\n\nContextes à jour\n\nÀ chaque session, elle ruissèle l'info dans les bonnes notes (projet, casquette, phase). Pas de maintenance manuelle.\n\n---\n\n## Le nouveau réflexe : faire toutes tes tâches via l'IA\n\nLe changement de posture, c'est de **ne plus considérer l'IA comme un outil qu'on consulte ponctuellement**, mais comme un assistant qui t'accompagne en permanence. Tu lui parles comme tu parlerais à un bras droit qui te connaît depuis des années.\n\nQuelques exemples concrets :\n\nBrainstorming\n\n« J'hésite entre A et B sur le projet X. Donne-moi 5 angles que je n'ai pas considérés. »\n\nDécision\n\n« Aide-moi à trancher sur Y. Challenge-moi avec ce que tu sais de ma vision. »\n\nRédaction\n\n« Je te dicte mes idées, structure-les pour un post LinkedIn dans mon style. »\n\nPlanning\n\n« Voici ma semaine. Aide-moi à la prioriser sachant mes deadlines projet. »\n\nRéflexion\n\n« J'ai un doute sur mon orientation pro. Relis Moi.md et Mon Parcours.md, et challenge-moi. »\n\nMémoire\n\n« Qu'est-ce qu'on s'était dit la semaine dernière sur le client Z ? »\n\nÀ chaque fois que tu fais ça, **elle met à jour automatiquement les contextes concernés** (note de projet, casquette, daily note, intention de phase si pertinent). Tu n'as rien à classer manuellement, le ruissellement fait le travail.\n\n---\n\n## Le journaling, carburant de l'assistant\n\nTout cela ne marche que si tu **alimentes le système** au quotidien. Le carburant, c'est ton journaling. Deux types de notes, toutes deux dans ta phase de vie active :\n\nDaily notes\n\nTon espace libre du jour\n\nPensées, idées, événements, ressentis. Plus les logs de tes sessions IA (ajoutés automatiquement par `/done`). Pas de format imposé.\n\nWeekly notes\n\nTa feuille de route de la semaine\n\nIntentions transverses + plan par jour. Créée chaque dimanche via `/weekly-review`.\n\n### Configurer le plugin Calendar (5 minutes)\n\nLe plugin Calendar est le centre de commande de ton journaling. Il crée tes daily et weekly notes au bon endroit en un clic.\n\n1. Dans Obsidian, va dans **Réglages** (icône engrenage)\n2. Va dans **Plugins tiers** et active **Calendar** (déjà installé dans le template)\n3. Dans **Réglages → Calendar** : active **Show week number** et vérifie que le **Weekly Note Folder** pointe vers ta phase de vie active\n4. Dans **Réglages → Daily Notes** : vérifie que le **Folder** pointe vers la même phase de vie active\n\n> Si tu as déjà lancé /initialisation, ces réglages sont normalement déjà configurés. Vérifie quand même.\n\n**Comment ça marche au quotidien :**\n\n- Clique sur un jour dans le calendrier (barre latérale droite) : crée ou ouvre la daily note du jour\n- Clique sur un numéro de semaine (W12, W13...) : crée ou ouvre la weekly note de la semaine\n\nC'est tout. Pas besoin de naviguer dans les dossiers, pas besoin de créer les fichiers à la main.\n\n---\n\n## Le rituel central : la weekly review\n\nC'est **l'élément le plus important** à tenir dans ta routine. Une fois par semaine, tu prends 20 minutes pour décharger TOUT le contexte de la semaine écoulée et co-construire le plan de la semaine suivante avec ton IA.\n\nPourquoi c'est central :\n\n- Tout est frais dans ta tête, tu peux tout déverser\n- L'IA scanne en parallèle tes notes modifiées pour ne rien rater\n- Les tâches non complétées sont automatiquement reportées (carry-forward)\n- Tu sors avec un plan clair pour 7 jours\n- L'IA repart pour la semaine avec un contexte parfaitement à jour\n\n### Quand ?\n\n**Dimanche soir ou lundi matin.** Choisis le moment qui te convient et bloque-le dans ton agenda. C'est non négociable, comme une douche.\n\n### Comment ?\n\nDans OpenCode Desktop (ouvert sur ton Workspace), tape :\n\n```\n/weekly-review\n```\n\nL'IA prend le relais. Conversation guidée en quelques étapes :\n\n1\n\nLecture du contexte + scan de la semaine\n\nL'IA lit Moi.md, tes daily notes, et scanne les fichiers modifiés cette semaine.\n\n2\n\nCarry-forward des tâches non complétées\n\nElle lit ta weekly note précédente et récupère toutes les cases non cochées.\n\n3\n\nBrain dump : comment s'est passée ta semaine ?\n\nTu réponds librement (parle avec SuperWhisper si tu veux). Ce qui a avancé, bloqué, émergé.\n\n4\n\nPlan de la semaine suivante\n\nIntentions transverses + actions par jour (Lundi à Dimanche). L'IA intègre les tâches carry-forward dans les bonnes journées.\n\n5\n\nGénération de la weekly note\n\nTu valides, elle crée la note dans ta phase de vie active.\n\n### Le format de la weekly note\n\n```\n---\ntype: weekly\nweek: 2026-W19\nphase: \"Ma phase\"\n---\n# 2026-W19 (5-11 mai)\n\n## Transverse / Intentions\n- Avancer sur le projet X\n- Préserver mon énergie créative le matin\n\n## Lundi\n- [ ] Tâche 1\n\n## Mardi\n- [ ] Tâche 2\n- [ ] Tâche carry-forward\n\n...\n```\n\nSimple, lisible, **adapté à ton vrai rythme**. Pas d'usine à gaz.\n\n---\n\n## Premier test\n\nPour ta toute première weekly review, tu n'as peut-être pas grand-chose à raconter (tu viens de finir l'installation). C'est normal. Fais-la quand même :\n\n- Raconte ton setup de la semaine\n- Pose tes intentions pour la suivante\n- Liste 2-3 tâches concrètes à faire\n\nL'important : **ancrer le rituel dès le départ**. Mieux vaut une weekly review pauvre qu'une weekly review jamais faite.\n\n---\n\n## L'erreur à éviter\n\n**Ne pas faire la weekly review parce que « tu n'as pas le temps ».**\n\nC'est exactement quand tu manques de temps que la review est la plus utile. 20 minutes pour gagner 7 jours de clarté, c'est le meilleur ROI de ta semaine.\n\nLes gens les plus occupés sont ceux qui en ont le plus besoin. Sans elle, tu cours dans tous les sens. Avec elle, tu avances dans la bonne direction, et ton IA t'aide à tenir le cap.\n\n---\n\n## Pour aller plus loin : daily notes et routines\n\nCes vidéos viennent d'Atomic Knowledge, Atomic Notes et Atomic Timing. Elles approfondissent les briques sur lesquelles repose la weekly review : daily notes, routine de maintenance, et logique des routines hebdo.\n\nLes notes quotidiennes (Atomic Knowledge)\n\nLe carburant de la weekly review : comment faire vivre tes daily notes au quotidien.\n\nMettre en place une routine de maintenance (Atomic Notes)\n\nLe rituel hebdo qui garde ton système vivant, exactement ce que fait /weekly-review.\n\nCréer des routines (Atomic Timing)\n\nPourquoi les routines structurent ta productivité sur le long terme.\n\n---\n\n- Je comprends le réflexe : passer par l'IA pour la plupart de mes tâches du quotidien\n- Plugin Calendar activé dans Obsidian, daily et weekly notes pointent vers ma phase active\n- Je sais créer une daily note ou une weekly note en un clic dans le calendrier\n- J'ai compris le format de la weekly note (intentions transverses + plan par jour)\n- Première weekly review lancée via /weekly-review\n- Rituel hebdomadaire planifié (dimanche soir ou lundi matin)\n\n> Output attendu : plugin Calendar configuré, première weekly review complétée avec intentions transverses + plan par jour, rituel hebdomadaire ancré dans ta routine.",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/3a9c08c3f2dc48b5925e9c5e5b52dcf2",
          "placement_index": 1,
          "provider": "Loom",
          "title": "L'IA comme assistant personnel permanent",
          "title_source": "iframe-title",
          "video_id": "3a9c08c3f2dc48b5925e9c5e5b52dcf2",
          "watch_url": "https://www.loom.com/share/3a9c08c3f2dc48b5925e9c5e5b52dcf2"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/7bee6bbf-1ccd-4e38-88ca-0e0b0d0c3328?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Les notes quotidiennes",
          "title_source": "iframe-title",
          "video_id": "7bee6bbf-1ccd-4e38-88ca-0e0b0d0c3328",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/7bee6bbf-1ccd-4e38-88ca-0e0b0d0c3328?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Notes",
          "embed_url": "https://iframe.mediadelivery.net/embed/315659/99a366b0-5703-495d-a1a1-4f393c2fdf45?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 3,
          "provider": "Bunny Stream",
          "title": "Mettre en place une routine de maintenance",
          "title_source": "iframe-title",
          "video_id": "99a366b0-5703-495d-a1a1-4f393c2fdf45",
          "watch_url": "https://iframe.mediadelivery.net/embed/315659/99a366b0-5703-495d-a1a1-4f393c2fdf45?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Timing",
          "embed_url": "https://iframe.mediadelivery.net/embed/315661/b912bb6c-f7b6-4638-9c37-31e7cdd4b13d?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 4,
          "provider": "Bunny Stream",
          "title": "Créer des routines",
          "title_source": "iframe-title",
          "video_id": "b912bb6c-f7b6-4638-9c37-31e7cdd4b13d",
          "watch_url": "https://iframe.mediadelivery.net/embed/315661/b912bb6c-f7b6-4638-9c37-31e7cdd4b13d?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        }
      ],
      "captured_at": "2026-08-03T10:05:35.264Z",
      "counts": {
        "code_blocks": 7,
        "headings": 12,
        "iframes": 4,
        "images": 0,
        "links": 0,
        "text_chars": 7554
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "22-semaine-3-zettelkasten",
      "order": 22,
      "kind": "subsection",
      "section": "06-second-cerveau",
      "title": "Zettelkasten : Transformer ses captures en idées",
      "slug": "semaine-3-zettelkasten",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-3-zettelkasten",
      "summary": "La méthode Zettelkasten pour transformer tes notes brutes en notes atomiques connectées. Commande /notes-permanentes, types de liens, émergence.",
      "objective": "Comprendre la méthode Zettelkasten et savoir utiliser /notes-permanentes pour atomiser tes notes.",
      "expected_output": "Commande /notes-permanentes utilisée au moins une fois, au moins 3 notes permanentes avec des liens entre elles, graph Obsidian exploré.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">À qui s'adresse cette leçon ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu lis beaucoup, si tu écoutes des podcasts, si tu suis des formations, si tu prends des notes depuis des années sans jamais vraiment t'en servir : cette leçon est pour toi. Elle s'adresse aux amoureux de la connaissance, à ceux qui veulent <strong class=\"font-semibold text-foreground\">progresser grâce à la lecture</strong> et transformer ce qu'ils consomment en pensée vraiment leur, durable, mobilisable.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne lis pas et que tu ne cherches pas à creuser des sujets en profondeur, tu peux sauter cette leçon. Elle te servira plus tard quand l'envie viendra.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Le cimetière de notes</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu captures beaucoup. Readwise, Fathom, voice notes, articles sauvegardés, podcasts. Tu as peut-être des centaines de notes dans ton vault. Mais sois honnête : <strong class=\"font-semibold text-foreground\">combien tu en as relues ?</strong></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le taux de relecture est proche de 0%. Tu as un cimetière de notes.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le problème n'est pas la capture : tu captures bien. Le problème, c'est le <strong class=\"font-semibold text-foreground\">format</strong>. Une note de 3 000 mots sur un livre, c'est trop long pour être relue, trop dense pour être utile, et impossible à connecter à d'autres idées.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ce n'est pas un problème de discipline. C'est un problème de design.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Le changement de paradigme</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Il y a deux façons d'organiser ses notes. La première, c'est celle que tout le monde utilise par défaut. La deuxième, c'est celle qui a permis à un sociologue allemand de publier 70 livres et 400 articles.</p>\n<div class=\"my-8 flex flex-col items-center gap-4\"><div class=\"w-full max-w-2xl grid grid-cols-2 gap-6\"><div class=\"rounded-xl border-2 border-red-200 bg-red-50 px-5 py-5 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-red-400 mb-3\">Approche classique</div><div class=\"text-base font-bold text-red-700 mb-3\">1 note = 1 livre</div><div class=\"flex justify-center mb-3\"><div class=\"w-32 h-24 rounded-lg bg-red-200 flex items-center justify-center\"><div class=\"text-xs text-red-600 text-center px-2\">3 000 mots<br>monolithique<br>jamais relue</div></div></div><div class=\"text-xs text-red-400 space-y-1\"><div>Trop longue pour être relue</div><div>Impossible à connecter</div><div>Morte dès qu'elle est créée</div></div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-5 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-3\">Approche Zettelkasten</div><div class=\"text-base font-bold text-emerald-700 mb-3\">1 note = 1 concept</div><div class=\"flex justify-center gap-2 mb-3 flex-wrap\"><div class=\"w-14 h-10 rounded bg-emerald-200 flex items-center justify-center text-xs text-emerald-600\">idée A</div><div class=\"w-14 h-10 rounded bg-emerald-200 flex items-center justify-center text-xs text-emerald-600\">idée B</div><div class=\"w-14 h-10 rounded bg-emerald-200 flex items-center justify-center text-xs text-emerald-600\">idée C</div><div class=\"w-14 h-10 rounded bg-emerald-300 flex items-center justify-center text-xs text-emerald-700\">idée D</div><div class=\"w-14 h-10 rounded bg-emerald-200 flex items-center justify-center text-xs text-emerald-600\">idée E</div></div><div class=\"text-xs text-emerald-400 space-y-1\"><div>Courte, autonome, réutilisable</div><div>Connectée aux autres via [[liens]]</div><div>Vivante : elle sert à créer</div></div></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Niklas Luhmann : la preuve par l'exemple</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Niklas Luhmann était un sociologue allemand. Pas un génie naturel, un fonctionnaire reconverti en chercheur à 35 ans. Mais il a produit un volume de travail ahurissant : <strong class=\"font-semibold text-foreground\">70 livres, 400 articles scientifiques</strong>, sur des sujets allant de l'économie au droit en passant par l'art.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Son secret : une boîte de fiches. 90 000 fiches interconnectées, chacune portant <strong class=\"font-semibold text-foreground\">une seule idée</strong>. Chaque fiche avait un identifiant unique et des renvois vers d'autres fiches. Il ne rangeait pas ses fiches par thème, il les connectait par sens.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La puissance ne vient pas de la quantité de notes. Elle vient des <strong class=\"font-semibold text-foreground\">connexions</strong> entre elles. Quand tu connectes deux idées de domaines différents, tu crées quelque chose de nouveau. C'est exactement ce que le Zettelkasten fait, et c'est ce qu'une note monolithique de 3 000 mots ne pourra jamais faire.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le paradigme expliqué en pratique</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette vidéo d'Atomic Knowledge est sans doute la plus importante de la formation d'origine. Elle pose tout : pourquoi la note par livre échoue, pourquoi la note par concept change la donne, et comment se fait l'émergence d'idées une fois que ton vault est structuré comme ça.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">La prise de notes orientée concepts (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/535b436c-af29-492f-adba-03061583e2d2?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"La prise de notes orientée concepts (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le cœur du Zettelkasten : passer d'une note par livre à une note par concept. La vidéo fondatrice.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Comment on implémente ça : ajouter un Garden dans l'ontologie IPCRA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu vas créer un nouveau dossier dans ton coffre : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">6 GARDEN/</code>. C'est là que vivront tes <strong class=\"font-semibold text-foreground\">notes permanentes</strong> : des concepts atomiques, personnels, densément connectés entre eux. Pas des articles sauvegardés, pas des références : ta pensée distillée.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">L'élixir de ta pensée</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as déjà <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/</code> pour ce que tu lis et ce que tu archives. Le Garden, c'est différent. Tu y mets une <strong class=\"font-semibold text-foreground\">membrane très sélective</strong> : entrent uniquement les concepts que tu as compris, reformulés en tes propres mots, et que tu peux relier à d'autres. Pas de bruit, pas de copie-coller. Que de l'élixir.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On a tous lu des dizaines de livres et capté des centaines de concepts. Mais ce qui te rend toi, ce n'est pas la liste des trucs que tu as lus, c'est la poignée d'idées que tu as digérées, reformulées et reconnectées à ta façon. Le Garden, c'est ce stock-là.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">L'effet Lindy</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'<strong class=\"font-semibold text-foreground\">effet Lindy</strong> (Nassim Taleb, <em>Antifragile</em>) dit qu'une idée non-périssable a une espérance de vie future proportionnelle à son âge actuel. Un livre qui se vend depuis 40 ans va probablement se vendre encore 40 ans. Une idée que tu as utilisée pendant 3 ans va probablement encore servir dans 10. Chaque année qu'une idée passe sans mourir double l'espérance de vie supplémentaire.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tes notes permanentes sont du <strong class=\"font-semibold text-foreground\">Lindy en miniature</strong> : chaque fois que tu réutilises une note, que tu y reviens, que tu la relies à une nouvelle, tu lui rajoutes une décennie. Tes ressources, elles, vieillissent vite (une URL morte, un outil dépassé, un article qui n'est plus à jour, un screenshot qui ne veut plus rien dire). Le Garden fonctionne à l'inverse : il s'apprécie avec le temps.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Concrètement : dans 10 ans, ce que tu trouveras encore utile dans ton vault, ce ne sera pas tes captures d'écran ou tes articles sauvegardés. Ce sera tes notes permanentes : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[L'effet Lindy]]</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[Le storytelling crée de l'empathie]]</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[[La permaculture comme métaphore business]]</code>. C'est ça qu'on bâtit ici.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Les 4 types de notes dans ton vault</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas besoin de tout réinventer. Le Zettelkasten s'intègre dans la structure IPCRA que tu as déjà mise en place. Voici les 4 types de notes et où elles vivent :</p>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-lg rounded-xl border-2 border-zinc-300 bg-zinc-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-400 mb-1\">Type 1</div><div class=\"text-sm font-bold text-zinc-700\">Capture brute</div><div class=\"text-xs text-zinc-500 mt-1\">Voice note, lien, idée rapide → <code>0 INBOX/</code></div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-lg rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-400 mb-1\">Type 2</div><div class=\"text-sm font-bold text-blue-700\">Note littéraire</div><div class=\"text-xs text-blue-500 mt-1\">1 note par source (livre, article, podcast). Reformulée dans tes mots, structurée en H2 par concept → <code>6 GARDEN/A traiter/</code></div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼ atomisation</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-lg rounded-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-400 mb-1\">Type 3</div><div class=\"text-sm font-bold text-emerald-700\">Note permanente (atome)</div><div class=\"text-xs text-emerald-500 mt-1\">1 concept unique, autonome, connectée via <code>[[wikilinks]]</code>. C'est la brique de base → <code>6 GARDEN/Notes/</code></div></div><div class=\"h-4 w-px bg-zinc-300\"></div><div class=\"text-zinc-400 text-xs\">▼ regroupement</div><div class=\"h-2 w-px bg-zinc-300\"></div><div class=\"w-full max-w-lg rounded-xl border-2 border-purple-200 bg-purple-50 px-6 py-4 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-purple-400 mb-1\">Type 4</div><div class=\"text-sm font-bold text-purple-700\">Carte de contenu (MOC)</div><div class=\"text-xs text-purple-500 mt-1\">Point d'entrée thématique qui regroupe les atomes par thème (ex: MARKETING, PSYCHOLOGIE, BUSINESS) → <code>6 GARDEN/Notes/</code></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Le flux concret :</strong></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Tu captures un truc intéressant → ça arrive dans l'inbox</li>\n<li class=\"leading-7\">Tu le reformules en note littéraire (1 note par source, avec des H2 par concept)</li>\n<li class=\"leading-7\">Tu atomises la note littéraire → chaque concept devient une note permanente indépendante</li>\n<li class=\"leading-7\">Les notes permanentes se rattachent à des MOCs thématiques</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'étape 3, l'atomisation, c'est le cœur du Zettelkasten. Et c'est exactement ce que la commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code> va automatiser pour toi.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Ce qui fait une bonne note permanente</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pas toutes les notes méritent d'être atomisées. Une bonne note permanente suit les critères <strong class=\"font-semibold text-foreground\">BASIC</strong> :</p>\n<div class=\"my-8 flex flex-col items-center gap-3 max-w-xl mx-auto\"><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-lg font-bold text-emerald-700 mt-0.5\">B</div><div><div class=\"text-sm font-bold text-emerald-700\">Brève</div><div class=\"text-xs text-emerald-500\">Quelques paragraphes max. Si c'est trop long, c'est deux notes.</div></div></div><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-lg font-bold text-emerald-700 mt-0.5\">A</div><div><div class=\"text-sm font-bold text-emerald-700\">Authentique</div><div class=\"text-xs text-emerald-500\">Écrite dans TES mots. Pas un copier-coller. Ta reformulation, ton angle.</div></div></div><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-lg font-bold text-emerald-700 mt-0.5\">S</div><div><div class=\"text-sm font-bold text-emerald-700\">Sourcée</div><div class=\"text-xs text-emerald-500\">D'où vient cette idée ? Auteur, livre, page.</div></div></div><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-lg font-bold text-emerald-700 mt-0.5\">I</div><div><div class=\"text-sm font-bold text-emerald-700\">Indépendante</div><div class=\"text-xs text-emerald-500\">Compréhensible sans contexte. Quelqu'un qui tombe dessus comprend de quoi ça parle.</div></div></div><div class=\"w-full rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-3 flex items-start gap-3\"><div class=\"text-lg font-bold text-emerald-700 mt-0.5\">C</div><div><div class=\"text-sm font-bold text-emerald-700\">Connectée</div><div class=\"text-xs text-emerald-500\">Au minimum 2-3 [[liens]] vers d'autres notes permanentes.</div></div></div></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Exemple concret d'une bonne note permanente</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voici à quoi ressemble une note permanente bien faite :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-markdown\">---\ntype: permanent\nstatus: active\nmoc: \"[[MARKETING]]\"\nsource: \"Building a StoryBrand - Donald Miller\"\nauthor: \"Donald Miller\"\n---\n# Le client est le héros, pas la marque\n\nDans toute communication marketing efficace, le client occupe la position\ndu héros de l'histoire, pas la marque. La marque est le guide (le Yoda),\npas le protagoniste (le Luke Skywalker).\n\nQuand une entreprise se positionne comme le héros (\"Nous sommes les\nmeilleurs\", \"Notre technologie innovante\"), elle entre en compétition avec\nle client pour le rôle principal. Le client ne se reconnaît pas dans le\nmessage et décroche.\n\n&gt; \"The customer is the hero, not your brand.\" — Donald Miller\n\nLe framework StoryBrand inverse la logique : le client a un problème,\nla marque l'aide à le résoudre. Simple, mais la majorité des entreprises\nfont l'inverse.\n\n## Liens\n- [[Le storytelling crée de l'empathie]] — contexte : le héros doit\n  être quelqu'un dans lequel on se reconnaît\n- [[La clarté bat la créativité en marketing]] — logique : clarifier\n  le rôle du client &gt; être original\n- [[Le problème est plus vendeur que la solution]] — exemple : le\n  StoryBrand commence toujours par le problème du héros\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Remarque ce qui rend cette note efficace :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Un titre déclaratif</strong> : une affirmation, pas un thème (\"Le client est le héros\" et non \"Le héros en marketing\")</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Quelques paragraphes</strong> : l'essentiel, rien de plus</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Dans mes mots</strong> : pas un résumé scolaire du livre</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Une citation exacte</strong> de la source</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">3 liens</strong> avec le <strong class=\"font-semibold text-foreground\">type de lien</strong> explicite (contexte, logique, exemple)</li>\n</ul>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Les notes permanentes (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/73fa4742-fa58-4302-b27a-2d5a78e9936b?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Les notes permanentes (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">La définition complète d'une note permanente : structure, durée de vie, ce qui en fait une bonne note.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Les bons liens</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ne fais pas des liens au hasard. \"C'est vaguement lié\" n'est pas un bon lien. Un bon lien, c'est un lien dont tu peux expliquer <strong class=\"font-semibold text-foreground\">pourquoi</strong> il existe.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">3 types de liens valides :</p>\n<div class=\"my-8 flex flex-col items-center gap-4\"><div class=\"w-full max-w-2xl grid grid-cols-3 gap-4\"><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 px-4 py-4 text-center\"><div class=\"text-sm font-bold text-sky-700 mb-2\">Contexte</div><div class=\"text-xs text-sky-500\">Cette note éclaire le contexte de l'autre</div><div class=\"text-xs text-sky-400 mt-2 italic\">\"Le stoïcisme\" ↔ \"Marc Aurèle et la discipline intérieure\"</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 px-4 py-4 text-center\"><div class=\"text-sm font-bold text-amber-700 mb-2\">Exemple</div><div class=\"text-xs text-amber-500\">Cette note illustre l'autre</div><div class=\"text-xs text-amber-400 mt-2 italic\">\"Le biais de confirmation\" ↔ \"Pourquoi les réseaux sociaux polarisent\"</div></div><div class=\"rounded-xl border-2 border-purple-200 bg-purple-50 px-4 py-4 text-center\"><div class=\"text-sm font-bold text-purple-700 mb-2\">Logique</div><div class=\"text-xs text-purple-500\">Ces notes se complètent ou se contredisent</div><div class=\"text-xs text-purple-400 mt-2 italic\">\"La spécialisation crée de la valeur\" ↔ \"Le généraliste survit mieux aux crises\"</div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Règle d'or :</strong> tu dois toujours pouvoir répondre à la question \"<strong class=\"font-semibold text-foreground\">pourquoi</strong> j'ai lié ces deux notes ?\" Si tu ne peux pas, c'est un mauvais lien. Supprime-le.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est pour ça que dans l'exemple plus haut, chaque lien a une annotation : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">— contexte : ...</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">— logique : ...</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">— exemple : ...</code>. Ça te force à justifier le lien au moment où tu le crées.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Faire de bons liens (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/b9212635-f1c5-4ecc-9f2b-1a593346278f?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Faire de bons liens (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">L'art de lier les notes entre elles. Les différents types de liens, et pourquoi c'est le cœur du système.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">La commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code></h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code> est <strong class=\"font-semibold text-foreground\">déjà incluse de base</strong> dans ton coffre. Tu n'as rien à créer. Elle transforme automatiquement tes notes littéraires (ou highlights, podcasts, livres) en notes permanentes atomiques, dans ton Garden.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Ce qu'elle fait</h3>\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-md rounded-xl border-2 border-sky-200 bg-sky-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-sky-400\">Étape 1</div><div class=\"text-sm font-bold text-sky-700\">Lire la note source</div><div class=\"text-xs text-sky-500 mt-1\">L'IA lit ta note littéraire</div></div><div class=\"text-gray-300 text-lg leading-none py-1\">↓</div><div class=\"w-full max-w-md rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-blue-400\">Étape 2</div><div class=\"text-sm font-bold text-blue-700\">Identifier les concepts</div><div class=\"text-xs text-blue-500 mt-1\">Titres déclaratifs, atomiques</div></div><div class=\"text-gray-300 text-lg leading-none py-1\">↓</div><div class=\"w-full max-w-md rounded-xl border-2 border-red-200 bg-red-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-red-400\">Étape 3 : STOP</div><div class=\"text-sm font-bold text-red-700\">Valider avec toi</div><div class=\"text-xs text-red-500 mt-1\">Tu approuves la liste avant de continuer</div></div><div class=\"text-gray-300 text-lg leading-none py-1\">↓</div><div class=\"w-full max-w-md rounded-xl border-2 border-emerald-200 bg-emerald-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-emerald-400\">Étape 4</div><div class=\"text-sm font-bold text-emerald-700\">Générer le contenu</div><div class=\"text-xs text-emerald-500 mt-1\">Chaque concept → une note permanente complète</div></div><div class=\"text-gray-300 text-lg leading-none py-1\">↓</div><div class=\"w-full max-w-md rounded-xl border-2 border-purple-200 bg-purple-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-purple-400\">Étape 5</div><div class=\"text-sm font-bold text-purple-700\">Créer les fichiers</div><div class=\"text-xs text-purple-500 mt-1\">Dans <code>6 GARDEN/Notes/</code> avec frontmatter</div></div><div class=\"text-gray-300 text-lg leading-none py-1\">↓</div><div class=\"w-full max-w-md rounded-xl border-2 border-amber-200 bg-amber-50 px-6 py-3 text-center\"><div class=\"text-xs font-semibold text-amber-400\">Étape 6</div><div class=\"text-sm font-bold text-amber-700\">Chercher les connexions</div><div class=\"text-xs text-amber-500 mt-1\">Via QMD (sémantique) ou mots-clés dans le vault</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'étape 3 est cruciale : l'IA te propose une liste de concepts et <strong class=\"font-semibold text-foreground\">attend ta validation</strong>. Tu peux retirer des concepts, en reformuler, en ajouter. C'est toi qui décides quelles idées méritent une note permanente.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Comment l'utiliser</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est simple :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/notes-permanentes\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu lances la commande, elle te demande comment procéder (scanner tes sources récentes, traiter une source spécifique, ou compléter des stubs existants), elle te propose les concepts, attend ta validation, puis crée les notes permanentes avec les connexions.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">L'émergence : quand les connexions créent des idées</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le vrai pouvoir du Zettelkasten n'apparaît pas avec 5 notes. Il apparaît avec 50, 100, 200 notes permanentes interconnectées.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le graph Obsidian</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre le graph d'Obsidian (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Cmd+G</code> sur Mac, ou le bouton \"Graph view\" dans la sidebar). Tu verras tes notes comme des points, et les liens comme des lignes entre eux.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Au début, c'est épars. Mais au fil du temps, des <strong class=\"font-semibold text-foreground\">clusters</strong> apparaissent : des groupes de notes densément connectées autour d'un thème. Et parfois, un lien inattendu relie deux clusters que tu n'avais jamais associés. C'est là que l'insight se produit.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">La weekly review comme exploration</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pendant ta weekly review, prends 5 minutes pour explorer le graph. Cherche :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Les <strong class=\"font-semibold text-foreground\">clusters denses</strong> : tes domaines d'expertise qui s'affirment</li>\n<li class=\"leading-7\">Les <strong class=\"font-semibold text-foreground\">notes isolées</strong> : des idées orphelines qui attendent des connexions</li>\n<li class=\"leading-7\">Les <strong class=\"font-semibold text-foreground\">ponts inattendus</strong> : des liens entre domaines différents qui font émerger quelque chose de nouveau</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Plus jamais la page blanche</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu dois écrire une newsletter, préparer une vidéo, structurer un coaching : tu ne pars plus de zéro. Tu pars de tes notes permanentes. Tu ouvres le MOC pertinent, tu parcours les atomes, tu assembles. La création devient un travail de <strong class=\"font-semibold text-foreground\">combinaison</strong>, pas d'invention.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">QMD : retrouver par le sens</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as installé QMD (leçon sur la vectorisation), la recherche sémantique fonctionne aussi sur tes notes permanentes. Tu peux chercher \"comment convaincre un prospect hésitant\" et retrouver ta note \"Le problème est plus vendeur que la solution\", même si les mots ne correspondent pas.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code> + QMD, l'IA peut aussi <strong class=\"font-semibold text-foreground\">chercher les connexions automatiquement</strong> dans ton vault existant. Elle ne se contente pas de créer des notes isolées, elle les ancre dans ton réseau de connaissances.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Comment faire émerger de nouvelles idées (Atomic Knowledge)</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://iframe.mediadelivery.net/embed/315658/bd86ebb8-b347-4c56-98ec-9021a976642b?autoplay=false&amp;loop=false&amp;muted=false&amp;preload=true&amp;responsive=true\" title=\"Comment faire émerger de nouvelles idées (Atomic Knowledge)\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le payoff du Zettelkasten : générer des idées que tu n'avais pas, en explorant tes propres connexions.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Outils complémentaires</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">QMD : La recherche sémantique</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu as déjà la leçon d'installation. Le combo <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code> + QMD est puissant : quand l'IA crée tes notes permanentes (étape 5), elle utilise QMD pour chercher les connexions existantes <strong class=\"font-semibold text-foreground\">par sens</strong>, pas juste par mots-clés. Elle peut trouver qu'une note sur le \"biais d'ancrage\" est liée à ta note sur la \"négociation salariale\", même si les mots sont totalement différents.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Note Refactor : L'ancienne méthode manuelle</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plugin Obsidian <strong class=\"font-semibold text-foreground\">Note Refactor</strong> permet de découper une note manuellement. Tu écris ta note littéraire avec des H2 par concept, puis tu utilises \"Split note by heading\" : ça crée un fichier par H2.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est toujours utile pour des cas simples. Mais <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/notes-permanentes</code> fait ça 10x plus vite, écrit le contenu dans le bon format, ajoute le frontmatter, et trouve les connexions automatiquement.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Le graph Obsidian</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour visualiser les connexions entre tes notes. Plus tu as de notes permanentes bien liées, plus le graph devient utile. C'est un outil d'exploration, pas de rangement.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Bonus : enrichir son Garden pour la création de contenu (Ulysse)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ulysse, un créateur qui a construit son second cerveau autour d'un objectif précis : produire du contenu en continu (newsletter, LinkedIn, YouTube, livre). Du coup, il a poussé l'ontologie au-delà du concept atomique. Son Garden ne sert pas qu'à penser, il sert à alimenter une chaîne de production.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'idée à retenir : si tu crées du contenu, tu peux ajouter quelques types de notes qui transforment tes concepts en matière première directement exploitable. Les concepts restent le socle. Au-dessus, des couches qui les rendent activables.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Les types de notes qu'il ajoute à son Garden :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Concepts</strong> : la couche de base, atomique, orientée idée (comme dans IPCRA).</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Idées</strong> : intuitions brutes captées au fil de l'eau, à creuser ou à recouper avec des concepts existants.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Portraits de personnes</strong> : une phrase qui dit qui, une chronologie, un moment de bascule, des citations, des chiffres clés. Réutilisable dès qu'il écrit sur ou autour de quelqu'un.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Exemples / Ressources</strong> : livres, podcasts, newsletters, transcripts. Inputs qui viennent nourrir les concepts.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Angles éditoriaux</strong> : la couche du dessus. Un angle mobilise plusieurs concepts, est scoré (résonance, alignement, originalité, profondeur, maturité, potentiel de conversation) et devient l'input unique pour produire une newsletter, un post, une vidéo.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le système marche dans ce sens : ressources nourrissent les concepts, concepts nourrissent les angles, angles nourrissent la production. Chaque note a une fonction claire dans la chaîne.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">L'ontologie d'Ulysse pour créer du contenu</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.youtube-nocookie.com/embed/XphRDltcYSA\" title=\"L'ontologie d'Ulysse pour créer du contenu\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Comment Ulysse étend l'ontologie du Zettelkasten avec des portraits, des angles et un scoring pour produire du contenu en continu.</div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends la différence entre note-contenu et note-concept — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends la différence entre note-contenu et note-concept</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé le dossier 6 GARDEN/ dans mon coffre — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé le dossier 6 GARDEN/ dans mon coffre</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que la commande /notes-permanentes est déjà incluse — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que la commande /notes-permanentes est déjà incluse</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé /notes-permanentes sur une note littéraire existante — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé /notes-permanentes sur une note littéraire existante</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai au moins 3 notes permanentes avec des liens entre elles — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai au moins 3 notes permanentes avec des liens entre elles</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai exploré le graph Obsidian pour voir les connexions — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai exploré le graph Obsidian pour voir les connexions</span></li></ul>",
      "content_markdown": "## À qui s'adresse cette leçon ?\n\nSi tu lis beaucoup, si tu écoutes des podcasts, si tu suis des formations, si tu prends des notes depuis des années sans jamais vraiment t'en servir : cette leçon est pour toi. Elle s'adresse aux amoureux de la connaissance, à ceux qui veulent **progresser grâce à la lecture** et transformer ce qu'ils consomment en pensée vraiment leur, durable, mobilisable.\n\nSi tu ne lis pas et que tu ne cherches pas à creuser des sujets en profondeur, tu peux sauter cette leçon. Elle te servira plus tard quand l'envie viendra.\n\n---\n\n## Le cimetière de notes\n\nTu captures beaucoup. Readwise, Fathom, voice notes, articles sauvegardés, podcasts. Tu as peut-être des centaines de notes dans ton vault. Mais sois honnête : **combien tu en as relues ?**\n\nLe taux de relecture est proche de 0%. Tu as un cimetière de notes.\n\nLe problème n'est pas la capture : tu captures bien. Le problème, c'est le **format**. Une note de 3 000 mots sur un livre, c'est trop long pour être relue, trop dense pour être utile, et impossible à connecter à d'autres idées.\n\nCe n'est pas un problème de discipline. C'est un problème de design.\n\n---\n\n## Le changement de paradigme\n\nIl y a deux façons d'organiser ses notes. La première, c'est celle que tout le monde utilise par défaut. La deuxième, c'est celle qui a permis à un sociologue allemand de publier 70 livres et 400 articles.\n\nApproche classique\n\n1 note = 1 livre\n\n3 000 mots\nmonolithique\njamais relue\n\nTrop longue pour être relue\n\nImpossible à connecter\n\nMorte dès qu'elle est créée\n\nApproche Zettelkasten\n\n1 note = 1 concept\n\nidée A\n\nidée B\n\nidée C\n\nidée D\n\nidée E\n\nCourte, autonome, réutilisable\n\nConnectée aux autres via [[liens]]\n\nVivante : elle sert à créer\n\n### Niklas Luhmann : la preuve par l'exemple\n\nNiklas Luhmann était un sociologue allemand. Pas un génie naturel, un fonctionnaire reconverti en chercheur à 35 ans. Mais il a produit un volume de travail ahurissant : **70 livres, 400 articles scientifiques**, sur des sujets allant de l'économie au droit en passant par l'art.\n\nSon secret : une boîte de fiches. 90 000 fiches interconnectées, chacune portant **une seule idée**. Chaque fiche avait un identifiant unique et des renvois vers d'autres fiches. Il ne rangeait pas ses fiches par thème, il les connectait par sens.\n\nLa puissance ne vient pas de la quantité de notes. Elle vient des **connexions** entre elles. Quand tu connectes deux idées de domaines différents, tu crées quelque chose de nouveau. C'est exactement ce que le Zettelkasten fait, et c'est ce qu'une note monolithique de 3 000 mots ne pourra jamais faire.\n\n### Le paradigme expliqué en pratique\n\nCette vidéo d'Atomic Knowledge est sans doute la plus importante de la formation d'origine. Elle pose tout : pourquoi la note par livre échoue, pourquoi la note par concept change la donne, et comment se fait l'émergence d'idées une fois que ton vault est structuré comme ça.\n\nLa prise de notes orientée concepts (Atomic Knowledge)\n\nLe cœur du Zettelkasten : passer d'une note par livre à une note par concept. La vidéo fondatrice.\n\n---\n\n## Comment on implémente ça : ajouter un Garden dans l'ontologie IPCRA\n\nTu vas créer un nouveau dossier dans ton coffre : `6 GARDEN/`. C'est là que vivront tes **notes permanentes** : des concepts atomiques, personnels, densément connectés entre eux. Pas des articles sauvegardés, pas des références : ta pensée distillée.\n\n### L'élixir de ta pensée\n\nTu as déjà `3 RESSOURCES/` pour ce que tu lis et ce que tu archives. Le Garden, c'est différent. Tu y mets une **membrane très sélective** : entrent uniquement les concepts que tu as compris, reformulés en tes propres mots, et que tu peux relier à d'autres. Pas de bruit, pas de copie-coller. Que de l'élixir.\n\nOn a tous lu des dizaines de livres et capté des centaines de concepts. Mais ce qui te rend toi, ce n'est pas la liste des trucs que tu as lus, c'est la poignée d'idées que tu as digérées, reformulées et reconnectées à ta façon. Le Garden, c'est ce stock-là.\n\n### L'effet Lindy\n\nL'**effet Lindy** (Nassim Taleb, *Antifragile*) dit qu'une idée non-périssable a une espérance de vie future proportionnelle à son âge actuel. Un livre qui se vend depuis 40 ans va probablement se vendre encore 40 ans. Une idée que tu as utilisée pendant 3 ans va probablement encore servir dans 10. Chaque année qu'une idée passe sans mourir double l'espérance de vie supplémentaire.\n\nTes notes permanentes sont du **Lindy en miniature** : chaque fois que tu réutilises une note, que tu y reviens, que tu la relies à une nouvelle, tu lui rajoutes une décennie. Tes ressources, elles, vieillissent vite (une URL morte, un outil dépassé, un article qui n'est plus à jour, un screenshot qui ne veut plus rien dire). Le Garden fonctionne à l'inverse : il s'apprécie avec le temps.\n\nConcrètement : dans 10 ans, ce que tu trouveras encore utile dans ton vault, ce ne sera pas tes captures d'écran ou tes articles sauvegardés. Ce sera tes notes permanentes : `[[L'effet Lindy]]`, `[[Le storytelling crée de l'empathie]]`, `[[La permaculture comme métaphore business]]`. C'est ça qu'on bâtit ici.\n\n---\n\n## Les 4 types de notes dans ton vault\n\nTu n'as pas besoin de tout réinventer. Le Zettelkasten s'intègre dans la structure IPCRA que tu as déjà mise en place. Voici les 4 types de notes et où elles vivent :\n\nType 1\n\nCapture brute\n\nVoice note, lien, idée rapide → `0 INBOX/`\n\n▼\n\nType 2\n\nNote littéraire\n\n1 note par source (livre, article, podcast). Reformulée dans tes mots, structurée en H2 par concept → `6 GARDEN/A traiter/`\n\n▼ atomisation\n\nType 3\n\nNote permanente (atome)\n\n1 concept unique, autonome, connectée via `[[wikilinks]]`. C'est la brique de base → `6 GARDEN/Notes/`\n\n▼ regroupement\n\nType 4\n\nCarte de contenu (MOC)\n\nPoint d'entrée thématique qui regroupe les atomes par thème (ex: MARKETING, PSYCHOLOGIE, BUSINESS) → `6 GARDEN/Notes/`\n\n**Le flux concret :**\n\n1. Tu captures un truc intéressant → ça arrive dans l'inbox\n2. Tu le reformules en note littéraire (1 note par source, avec des H2 par concept)\n3. Tu atomises la note littéraire → chaque concept devient une note permanente indépendante\n4. Les notes permanentes se rattachent à des MOCs thématiques\n\nL'étape 3, l'atomisation, c'est le cœur du Zettelkasten. Et c'est exactement ce que la commande `/notes-permanentes` va automatiser pour toi.\n\n---\n\n## Ce qui fait une bonne note permanente\n\nPas toutes les notes méritent d'être atomisées. Une bonne note permanente suit les critères **BASIC** :\n\nB\n\nBrève\n\nQuelques paragraphes max. Si c'est trop long, c'est deux notes.\n\nA\n\nAuthentique\n\nÉcrite dans TES mots. Pas un copier-coller. Ta reformulation, ton angle.\n\nS\n\nSourcée\n\nD'où vient cette idée ? Auteur, livre, page.\n\nI\n\nIndépendante\n\nCompréhensible sans contexte. Quelqu'un qui tombe dessus comprend de quoi ça parle.\n\nC\n\nConnectée\n\nAu minimum 2-3 [[liens]] vers d'autres notes permanentes.\n\n### Exemple concret d'une bonne note permanente\n\nVoici à quoi ressemble une note permanente bien faite :\n\n```\n---\ntype: permanent\nstatus: active\nmoc: \"[[MARKETING]]\"\nsource: \"Building a StoryBrand - Donald Miller\"\nauthor: \"Donald Miller\"\n---\n# Le client est le héros, pas la marque\n\nDans toute communication marketing efficace, le client occupe la position\ndu héros de l'histoire, pas la marque. La marque est le guide (le Yoda),\npas le protagoniste (le Luke Skywalker).\n\nQuand une entreprise se positionne comme le héros (\"Nous sommes les\nmeilleurs\", \"Notre technologie innovante\"), elle entre en compétition avec\nle client pour le rôle principal. Le client ne se reconnaît pas dans le\nmessage et décroche.\n\n> \"The customer is the hero, not your brand.\" — Donald Miller\n\nLe framework StoryBrand inverse la logique : le client a un problème,\nla marque l'aide à le résoudre. Simple, mais la majorité des entreprises\nfont l'inverse.\n\n## Liens\n- [[Le storytelling crée de l'empathie]] — contexte : le héros doit\n  être quelqu'un dans lequel on se reconnaît\n- [[La clarté bat la créativité en marketing]] — logique : clarifier\n  le rôle du client > être original\n- [[Le problème est plus vendeur que la solution]] — exemple : le\n  StoryBrand commence toujours par le problème du héros\n```\n\nRemarque ce qui rend cette note efficace :\n\n- **Un titre déclaratif** : une affirmation, pas un thème (\"Le client est le héros\" et non \"Le héros en marketing\")\n- **Quelques paragraphes** : l'essentiel, rien de plus\n- **Dans mes mots** : pas un résumé scolaire du livre\n- **Une citation exacte** de la source\n- **3 liens** avec le **type de lien** explicite (contexte, logique, exemple)\n\nLes notes permanentes (Atomic Knowledge)\n\nLa définition complète d'une note permanente : structure, durée de vie, ce qui en fait une bonne note.\n\n---\n\n## Les bons liens\n\nNe fais pas des liens au hasard. \"C'est vaguement lié\" n'est pas un bon lien. Un bon lien, c'est un lien dont tu peux expliquer **pourquoi** il existe.\n\n3 types de liens valides :\n\nContexte\n\nCette note éclaire le contexte de l'autre\n\n\"Le stoïcisme\" ↔ \"Marc Aurèle et la discipline intérieure\"\n\nExemple\n\nCette note illustre l'autre\n\n\"Le biais de confirmation\" ↔ \"Pourquoi les réseaux sociaux polarisent\"\n\nLogique\n\nCes notes se complètent ou se contredisent\n\n\"La spécialisation crée de la valeur\" ↔ \"Le généraliste survit mieux aux crises\"\n\n**Règle d'or :** tu dois toujours pouvoir répondre à la question \"**pourquoi** j'ai lié ces deux notes ?\" Si tu ne peux pas, c'est un mauvais lien. Supprime-le.\n\nC'est pour ça que dans l'exemple plus haut, chaque lien a une annotation : `— contexte : ...`, `— logique : ...`, `— exemple : ...`. Ça te force à justifier le lien au moment où tu le crées.\n\nFaire de bons liens (Atomic Knowledge)\n\nL'art de lier les notes entre elles. Les différents types de liens, et pourquoi c'est le cœur du système.\n\n---\n\n## La commande `/notes-permanentes`\n\nLa commande `/notes-permanentes` est **déjà incluse de base** dans ton coffre. Tu n'as rien à créer. Elle transforme automatiquement tes notes littéraires (ou highlights, podcasts, livres) en notes permanentes atomiques, dans ton Garden.\n\n### Ce qu'elle fait\n\nÉtape 1\n\nLire la note source\n\nL'IA lit ta note littéraire\n\n↓\n\nÉtape 2\n\nIdentifier les concepts\n\nTitres déclaratifs, atomiques\n\n↓\n\nÉtape 3 : STOP\n\nValider avec toi\n\nTu approuves la liste avant de continuer\n\n↓\n\nÉtape 4\n\nGénérer le contenu\n\nChaque concept → une note permanente complète\n\n↓\n\nÉtape 5\n\nCréer les fichiers\n\nDans `6 GARDEN/Notes/` avec frontmatter\n\n↓\n\nÉtape 6\n\nChercher les connexions\n\nVia QMD (sémantique) ou mots-clés dans le vault\n\nL'étape 3 est cruciale : l'IA te propose une liste de concepts et **attend ta validation**. Tu peux retirer des concepts, en reformuler, en ajouter. C'est toi qui décides quelles idées méritent une note permanente.\n\n### Comment l'utiliser\n\nC'est simple :\n\n```\n/notes-permanentes\n```\n\nTu lances la commande, elle te demande comment procéder (scanner tes sources récentes, traiter une source spécifique, ou compléter des stubs existants), elle te propose les concepts, attend ta validation, puis crée les notes permanentes avec les connexions.\n\n---\n\n## L'émergence : quand les connexions créent des idées\n\nLe vrai pouvoir du Zettelkasten n'apparaît pas avec 5 notes. Il apparaît avec 50, 100, 200 notes permanentes interconnectées.\n\n### Le graph Obsidian\n\nOuvre le graph d'Obsidian (`Cmd+G` sur Mac, ou le bouton \"Graph view\" dans la sidebar). Tu verras tes notes comme des points, et les liens comme des lignes entre eux.\n\nAu début, c'est épars. Mais au fil du temps, des **clusters** apparaissent : des groupes de notes densément connectées autour d'un thème. Et parfois, un lien inattendu relie deux clusters que tu n'avais jamais associés. C'est là que l'insight se produit.\n\n### La weekly review comme exploration\n\nPendant ta weekly review, prends 5 minutes pour explorer le graph. Cherche :\n\n- Les **clusters denses** : tes domaines d'expertise qui s'affirment\n- Les **notes isolées** : des idées orphelines qui attendent des connexions\n- Les **ponts inattendus** : des liens entre domaines différents qui font émerger quelque chose de nouveau\n\n### Plus jamais la page blanche\n\nQuand tu dois écrire une newsletter, préparer une vidéo, structurer un coaching : tu ne pars plus de zéro. Tu pars de tes notes permanentes. Tu ouvres le MOC pertinent, tu parcours les atomes, tu assembles. La création devient un travail de **combinaison**, pas d'invention.\n\n### QMD : retrouver par le sens\n\nSi tu as installé QMD (leçon sur la vectorisation), la recherche sémantique fonctionne aussi sur tes notes permanentes. Tu peux chercher \"comment convaincre un prospect hésitant\" et retrouver ta note \"Le problème est plus vendeur que la solution\", même si les mots ne correspondent pas.\n\nAvec `/notes-permanentes` + QMD, l'IA peut aussi **chercher les connexions automatiquement** dans ton vault existant. Elle ne se contente pas de créer des notes isolées, elle les ancre dans ton réseau de connaissances.\n\nComment faire émerger de nouvelles idées (Atomic Knowledge)\n\nLe payoff du Zettelkasten : générer des idées que tu n'avais pas, en explorant tes propres connexions.\n\n---\n\n## Outils complémentaires\n\n### QMD : La recherche sémantique\n\nTu as déjà la leçon d'installation. Le combo `/notes-permanentes` + QMD est puissant : quand l'IA crée tes notes permanentes (étape 5), elle utilise QMD pour chercher les connexions existantes **par sens**, pas juste par mots-clés. Elle peut trouver qu'une note sur le \"biais d'ancrage\" est liée à ta note sur la \"négociation salariale\", même si les mots sont totalement différents.\n\n### Note Refactor : L'ancienne méthode manuelle\n\nLe plugin Obsidian **Note Refactor** permet de découper une note manuellement. Tu écris ta note littéraire avec des H2 par concept, puis tu utilises \"Split note by heading\" : ça crée un fichier par H2.\n\nC'est toujours utile pour des cas simples. Mais `/notes-permanentes` fait ça 10x plus vite, écrit le contenu dans le bon format, ajoute le frontmatter, et trouve les connexions automatiquement.\n\n### Le graph Obsidian\n\nPour visualiser les connexions entre tes notes. Plus tu as de notes permanentes bien liées, plus le graph devient utile. C'est un outil d'exploration, pas de rangement.\n\n---\n\n## Bonus : enrichir son Garden pour la création de contenu (Ulysse)\n\nUlysse, un créateur qui a construit son second cerveau autour d'un objectif précis : produire du contenu en continu (newsletter, LinkedIn, YouTube, livre). Du coup, il a poussé l'ontologie au-delà du concept atomique. Son Garden ne sert pas qu'à penser, il sert à alimenter une chaîne de production.\n\nL'idée à retenir : si tu crées du contenu, tu peux ajouter quelques types de notes qui transforment tes concepts en matière première directement exploitable. Les concepts restent le socle. Au-dessus, des couches qui les rendent activables.\n\n**Les types de notes qu'il ajoute à son Garden :**\n\n- **Concepts** : la couche de base, atomique, orientée idée (comme dans IPCRA).\n- **Idées** : intuitions brutes captées au fil de l'eau, à creuser ou à recouper avec des concepts existants.\n- **Portraits de personnes** : une phrase qui dit qui, une chronologie, un moment de bascule, des citations, des chiffres clés. Réutilisable dès qu'il écrit sur ou autour de quelqu'un.\n- **Exemples / Ressources** : livres, podcasts, newsletters, transcripts. Inputs qui viennent nourrir les concepts.\n- **Angles éditoriaux** : la couche du dessus. Un angle mobilise plusieurs concepts, est scoré (résonance, alignement, originalité, profondeur, maturité, potentiel de conversation) et devient l'input unique pour produire une newsletter, un post, une vidéo.\n\nLe système marche dans ce sens : ressources nourrissent les concepts, concepts nourrissent les angles, angles nourrissent la production. Chaque note a une fonction claire dans la chaîne.\n\nL'ontologie d'Ulysse pour créer du contenu\n\nComment Ulysse étend l'ontologie du Zettelkasten avec des portraits, des angles et un scoring pour produire du contenu en continu.\n\n---\n\n## Checklist\n\n- Je comprends la différence entre note-contenu et note-concept\n- J'ai créé le dossier 6 GARDEN/ dans mon coffre\n- Je sais que la commande /notes-permanentes est déjà incluse\n- J'ai testé /notes-permanentes sur une note littéraire existante\n- J'ai au moins 3 notes permanentes avec des liens entre elles\n- J'ai exploré le graph Obsidian pour voir les connexions",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/535b436c-af29-492f-adba-03061583e2d2?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 1,
          "provider": "Bunny Stream",
          "title": "La prise de notes orientée concepts",
          "title_source": "iframe-title",
          "video_id": "535b436c-af29-492f-adba-03061583e2d2",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/535b436c-af29-492f-adba-03061583e2d2?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/73fa4742-fa58-4302-b27a-2d5a78e9936b?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 2,
          "provider": "Bunny Stream",
          "title": "Les notes permanentes",
          "title_source": "iframe-title",
          "video_id": "73fa4742-fa58-4302-b27a-2d5a78e9936b",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/73fa4742-fa58-4302-b27a-2d5a78e9936b?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/b9212635-f1c5-4ecc-9f2b-1a593346278f?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 3,
          "provider": "Bunny Stream",
          "title": "Faire de bons liens",
          "title_source": "iframe-title",
          "video_id": "b9212635-f1c5-4ecc-9f2b-1a593346278f",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/b9212635-f1c5-4ecc-9f2b-1a593346278f?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": "Atomic Knowledge",
          "embed_url": "https://iframe.mediadelivery.net/embed/315658/bd86ebb8-b347-4c56-98ec-9021a976642b?autoplay=false&loop=false&muted=false&preload=true&responsive=true",
          "placement_index": 4,
          "provider": "Bunny Stream",
          "title": "Comment faire émerger de nouvelles idées",
          "title_source": "iframe-title",
          "video_id": "bd86ebb8-b347-4c56-98ec-9021a976642b",
          "watch_url": "https://iframe.mediadelivery.net/embed/315658/bd86ebb8-b347-4c56-98ec-9021a976642b?autoplay=false&loop=false&muted=false&preload=true&responsive=true"
        },
        {
          "duration": null,
          "embed_url": "https://www.youtube-nocookie.com/embed/XphRDltcYSA",
          "placement_index": 5,
          "provider": "YouTube",
          "title": "L'ontologie d'Ulysse pour créer du contenu",
          "title_source": "iframe-title",
          "video_id": "XphRDltcYSA",
          "watch_url": "https://www.youtube.com/watch?v=XphRDltcYSA"
        }
      ],
      "captured_at": "2026-08-03T10:05:36.579Z",
      "counts": {
        "code_blocks": 25,
        "headings": 26,
        "iframes": 5,
        "images": 0,
        "links": 0,
        "text_chars": 15760
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "23-semaine-1-installer-outils-ia",
      "order": 23,
      "kind": "section",
      "section": "07-outils-ia",
      "title": "Installer ses outils IA",
      "slug": "semaine-1-installer-outils-ia",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-installer-outils-ia",
      "summary": "Comprendre les MCPs et connecter les outils essentiels : Firecrawl (web), Browser MCP (navigation), Nano Banana (images), Fathom (réunions), QMD (recherche vault).",
      "objective": "Avoir au moins Firecrawl et le Browser MCP configurés dans OpenCode, et comprendre comment ajouter d'autres outils.",
      "expected_output": "opencode.json avec MCPs configurés, outils testés et fonctionnels.",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"installer-ses-outils-ia\">Installer ses outils IA</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Installer tes outils IA via MCP</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/309e74f6a47f470cb36af5f493d49e55\" title=\"Installer tes outils IA via MCP\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Walkthrough : MCP, /connect-mcp, et les outils à activer en priorité.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton vault est en place, OpenCode est connecté. Maintenant on va donner des <strong class=\"font-semibold text-foreground\">super-pouvoirs</strong> à ton IA en lui connectant des outils externes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cest-quoi-un-mcp\">C'est quoi un MCP ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un <strong class=\"font-semibold text-foreground\">MCP</strong> (Model Context Protocol) est un <strong class=\"font-semibold text-foreground\">standard ouvert créé par Anthropic</strong> qui permet à n'importe quelle IA de se connecter à n'importe quel outil. Pense à ça comme un <strong class=\"font-semibold text-foreground\">port USB universel pour les IA</strong> : un service expose ses capacités (scraper le web, générer une image, requêter une base de données), et ton IA peut s'y brancher sans code custom.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sans MCP, l'IA n'a accès qu'à son entraînement et à tes fichiers locaux. Avec MCP, elle peut <strong class=\"font-semibold text-foreground\">agir sur le monde</strong> : envoyer un email, créer une issue GitHub, transcrire une réunion, fouiller toutes tes notes. Elle choisit toute seule quel outil utiliser selon ta demande.</p>\n\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-lg\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-4 text-center mb-3\"><div class=\"text-lg font-bold text-blue-700\">OpenCode</div><div class=\"text-sm text-blue-500 mt-1\">Ton interface IA</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-6 py-3 text-center mb-3\"><div class=\"text-sm font-semibold text-zinc-600\">MCP (Model Context Protocol)</div><div class=\"text-xs text-zinc-400 mt-1\">Le pont entre l'IA et les outils</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"grid grid-cols-2 sm:grid-cols-3 gap-2\"><div class=\"rounded-lg border border-emerald-200 bg-emerald-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-emerald-700\">Firecrawl</div><div class=\"text-[10px] text-emerald-500\">Web</div></div><div class=\"rounded-lg border border-amber-200 bg-amber-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-amber-700\">Playwright</div><div class=\"text-[10px] text-amber-500\">Navigation</div></div><div class=\"rounded-lg border border-purple-200 bg-purple-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-purple-700\">fal.ai</div><div class=\"text-[10px] text-purple-500\">Images + vidéos</div></div><div class=\"rounded-lg border border-rose-200 bg-rose-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-rose-700\">Fathom</div><div class=\"text-[10px] text-rose-500\">Réunions</div></div><div class=\"rounded-lg border border-sky-200 bg-sky-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-sky-700\">QMD</div><div class=\"text-[10px] text-sky-500\">Recherche vault</div></div><div class=\"rounded-lg border border-zinc-200 bg-zinc-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-zinc-700\">+ d'autres</div><div class=\"text-[10px] text-zinc-500\">n8n, NocoDB...</div></div></div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-3-types-de-mcp\">Les 3 types de MCP</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un MCP, ça peut tourner à 3 endroits différents. C'est utile à comprendre parce que ça change comment tu l'installes et où vont tes données.</p>\n<div class=\"my-6 grid grid-cols-1 md:grid-cols-3 gap-4\"><div class=\"rounded-2xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Le plus courant</div><div class=\"text-base font-bold text-emerald-900 mb-2\">1. MCP Local (stdio)</div><p class=\"text-sm text-emerald-900/80 mb-2\">Un petit programme qui tourne sur <strong>ton ordinateur</strong>. Ton IA le lance via une commande (typiquement <code class=\"text-xs\">npx</code>) et lui parle directement. Le standard historique, encore largement majoritaire.</p><div class=\"text-xs text-emerald-700/80\"><strong>Exemples :</strong> Firecrawl, Playwright MCP, MCP filesystem.<br><strong>Avantage :</strong> rapide, privé (rien ne sort).<br><strong>Limite :</strong> il faut Node.js installé.</div></div><div class=\"rounded-2xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Le nouveau standard</div><div class=\"text-base font-bold text-blue-900 mb-2\">2. MCP Remote (HTTP Streamable)</div><p class=\"text-sm text-blue-900/80 mb-2\">Un MCP <strong>hébergé sur internet</strong> par le service lui-même. Ton IA s'y connecte via une URL (souvent avec OAuth ou un token). Pas d'install locale, pas de Node.js. C'est le nouveau standard officiel depuis fin 2025.</p><div class=\"text-xs text-blue-700/80\"><strong>Exemples :</strong> GitHub MCP, Linear MCP, Notion MCP, Stripe MCP.<br><strong>Avantage :</strong> zéro install, toujours à jour.<br><strong>Limite :</strong> nécessite internet.</div></div><div class=\"rounded-2xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-zinc-500 mb-1\">Ancien standard (déprécié)</div><div class=\"text-base font-bold text-zinc-900 mb-2\">3. MCP Remote (SSE)</div><p class=\"text-sm text-zinc-700 mb-2\">Une version plus ancienne du remote, basée sur Server-Sent Events. <strong>Remplacée par HTTP Streamable</strong>, mais encore présente sur certains services qui n'ont pas migré. Si tu vois <code class=\"text-xs\">/sse</code> dans une URL MCP, c'est ça.</p><div class=\"text-xs text-zinc-600\"><strong>À savoir :</strong> ça marche encore, mais préfère HTTP Streamable quand le service propose les deux. Le SSE va disparaître progressivement.</div></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas besoin de retenir les détails techniques. Retiens juste : <strong class=\"font-semibold text-foreground\">local</strong> (le plus fréquent, install via Node) vs <strong class=\"font-semibold text-foreground\">remote</strong> (URL, zéro install, ce qui se généralise).</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"comment-installer-un-mcp\">Comment installer un MCP</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On t'a préparé un skill qui fait tout le boulot.</p>\n<div class=\"my-6 rounded-2xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Skill fourni dans ton vault</div><div class=\"text-lg font-bold text-violet-900 mb-2\"><code>/connect-mcp</code></div><p class=\"text-sm text-violet-900/80 mb-3\">Dans OpenCode (ou Claude Code), tape simplement la commande. Le skill se charge de :</p><ul class=\"space-y-1 text-sm text-violet-900/80 list-disc list-inside mb-3\"><li>Identifier le bon package npm ou la bonne URL remote</li><li>Détecter quels outils tu as installés (OpenCode, Claude Code, Claude Desktop)</li><li>Te demander les variables d'env nécessaires (clé API, token...)</li><li>Patcher les fichiers de config sans rien casser de ce qui existe déjà</li><li>Vérifier que tout est en place</li></ul><div class=\"text-xs text-violet-700/90\"><strong>Usage type :</strong></div><pre class=\"mt-1 text-xs bg-violet-100/60 border border-violet-200 rounded p-2 overflow-x-auto\"><code>/connect-mcp firecrawl\n/connect-mcp le MCP GitHub officiel\n/connect-mcp playwright pour l'automatisation web</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux comprendre ce qui se passe sous le capot (format du <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code>, différences entre OpenCode et Claude Code, etc.), le skill est lisible : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Second Cerveau/4 TOOLS/skills/connect-mcp/SKILL.md</code>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-outils-quon-te-recommande\">Les outils qu'on te recommande</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant que tu sais ce qu'est un MCP et comment l'installer, le mieux est de <strong class=\"font-semibold text-foreground\">parcourir un à un les articles ci-dessous</strong>. On y détaille pour chaque outil : à quoi il sert concrètement, pourquoi on l'a sélectionné parmi les alternatives, et la procédure d'installation pas à pas avec les bons réglages.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'es pas obligé de tous les installer tout de suite — mais lis-les tous pour avoir une vue d'ensemble de la trousse à outils. Tu sauras quoi activer le jour où tu en as besoin.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"firecrawl-accès-au-web\">Firecrawl : Accès au web</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça fait :</strong> Ton IA peut lire n'importe quelle page web, faire des recherches, extraire du contenu.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Gratuit (500 pages). Largement suffisant pour commencer.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Voir le complément <strong class=\"font-semibold text-foreground\">Configurer Firecrawl</strong></p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"playwright-mcp-contrôle-du-navigateur\">Playwright MCP : Contrôle du navigateur</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça fait :</strong> Ton IA peut naviguer sur le web comme un humain, cliquer, remplir des formulaires, prendre des screenshots. Standard officiel Microsoft, le plus utilisé en 2026.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Gratuit (open-source <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@playwright/mcp</code>, tourne en local).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Voir le complément <strong class=\"font-semibold text-foreground\">Configurer Playwright MCP (contrôle navigateur)</strong></p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"falai-génération-dimages-et-de-vidéos\">fal.ai : Génération d'images et de vidéos</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça fait :</strong> Donne à ton IA accès à tous les modèles SOTA de génération images (Nano Banana, Seedream, FLUX, Ideogram, Recraft, Qwen Image) et vidéos (Veo 3, Kling 2.5, Wan 2.5, Hailuo) via un seul MCP officiel. L'IA pioche le bon modèle selon ta demande.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Pay-as-you-go, des fractions de centime par image, de quelques centimes à quelques euros par vidéo. Pas d'abonnement.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Voir le complément <strong class=\"font-semibold text-foreground\">Générer des images et des vidéos avec ton IA (fal.ai)</strong></p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"fathom-granola-transcription-de-réunions\">Fathom + Granola : Transcription de réunions</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça fait :</strong> Enregistre et transcrit automatiquement tes réunions. Génère des résumés et action items. Deux outils complémentaires : <strong class=\"font-semibold text-foreground\">Fathom</strong> (un bot qui rejoint Zoom, Meet, Teams, multi-plateforme) ou <strong class=\"font-semibold text-foreground\">Granola</strong> (sans bot, capte l'audio directement sur ton Mac, marche aussi en présentiel).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Plans gratuits pour les deux. Fathom : enregistrements illimités, 5 résumés IA/mois. Granola : 25 réunions/mois sur le plan gratuit.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Voir le complément <strong class=\"font-semibold text-foreground\">Configurer Fathom + Granola</strong></p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"qmd-recherche-sémantique-dans-ton-vault-optionnel\">QMD : Recherche sémantique dans ton vault (optionnel)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que ça fait :</strong> Ton IA peut fouiller dans <strong class=\"font-semibold text-foreground\">toutes</strong> tes notes d'un coup et trouver les passages pertinents, même s'ils n'utilisent pas les mêmes mots.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Gratuit et open-source. Tourne sur Mac M1+, Linux, ou Windows via WSL2.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">→ Voir le complément <strong class=\"font-semibold text-foreground\">Vectoriser ton coffre avec QMD</strong></p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"par-où-commencer\">Par où commencer</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ordre recommandé :</strong></p>\n<div class=\"my-8 flex flex-col gap-2 max-w-md mx-auto\"><div class=\"flex items-center gap-3\"><div class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-emerald-500 text-xs font-bold text-white\">1</div><div class=\"flex-1 rounded-lg border border-emerald-200 bg-emerald-50 px-4 py-2\"><span class=\"font-semibold text-emerald-700\">Firecrawl</span><span class=\"text-xs text-emerald-500 ml-2\">5 min · essentiel</span></div></div><div class=\"flex items-center gap-3\"><div class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-amber-500 text-xs font-bold text-white\">2</div><div class=\"flex-1 rounded-lg border border-amber-200 bg-amber-50 px-4 py-2\"><span class=\"font-semibold text-amber-700\">Playwright MCP</span><span class=\"text-xs text-amber-500 ml-2\">5 min · essentiel</span></div></div><div class=\"flex items-center gap-3\"><div class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-rose-400 text-xs font-bold text-white\">3</div><div class=\"flex-1 rounded-lg border border-rose-200 bg-rose-50 px-4 py-2\"><span class=\"font-semibold text-rose-700\">Fathom</span><span class=\"text-xs text-rose-400 ml-2\">si réunions régulières</span></div></div><div class=\"flex items-center gap-3\"><div class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-purple-400 text-xs font-bold text-white\">4</div><div class=\"flex-1 rounded-lg border border-purple-200 bg-purple-50 px-4 py-2\"><span class=\"font-semibold text-purple-700\">fal.ai</span><span class=\"text-xs text-purple-400 ml-2\">si contenu visuel (images + vidéos)</span></div></div><div class=\"flex items-center gap-3\"><div class=\"flex h-7 w-7 shrink-0 items-center justify-center rounded-full bg-sky-400 text-xs font-bold text-white\">5</div><div class=\"flex-1 rounded-lg border border-sky-200 bg-sky-50 px-4 py-2\"><span class=\"font-semibold text-sky-700\">QMD</span><span class=\"text-xs text-sky-400 ml-2\">quand vault &gt; 100 notes</span></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'es pas obligé de tout installer maintenant. Commence par Firecrawl et Playwright MCP. Ajoute les autres au fil du bootcamp.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends ce qu'est un MCP et la différence entre local (stdio) et remote (HTTP / SSE) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends ce qu'est un MCP et la différence entre local (stdio) et remote (HTTP / SSE)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que `/connect-mcp` fait l'installation pour moi sur OpenCode, Claude Code et Claude Desktop — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que `/connect-mcp` fait l'installation pour moi sur OpenCode, Claude Code et Claude Desktop</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai parcouru les articles complémentaires de chaque outil — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai parcouru les articles complémentaires de chaque outil</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé au moins Firecrawl et Playwright MCP — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé au moins Firecrawl et Playwright MCP</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai noté les outils que j'activerai plus tard selon mes besoins — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai noté les outils que j'activerai plus tard selon mes besoins</span></li></ul>",
      "content_markdown": "## Installer ses outils IA\n\nInstaller tes outils IA via MCP\n\nWalkthrough : MCP, /connect-mcp, et les outils à activer en priorité.\n\nTon vault est en place, OpenCode est connecté. Maintenant on va donner des **super-pouvoirs** à ton IA en lui connectant des outils externes.\n\n---\n\n## C'est quoi un MCP ?\n\nUn **MCP** (Model Context Protocol) est un **standard ouvert créé par Anthropic** qui permet à n'importe quelle IA de se connecter à n'importe quel outil. Pense à ça comme un **port USB universel pour les IA** : un service expose ses capacités (scraper le web, générer une image, requêter une base de données), et ton IA peut s'y brancher sans code custom.\n\nSans MCP, l'IA n'a accès qu'à son entraînement et à tes fichiers locaux. Avec MCP, elle peut **agir sur le monde** : envoyer un email, créer une issue GitHub, transcrire une réunion, fouiller toutes tes notes. Elle choisit toute seule quel outil utiliser selon ta demande.\n\nOpenCode\n\nTon interface IA\n\nMCP (Model Context Protocol)\n\nLe pont entre l'IA et les outils\n\nFirecrawl\n\nWeb\n\nPlaywright\n\nNavigation\n\nfal.ai\n\nImages + vidéos\n\nFathom\n\nRéunions\n\nQMD\n\nRecherche vault\n\n+ d'autres\n\nn8n, NocoDB...\n\n---\n\n## Les 3 types de MCP\n\nUn MCP, ça peut tourner à 3 endroits différents. C'est utile à comprendre parce que ça change comment tu l'installes et où vont tes données.\n\nLe plus courant\n\n1. MCP Local (stdio)\n\nUn petit programme qui tourne sur **ton ordinateur**. Ton IA le lance via une commande (typiquement `npx`) et lui parle directement. Le standard historique, encore largement majoritaire.\n\n**Exemples :** Firecrawl, Playwright MCP, MCP filesystem.\n**Avantage :** rapide, privé (rien ne sort).\n**Limite :** il faut Node.js installé.\n\nLe nouveau standard\n\n2. MCP Remote (HTTP Streamable)\n\nUn MCP **hébergé sur internet** par le service lui-même. Ton IA s'y connecte via une URL (souvent avec OAuth ou un token). Pas d'install locale, pas de Node.js. C'est le nouveau standard officiel depuis fin 2025.\n\n**Exemples :** GitHub MCP, Linear MCP, Notion MCP, Stripe MCP.\n**Avantage :** zéro install, toujours à jour.\n**Limite :** nécessite internet.\n\nAncien standard (déprécié)\n\n3. MCP Remote (SSE)\n\nUne version plus ancienne du remote, basée sur Server-Sent Events. **Remplacée par HTTP Streamable**, mais encore présente sur certains services qui n'ont pas migré. Si tu vois `/sse` dans une URL MCP, c'est ça.\n\n**À savoir :** ça marche encore, mais préfère HTTP Streamable quand le service propose les deux. Le SSE va disparaître progressivement.\n\n> Tu n'as pas besoin de retenir les détails techniques. Retiens juste : local (le plus fréquent, install via Node) vs remote (URL, zéro install, ce qui se généralise).\n\n---\n\n## Comment installer un MCP\n\nOn t'a préparé un skill qui fait tout le boulot.\n\nSkill fourni dans ton vault\n\n`/connect-mcp`\n\nDans OpenCode (ou Claude Code), tape simplement la commande. Le skill se charge de :\n\n- Identifier le bon package npm ou la bonne URL remote\n- Détecter quels outils tu as installés (OpenCode, Claude Code, Claude Desktop)\n- Te demander les variables d'env nécessaires (clé API, token...)\n- Patcher les fichiers de config sans rien casser de ce qui existe déjà\n- Vérifier que tout est en place\n\n**Usage type :**\n\n```\n/connect-mcp firecrawl\n/connect-mcp le MCP GitHub officiel\n/connect-mcp playwright pour l'automatisation web\n```\n\nSi tu veux comprendre ce qui se passe sous le capot (format du `opencode.json`, différences entre OpenCode et Claude Code, etc.), le skill est lisible : `Second Cerveau/4 TOOLS/skills/connect-mcp/SKILL.md`.\n\n---\n\n## Les outils qu'on te recommande\n\nMaintenant que tu sais ce qu'est un MCP et comment l'installer, le mieux est de **parcourir un à un les articles ci-dessous**. On y détaille pour chaque outil : à quoi il sert concrètement, pourquoi on l'a sélectionné parmi les alternatives, et la procédure d'installation pas à pas avec les bons réglages.\n\nTu n'es pas obligé de tous les installer tout de suite — mais lis-les tous pour avoir une vue d'ensemble de la trousse à outils. Tu sauras quoi activer le jour où tu en as besoin.\n\n### Firecrawl : Accès au web\n\n**Ce que ça fait :** Ton IA peut lire n'importe quelle page web, faire des recherches, extraire du contenu.\n\n**Coût :** Gratuit (500 pages). Largement suffisant pour commencer.\n\n→ Voir le complément **Configurer Firecrawl**\n\n---\n\n### Playwright MCP : Contrôle du navigateur\n\n**Ce que ça fait :** Ton IA peut naviguer sur le web comme un humain, cliquer, remplir des formulaires, prendre des screenshots. Standard officiel Microsoft, le plus utilisé en 2026.\n\n**Coût :** Gratuit (open-source `@playwright/mcp`, tourne en local).\n\n→ Voir le complément **Configurer Playwright MCP (contrôle navigateur)**\n\n---\n\n### fal.ai : Génération d'images et de vidéos\n\n**Ce que ça fait :** Donne à ton IA accès à tous les modèles SOTA de génération images (Nano Banana, Seedream, FLUX, Ideogram, Recraft, Qwen Image) et vidéos (Veo 3, Kling 2.5, Wan 2.5, Hailuo) via un seul MCP officiel. L'IA pioche le bon modèle selon ta demande.\n\n**Coût :** Pay-as-you-go, des fractions de centime par image, de quelques centimes à quelques euros par vidéo. Pas d'abonnement.\n\n→ Voir le complément **Générer des images et des vidéos avec ton IA (fal.ai)**\n\n---\n\n### Fathom + Granola : Transcription de réunions\n\n**Ce que ça fait :** Enregistre et transcrit automatiquement tes réunions. Génère des résumés et action items. Deux outils complémentaires : **Fathom** (un bot qui rejoint Zoom, Meet, Teams, multi-plateforme) ou **Granola** (sans bot, capte l'audio directement sur ton Mac, marche aussi en présentiel).\n\n**Coût :** Plans gratuits pour les deux. Fathom : enregistrements illimités, 5 résumés IA/mois. Granola : 25 réunions/mois sur le plan gratuit.\n\n→ Voir le complément **Configurer Fathom + Granola**\n\n---\n\n### QMD : Recherche sémantique dans ton vault (optionnel)\n\n**Ce que ça fait :** Ton IA peut fouiller dans **toutes** tes notes d'un coup et trouver les passages pertinents, même s'ils n'utilisent pas les mêmes mots.\n\n**Coût :** Gratuit et open-source. Tourne sur Mac M1+, Linux, ou Windows via WSL2.\n\n→ Voir le complément **Vectoriser ton coffre avec QMD**\n\n---\n\n## Par où commencer\n\n**Ordre recommandé :**\n\n1\n\nFirecrawl5 min · essentiel\n\n2\n\nPlaywright MCP5 min · essentiel\n\n3\n\nFathomsi réunions régulières\n\n4\n\nfal.aisi contenu visuel (images + vidéos)\n\n5\n\nQMDquand vault > 100 notes\n\nTu n'es pas obligé de tout installer maintenant. Commence par Firecrawl et Playwright MCP. Ajoute les autres au fil du bootcamp.\n\n---\n\n- Je comprends ce qu'est un MCP et la différence entre local (stdio) et remote (HTTP / SSE)\n- Je sais que `/connect-mcp` fait l'installation pour moi sur OpenCode, Claude Code et Claude Desktop\n- J'ai parcouru les articles complémentaires de chaque outil\n- J'ai installé au moins Firecrawl et Playwright MCP\n- J'ai noté les outils que j'activerai plus tard selon mes besoins",
      "assets": [],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/309e74f6a47f470cb36af5f493d49e55",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Installer tes outils IA via MCP",
          "title_source": "iframe-title",
          "video_id": "309e74f6a47f470cb36af5f493d49e55",
          "watch_url": "https://www.loom.com/share/309e74f6a47f470cb36af5f493d49e55"
        }
      ],
      "captured_at": "2026-08-03T10:05:38.173Z",
      "counts": {
        "code_blocks": 8,
        "headings": 11,
        "iframes": 1,
        "images": 0,
        "links": 0,
        "text_chars": 6535
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "24-semaine-1-firecrawl",
      "order": 24,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Configurer Firecrawl",
      "slug": "semaine-1-firecrawl",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-firecrawl",
      "summary": "Donner à l'IA la capacité de scraper et rechercher sur le web via le MCP Firecrawl.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"configurer-firecrawl\">Configurer Firecrawl</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Firecrawl donne à ton IA la capacité de <strong class=\"font-semibold text-foreground\">lire le web</strong>. Sans lui, ton IA est aveugle à tout ce qui se passe en ligne. Avec lui, elle peut scraper des pages, faire des recherches, extraire du contenu automatiquement.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-créer-un-compte-et-obtenir-ta-clé-api\">Étape 1 : Créer un compte et obtenir ta clé API</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><img alt=\"Page d'accueil de Firecrawl, l'API web pour l'IA\" class=\"rounded-lg my-4 max-w-full\" src=\"assets/01-page-d-accueil-de-firecrawl-l-api-web-pour-l-ia.png\"></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://firecrawl.link/eliott-meunier\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">firecrawl.link/eliott-meunier</a> (mon lien : <strong class=\"font-semibold text-foreground\">-10%</strong> sur ton abonnement)</li>\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Get Started</strong></li>\n<li class=\"leading-7\">Crée un compte</li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">API Keys</strong> et génère une clé</li>\n<li class=\"leading-7\">Copie la clé (format : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">fc-xxxxx</code>)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Le plan gratuit (500 pages) suffit largement pour commencer. Si tu passes en payant plus tard, le lien ci-dessus te garde le <strong class=\"font-semibold text-foreground\">-10%</strong>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-installer-le-mcp-avec-connect-mcp\">Étape 2 : Installer le MCP avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code></h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est ton <strong class=\"font-semibold text-foreground\">premier MCP</strong>, et on utilise pour lui la même méthode que pour tous les autres du bootcamp (Playwright, Beeper, Microsoft 365...) : le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> fourni dans ton vault.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode (ou Claude Code), lance simplement :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/connect-mcp firecrawl\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le skill te demande ta clé API (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">fc-xxxxx</code>), détecte tes outils installés (OpenCode, Claude Code, Claude Desktop), patche la config tout seul et vérifie que tout est en place. Tu n'as rien à éditer à la main.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Si <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> n'est pas dispo chez toi</strong>, demande-le directement à OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais que tu installes le MCP Firecrawl pour pouvoir scraper et\nrechercher sur le web. Voici ma clé API : fc-xxxxx\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Il configure le MCP et patche sa propre config, tu n'as rien à faire manuellement.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-utiliser\">Étape 3 : Utiliser</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Maintenant tu peux demander directement à ton IA :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Scrape la page https://exemple.com et résume le contenu\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Recherche sur le web les dernières tendances en IA et fais-moi une synthèse\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Extrais toute la documentation de ce site et crée des notes dans mon vault\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA choisira automatiquement d'utiliser Firecrawl quand ta demande concerne le web.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"les-3-modes-de-firecrawl\">Les 3 modes de Firecrawl</h2>\n<div class=\"my-8 flex flex-col gap-3 max-w-lg mx-auto\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 px-5 py-4\"><div class=\"font-bold text-emerald-700\">Scrape</div><div class=\"text-sm text-emerald-600 mt-1\">Extraire le contenu d'une page précise. Le plus courant.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-4\"><div class=\"font-bold text-blue-700\">Search</div><div class=\"text-sm text-blue-600 mt-1\">Rechercher sur le web et obtenir les résultats pertinents.</div></div><div class=\"rounded-xl border-2 border-purple-200 bg-purple-50 px-5 py-4\"><div class=\"font-bold text-purple-700\">Crawl</div><div class=\"text-sm text-purple-600 mt-1\">Parcourir un site entier et extraire toutes les pages.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-concrets\">Cas d'usage concrets</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"veille-automatisée\">Veille automatisée</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Recherche les 5 derniers articles sur [mon domaine].\nRésume chaque article en 3 bullet points.\nCrée une note de veille dans mon vault.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"extraire-une-documentation\">Extraire une documentation</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Crawle la documentation de [outil] sur https://docs.exemple.com\nCrée des notes atomiques pour chaque concept important.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"analyser-un-concurrent\">Analyser un concurrent</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Scrape la page pricing de [concurrent].\nCompare avec notre offre.\nListe les différences clés.\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé mon compte Firecrawl — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé mon compte Firecrawl</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai obtenu ma clé API — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai obtenu ma clé API</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé le MCP via `/connect-mcp firecrawl` (ou demandé à OpenCode) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé le MCP via `/connect-mcp firecrawl` (ou demandé à OpenCode)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé une recherche web dans OpenCode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé une recherche web dans OpenCode</span></li></ul>",
      "content_markdown": "## Configurer Firecrawl\n\nFirecrawl donne à ton IA la capacité de **lire le web**. Sans lui, ton IA est aveugle à tout ce qui se passe en ligne. Avec lui, elle peut scraper des pages, faire des recherches, extraire du contenu automatiquement.\n\n---\n\n## Étape 1 : Créer un compte et obtenir ta clé API\n\n![Page d'accueil de Firecrawl, l'API web pour l'IA](/images/ia-mars-2026/firecrawl-homepage.png)\n\n1. Va sur [firecrawl.link/eliott-meunier](https://firecrawl.link/eliott-meunier) (mon lien : **-10%** sur ton abonnement)\n2. Clique sur **Get Started**\n3. Crée un compte\n4. Va dans **API Keys** et génère une clé\n5. Copie la clé (format : `fc-xxxxx`)\n\n**Coût :** Le plan gratuit (500 pages) suffit largement pour commencer. Si tu passes en payant plus tard, le lien ci-dessus te garde le **-10%**.\n\n---\n\n## Étape 2 : Installer le MCP avec `/connect-mcp`\n\nC'est ton **premier MCP**, et on utilise pour lui la même méthode que pour tous les autres du bootcamp (Playwright, Beeper, Microsoft 365...) : le skill `/connect-mcp` fourni dans ton vault.\n\nDans OpenCode (ou Claude Code), lance simplement :\n\n```\n/connect-mcp firecrawl\n```\n\nLe skill te demande ta clé API (`fc-xxxxx`), détecte tes outils installés (OpenCode, Claude Code, Claude Desktop), patche la config tout seul et vérifie que tout est en place. Tu n'as rien à éditer à la main.\n\n> Si /connect-mcp n'est pas dispo chez toi, demande-le directement à OpenCode :\n> \n> J'aimerais que tu installes le MCP Firecrawl pour pouvoir scraper et\n> rechercher sur le web. Voici ma clé API : fc-xxxxx\n> \n> Copier\n> \n> Il configure le MCP et patche sa propre config, tu n'as rien à faire manuellement.\n\n---\n\n## Étape 3 : Utiliser\n\nMaintenant tu peux demander directement à ton IA :\n\n```\nScrape la page https://exemple.com et résume le contenu\n```\n\n```\nRecherche sur le web les dernières tendances en IA et fais-moi une synthèse\n```\n\n```\nExtrais toute la documentation de ce site et crée des notes dans mon vault\n```\n\nL'IA choisira automatiquement d'utiliser Firecrawl quand ta demande concerne le web.\n\n---\n\n## Les 3 modes de Firecrawl\n\nScrape\n\nExtraire le contenu d'une page précise. Le plus courant.\n\nSearch\n\nRechercher sur le web et obtenir les résultats pertinents.\n\nCrawl\n\nParcourir un site entier et extraire toutes les pages.\n\n---\n\n## Cas d'usage concrets\n\n### Veille automatisée\n\n```\nRecherche les 5 derniers articles sur [mon domaine].\nRésume chaque article en 3 bullet points.\nCrée une note de veille dans mon vault.\n```\n\n### Extraire une documentation\n\n```\nCrawle la documentation de [outil] sur https://docs.exemple.com\nCrée des notes atomiques pour chaque concept important.\n```\n\n### Analyser un concurrent\n\n```\nScrape la page pricing de [concurrent].\nCompare avec notre offre.\nListe les différences clés.\n```\n\n---\n\n- J'ai créé mon compte Firecrawl\n- J'ai obtenu ma clé API\n- J'ai installé le MCP via `/connect-mcp firecrawl` (ou demandé à OpenCode)\n- J'ai testé une recherche web dans OpenCode",
      "assets": [
        {
          "alt": "Page d'accueil de Firecrawl, l'API web pour l'IA",
          "original_url": "https://prisme.one/images/ia-mars-2026/firecrawl-homepage.png",
          "path": "assets/01-page-d-accueil-de-firecrawl-l-api-web-pour-l-ia.png",
          "bytes": 80554,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "firecrawl.link/eliott-meunier",
          "url": "https://firecrawl.link/eliott-meunier"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:05:40.155Z",
      "counts": {
        "code_blocks": 21,
        "headings": 9,
        "iframes": 0,
        "images": 1,
        "links": 1,
        "text_chars": 2635
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "25-semaine-1-browser-mcp",
      "order": 25,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Configurer Playwright MCP (contrôle navigateur)",
      "slug": "semaine-1-browser-mcp",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-browser-mcp",
      "summary": "Donner à l'IA un vrai navigateur via Playwright MCP (le standard officiel Microsoft 2026) : naviguer, cliquer, remplir des formulaires, faire des screenshots — sur les pages avec login ou les apps JS-heavy.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"configurer-playwright-mcp-contrôle-du-navigateur\">Configurer Playwright MCP (contrôle du navigateur)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Playwright MCP donne à ton IA un <strong class=\"font-semibold text-foreground\">vrai navigateur web</strong>. Contrairement à Firecrawl qui lit le HTML d'une page, Playwright peut naviguer, cliquer, remplir des formulaires, se connecter avec ton login, prendre des screenshots — exactement comme toi devant ton écran.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le <strong class=\"font-semibold text-foreground\">standard de fait</strong> pour le contrôle navigateur via MCP en 2026 : maintenu par Microsoft (qui maintient aussi Playwright depuis des années), local, sécurisé, et il « voit » les pages via l'arbre d'accessibilité plutôt que via screenshots — ce qui est beaucoup plus économe en tokens (3 à 4x moins cher qu'une approche screenshot-only).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pourquoi-en-plus-de-firecrawl\">Pourquoi en plus de Firecrawl ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Firecrawl est excellent pour <strong class=\"font-semibold text-foreground\">lire</strong> des pages publiques. Mais certains usages nécessitent un vrai navigateur :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Pages avec login</strong> — Firecrawl ne peut pas se connecter à ton compte</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Applications web dynamiques</strong> — Certaines apps chargent tout en JavaScript après login</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Workflows multi-étapes</strong> — Cliquer, remplir, valider, télécharger</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Screenshots</strong> — Capturer visuellement une page (utile pour de la veille concurrentielle)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tester un site qu'on est en train de développer</strong> — Naviguer dedans, signaler des bugs</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">En pratique :</strong> installe les deux. L'IA choisit automatiquement le bon outil selon ta demande.</p>\n<div class=\"my-8 flex flex-col sm:flex-row gap-4 items-stretch max-w-2xl mx-auto\"><div class=\"flex-1 rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-lg font-bold text-emerald-700 mb-2\">Firecrawl</div><div class=\"text-sm text-emerald-600 space-y-1\"><div>✓ Lire le contenu d'une page</div><div>✓ Rechercher sur le web</div><div>✓ Extraire des données structurées</div><div>✓ Crawler un site entier</div></div><div class=\"mt-3 text-xs text-emerald-500 italic\">Rapide, orienté lecture/extraction</div></div><div class=\"flex-1 rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-lg font-bold text-amber-700 mb-2\">Playwright MCP</div><div class=\"text-sm text-amber-600 space-y-1\"><div>✓ Naviguer comme un humain</div><div>✓ Se connecter avec login</div><div>✓ Cliquer, remplir des formulaires</div><div>✓ Screenshots + accessibility tree</div></div><div class=\"mt-3 text-xs text-amber-500 italic\">Interactif, orienté actions</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"installation-via-connect-mcp\">Installation via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code></h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plus simple : utiliser le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> fourni dans ton vault. Lance-le dans OpenCode (ou Claude Code) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/connect-mcp playwright\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le skill détecte tes outils installés (OpenCode, Claude Code, Claude Desktop), patche le bon fichier de config (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.claude.json</code>), et configure Playwright MCP via npx (rien à installer manuellement).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le package officiel utilisé est <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@playwright/mcp</code> (Microsoft).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Gratuit. Open-source, tourne 100 % en local sur ta machine.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Si <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> n'est pas dispo chez toi</strong>, demande à OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Installe le MCP officiel Playwright (@playwright/mcp). Patche mon\nopencode.json (ou ~/.claude.json) pour l'activer. Pas besoin de clé API.\n</code></pre></div>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"tester\">Tester</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Demande à ton IA :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Ouvre le site https://example.com dans le navigateur,\nprends un screenshot, et décris-moi ce que tu vois.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux aussi tester des interactions plus avancées :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Va sur https://news.ycombinator.com, lis les 5 premiers titres,\net résume-les.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur ton tout premier lancement, Playwright va télécharger les binaires du navigateur (~150 Mo) en arrière-plan. C'est normal et ça ne se reproduira plus.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-concrets\">Cas d'usage concrets</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"extraire-des-données-dune-app-avec-login\">Extraire des données d'une app avec login</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Connecte-toi à mon compte [service] avec l'email xxx et le mot de passe xxx\n(que tu peux récupérer via `bw get password \"service\"`).\nVa dans la section \"Rapports\".\nTélécharge le rapport du mois dernier et range-le dans 0 INBOX/.\n</code></pre></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce sécurité :</strong> plutôt que de coller tes credentials, branche le CLI Bitwarden (cf. la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>). L'IA récupère le mot de passe à la volée, sans qu'il transite dans ton prompt.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"documenter-un-process-visuel\">Documenter un process visuel</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Ouvre [url de mon app].\nPrends un screenshot de chaque étape du process d'inscription.\nCrée une note dans mon vault avec les screenshots et un descriptif.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"veille-visuelle-concurrentielle\">Veille visuelle / concurrentielle</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Ouvre la page d'accueil de [concurrent].\nPrends un screenshot et range-le dans 3 RESSOURCES/Veille/.\nCompare avec le dernier screenshot que tu as de ce site.\nDis-moi ce qui a changé.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"tester-un-site-quon-développe\">Tester un site qu'on développe</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Le site que je suis en train de coder tourne sur http://localhost:3000.\nVa dessus, navigue dans le menu principal, signale-moi tout ce qui\nsemble cassé ou bizarre visuellement.\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"alternatives-à-connaître\">Alternatives à connaître</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Playwright MCP couvre 95 % des cas. Si tu as un besoin spécifique :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-3\"><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Browserbase MCP</div><div class=\"text-xs text-zinc-600\">Cloud hosted (pas besoin d'install locale), stealth mode, proxies, session persistante. Payant. Utile si tu veux exécuter du scraping depuis ton serveur sans installer Chromium dessus.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Chrome DevTools MCP</div><div class=\"text-xs text-zinc-600\">Pour debug / performance audits / inspection réseau d'un site existant. Pas du tout pour piloter un navigateur — c'est l'inverse, ça inspecte l'état.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">Stagehand</div><div class=\"text-xs text-zinc-600\">Surcouche au-dessus de Playwright avec des instructions en langage naturel. Intéressant pour des automations longues et stables où tu veux mixer scripting et IA.</div></div><div class=\"rounded-lg border border-zinc-200 bg-white p-4\"><div class=\"text-sm font-bold text-zinc-800 mb-1\">mcp-chrome</div><div class=\"text-xs text-zinc-600\">Se connecte à TON Chrome déjà ouvert (avec tes sessions et cookies). Pratique pour bosser sur des apps SSO/2FA où relogin à chaque session est lourd.</div></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Migré depuis l'ancien Browser MCP ?</strong> L'ancien projet <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">browser-mcp</code> (basé sur Puppeteer) est moins maintenu et plus coûteux en tokens. Bascule sur <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@playwright/mcp</code> — la migration prend 30 secondes via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code>.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sécurité\">Sécurité</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Playwright MCP tourne <strong class=\"font-semibold text-foreground\">en local sur ta machine</strong>. Tes identifiants ne sont pas envoyés à un serveur tiers. Le navigateur se ferme après chaque session. Tu peux le lancer en mode <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">--headless</code> (sans fenêtre visible) ou avec fenêtre pour suivre ce que l'IA fait en temps réel.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour les workflows sensibles, combine avec Bitwarden CLI (cf. <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>) : l'IA pioche les credentials au moment d'exécuter, jamais en clair dans ton prompt.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé Playwright MCP via /connect-mcp (ou demande à OpenCode) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé Playwright MCP via /connect-mcp (ou demande à OpenCode)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé une navigation simple + un screenshot — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé une navigation simple + un screenshot</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends quand utiliser Firecrawl (lecture) vs Playwright (actions) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends quand utiliser Firecrawl (lecture) vs Playwright (actions)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que je peux mixer Bitwarden CLI + Playwright pour les pages avec login — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que je peux mixer Bitwarden CLI + Playwright pour les pages avec login</span></li></ul>",
      "content_markdown": "## Configurer Playwright MCP (contrôle du navigateur)\n\nPlaywright MCP donne à ton IA un **vrai navigateur web**. Contrairement à Firecrawl qui lit le HTML d'une page, Playwright peut naviguer, cliquer, remplir des formulaires, se connecter avec ton login, prendre des screenshots — exactement comme toi devant ton écran.\n\nC'est le **standard de fait** pour le contrôle navigateur via MCP en 2026 : maintenu par Microsoft (qui maintient aussi Playwright depuis des années), local, sécurisé, et il « voit » les pages via l'arbre d'accessibilité plutôt que via screenshots — ce qui est beaucoup plus économe en tokens (3 à 4x moins cher qu'une approche screenshot-only).\n\n---\n\n## Pourquoi en plus de Firecrawl ?\n\nFirecrawl est excellent pour **lire** des pages publiques. Mais certains usages nécessitent un vrai navigateur :\n\n- **Pages avec login** — Firecrawl ne peut pas se connecter à ton compte\n- **Applications web dynamiques** — Certaines apps chargent tout en JavaScript après login\n- **Workflows multi-étapes** — Cliquer, remplir, valider, télécharger\n- **Screenshots** — Capturer visuellement une page (utile pour de la veille concurrentielle)\n- **Tester un site qu'on est en train de développer** — Naviguer dedans, signaler des bugs\n\n**En pratique :** installe les deux. L'IA choisit automatiquement le bon outil selon ta demande.\n\nFirecrawl\n\n✓ Lire le contenu d'une page\n\n✓ Rechercher sur le web\n\n✓ Extraire des données structurées\n\n✓ Crawler un site entier\n\nRapide, orienté lecture/extraction\n\nPlaywright MCP\n\n✓ Naviguer comme un humain\n\n✓ Se connecter avec login\n\n✓ Cliquer, remplir des formulaires\n\n✓ Screenshots + accessibility tree\n\nInteractif, orienté actions\n\n---\n\n## Installation via `/connect-mcp`\n\nLe plus simple : utiliser le skill `/connect-mcp` fourni dans ton vault. Lance-le dans OpenCode (ou Claude Code) :\n\n```\n/connect-mcp playwright\n```\n\nLe skill détecte tes outils installés (OpenCode, Claude Code, Claude Desktop), patche le bon fichier de config (`opencode.json` ou `~/.claude.json`), et configure Playwright MCP via npx (rien à installer manuellement).\n\nLe package officiel utilisé est `@playwright/mcp` (Microsoft).\n\n**Coût :** Gratuit. Open-source, tourne 100 % en local sur ta machine.\n\n> Si /connect-mcp n'est pas dispo chez toi, demande à OpenCode :\n> \n> Installe le MCP officiel Playwright (@playwright/mcp). Patche mon\n> opencode.json (ou ~/.claude.json) pour l'activer. Pas besoin de clé API.\n> \n> Copier\n\n---\n\n## Tester\n\nDemande à ton IA :\n\n```\nOuvre le site https://example.com dans le navigateur,\nprends un screenshot, et décris-moi ce que tu vois.\n```\n\nTu peux aussi tester des interactions plus avancées :\n\n```\nVa sur https://news.ycombinator.com, lis les 5 premiers titres,\net résume-les.\n```\n\nSur ton tout premier lancement, Playwright va télécharger les binaires du navigateur (~150 Mo) en arrière-plan. C'est normal et ça ne se reproduira plus.\n\n---\n\n## Cas d'usage concrets\n\n### Extraire des données d'une app avec login\n\n```\nConnecte-toi à mon compte [service] avec l'email xxx et le mot de passe xxx\n(que tu peux récupérer via `bw get password \"service\"`).\nVa dans la section \"Rapports\".\nTélécharge le rapport du mois dernier et range-le dans 0 INBOX/.\n```\n\n> Astuce sécurité : plutôt que de coller tes credentials, branche le CLI Bitwarden (cf. la leçon Zoom sur la sécurité). L'IA récupère le mot de passe à la volée, sans qu'il transite dans ton prompt.\n\n### Documenter un process visuel\n\n```\nOuvre [url de mon app].\nPrends un screenshot de chaque étape du process d'inscription.\nCrée une note dans mon vault avec les screenshots et un descriptif.\n```\n\n### Veille visuelle / concurrentielle\n\n```\nOuvre la page d'accueil de [concurrent].\nPrends un screenshot et range-le dans 3 RESSOURCES/Veille/.\nCompare avec le dernier screenshot que tu as de ce site.\nDis-moi ce qui a changé.\n```\n\n### Tester un site qu'on développe\n\n```\nLe site que je suis en train de coder tourne sur http://localhost:3000.\nVa dessus, navigue dans le menu principal, signale-moi tout ce qui\nsemble cassé ou bizarre visuellement.\n```\n\n---\n\n## Alternatives à connaître\n\nPlaywright MCP couvre 95 % des cas. Si tu as un besoin spécifique :\n\nBrowserbase MCP\n\nCloud hosted (pas besoin d'install locale), stealth mode, proxies, session persistante. Payant. Utile si tu veux exécuter du scraping depuis ton serveur sans installer Chromium dessus.\n\nChrome DevTools MCP\n\nPour debug / performance audits / inspection réseau d'un site existant. Pas du tout pour piloter un navigateur — c'est l'inverse, ça inspecte l'état.\n\nStagehand\n\nSurcouche au-dessus de Playwright avec des instructions en langage naturel. Intéressant pour des automations longues et stables où tu veux mixer scripting et IA.\n\nmcp-chrome\n\nSe connecte à TON Chrome déjà ouvert (avec tes sessions et cookies). Pratique pour bosser sur des apps SSO/2FA où relogin à chaque session est lourd.\n\n> Migré depuis l'ancien Browser MCP ? L'ancien projet browser-mcp (basé sur Puppeteer) est moins maintenu et plus coûteux en tokens. Bascule sur @playwright/mcp — la migration prend 30 secondes via /connect-mcp.\n\n---\n\n## Sécurité\n\nPlaywright MCP tourne **en local sur ta machine**. Tes identifiants ne sont pas envoyés à un serveur tiers. Le navigateur se ferme après chaque session. Tu peux le lancer en mode `--headless` (sans fenêtre visible) ou avec fenêtre pour suivre ce que l'IA fait en temps réel.\n\nPour les workflows sensibles, combine avec Bitwarden CLI (cf. [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite)) : l'IA pioche les credentials au moment d'exécuter, jamais en clair dans ton prompt.\n\n---\n\n- J'ai installé Playwright MCP via /connect-mcp (ou demande à OpenCode)\n- J'ai testé une navigation simple + un screenshot\n- Je comprends quand utiliser Firecrawl (lecture) vs Playwright (actions)\n- Je sais que je peux mixer Bitwarden CLI + Playwright pour les pages avec login",
      "assets": [],
      "links": [
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:05:54.435Z",
      "counts": {
        "code_blocks": 26,
        "headings": 11,
        "iframes": 0,
        "images": 0,
        "links": 2,
        "text_chars": 5609
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "26-semaine-1-generer-images",
      "order": 26,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Générer des images et des vidéos avec ton IA (fal.ai)",
      "slug": "semaine-1-generer-images",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-generer-images",
      "summary": "Brancher fal.ai comme outil unique de génération d'images ET de vidéos dans OpenCode/Claude Code. Un seul MCP donne accès à tous les modèles SOTA (catalogue toujours à jour sur fal.ai/explore). Vidéo Loom + prompt prêt à coller pour que l'IA installe tout. Création de skills custom par cas d'usage.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"générer-des-images-et-des-vidéos-avec-ton-ia\">Générer des images et des vidéos avec ton IA</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Générer images et vidéos depuis ton système via fal.ai</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/0e5d323d9e3a443ab9087c593ecb46b3\" title=\"Générer images et vidéos depuis ton système via fal.ai\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Setup fal.ai en MCP, comment laisser ton IA piocher le bon modèle, et créer ses propres skills.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu veux que ton IA puisse créer des images <strong class=\"font-semibold text-foreground\">et</strong> des vidéos directement depuis ton coffre — pour illustrer une note, mocker un visuel produit, générer un asset LinkedIn, faire la miniature d'une vidéo YouTube, animer une photo de produit, ou produire un clip teaser. La logique est simple : <strong class=\"font-semibold text-foreground\">on lui donne un outil</strong>. Cet outil, c'est <strong class=\"font-semibold text-foreground\"><a href=\"https://fal.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">fal.ai</a></strong>.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pourquoi fal.ai et pas X autre provider :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Tous les modèles SOTA</strong> en un seul endroit, images comme vidéos</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Une seule facture</strong> à la consommation, pas d'abonnement fixe</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">MCP officiel hosté</strong> prêt à brancher sur Claude Code, OpenCode, Cursor — l'IA appelle elle-même les modèles, choisit le bon, télécharge les résultats dans ton coffre</li>\n<li class=\"leading-7\">Les nouveaux modèles arrivent généralement chez fal <strong class=\"font-semibold text-foreground\">avant</strong> chez les concurrents</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-créer-un-compte-falai-et-générer-une-clé\">Étape 1 : Créer un compte fal.ai et générer une clé</h2>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://fal.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">fal.ai</a> et crée ton compte (Google ou GitHub)</li>\n<li class=\"leading-7\">Va dans <a href=\"https://fal.ai/dashboard/keys\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Dashboard → Keys</a> et génère une API key</li>\n<li class=\"leading-7\">Mets quelques euros de crédit pour commencer (10 € suffisent pour des centaines d'images ou plusieurs dizaines de secondes de vidéo)</li>\n<li class=\"leading-7\">Stocke la clé dans Bitwarden ou ton keyring</li>\n</ol>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Aucun abonnement.</strong> Tu paies à la consommation, des fractions de centime par image, quelques centimes par seconde de vidéo.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-2-laisse-ton-ia-brancher-le-mcp-falai\">Étape 2 : Laisse ton IA brancher le MCP fal.ai</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">fal propose un <strong class=\"font-semibold text-foreground\">MCP officiel hosté</strong> (HTTP remote, pas besoin d'installer un package). Le plus simple : tu colles le prompt ci-dessous dans OpenCode (ou Claude Code), ton IA détecte ta config, patche le bon fichier, vérifie que ça marche.</p>\n<div class=\"my-6 rounded-xl border border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Prompt à coller dans OpenCode</div><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais que tu branches le MCP officiel fal.ai sur mon système\npour que tu puisses générer des images et des vidéos.\n\n1. Voici ma clé API fal : YOUR_FAL_KEY\n   (récupérée sur https://fal.ai/dashboard/keys, garde-la en sécurité)\n\n2. Détecte mes outils IA installés (OpenCode, Claude Code, Claude Desktop)\n   et patche le bon fichier de config pour chacun. Le MCP est en\n   transport HTTP remote, à l'URL :\n   https://mcp.fal.ai/mcp\n   avec header : Authorization: Bearer &lt;ma clé&gt;\n\n3. Documentation officielle si tu as un doute sur le format :\n   https://fal.ai/docs/documentation/setting-up/mcp\n\n4. Une fois patché, indique-moi clairement qu'il faut que je\n   redémarre OpenCode / Claude Code pour que le MCP soit pris en compte.\n\n5. Au redémarrage, fais un petit test de génération (par exemple une\n   image de chat avec Nano Banana) pour valider que ça marche.\n\nNe touche pas aux autres MCPs déjà configurés. Si la config existe\ndéjà, fais juste un merge propre.\n</code></pre></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> du vault, tu peux aussi lancer simplement <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp fal-ai</code> — il fait pareil mais avec son propre workflow.</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"ce-que-ça-donne\">Ce que ça donne</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois connecté, ton IA a accès à :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Search models</strong> : elle explore le catalogue fal pour trouver le modèle adapté à ta demande</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Check schemas</strong> : elle lit la doc d'un modèle pour appeler les bons paramètres du premier coup</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Run inference</strong> : elle déclenche la génération (image ou vidéo)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Upload files</strong> : pour les modèles image-to-image et image-to-video</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Browse docs</strong> : elle reste à jour sans que tu doives lui expliquer</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Concrètement : tu dis « génère-moi une image de... » ou « anime cette photo en clip 5s », l'IA choisit le modèle pertinent, appelle fal, télécharge le résultat, range-le dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/Images/</code> ou la casquette pertinente.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-découvre-les-modèles-disponibles\">Étape 3 : Découvre les modèles disponibles</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le paysage des modèles bouge <strong class=\"font-semibold text-foreground\">chaque mois</strong>. Plutôt que de te donner une liste qui sera périmée dans 8 semaines, va voir ce qui est dispo aujourd'hui directement à la source :</p>\n<div class=\"my-6\"><a href=\"https://fal.ai/explore\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"inline-flex items-center gap-2 rounded-lg bg-blue-600 px-5 py-3 text-white font-semibold hover:bg-blue-700 transition-colors no-underline\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Explorer le catalogue fal.ai →</p></a></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu y trouves toujours les derniers modèles SOTA pour :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Image text-to-image</strong> : génération à partir d'un prompt texte</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Image editing / image-to-image</strong> : modifier une image existante (changer le fond, retoucher, styliser)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Texte dans l'image</strong> : pour les visuels avec slogan, titre, logo</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Vidéo text-to-video</strong> : génération de clip à partir d'un prompt</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Vidéo image-to-video</strong> : animer une photo</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Lipsync / avatar parlant</strong> : faire parler un visage</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Audio / musique</strong> : voix off, jingles, ambiances</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'as pas à mémoriser les noms — ton IA explore le catalogue via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">search models</code> et choisit la bonne option. Si tu veux forcer un modèle précis, mentionne-le dans le prompt (« génère avec Ideogram », « utilise Veo 3 »).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-expérimente-et-fabrique-tes-propres-skills\">Étape 4 : Expérimente et fabrique tes propres skills</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA a accès à fal. Tu vas vite identifier 3-5 cas que tu refais souvent : miniature YouTube, asset LinkedIn, mockup produit, illustration de note, clip teaser, animation produit. <strong class=\"font-semibold text-foreground\">Crée un skill par cas.</strong> Tu lances <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/miniature-youtube</code>, l'IA sait exactement quel modèle utiliser, quel ratio, où ranger le résultat.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"exemple-prompt-pour-quelle-te-crée-un-skill\">Exemple : prompt pour qu'elle te crée un skill</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'ai connecté fal.ai. Je veux un skill /miniature-youtube qui :\n- Me demande le titre de la vidéo + 2-3 mots-clés visuels\n- Va voir sur fal.ai/explore quel est le meilleur modèle SOTA\n  pour du texte propre dans une image à l'été 2026\n- Génère au format 1280x720, style dynamique\n- Range le résultat dans 2 CASQUETTES/Contenus/Youtube/miniatures/\n- Renvoie le path final + coût estimé\n\nCrée ce skill dans 4 TOOLS/skills/miniature-youtube/SKILL.md\nen suivant la convention de mes autres skills.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA crée le skill, tu valides, et la prochaine fois tu lances juste <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/miniature-youtube</code> au lieu de re-spécifier tout.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Autres skills typiques à créer pour toi-même :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/asset-linkedin</code> — visuel carré ou portrait pour post LinkedIn</li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/mockup-produit</code> — photo produit en lifestyle ou e-commerce</li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/clip-pub</code> — clip vertical 9:16 de 6-8s pour social</li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/anim-produit</code> — image-to-video à partir d'une photo</li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/broll-ia</code> — clips d'illustration courts pour vidéos longues</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-typiques\">Cas d'usage typiques</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"image-miniature-avec-texte\">Image — miniature avec texte</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Génère une miniature YouTube pour ma vidéo intitulée\n\"Pourquoi je vide mon coffre Obsidian tous les mois\".\nStyle : dynamique, visage humain au centre, texte court bien lisible.\nChoisis le meilleur modèle dispo sur fal pour du texte dans l'image\n(genre Ideogram). Range dans Youtube/miniatures/.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"image-édition-dune-photo-existante\">Image — édition d'une photo existante</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'ai pris une photo de mon nouveau produit dans 5 ATTACHMENTS/photo-produit.jpg\nGénère 3 variantes :\n- même produit sur un fond blanc épuré (e-commerce)\n- même produit en lifestyle dans une cuisine moderne\n- même produit en gros plan macro\nUtilise un modèle d'édition qui garde le produit identique\n(genre FLUX Kontext si toujours dispo, sinon ce que fal recommande).\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"vidéo-clip-teaser\">Vidéo — clip teaser</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Génère un clip vertical 9:16 de 6 secondes pour annoncer le lancement\nde mon coaching. Style authentique, lumière naturelle, plans visage et\nmains qui prennent des notes. Choisis le bon rapport qualité/prix sur\nfal (Kling, Wan ou équivalent). Range dans 2 CASQUETTES/Marketing/clips/.\nDis-moi le coût exact avant de générer.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"vidéo-animer-une-photo\">Vidéo — animer une photo</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'ai une photo de mon produit dans 5 ATTACHMENTS/produit.jpg\nAnime-la en image-to-video pour faire un clip de 5s :\nrotation lente, fond progressivement net. Format 1:1 pour Instagram.\nPrends le meilleur modèle image-to-video dispo sur fal aujourd'hui.\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sécurité-et-coûts\">Sécurité et coûts</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Clé API</strong> : dans Bitwarden ou keyring système. Jamais dans un repo public.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Fichiers générés</strong> : range-les dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">3 RESSOURCES/</code> ou la casquette concernée. Ton IA peut le faire automatiquement si tu le précises dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code>.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Coût</strong> : surveille le dashboard fal le 1er mois pour calibrer. La plupart restent sous 20 €/mois en usage perso. Les vidéos (surtout Veo 3) montent vite — demande toujours à l'IA d'estimer le coût avant de lancer une série.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Modération</strong> : fal applique les politiques des modèles upstream (visages célèbres, contenu sensible). Certaines générations peuvent être bloquées.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé un compte fal.ai et généré une clé API — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé un compte fal.ai et généré une clé API</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai branché le MCP fal-ai dans OpenCode (ou Claude Code) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai branché le MCP fal-ai dans OpenCode (ou Claude Code)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai lancé une première génération d'image pour valider la chaine — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai lancé une première génération d'image pour valider la chaine</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai lancé une première génération vidéo pour valider la chaine — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai lancé une première génération vidéo pour valider la chaine</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je vais voir fal.ai/explore quand je veux savoir quels modèles sont SOTA aujourd'hui — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je vais voir fal.ai/explore quand je veux savoir quels modèles sont SOTA aujourd'hui</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé au moins 1 skill custom pour mon cas d'usage récurrent — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé au moins 1 skill custom pour mon cas d'usage récurrent</span></li></ul>",
      "content_markdown": "## Générer des images et des vidéos avec ton IA\n\nGénérer images et vidéos depuis ton système via fal.ai\n\nSetup fal.ai en MCP, comment laisser ton IA piocher le bon modèle, et créer ses propres skills.\n\nTu veux que ton IA puisse créer des images **et** des vidéos directement depuis ton coffre — pour illustrer une note, mocker un visuel produit, générer un asset LinkedIn, faire la miniature d'une vidéo YouTube, animer une photo de produit, ou produire un clip teaser. La logique est simple : **on lui donne un outil**. Cet outil, c'est **[fal.ai](https://fal.ai)**.\n\nPourquoi fal.ai et pas X autre provider :\n\n- **Tous les modèles SOTA** en un seul endroit, images comme vidéos\n- **Une seule facture** à la consommation, pas d'abonnement fixe\n- **MCP officiel hosté** prêt à brancher sur Claude Code, OpenCode, Cursor — l'IA appelle elle-même les modèles, choisit le bon, télécharge les résultats dans ton coffre\n- Les nouveaux modèles arrivent généralement chez fal **avant** chez les concurrents\n\n---\n\n## Étape 1 : Créer un compte fal.ai et générer une clé\n\n1. Va sur [fal.ai](https://fal.ai) et crée ton compte (Google ou GitHub)\n2. Va dans [Dashboard → Keys](https://fal.ai/dashboard/keys) et génère une API key\n3. Mets quelques euros de crédit pour commencer (10 € suffisent pour des centaines d'images ou plusieurs dizaines de secondes de vidéo)\n4. Stocke la clé dans Bitwarden ou ton keyring\n\n> Aucun abonnement. Tu paies à la consommation, des fractions de centime par image, quelques centimes par seconde de vidéo.\n\n---\n\n## Étape 2 : Laisse ton IA brancher le MCP fal.ai\n\nfal propose un **MCP officiel hosté** (HTTP remote, pas besoin d'installer un package). Le plus simple : tu colles le prompt ci-dessous dans OpenCode (ou Claude Code), ton IA détecte ta config, patche le bon fichier, vérifie que ça marche.\n\nPrompt à coller dans OpenCode\n\n```\nJ'aimerais que tu branches le MCP officiel fal.ai sur mon système\npour que tu puisses générer des images et des vidéos.\n\n1. Voici ma clé API fal : YOUR_FAL_KEY\n   (récupérée sur https://fal.ai/dashboard/keys, garde-la en sécurité)\n\n2. Détecte mes outils IA installés (OpenCode, Claude Code, Claude Desktop)\n   et patche le bon fichier de config pour chacun. Le MCP est en\n   transport HTTP remote, à l'URL :\n   https://mcp.fal.ai/mcp\n   avec header : Authorization: Bearer <ma clé>\n\n3. Documentation officielle si tu as un doute sur le format :\n   https://fal.ai/docs/documentation/setting-up/mcp\n\n4. Une fois patché, indique-moi clairement qu'il faut que je\n   redémarre OpenCode / Claude Code pour que le MCP soit pris en compte.\n\n5. Au redémarrage, fais un petit test de génération (par exemple une\n   image de chat avec Nano Banana) pour valider que ça marche.\n\nNe touche pas aux autres MCPs déjà configurés. Si la config existe\ndéjà, fais juste un merge propre.\n```\n\n> Si tu as le skill /connect-mcp du vault, tu peux aussi lancer simplement /connect-mcp fal-ai — il fait pareil mais avec son propre workflow.\n\n### Ce que ça donne\n\nUne fois connecté, ton IA a accès à :\n\n- **Search models** : elle explore le catalogue fal pour trouver le modèle adapté à ta demande\n- **Check schemas** : elle lit la doc d'un modèle pour appeler les bons paramètres du premier coup\n- **Run inference** : elle déclenche la génération (image ou vidéo)\n- **Upload files** : pour les modèles image-to-image et image-to-video\n- **Browse docs** : elle reste à jour sans que tu doives lui expliquer\n\nConcrètement : tu dis « génère-moi une image de... » ou « anime cette photo en clip 5s », l'IA choisit le modèle pertinent, appelle fal, télécharge le résultat, range-le dans `3 RESSOURCES/Images/` ou la casquette pertinente.\n\n---\n\n## Étape 3 : Découvre les modèles disponibles\n\nLe paysage des modèles bouge **chaque mois**. Plutôt que de te donner une liste qui sera périmée dans 8 semaines, va voir ce qui est dispo aujourd'hui directement à la source :\n\n[Explorer le catalogue fal.ai →](https://fal.ai/explore)\n\nTu y trouves toujours les derniers modèles SOTA pour :\n\n- **Image text-to-image** : génération à partir d'un prompt texte\n- **Image editing / image-to-image** : modifier une image existante (changer le fond, retoucher, styliser)\n- **Texte dans l'image** : pour les visuels avec slogan, titre, logo\n- **Vidéo text-to-video** : génération de clip à partir d'un prompt\n- **Vidéo image-to-video** : animer une photo\n- **Lipsync / avatar parlant** : faire parler un visage\n- **Audio / musique** : voix off, jingles, ambiances\n\nTu n'as pas à mémoriser les noms — ton IA explore le catalogue via `search models` et choisit la bonne option. Si tu veux forcer un modèle précis, mentionne-le dans le prompt (« génère avec Ideogram », « utilise Veo 3 »).\n\n---\n\n## Étape 4 : Expérimente et fabrique tes propres skills\n\nL'IA a accès à fal. Tu vas vite identifier 3-5 cas que tu refais souvent : miniature YouTube, asset LinkedIn, mockup produit, illustration de note, clip teaser, animation produit. **Crée un skill par cas.** Tu lances `/miniature-youtube`, l'IA sait exactement quel modèle utiliser, quel ratio, où ranger le résultat.\n\n### Exemple : prompt pour qu'elle te crée un skill\n\n```\nJ'ai connecté fal.ai. Je veux un skill /miniature-youtube qui :\n- Me demande le titre de la vidéo + 2-3 mots-clés visuels\n- Va voir sur fal.ai/explore quel est le meilleur modèle SOTA\n  pour du texte propre dans une image à l'été 2026\n- Génère au format 1280x720, style dynamique\n- Range le résultat dans 2 CASQUETTES/Contenus/Youtube/miniatures/\n- Renvoie le path final + coût estimé\n\nCrée ce skill dans 4 TOOLS/skills/miniature-youtube/SKILL.md\nen suivant la convention de mes autres skills.\n```\n\nL'IA crée le skill, tu valides, et la prochaine fois tu lances juste `/miniature-youtube` au lieu de re-spécifier tout.\n\nAutres skills typiques à créer pour toi-même :\n\n- `/asset-linkedin` — visuel carré ou portrait pour post LinkedIn\n- `/mockup-produit` — photo produit en lifestyle ou e-commerce\n- `/clip-pub` — clip vertical 9:16 de 6-8s pour social\n- `/anim-produit` — image-to-video à partir d'une photo\n- `/broll-ia` — clips d'illustration courts pour vidéos longues\n\n---\n\n## Cas d'usage typiques\n\n### Image — miniature avec texte\n\n```\nGénère une miniature YouTube pour ma vidéo intitulée\n\"Pourquoi je vide mon coffre Obsidian tous les mois\".\nStyle : dynamique, visage humain au centre, texte court bien lisible.\nChoisis le meilleur modèle dispo sur fal pour du texte dans l'image\n(genre Ideogram). Range dans Youtube/miniatures/.\n```\n\n### Image — édition d'une photo existante\n\n```\nJ'ai pris une photo de mon nouveau produit dans 5 ATTACHMENTS/photo-produit.jpg\nGénère 3 variantes :\n- même produit sur un fond blanc épuré (e-commerce)\n- même produit en lifestyle dans une cuisine moderne\n- même produit en gros plan macro\nUtilise un modèle d'édition qui garde le produit identique\n(genre FLUX Kontext si toujours dispo, sinon ce que fal recommande).\n```\n\n### Vidéo — clip teaser\n\n```\nGénère un clip vertical 9:16 de 6 secondes pour annoncer le lancement\nde mon coaching. Style authentique, lumière naturelle, plans visage et\nmains qui prennent des notes. Choisis le bon rapport qualité/prix sur\nfal (Kling, Wan ou équivalent). Range dans 2 CASQUETTES/Marketing/clips/.\nDis-moi le coût exact avant de générer.\n```\n\n### Vidéo — animer une photo\n\n```\nJ'ai une photo de mon produit dans 5 ATTACHMENTS/produit.jpg\nAnime-la en image-to-video pour faire un clip de 5s :\nrotation lente, fond progressivement net. Format 1:1 pour Instagram.\nPrends le meilleur modèle image-to-video dispo sur fal aujourd'hui.\n```\n\n---\n\n## Sécurité et coûts\n\n- **Clé API** : dans Bitwarden ou keyring système. Jamais dans un repo public.\n- **Fichiers générés** : range-les dans `3 RESSOURCES/` ou la casquette concernée. Ton IA peut le faire automatiquement si tu le précises dans `AGENTS.md`.\n- **Coût** : surveille le dashboard fal le 1er mois pour calibrer. La plupart restent sous 20 €/mois en usage perso. Les vidéos (surtout Veo 3) montent vite — demande toujours à l'IA d'estimer le coût avant de lancer une série.\n- **Modération** : fal applique les politiques des modèles upstream (visages célèbres, contenu sensible). Certaines générations peuvent être bloquées.\n\n---\n\n- J'ai créé un compte fal.ai et généré une clé API\n- J'ai branché le MCP fal-ai dans OpenCode (ou Claude Code)\n- J'ai lancé une première génération d'image pour valider la chaine\n- J'ai lancé une première génération vidéo pour valider la chaine\n- Je vais voir fal.ai/explore quand je veux savoir quels modèles sont SOTA aujourd'hui\n- J'ai créé au moins 1 skill custom pour mon cas d'usage récurrent",
      "assets": [],
      "links": [
        {
          "text": "fal.ai",
          "url": "https://fal.ai/"
        },
        {
          "text": "fal.ai",
          "url": "https://fal.ai/"
        },
        {
          "text": "Dashboard → Keys",
          "url": "https://fal.ai/dashboard/keys"
        },
        {
          "text": "Explorer le catalogue fal.ai →",
          "url": "https://fal.ai/explore"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/0e5d323d9e3a443ab9087c593ecb46b3",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Générer images et vidéos depuis ton système via fal.ai",
          "title_source": "iframe-title",
          "video_id": "0e5d323d9e3a443ab9087c593ecb46b3",
          "watch_url": "https://www.loom.com/share/0e5d323d9e3a443ab9087c593ecb46b3"
        }
      ],
      "captured_at": "2026-08-03T10:05:56.993Z",
      "counts": {
        "code_blocks": 25,
        "headings": 13,
        "iframes": 1,
        "images": 0,
        "links": 4,
        "text_chars": 8132
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "27-semaine-1-fathom",
      "order": 27,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Configurer Fathom + Granola",
      "slug": "semaine-1-fathom",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-fathom",
      "summary": "Deux outils complémentaires pour ne plus jamais perdre ce qui se dit en réunion. Fathom : un bot qui rejoint tes visios Zoom, Meet et Teams et envoie le transcript dans ton vault. Granola : sans bot, capte l'audio depuis ton Mac et marche aussi en présentiel.",
      "objective": "Une app native macOS qui capte l'audio directement depuis ton ordinateur, sans envoyer de bot dans la réunion. Personne ne voit qu'elle est là, et elle marche tout aussi bien pour les réunions en présentiel que pour les visios.",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Configurer Fathom + Granola (transcription de réunions)</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Configurer Fathom pour tes réunions</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/c2aa0d7feafa4478be908d510b1f67c7\" title=\"Configurer Fathom pour tes réunions\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Walkthrough complet : installation, paramétrage et intégration dans ton coffre.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tes réunions sont une mine d'or pour ton second cerveau. Le défi : capturer ce qui s'y dit sans avoir à prendre des notes pendant que tu parles. Deux outils font le job de façon complémentaire : <strong class=\"font-semibold text-foreground\">Fathom</strong> et <strong class=\"font-semibold text-foreground\">Granola</strong>. Ils enregistrent, transcrivent, résument, et tu retrouves tout dans ton coffre.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Lequel choisir ?</h2>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-2xl border-2 border-rose-200 bg-rose-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-rose-600 mb-1\">Multi-plateforme, un bot dans le call</div><div class=\"text-lg font-bold text-rose-900 mb-2\">Fathom</div><p class=\"text-sm text-rose-900/80 mb-2\">Un assistant qui rejoint automatiquement tes visios <strong>Zoom, Google Meet et Microsoft Teams</strong> sous la forme d'un participant additionnel. Marche sur tout OS, dans n'importe quel call à distance.</p><div class=\"text-xs text-rose-700/80\"><strong>Pour qui :</strong> tu fais surtout des réunions à distance, tu tournes sous Windows ou Linux, tu veux la vidéo en plus de l'audio, ou tu veux le plan le plus solide pour de l'usage intensif.</div></div><div class=\"rounded-2xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Mac uniquement, sans bot dans le call</div><div class=\"text-lg font-bold text-amber-900 mb-2\">Granola</div><p class=\"text-sm text-amber-900/80 mb-2\">Une app native macOS qui capte l'audio <strong>directement depuis ton ordinateur</strong>, sans envoyer de bot dans la réunion. Personne ne voit qu'elle est là, et elle marche tout aussi bien pour <strong>les réunions en présentiel</strong> que pour les visios.</p><div class=\"text-xs text-amber-700/80\"><strong>Pour qui :</strong> tu es sur Mac, tu n'as pas besoin de la vidéo, tu veux que l'outil soit invisible pour les autres participants, et tu veux pouvoir l'utiliser aussi en physique (café, salle de réunion).</div></div></div>\n<div class=\"my-6 rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4\"><div class=\"text-sm font-bold text-emerald-800 mb-1\">Ma reco personnelle</div><p class=\"text-sm text-emerald-900/80\">Si tu es sur Mac et que tu n'as pas besoin de la vidéo, je trouve <a href=\"https://go.granola.ai/eliott-meunier\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-semibold\">Granola</a> globalement mieux abouti aujourd'hui : pas de bot visible (donc rien qui change pour l'autre côté de l'appel), interface très propre, et le fait que ça marche en présentiel change la donne. Si tu es sous Windows/Linux ou que tu as besoin de la vidéo, prends Fathom.</p><p class=\"text-sm text-emerald-900/80 mt-2\">Rien ne t'empêche d'utiliser les deux. Beaucoup de gens gardent Fathom pour les visios pro et Granola pour les calls/présentiels perso.</p></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Option A : Granola (Mac uniquement, sans bot)</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 1 : Installer</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://go.granola.ai/eliott-meunier\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">granola.ai</a></li>\n<li class=\"leading-7\">Télécharge l'app macOS (Apple Silicon ou Intel)</li>\n<li class=\"leading-7\">Crée ton compte et connecte ton calendrier (Google ou Microsoft)</li>\n<li class=\"leading-7\">Autorise l'app à accéder au micro et à l'audio système</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Plan gratuit avec 25 réunions/mois. Plan Pro à 18 $/mois pour de l'usage intensif.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 2 : Utiliser</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Granola est invisible pendant tes réunions. Tu lances ton call comme d'habitude (Zoom, Meet, Teams, FaceTime, ou rien du tout pour du présentiel), tu cliques sur \"Start\" dans Granola, et c'est parti. Pendant la réunion, tu peux prendre tes notes habituelles dans l'app : à la fin, Granola fusionne tes notes avec la transcription IA pour produire un compte-rendu propre.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 3 : Récupérer dans ton vault</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Plusieurs options :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Copier-coller</strong> : le plus simple pour démarrer, les notes Granola sont en Markdown propre</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Export</strong> : Granola exporte en Markdown, vers Notion, ou via webhook</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Automatisation n8n</strong> : en semaine 3, on branchera un webhook qui pousse automatiquement les comptes-rendus dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0 INBOX/</code></li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Option B : Fathom (multi-plateforme, avec bot)</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 1 : Créer un compte</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><img alt=\"Page d'accueil de Fathom : transcription automatique de réunions\" class=\"rounded-lg my-4 max-w-full\" src=\"assets/01-page-d-accueil-de-fathom-transcription-automatique-de-reunions.png\"></p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://fathom.video/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">fathom.video</a></li>\n<li class=\"leading-7\">Clique sur <strong class=\"font-semibold text-foreground\">Get Fathom Free</strong></li>\n<li class=\"leading-7\">Connecte ton compte Google ou Microsoft (celui de tes réunions)</li>\n<li class=\"leading-7\">Autorise Fathom à accéder à ton calendrier</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Gratuit (enregistrements illimités, transcriptions illimitées, 5 résumés IA/mois).</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 2 : Configurer</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans les <strong class=\"font-semibold text-foreground\">Settings</strong> de Fathom :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Auto-join</strong> : Active pour que Fathom rejoigne automatiquement tes calls</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Recording preferences</strong> : Choisis si tu enregistres toutes les réunions ou seulement certaines</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Fathom affiche un message aux participants pour les informer de l'enregistrement.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 3 : Tester</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Lance une réunion de test (même seul) :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Crée un meeting Google Meet ou Zoom</li>\n<li class=\"leading-7\">Fathom devrait rejoindre automatiquement</li>\n<li class=\"leading-7\">Parle pendant 2 minutes</li>\n<li class=\"leading-7\">Termine la réunion</li>\n<li class=\"leading-7\">Vérifie dans Fathom que l'enregistrement apparaît</li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Étape 4 : Préparer le webhook (pour plus tard)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Fathom peut envoyer automatiquement les résumés vers ton vault via un <strong class=\"font-semibold text-foreground\">webhook</strong>. Tu configureras ça en <strong class=\"font-semibold text-foreground\">semaine 3</strong> quand tu auras ton serveur n8n.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour l'instant, note juste ceci :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans Fathom, va dans <strong class=\"font-semibold text-foreground\">Settings</strong> → <strong class=\"font-semibold text-foreground\">API Access</strong></li>\n<li class=\"leading-7\">Génère une <strong class=\"font-semibold text-foreground\">clé API</strong> (copie-la quelque part)</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu t'en serviras quand tu créeras l'automatisation n8n qui envoie les transcripts dans ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0 INBOX/</code>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Le flux Réunion → Vault (commun aux deux)</h2>\n<div class=\"my-8 flex flex-col items-center gap-2 max-w-md mx-auto\"><div class=\"w-full rounded-xl border-2 border-rose-200 bg-rose-50 px-5 py-3 text-center\"><div class=\"font-bold text-rose-700\">Réunion (Zoom / Meet / Teams / présentiel)</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"w-full rounded-xl border-2 border-rose-200 bg-rose-50 px-5 py-3 text-center\"><div class=\"font-bold text-rose-700\">Fathom ou Granola enregistre et transcrit</div><div class=\"text-xs text-rose-500 mt-1\">Automatique, en arrière-plan</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"w-full rounded-xl border-2 border-zinc-200 bg-zinc-50 px-5 py-3 text-center\"><div class=\"font-bold text-zinc-600\">Webhook n8n (semaine 3)</div><div class=\"text-xs text-zinc-400 mt-1\">Envoi automatique vers ton vault</div></div><div class=\"h-5 w-px bg-zinc-300\"></div><div class=\"w-full rounded-xl border-2 border-blue-200 bg-blue-50 px-5 py-3 text-center\"><div class=\"font-bold text-blue-700\">Note dans 0 INBOX/</div><div class=\"text-xs text-blue-500 mt-1\">Résumé + transcript + action items</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Bonnes pratiques</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Nomme tes réunions clairement</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le titre de la réunion devient le titre de la note. Utilise un format cohérent :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[Client] Kickoff projet X</code></li>\n<li class=\"leading-7\"><code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">Weekly sync - Équipe produit</code></li>\n<li class=\"leading-7\">Pas juste \"Meeting\" (trop vague)</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Retrouver un moment précis</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans Fathom comme dans Granola, tu peux :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Rechercher par mot-clé dans la transcription</li>\n<li class=\"leading-7\">Cliquer sur un passage pour voir l'audio/la vidéo à ce moment</li>\n<li class=\"leading-7\">Créer des \"highlights\" pour les moments importants</li>\n</ul>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Et la confidentialité ?</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Fathom comme Granola annoncent le respect du chiffrement en transit et du SOC 2. Pour des réunions vraiment sensibles (juridique, médical, RH), pose-toi la question avant d'enregistrer, demande le consentement des participants, et vérifie les paramètres de rétention de ton outil.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai choisi entre Fathom, Granola, ou les deux selon mon usage — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai choisi entre Fathom, Granola, ou les deux selon mon usage</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé mon compte et connecté mon calendrier — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé mon compte et connecté mon calendrier</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai fait une réunion test — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai fait une réunion test</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Pour Fathom : j'ai généré ma clé API (pour plus tard avec n8n) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Pour Fathom : j'ai généré ma clé API (pour plus tard avec n8n)</span></li></ul>",
      "content_markdown": "## Configurer Fathom + Granola (transcription de réunions)\n\nConfigurer Fathom pour tes réunions\n\nWalkthrough complet : installation, paramétrage et intégration dans ton coffre.\n\nTes réunions sont une mine d'or pour ton second cerveau. Le défi : capturer ce qui s'y dit sans avoir à prendre des notes pendant que tu parles. Deux outils font le job de façon complémentaire : **Fathom** et **Granola**. Ils enregistrent, transcrivent, résument, et tu retrouves tout dans ton coffre.\n\n---\n\n## Lequel choisir ?\n\nMulti-plateforme, un bot dans le call\n\nFathom\n\nUn assistant qui rejoint automatiquement tes visios **Zoom, Google Meet et Microsoft Teams** sous la forme d'un participant additionnel. Marche sur tout OS, dans n'importe quel call à distance.\n\n**Pour qui :** tu fais surtout des réunions à distance, tu tournes sous Windows ou Linux, tu veux la vidéo en plus de l'audio, ou tu veux le plan le plus solide pour de l'usage intensif.\n\nMac uniquement, sans bot dans le call\n\nGranola\n\nUne app native macOS qui capte l'audio **directement depuis ton ordinateur**, sans envoyer de bot dans la réunion. Personne ne voit qu'elle est là, et elle marche tout aussi bien pour **les réunions en présentiel** que pour les visios.\n\n**Pour qui :** tu es sur Mac, tu n'as pas besoin de la vidéo, tu veux que l'outil soit invisible pour les autres participants, et tu veux pouvoir l'utiliser aussi en physique (café, salle de réunion).\n\nMa reco personnelle\n\nSi tu es sur Mac et que tu n'as pas besoin de la vidéo, je trouve [Granola](https://go.granola.ai/eliott-meunier) globalement mieux abouti aujourd'hui : pas de bot visible (donc rien qui change pour l'autre côté de l'appel), interface très propre, et le fait que ça marche en présentiel change la donne. Si tu es sous Windows/Linux ou que tu as besoin de la vidéo, prends Fathom.\n\nRien ne t'empêche d'utiliser les deux. Beaucoup de gens gardent Fathom pour les visios pro et Granola pour les calls/présentiels perso.\n\n---\n\n## Option A : Granola (Mac uniquement, sans bot)\n\n### Étape 1 : Installer\n\n1. Va sur [granola.ai](https://go.granola.ai/eliott-meunier)\n2. Télécharge l'app macOS (Apple Silicon ou Intel)\n3. Crée ton compte et connecte ton calendrier (Google ou Microsoft)\n4. Autorise l'app à accéder au micro et à l'audio système\n\n**Coût :** Plan gratuit avec 25 réunions/mois. Plan Pro à 18 $/mois pour de l'usage intensif.\n\n### Étape 2 : Utiliser\n\nGranola est invisible pendant tes réunions. Tu lances ton call comme d'habitude (Zoom, Meet, Teams, FaceTime, ou rien du tout pour du présentiel), tu cliques sur \"Start\" dans Granola, et c'est parti. Pendant la réunion, tu peux prendre tes notes habituelles dans l'app : à la fin, Granola fusionne tes notes avec la transcription IA pour produire un compte-rendu propre.\n\n### Étape 3 : Récupérer dans ton vault\n\nPlusieurs options :\n\n- **Copier-coller** : le plus simple pour démarrer, les notes Granola sont en Markdown propre\n- **Export** : Granola exporte en Markdown, vers Notion, ou via webhook\n- **Automatisation n8n** : en semaine 3, on branchera un webhook qui pousse automatiquement les comptes-rendus dans `0 INBOX/`\n\n---\n\n## Option B : Fathom (multi-plateforme, avec bot)\n\n### Étape 1 : Créer un compte\n\n![Page d'accueil de Fathom : transcription automatique de réunions](/images/ia-mars-2026/fathom-homepage.png)\n\n1. Va sur [fathom.video](https://fathom.video)\n2. Clique sur **Get Fathom Free**\n3. Connecte ton compte Google ou Microsoft (celui de tes réunions)\n4. Autorise Fathom à accéder à ton calendrier\n\n**Coût :** Gratuit (enregistrements illimités, transcriptions illimitées, 5 résumés IA/mois).\n\n### Étape 2 : Configurer\n\nDans les **Settings** de Fathom :\n\n1. **Auto-join** : Active pour que Fathom rejoigne automatiquement tes calls\n2. **Recording preferences** : Choisis si tu enregistres toutes les réunions ou seulement certaines\n\nFathom affiche un message aux participants pour les informer de l'enregistrement.\n\n### Étape 3 : Tester\n\nLance une réunion de test (même seul) :\n\n1. Crée un meeting Google Meet ou Zoom\n2. Fathom devrait rejoindre automatiquement\n3. Parle pendant 2 minutes\n4. Termine la réunion\n5. Vérifie dans Fathom que l'enregistrement apparaît\n\n### Étape 4 : Préparer le webhook (pour plus tard)\n\nFathom peut envoyer automatiquement les résumés vers ton vault via un **webhook**. Tu configureras ça en **semaine 3** quand tu auras ton serveur n8n.\n\nPour l'instant, note juste ceci :\n\n1. Dans Fathom, va dans **Settings** → **API Access**\n2. Génère une **clé API** (copie-la quelque part)\n\nTu t'en serviras quand tu créeras l'automatisation n8n qui envoie les transcripts dans ton `0 INBOX/`.\n\n---\n\n## Le flux Réunion → Vault (commun aux deux)\n\nRéunion (Zoom / Meet / Teams / présentiel)\n\nFathom ou Granola enregistre et transcrit\n\nAutomatique, en arrière-plan\n\nWebhook n8n (semaine 3)\n\nEnvoi automatique vers ton vault\n\nNote dans 0 INBOX/\n\nRésumé + transcript + action items\n\n---\n\n## Bonnes pratiques\n\n### Nomme tes réunions clairement\n\nLe titre de la réunion devient le titre de la note. Utilise un format cohérent :\n\n- `[Client] Kickoff projet X`\n- `Weekly sync - Équipe produit`\n- Pas juste \"Meeting\" (trop vague)\n\n### Retrouver un moment précis\n\nDans Fathom comme dans Granola, tu peux :\n\n- Rechercher par mot-clé dans la transcription\n- Cliquer sur un passage pour voir l'audio/la vidéo à ce moment\n- Créer des \"highlights\" pour les moments importants\n\n### Et la confidentialité ?\n\nFathom comme Granola annoncent le respect du chiffrement en transit et du SOC 2. Pour des réunions vraiment sensibles (juridique, médical, RH), pose-toi la question avant d'enregistrer, demande le consentement des participants, et vérifie les paramètres de rétention de ton outil.\n\n---\n\n- J'ai choisi entre Fathom, Granola, ou les deux selon mon usage\n- J'ai créé mon compte et connecté mon calendrier\n- J'ai fait une réunion test\n- Pour Fathom : j'ai généré ma clé API (pour plus tard avec n8n)",
      "assets": [
        {
          "alt": "Page d'accueil de Fathom : transcription automatique de réunions",
          "original_url": "https://prisme.one/images/ia-mars-2026/fathom-homepage.png",
          "path": "assets/01-page-d-accueil-de-fathom-transcription-automatique-de-reunions.png",
          "bytes": 203891,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "Granola",
          "url": "https://go.granola.ai/eliott-meunier"
        },
        {
          "text": "granola.ai",
          "url": "https://go.granola.ai/eliott-meunier"
        },
        {
          "text": "fathom.video",
          "url": "https://fathom.video/"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/c2aa0d7feafa4478be908d510b1f67c7",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Configurer Fathom pour tes réunions",
          "title_source": "iframe-title",
          "video_id": "c2aa0d7feafa4478be908d510b1f67c7",
          "watch_url": "https://www.loom.com/share/c2aa0d7feafa4478be908d510b1f67c7"
        }
      ],
      "captured_at": "2026-08-03T10:06:00.957Z",
      "counts": {
        "code_blocks": 4,
        "headings": 16,
        "iframes": 1,
        "images": 1,
        "links": 3,
        "text_chars": 5394
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "28-semaine-4-remote-control",
      "order": 28,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "L'accès mobile à ton système",
      "slug": "semaine-4-remote-control",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-4-remote-control",
      "summary": "L'usage principal en mobile : capturer. Setup Obsidian Mobile + Sync + dictée vocale. Plus, selon ta stack : /remote-control pour Claude Code, app ChatGPT pour Codex, et serveur perso pour OpenCode (arrive en semaine 3).",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">L'accès mobile à ton système</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">On est en semaine 4 : ton serveur est en place (installé en semaine 3) et ton IA y tourne. Résultat, ton téléphone devient une vraie télécommande, en plus de rester ton antenne de capture. Deux usages en mobilité, tous les deux disponibles dès maintenant :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Capturer</strong> : attraper l'idée, le lien, la note vocale au moment où ils arrivent, avant qu'ils ne disparaissent.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Piloter à distance</strong> : lancer de vraies sessions IA sur ton serveur depuis ton téléphone. Le serveur fait le boulot, ton téléphone envoie les instructions et reçoit les résultats.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Capturer en mobilité (le socle)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le trio de capture est normalement déjà en place depuis l'installation technique : <strong class=\"font-semibold text-foreground\">Obsidian Mobile</strong> ouvert sur ton coffre, <strong class=\"font-semibold text-foreground\">Obsidian Sync</strong> actif, et une app de <strong class=\"font-semibold text-foreground\">dictée vocale</strong> (SuperWhisper ou Wispr Flow) pour dicter au lieu de taper avec les pouces.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le flow : une idée arrive, tu ouvres Obsidian Mobile, ta daily note du jour (ou une note dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0 INBOX/</code>), tu dictes en vocal. La note remonte sur ton ordi et ton serveur via la sync. C'est tout.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le détail des processus de capture (vocal, web, lecture, déplacement) est dans la leçon dédiée : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../06-second-cerveau/lessons/20-semaine-1-contexte-holistique/semaine-1-contexte-holistique.html\">Les processus de capture →</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Piloter ton IA à distance (disponible maintenant)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton serveur tourne : tu peux lancer des sessions IA complètes depuis ton téléphone, pas seulement capturer. La façon de t'y connecter dépend de ta stack.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Si tu utilises Claude Code</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Claude Code a une commande intégrée : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/remote-control</code>. Tu la lances sur ton ordi et tu prends la main depuis l'app Claude mobile.</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Installe l'app <strong class=\"font-semibold text-foreground\">Claude</strong> (iOS / Android), connecte-toi avec le même compte que ton abonnement</li>\n<li class=\"leading-7\">Sur ton ordi, dans Claude Code lancé dans ton vault, tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/remote-control</code> et suis les instructions</li>\n<li class=\"leading-7\">Depuis l'app Claude sur ton téléphone (sidebar gauche, onglet <strong class=\"font-semibold text-foreground\">Code</strong>), envoie tes instructions</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ton ordi exécute, ton téléphone reçoit le résultat. Limite : ton ordi doit rester <strong class=\"font-semibold text-foreground\">allumé</strong>, Claude Code <strong class=\"font-semibold text-foreground\">ouvert</strong>, et il faut une connexion Internet des deux côtés.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Si tu utilises Codex</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'<strong class=\"font-semibold text-foreground\">app ChatGPT</strong> sur ton téléphone pilote à distance tes sessions <strong class=\"font-semibold text-foreground\">Codex</strong> lancées sur ton ordi. Même principe que <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/remote-control</code> côté Claude : l'ordi fait le boulot, le téléphone envoie les instructions.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\">Si tu utilises OpenCode (la stack par défaut du bootcamp)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est là que le serveur change tout. Comme il est déjà installé, tes sessions OpenCode tournent dessus (pas sur ton Mac qui dort) et tu les pilotes depuis ton téléphone. Le plus simple : l'<strong class=\"font-semibold text-foreground\">interface web de ton serveur</strong> (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.ton-domaine.com</code>), que tu ouvres dans ton navigateur mobile et que tu ajoutes à ton écran d'accueil comme une app.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le setup complet est détaillé dans la leçon dédiée, avec les trois façons de te connecter (interface web sur l'écran d'accueil, Termius en SSH, bot Telegram pour les questions rapides) : <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"https://prisme.one/plateforme/ia-juillet-2026/semaine-3-acces-mobile\">Accès mobile : piloter ton IA à distance →</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\">Checklist</h2>\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Obsidian Mobile installé, Sync actif et coffre visible sur mon téléphone — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Obsidian Mobile installé, Sync actif et coffre visible sur mon téléphone</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Une app de dictée vocale (SuperWhisper, Wispr Flow ou la dictée native) prête à l'emploi — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Une app de dictée vocale (SuperWhisper, Wispr Flow ou la dictée native) prête à l'emploi</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé : dicter une note dans Obsidian Mobile et la retrouver sur mon ordi — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé : dicter une note dans Obsidian Mobile et la retrouver sur mon ordi</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si Claude Code : /remote-control testé depuis l'app Claude mobile (onglet Code) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si Claude Code : /remote-control testé depuis l'app Claude mobile (onglet Code)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si Codex : app ChatGPT installée et liée à mes sessions — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si Codex : app ChatGPT installée et liée à mes sessions</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Si OpenCode : session lancée sur le serveur depuis mon téléphone (interface web / Termius / Telegram) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Si OpenCode : session lancée sur le serveur depuis mon téléphone (interface web / Termius / Telegram)</span></li></ul>",
      "content_markdown": "## L'accès mobile à ton système\n\nOn est en semaine 4 : ton serveur est en place (installé en semaine 3) et ton IA y tourne. Résultat, ton téléphone devient une vraie télécommande, en plus de rester ton antenne de capture. Deux usages en mobilité, tous les deux disponibles dès maintenant :\n\n- **Capturer** : attraper l'idée, le lien, la note vocale au moment où ils arrivent, avant qu'ils ne disparaissent.\n- **Piloter à distance** : lancer de vraies sessions IA sur ton serveur depuis ton téléphone. Le serveur fait le boulot, ton téléphone envoie les instructions et reçoit les résultats.\n\n---\n\n## Capturer en mobilité (le socle)\n\nLe trio de capture est normalement déjà en place depuis l'installation technique : **Obsidian Mobile** ouvert sur ton coffre, **Obsidian Sync** actif, et une app de **dictée vocale** (SuperWhisper ou Wispr Flow) pour dicter au lieu de taper avec les pouces.\n\nLe flow : une idée arrive, tu ouvres Obsidian Mobile, ta daily note du jour (ou une note dans `0 INBOX/`), tu dictes en vocal. La note remonte sur ton ordi et ton serveur via la sync. C'est tout.\n\nLe détail des processus de capture (vocal, web, lecture, déplacement) est dans la leçon dédiée : [Les processus de capture →](/plateforme/ia-juillet-2026/semaine-1-contexte-holistique).\n\n---\n\n## Piloter ton IA à distance (disponible maintenant)\n\nTon serveur tourne : tu peux lancer des sessions IA complètes depuis ton téléphone, pas seulement capturer. La façon de t'y connecter dépend de ta stack.\n\n### Si tu utilises Claude Code\n\nClaude Code a une commande intégrée : `/remote-control`. Tu la lances sur ton ordi et tu prends la main depuis l'app Claude mobile.\n\n1. Installe l'app **Claude** (iOS / Android), connecte-toi avec le même compte que ton abonnement\n2. Sur ton ordi, dans Claude Code lancé dans ton vault, tape `/remote-control` et suis les instructions\n3. Depuis l'app Claude sur ton téléphone (sidebar gauche, onglet **Code**), envoie tes instructions\n\nTon ordi exécute, ton téléphone reçoit le résultat. Limite : ton ordi doit rester **allumé**, Claude Code **ouvert**, et il faut une connexion Internet des deux côtés.\n\n### Si tu utilises Codex\n\nL'**app ChatGPT** sur ton téléphone pilote à distance tes sessions **Codex** lancées sur ton ordi. Même principe que `/remote-control` côté Claude : l'ordi fait le boulot, le téléphone envoie les instructions.\n\n### Si tu utilises OpenCode (la stack par défaut du bootcamp)\n\nC'est là que le serveur change tout. Comme il est déjà installé, tes sessions OpenCode tournent dessus (pas sur ton Mac qui dort) et tu les pilotes depuis ton téléphone. Le plus simple : l'**interface web de ton serveur** (par exemple `opencode.ton-domaine.com`), que tu ouvres dans ton navigateur mobile et que tu ajoutes à ton écran d'accueil comme une app.\n\nLe setup complet est détaillé dans la leçon dédiée, avec les trois façons de te connecter (interface web sur l'écran d'accueil, Termius en SSH, bot Telegram pour les questions rapides) : [Accès mobile : piloter ton IA à distance →](/plateforme/ia-juillet-2026/semaine-3-acces-mobile).\n\n---\n\n## Checklist\n\n- Obsidian Mobile installé, Sync actif et coffre visible sur mon téléphone\n- Une app de dictée vocale (SuperWhisper, Wispr Flow ou la dictée native) prête à l'emploi\n- J'ai testé : dicter une note dans Obsidian Mobile et la retrouver sur mon ordi\n- Si Claude Code : /remote-control testé depuis l'app Claude mobile (onglet Code)\n- Si Codex : app ChatGPT installée et liée à mes sessions\n- Si OpenCode : session lancée sur le serveur depuis mon téléphone (interface web / Termius / Telegram)",
      "assets": [],
      "links": [
        {
          "text": "Les processus de capture →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-contexte-holistique"
        },
        {
          "text": "Accès mobile : piloter ton IA à distance →",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-3-acces-mobile"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:06:03.966Z",
      "counts": {
        "code_blocks": 5,
        "headings": 7,
        "iframes": 0,
        "images": 0,
        "links": 2,
        "text_chars": 3327
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "29-semaine-1-vectoriser-coffre",
      "order": 29,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Vectoriser ton coffre avec QMD (optionnel)",
      "slug": "semaine-1-vectoriser-coffre",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-vectoriser-coffre",
      "summary": "Installer QMD pour faire de la recherche sémantique dans tout ton vault — retrouver n'importe quelle info en moins d'une seconde.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"vectoriser-ton-coffre-avec-qmd\">Vectoriser ton coffre avec QMD</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Vectoriser son coffre avec QMD</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/dab0cef6d37c4bc98a550b72b5808abf\" title=\"Vectoriser son coffre avec QMD\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Walkthrough : pourquoi vectoriser, install, et comment l'IA fouille dans toutes tes notes d'un coup.</div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Cette leçon est optionnelle.</strong> Ton système fonctionne parfaitement sans cette étape. Mais si tu as un gros coffre (100+ notes) et que tu veux que ton IA puisse fouiller dans toutes tes notes d'un coup, c'est un add-on très puissant.</p>\n</blockquote>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu veux aller plus loin que QMD ?</strong> Si tu as des PDFs, des EPUBs, des docs Word, ou des données à partager en équipe, la section <strong class=\"font-semibold text-foreground\">\"Aller plus loin : le paysage RAG complet\"</strong> en bas de cette leçon présente les autres options.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"le-problème\">Le problème</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand l'IA cherche une info dans ton coffre, elle ouvre des fichiers un par un et les lit en entier. Avec un petit coffre, ça marche. Mais quand tu as des centaines de notes :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Il ne peut lire que <strong class=\"font-semibold text-foreground\">10 à 15 notes</strong> à la fois</li>\n<li class=\"leading-7\">Il gaspille des tokens en lisant des notes entières pour trouver 5% d'info utile</li>\n<li class=\"leading-7\">Il cherche par mots-clés exacts : s'il ne connaît pas le mot, il ne trouve rien</li>\n</ul>\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-solution-la-recherche-sémantique\">La solution : la recherche sémantique</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">QMD</strong> transforme toutes tes notes en <strong class=\"font-semibold text-foreground\">coordonnées mathématiques</strong> (on appelle ça des \"vecteurs\"). Résultat : ton IA peut chercher par <strong class=\"font-semibold text-foreground\">sens</strong>, pas juste par mots-clés, dans toutes tes notes en moins d'une seconde.</p>\n<div class=\"my-8 flex flex-col sm:flex-row gap-4 items-stretch max-w-2xl mx-auto\"><div class=\"flex-1 rounded-xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"font-bold text-zinc-500 mb-2\">Sans QMD</div><div class=\"text-sm text-zinc-500 mb-3\">Recherche : \"gérer mon stress\"</div><div class=\"rounded-lg bg-zinc-100 px-3 py-2 text-xs text-zinc-400 line-through\">Techniques de relaxation pour la prise de parole</div><div class=\"mt-2 text-xs text-red-400\">✗ Aucun résultat (mots différents)</div></div><div class=\"flex-1 rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"font-bold text-emerald-700 mb-2\">Avec QMD</div><div class=\"text-sm text-emerald-600 mb-3\">Recherche : \"gérer mon stress\"</div><div class=\"rounded-lg bg-emerald-100 px-3 py-2 text-xs text-emerald-700 font-medium\">Techniques de relaxation pour la prise de parole</div><div class=\"mt-2 text-xs text-emerald-500\">✓ Trouvé ! (même sens)</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Exemple :</strong> tu cherches \"comment gérer mon stress avant une présentation\". Sans QMD, ton IA ne trouve rien si aucune note ne contient ces mots. Avec QMD, elle trouve ta note \"Techniques de relaxation pour la prise de parole\" parce qu'elle comprend que c'est la même idée.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"avant-vs-après\">Avant vs après</h3>\n<div class=\"my-4 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Sans QMD</th><th class=\"border border-border px-3 py-2 text-left font-semibold bg-muted\">Avec QMD</th></tr></thead><tbody><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">L'IA lit 10-15 notes entières</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">L'IA interroge toutes tes notes</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Recherche par mots-clés uniquement</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Recherche par sens + mots-clés</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Gaspillage de tokens</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">~95% de tokens économisés</td></tr><tr><td class=\"border border-border px-3 py-2 text-muted-foreground\">Lent sur gros coffres</td><td class=\"border border-border px-3 py-2 text-muted-foreground\">Résultats en moins d'une seconde</td></tr></tbody></table></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"prérequis\">Prérequis</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">QMD fait tourner de petits modèles d'IA localement (~2 Go). Il faut une machine correcte :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">RAM :</strong> 8 Go minimum (16 Go recommandé)</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Processeur :</strong> Mac M1+ ou Intel/AMD récent</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">OS :</strong> macOS ou Linux (Windows via WSL2)</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Si ta machine est trop limitée</strong> : pas de panique. Tu pourras toujours l'installer plus tard ou sur ton serveur (semaine 3).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"installation\">Installation</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><img alt=\"Repo GitHub de QMD : moteur de recherche local pour tes documents\" class=\"rounded-lg my-4 max-w-full\" src=\"assets/01-repo-github-de-qmd-moteur-de-recherche-local-pour-tes-documents.png\"></p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre OpenCode dans ton vault et donne-lui ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais que tu m'installes QMD (https://github.com/tobi/qmd) pour\nvectoriser mon coffre Obsidian et pouvoir faire de la recherche sémantique.\n\nInstalle QMD, ajoute mon vault comme collection, lance l'indexation,\net configure le MCP pour que tu puisses l'utiliser directement.\n\nMon vault Obsidian est dans : [CHEMIN DE TON VAULT]\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Remplace <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">[CHEMIN DE TON VAULT]</code> par le chemin réel de ton coffre (par exemple <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/Users/tonnom/Documents/MonVault</code>).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode va :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Installer QMD</li>\n<li class=\"leading-7\">Ajouter ton vault comme collection</li>\n<li class=\"leading-7\">Lancer l'indexation (quelques minutes la première fois)</li>\n<li class=\"leading-7\">Configurer le MCP</li>\n<li class=\"leading-7\">Tester avec une recherche</li>\n</ol>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"utiliser\">Utiliser</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois installé, tu n'as rien de spécial à faire. Quand tu poses une question, ton IA utilise QMD automatiquement pour chercher dans tes notes.</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Retrouve ce que j'ai écrit sur la gestion de projet\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Quel est l'état de mon index QMD ?\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"maintenir-lindex-à-jour\">Maintenir l'index à jour</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quand tu ajoutes ou modifies des notes, il faut mettre à jour l'index. Tu peux soit le faire toi-même (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">qmd embed</code> dans le terminal), soit demander à OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Mets à jour l'index QMD de mon vault\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">QMD ne re-indexe que les fichiers modifiés : c'est rapide.</p>\n<hr class=\"my-8 border-border\">\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"aller-plus-loin-le-paysage-rag-complet\">Aller plus loin : le paysage RAG complet</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">QMD couvre 90% des besoins pour un vault de notes Markdown. Mais il a des limites : il ne gère pas les PDFs, les EPUBs, les fichiers Word, et ce n'est pas conçu pour être partagé en équipe.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Voici une carte du paysage pour que tu saches quoi utiliser selon ta situation.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quand-qmd-ne-suffit-plus\">Quand QMD ne suffit plus</h3>\n\n<div class=\"my-8 rounded-xl border border-zinc-200 overflow-hidden\"><div class=\"grid grid-cols-1 divide-y divide-zinc-200\"><div class=\"grid grid-cols-3 bg-zinc-100 px-5 py-2 text-xs font-semibold text-zinc-500 uppercase tracking-wide\"><div>Situation</div><div>Problème avec QMD</div><div>Solution recommandée</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm\"><div class=\"text-zinc-700\">Gros coffre de notes Markdown</div><div class=\"text-zinc-400\">Aucun : c'est fait pour ça</div><div class=\"text-emerald-600 font-medium\">QMD ✓</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm bg-zinc-50\"><div class=\"text-zinc-700\">PDFs, EPUBs, Word, thèses</div><div class=\"text-zinc-400\">Ne lit que le Markdown</div><div class=\"text-blue-600 font-medium\">Docling → QMD ou Qdrant</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm\"><div class=\"text-zinc-700\">Données partagées en équipe</div><div class=\"text-zinc-400\">Index local seulement</div><div class=\"text-blue-600 font-medium\">Qdrant sur serveur</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm bg-zinc-50\"><div class=\"text-zinc-700\">Relations entre concepts (graphe)</div><div class=\"text-zinc-400\">Recherche vectorielle simple</div><div class=\"text-blue-600 font-medium\">EdgeQuake (Graph-RAG)</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm\"><div class=\"text-zinc-700\">Tout en un (recherche + chat + reco)</div><div class=\"text-zinc-400\">Pas d'interface utilisateur</div><div class=\"text-blue-600 font-medium\">Trieve</div></div><div class=\"grid grid-cols-3 px-5 py-3 text-sm bg-zinc-50\"><div class=\"text-zinc-700\">PDFs uniquement, usage desktop</div><div class=\"text-zinc-400\">Pas d'interface graphique</div><div class=\"text-blue-600 font-medium\">DocuMind</div></div></div></div>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-briques-comprendre-le-pipeline-rag\">Les briques : comprendre le pipeline RAG</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Un système RAG (Retrieval-Augmented Generation) se compose de plusieurs briques. QMD les fait toutes en une, pratique mais limité. Si tu veux aller plus loin, tu peux assembler les briques toi-même.</p>\n\n<div class=\"my-8 flex flex-col items-center gap-0\"><div class=\"w-full max-w-lg rounded-t-xl border-2 border-b-0 border-zinc-200 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-zinc-400 uppercase tracking-wide mb-1\">Étape 1 : Parsing</div><div class=\"text-sm font-bold text-zinc-700\">Convertir les documents en texte</div><div class=\"text-xs text-zinc-500 mt-1\">Docling (IBM) : PDF, EPUB, Word, PowerPoint, images</div></div><div class=\"w-full max-w-lg border-2 border-b-0 border-zinc-200 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-zinc-400 uppercase tracking-wide mb-1\">Étape 2 : Chunking</div><div class=\"text-sm font-bold text-zinc-700\">Découper en morceaux intelligents</div><div class=\"text-xs text-zinc-500 mt-1\">Chunkr : parsing + chunking en un service cloud</div></div><div class=\"w-full max-w-lg border-2 border-b-0 border-zinc-200 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-zinc-400 uppercase tracking-wide mb-1\">Étape 3 : Vectorisation</div><div class=\"text-sm font-bold text-zinc-700\">Transformer en vecteurs</div><div class=\"text-xs text-zinc-500 mt-1\">QMD (local), Qdrant (serveur), pg_vectorize (PostgreSQL)</div></div><div class=\"w-full max-w-lg rounded-b-xl border-2 border-zinc-200 bg-zinc-50 px-5 py-3 text-center\"><div class=\"text-xs font-semibold text-zinc-400 uppercase tracking-wide mb-1\">Étape 4 : Retrieval</div><div class=\"text-sm font-bold text-zinc-700\">Chercher et injecter dans le contexte de l'IA</div><div class=\"text-xs text-zinc-500 mt-1\">MCP QMD, MCP Qdrant, API Trieve</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">QMD fait les étapes 3 et 4 pour du Markdown.</strong> Pour du PDF ou de l'EPUB, il faut d'abord passer par l'étape 1 (Docling) avant.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"les-options-en-détail\">Les options en détail</h3>\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">QMD : Le point d'entrée (ce qu'on vient d'installer)</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> moteur de recherche sémantique local, conçu pour les notes Markdown.\n<strong class=\"font-semibold text-foreground\">Idéal pour :</strong> ton vault Obsidian, uniquement des fichiers <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.md</code>.\n<strong class=\"font-semibold text-foreground\">Limite principale :</strong> ne gère pas les PDFs, EPUBs, fichiers Word.\n<strong class=\"font-semibold text-foreground\">Souveraineté :</strong> 100% local, rien ne quitte ta machine.</p>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Docling : Le convertisseur universel de documents</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> un SDK open-source créé par IBM (maintenant sous LF AI) qui convertit n'importe quel format de document en texte structuré exploitable par un RAG.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Formats supportés :</strong> PDF, EPUB, Word (.docx), PowerPoint (.pptx), images avec OCR, HTML, Markdown.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Le cas d'usage type :</strong> tu as des thèses en PDF, des rapports Word, des livres en EPUB. Tu les passes dans Docling, il ressort du Markdown propre. Tu ingères ce Markdown dans QMD (ou Qdrant).</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Installer Docling\npip install docling\n\n# Convertir un PDF en Markdown\ndocling ma-these.pdf --output ma-these.md\n\n# Convertir un dossier entier\ndocling /dossier/avec/pdfs/ --output /dossier/markdown/\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ensuite, tu ajoutes le dossier Markdown à ton index QMD normalement.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Astuce :</strong> Si tu as des EPUBs à vectoriser, la solution la plus simple reste Docling → Markdown → QMD. Pas besoin de solution RAG plus complexe.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Qdrant : La base vectorielle sur serveur</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> une base de données vectorielle haute performance, open-source, déployable sur ton propre serveur.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Différence avec QMD :</strong> QMD est un index local sur ta machine. Qdrant est une base de données à part entière : plusieurs personnes peuvent l'interroger en même temps, depuis n'importe quelle machine.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Idéal pour :</strong></p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Vectoriser des documents d'équipe accessibles à tous</li>\n<li class=\"leading-7\">Des volumes importants (milliers de documents)</li>\n<li class=\"leading-7\">Intégrer la recherche sémantique dans une app ou un site</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Setup typique :</strong> Qdrant tourne sur ton serveur (via Docker), ton interface IA l'interroge via son MCP.</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Lancer Qdrant avec Docker\ndocker run -p 6333:6333 qdrant/qdrant\n</code></pre></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Chez Perspectives :</strong> Alexandre (dans la discussion) utilise Qdrant sur son serveur pour indexer ses cours en ligne et des livres de biologie. C'est le bon choix dès que tu veux partager l'index avec d'autres personnes.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">pg_vectorize : Si tu as déjà PostgreSQL</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> une extension PostgreSQL qui ajoute la vectorisation directement dans ta base de données.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Idéal pour :</strong> tu as déjà une app avec une base PostgreSQL (Supabase, NocoDB, etc.) et tu veux ajouter de la recherche sémantique sans déployer un nouveau service.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Avantage :</strong> tout reste dans ta base de données existante. Pas de service supplémentaire à gérer.</p>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">EdgeQuake : Graph-RAG pour les cas complexes</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> un système RAG de type \"graphe de connaissances\", écrit en Rust pour la performance.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Différence avec un RAG classique :</strong> un RAG vectoriel cherche \"les chunks les plus proches sémantiquement\". Un Graph-RAG comprend aussi les <strong class=\"font-semibold text-foreground\">relations entre les concepts</strong> : il peut répondre à des questions comme \"quels sont les liens entre le concept A et le concept B dans ma base de connaissance ?\"</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Idéal pour :</strong> des corpus très riches où les connexions entre idées comptent autant que les idées elles-mêmes (bases de connaissance expert, documentation technique dense).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">À retenir :</strong> c'est la solution la plus puissante, mais aussi la plus complexe à mettre en place. À explorer quand QMD ou Qdrant ne suffisent plus.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Stack recommandée par Emmanuel Salomon pour des documents experts :</strong> Docling (parsing) → EdgeQuake (Graph-RAG) → PostgreSQL.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">Trieve : La plateforme RAG clé en main</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> une plateforme full-stack qui combine recherche vectorielle, recommandations et interface de chat. Open-source et auto-hébergeable.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Idéal pour :</strong> tu veux construire un moteur de recherche ou un chatbot basé sur tes documents, avec une interface utilisateur incluse, sans assembler toi-même les briques.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Différence avec Qdrant :</strong> Qdrant est une brique (la base vectorielle). Trieve est un produit complet avec recherche, suggestions, analytics, et API prête à l'emploi.</p>\n<hr class=\"my-8 border-border\">\n<h4 class=\"text-lg font-semibold mt-4 mb-2\">DocuMind : Pour les PDFs en mode desktop</h4>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Ce que c'est :</strong> une application desktop (Mac, Windows, Linux) qui permet de faire du RAG sur des PDFs directement depuis ton ordinateur, sans serveur.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Idéal pour :</strong> tu travailles principalement avec des PDFs et tu veux une interface graphique simple, sans toucher à un terminal.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Limite :</strong> application desktop uniquement, pas de partage en équipe.</p>\n<hr class=\"my-8 border-border\">\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quel-chemin-prendre\">Quel chemin prendre ?</h3>\n\n<div class=\"my-8 space-y-3 max-w-2xl mx-auto\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-4\"><div class=\"text-sm font-bold text-emerald-700 mb-1\">Uniquement des notes Markdown</div><div class=\"text-xs text-emerald-600\">→ <strong>QMD</strong> : c'est déjà fait dans cette leçon.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-4\"><div class=\"text-sm font-bold text-blue-700 mb-1\">PDFs, EPUBs, Word à vectoriser</div><div class=\"text-xs text-blue-600\">→ <strong>Docling</strong> pour convertir en Markdown, puis <strong>QMD</strong> pour indexer. Pipeline en 2 commandes.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-4\"><div class=\"text-sm font-bold text-violet-700 mb-1\">Partager l'index avec une équipe</div><div class=\"text-xs text-violet-600\">→ <strong>Qdrant</strong> sur ton serveur. Partagé, persistant, accessible depuis n'importe quelle machine.</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-4\"><div class=\"text-sm font-bold text-amber-700 mb-1\">Application ou site avec recherche sémantique</div><div class=\"text-xs text-amber-600\">→ <strong>Trieve</strong> (plateforme complète) ou <strong>Qdrant</strong> + ton propre front.</div></div><div class=\"rounded-xl border-2 border-zinc-300 bg-zinc-50 p-4\"><div class=\"text-sm font-bold text-zinc-700 mb-1\">Expertise métier dense avec relations entre concepts</div><div class=\"text-xs text-zinc-600\">→ <strong>Docling → EdgeQuake → PostgreSQL</strong>. La stack la plus puissante, la plus complexe.</div></div></div>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Ma machine a la config minimum (8 Go RAM, Mac M1+ ou équivalent) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Ma machine a la config minimum (8 Go RAM, Mac M1+ ou équivalent)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai demandé à OpenCode d'installer QMD — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai demandé à OpenCode d'installer QMD</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"L'indexation est terminée — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">L'indexation est terminée</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé une recherche dans OpenCode via QMD — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé une recherche dans OpenCode via QMD</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"(Optionnel) J'ai converti mes PDFs/EPUBs avec Docling et indexé le résultat dans QMD — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">(Optionnel) J'ai converti mes PDFs/EPUBs avec Docling et indexé le résultat dans QMD</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"(Optionnel) J'ai déployé Qdrant sur mon serveur pour un index partagé en équipe — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">(Optionnel) J'ai déployé Qdrant sur mon serveur pour un index partagé en équipe</span></li></ul>",
      "content_markdown": "## Vectoriser ton coffre avec QMD\n\nVectoriser son coffre avec QMD\n\nWalkthrough : pourquoi vectoriser, install, et comment l'IA fouille dans toutes tes notes d'un coup.\n\n> Cette leçon est optionnelle. Ton système fonctionne parfaitement sans cette étape. Mais si tu as un gros coffre (100+ notes) et que tu veux que ton IA puisse fouiller dans toutes tes notes d'un coup, c'est un add-on très puissant.\n\n> Tu veux aller plus loin que QMD ? Si tu as des PDFs, des EPUBs, des docs Word, ou des données à partager en équipe, la section \"Aller plus loin : le paysage RAG complet\" en bas de cette leçon présente les autres options.\n\n---\n\n## Le problème\n\nQuand l'IA cherche une info dans ton coffre, elle ouvre des fichiers un par un et les lit en entier. Avec un petit coffre, ça marche. Mais quand tu as des centaines de notes :\n\n- Il ne peut lire que **10 à 15 notes** à la fois\n- Il gaspille des tokens en lisant des notes entières pour trouver 5% d'info utile\n- Il cherche par mots-clés exacts : s'il ne connaît pas le mot, il ne trouve rien\n\n## La solution : la recherche sémantique\n\n**QMD** transforme toutes tes notes en **coordonnées mathématiques** (on appelle ça des \"vecteurs\"). Résultat : ton IA peut chercher par **sens**, pas juste par mots-clés, dans toutes tes notes en moins d'une seconde.\n\nSans QMD\n\nRecherche : \"gérer mon stress\"\n\nTechniques de relaxation pour la prise de parole\n\n✗ Aucun résultat (mots différents)\n\nAvec QMD\n\nRecherche : \"gérer mon stress\"\n\nTechniques de relaxation pour la prise de parole\n\n✓ Trouvé ! (même sens)\n\n**Exemple :** tu cherches \"comment gérer mon stress avant une présentation\". Sans QMD, ton IA ne trouve rien si aucune note ne contient ces mots. Avec QMD, elle trouve ta note \"Techniques de relaxation pour la prise de parole\" parce qu'elle comprend que c'est la même idée.\n\n### Avant vs après\n\n| Sans QMD | Avec QMD |\n| --- | --- |\n| L'IA lit 10-15 notes entières | L'IA interroge toutes tes notes |\n| Recherche par mots-clés uniquement | Recherche par sens + mots-clés |\n| Gaspillage de tokens | ~95% de tokens économisés |\n| Lent sur gros coffres | Résultats en moins d'une seconde |\n\n---\n\n## Prérequis\n\nQMD fait tourner de petits modèles d'IA localement (~2 Go). Il faut une machine correcte :\n\n- **RAM :** 8 Go minimum (16 Go recommandé)\n- **Processeur :** Mac M1+ ou Intel/AMD récent\n- **OS :** macOS ou Linux (Windows via WSL2)\n\n**Si ta machine est trop limitée** : pas de panique. Tu pourras toujours l'installer plus tard ou sur ton serveur (semaine 3).\n\n---\n\n## Installation\n\n![Repo GitHub de QMD : moteur de recherche local pour tes documents](/images/ia-mars-2026/qmd-github.png)\n\nOuvre OpenCode dans ton vault et donne-lui ce prompt :\n\n```\nJ'aimerais que tu m'installes QMD (https://github.com/tobi/qmd) pour\nvectoriser mon coffre Obsidian et pouvoir faire de la recherche sémantique.\n\nInstalle QMD, ajoute mon vault comme collection, lance l'indexation,\net configure le MCP pour que tu puisses l'utiliser directement.\n\nMon vault Obsidian est dans : [CHEMIN DE TON VAULT]\n```\n\nRemplace `[CHEMIN DE TON VAULT]` par le chemin réel de ton coffre (par exemple `/Users/tonnom/Documents/MonVault`).\n\nOpenCode va :\n\n1. Installer QMD\n2. Ajouter ton vault comme collection\n3. Lancer l'indexation (quelques minutes la première fois)\n4. Configurer le MCP\n5. Tester avec une recherche\n\n---\n\n## Utiliser\n\nUne fois installé, tu n'as rien de spécial à faire. Quand tu poses une question, ton IA utilise QMD automatiquement pour chercher dans tes notes.\n\n```\nRetrouve ce que j'ai écrit sur la gestion de projet\n```\n\n```\nQuel est l'état de mon index QMD ?\n```\n\n### Maintenir l'index à jour\n\nQuand tu ajoutes ou modifies des notes, il faut mettre à jour l'index. Tu peux soit le faire toi-même (`qmd embed` dans le terminal), soit demander à OpenCode :\n\n```\nMets à jour l'index QMD de mon vault\n```\n\nQMD ne re-indexe que les fichiers modifiés : c'est rapide.\n\n---\n\n---\n\n## Aller plus loin : le paysage RAG complet\n\nQMD couvre 90% des besoins pour un vault de notes Markdown. Mais il a des limites : il ne gère pas les PDFs, les EPUBs, les fichiers Word, et ce n'est pas conçu pour être partagé en équipe.\n\nVoici une carte du paysage pour que tu saches quoi utiliser selon ta situation.\n\n### Quand QMD ne suffit plus\n\nSituation\n\nProblème avec QMD\n\nSolution recommandée\n\nGros coffre de notes Markdown\n\nAucun : c'est fait pour ça\n\nQMD ✓\n\nPDFs, EPUBs, Word, thèses\n\nNe lit que le Markdown\n\nDocling → QMD ou Qdrant\n\nDonnées partagées en équipe\n\nIndex local seulement\n\nQdrant sur serveur\n\nRelations entre concepts (graphe)\n\nRecherche vectorielle simple\n\nEdgeQuake (Graph-RAG)\n\nTout en un (recherche + chat + reco)\n\nPas d'interface utilisateur\n\nTrieve\n\nPDFs uniquement, usage desktop\n\nPas d'interface graphique\n\nDocuMind\n\n---\n\n### Les briques : comprendre le pipeline RAG\n\nUn système RAG (Retrieval-Augmented Generation) se compose de plusieurs briques. QMD les fait toutes en une, pratique mais limité. Si tu veux aller plus loin, tu peux assembler les briques toi-même.\n\nÉtape 1 : Parsing\n\nConvertir les documents en texte\n\nDocling (IBM) : PDF, EPUB, Word, PowerPoint, images\n\nÉtape 2 : Chunking\n\nDécouper en morceaux intelligents\n\nChunkr : parsing + chunking en un service cloud\n\nÉtape 3 : Vectorisation\n\nTransformer en vecteurs\n\nQMD (local), Qdrant (serveur), pg_vectorize (PostgreSQL)\n\nÉtape 4 : Retrieval\n\nChercher et injecter dans le contexte de l'IA\n\nMCP QMD, MCP Qdrant, API Trieve\n\n**QMD fait les étapes 3 et 4 pour du Markdown.** Pour du PDF ou de l'EPUB, il faut d'abord passer par l'étape 1 (Docling) avant.\n\n---\n\n### Les options en détail\n\n#### QMD : Le point d'entrée (ce qu'on vient d'installer)\n\n**Ce que c'est :** moteur de recherche sémantique local, conçu pour les notes Markdown. **Idéal pour :** ton vault Obsidian, uniquement des fichiers `.md`. **Limite principale :** ne gère pas les PDFs, EPUBs, fichiers Word. **Souveraineté :** 100% local, rien ne quitte ta machine.\n\n---\n\n#### Docling : Le convertisseur universel de documents\n\n**Ce que c'est :** un SDK open-source créé par IBM (maintenant sous LF AI) qui convertit n'importe quel format de document en texte structuré exploitable par un RAG.\n\n**Formats supportés :** PDF, EPUB, Word (.docx), PowerPoint (.pptx), images avec OCR, HTML, Markdown.\n\n**Le cas d'usage type :** tu as des thèses en PDF, des rapports Word, des livres en EPUB. Tu les passes dans Docling, il ressort du Markdown propre. Tu ingères ce Markdown dans QMD (ou Qdrant).\n\n```\n# Installer Docling\npip install docling\n\n# Convertir un PDF en Markdown\ndocling ma-these.pdf --output ma-these.md\n\n# Convertir un dossier entier\ndocling /dossier/avec/pdfs/ --output /dossier/markdown/\n```\n\nEnsuite, tu ajoutes le dossier Markdown à ton index QMD normalement.\n\n> Astuce : Si tu as des EPUBs à vectoriser, la solution la plus simple reste Docling → Markdown → QMD. Pas besoin de solution RAG plus complexe.\n\n---\n\n#### Qdrant : La base vectorielle sur serveur\n\n**Ce que c'est :** une base de données vectorielle haute performance, open-source, déployable sur ton propre serveur.\n\n**Différence avec QMD :** QMD est un index local sur ta machine. Qdrant est une base de données à part entière : plusieurs personnes peuvent l'interroger en même temps, depuis n'importe quelle machine.\n\n**Idéal pour :**\n\n- Vectoriser des documents d'équipe accessibles à tous\n- Des volumes importants (milliers de documents)\n- Intégrer la recherche sémantique dans une app ou un site\n\n**Setup typique :** Qdrant tourne sur ton serveur (via Docker), ton interface IA l'interroge via son MCP.\n\n```\n# Lancer Qdrant avec Docker\ndocker run -p 6333:6333 qdrant/qdrant\n```\n\n> Chez Perspectives : Alexandre (dans la discussion) utilise Qdrant sur son serveur pour indexer ses cours en ligne et des livres de biologie. C'est le bon choix dès que tu veux partager l'index avec d'autres personnes.\n\n---\n\n#### pg_vectorize : Si tu as déjà PostgreSQL\n\n**Ce que c'est :** une extension PostgreSQL qui ajoute la vectorisation directement dans ta base de données.\n\n**Idéal pour :** tu as déjà une app avec une base PostgreSQL (Supabase, NocoDB, etc.) et tu veux ajouter de la recherche sémantique sans déployer un nouveau service.\n\n**Avantage :** tout reste dans ta base de données existante. Pas de service supplémentaire à gérer.\n\n---\n\n#### EdgeQuake : Graph-RAG pour les cas complexes\n\n**Ce que c'est :** un système RAG de type \"graphe de connaissances\", écrit en Rust pour la performance.\n\n**Différence avec un RAG classique :** un RAG vectoriel cherche \"les chunks les plus proches sémantiquement\". Un Graph-RAG comprend aussi les **relations entre les concepts** : il peut répondre à des questions comme \"quels sont les liens entre le concept A et le concept B dans ma base de connaissance ?\"\n\n**Idéal pour :** des corpus très riches où les connexions entre idées comptent autant que les idées elles-mêmes (bases de connaissance expert, documentation technique dense).\n\n**À retenir :** c'est la solution la plus puissante, mais aussi la plus complexe à mettre en place. À explorer quand QMD ou Qdrant ne suffisent plus.\n\n> Stack recommandée par Emmanuel Salomon pour des documents experts : Docling (parsing) → EdgeQuake (Graph-RAG) → PostgreSQL.\n\n---\n\n#### Trieve : La plateforme RAG clé en main\n\n**Ce que c'est :** une plateforme full-stack qui combine recherche vectorielle, recommandations et interface de chat. Open-source et auto-hébergeable.\n\n**Idéal pour :** tu veux construire un moteur de recherche ou un chatbot basé sur tes documents, avec une interface utilisateur incluse, sans assembler toi-même les briques.\n\n**Différence avec Qdrant :** Qdrant est une brique (la base vectorielle). Trieve est un produit complet avec recherche, suggestions, analytics, et API prête à l'emploi.\n\n---\n\n#### DocuMind : Pour les PDFs en mode desktop\n\n**Ce que c'est :** une application desktop (Mac, Windows, Linux) qui permet de faire du RAG sur des PDFs directement depuis ton ordinateur, sans serveur.\n\n**Idéal pour :** tu travailles principalement avec des PDFs et tu veux une interface graphique simple, sans toucher à un terminal.\n\n**Limite :** application desktop uniquement, pas de partage en équipe.\n\n---\n\n### Quel chemin prendre ?\n\nUniquement des notes Markdown\n\n→ **QMD** : c'est déjà fait dans cette leçon.\n\nPDFs, EPUBs, Word à vectoriser\n\n→ **Docling** pour convertir en Markdown, puis **QMD** pour indexer. Pipeline en 2 commandes.\n\nPartager l'index avec une équipe\n\n→ **Qdrant** sur ton serveur. Partagé, persistant, accessible depuis n'importe quelle machine.\n\nApplication ou site avec recherche sémantique\n\n→ **Trieve** (plateforme complète) ou **Qdrant** + ton propre front.\n\nExpertise métier dense avec relations entre concepts\n\n→ **Docling → EdgeQuake → PostgreSQL**. La stack la plus puissante, la plus complexe.\n\n---\n\n- Ma machine a la config minimum (8 Go RAM, Mac M1+ ou équivalent)\n- J'ai demandé à OpenCode d'installer QMD\n- L'indexation est terminée\n- J'ai testé une recherche dans OpenCode via QMD\n- (Optionnel) J'ai converti mes PDFs/EPUBs avec Docling et indexé le résultat dans QMD\n- (Optionnel) J'ai déployé Qdrant sur mon serveur pour un index partagé en équipe",
      "assets": [
        {
          "alt": "Repo GitHub de QMD : moteur de recherche local pour tes documents",
          "original_url": "https://prisme.one/images/ia-mars-2026/qmd-github.png",
          "path": "assets/01-repo-github-de-qmd-moteur-de-recherche-local-pour-tes-documents.png",
          "bytes": 159423,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/dab0cef6d37c4bc98a550b72b5808abf",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Vectoriser son coffre avec QMD",
          "title_source": "iframe-title",
          "video_id": "dab0cef6d37c4bc98a550b72b5808abf",
          "watch_url": "https://www.loom.com/share/dab0cef6d37c4bc98a550b72b5808abf"
        }
      ],
      "captured_at": "2026-08-03T10:06:05.384Z",
      "counts": {
        "code_blocks": 16,
        "headings": 20,
        "iframes": 1,
        "images": 1,
        "links": 0,
        "text_chars": 10455
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "30-semaine-1-google-workspace",
      "order": 30,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Connecter Google Workspace (Gmail, Calendar, Drive)",
      "slug": "semaine-1-google-workspace",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-google-workspace",
      "summary": "Installer et configurer gogcli (openclaw) pour donner à votre IA un accès complet à Gmail, Calendar, Drive, Docs, Sheets, Contacts et Tasks.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"connecter-les-services-google\">Connecter les services Google</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Connecter Google Workspace à ton IA</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/4e7cf6db4c21432087021043d083e37d\" title=\"Connecter Google Workspace à ton IA\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Walkthrough : installer gogcli, autoriser ton compte Google, et lancer les premières commandes (Gmail, Calendar, Sheets, Drive).</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Imagine pouvoir dire à ton IA : « Lis mes emails d'aujourd'hui et résume les urgences », « Quels sont mes rendez-vous cette semaine ? », ou encore « Mets à jour mon Google Sheet avec les chiffres du mois », et qu'elle le fasse vraiment.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est exactement ce que permet <strong class=\"font-semibold text-foreground\"><a href=\"https://github.com/openclaw/gogcli\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">gogcli</a></strong> : un CLI maintenu par la communauté openclaw qui donne à ton IA un accès direct à tous tes services Google via une seule commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gog</code>.</p>\n\n<div class=\"my-6 grid grid-cols-2 md:grid-cols-3 gap-3 max-w-xl mx-auto\"><div class=\"rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">📧</div><div class=\"text-sm font-semibold text-red-700\">Gmail</div><div class=\"text-xs text-red-500\">Lire, trier, envoyer, répondre</div></div><div class=\"rounded-lg border border-blue-200 bg-blue-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">📅</div><div class=\"text-sm font-semibold text-blue-700\">Calendar</div><div class=\"text-xs text-blue-500\">Agenda, créer des événements</div></div><div class=\"rounded-lg border border-green-200 bg-green-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">📁</div><div class=\"text-sm font-semibold text-green-700\">Drive</div><div class=\"text-xs text-green-500\">Chercher, lire, uploader</div></div><div class=\"rounded-lg border border-emerald-200 bg-emerald-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">📊</div><div class=\"text-sm font-semibold text-emerald-700\">Sheets</div><div class=\"text-xs text-emerald-500\">Lire et modifier tes tableaux</div></div><div class=\"rounded-lg border border-indigo-200 bg-indigo-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">📝</div><div class=\"text-sm font-semibold text-indigo-700\">Docs</div><div class=\"text-xs text-indigo-500\">Lire et éditer tes documents</div></div><div class=\"rounded-lg border border-orange-200 bg-orange-50 px-4 py-3 text-center\"><div class=\"text-lg mb-1\">💬</div><div class=\"text-sm font-semibold text-orange-700\">Contacts &amp; Tasks</div><div class=\"text-xs text-orange-500\">Carnet, tâches, todos</div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Concrètement, une fois installé, tu pourras dire à ton IA des choses comme :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">« Lis mes emails d'aujourd'hui et résume les urgences »</li>\n<li class=\"leading-7\">« Crée un brouillon de réponse pour l'email de Jean »</li>\n<li class=\"leading-7\">« Quels sont mes rendez-vous cette semaine ? Y a-t-il des conflits ? »</li>\n<li class=\"leading-7\">« Trouve le fichier X dans mon Drive et résume-le »</li>\n<li class=\"leading-7\">« Mets à jour ce Google Sheet avec les chiffres du mois »</li>\n<li class=\"leading-7\">« Prépare-moi un compte-rendu de standup avec mes tâches récentes »</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"tutoriel-vidéo\">Tutoriel vidéo</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cette vidéo te montre l'installation et la mise en route de gogcli pas à pas. Regarde-la une fois avant de lancer le prompt ci-dessous, ça te donne le tour d'horizon.</p>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Installer gogcli et connecter ses services Google</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.youtube-nocookie.com/embed/D8k0n7DrjGo\" title=\"Installer gogcli et connecter ses services Google\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Le tour complet : install, Google Cloud Console, OAuth, premières commandes.</div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Important :</strong> ce qu'on installe ici, c'est <strong class=\"font-semibold text-foreground\">uniquement <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gogcli</code></strong> (le CLI Google), pas le bundle openclaw en entier. Tu n'as pas besoin de cloner <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">openclaw/openclaw</code>. Une seule commande d'install bien faite suffit. Le prompt ci-dessous le précise à l'IA.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"comment-ça-sinstalle\">Comment ça s'installe ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'installation se fait <strong class=\"font-semibold text-foreground\">avec l'aide de ton IA</strong>. Tu n'as pas besoin de comprendre chaque étape technique : l'IA lit la doc officielle, détecte ton OS, et te guide.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"le-prompt-à-donner-à-lia\">Le prompt à donner à l'IA</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre ton IA dans ton vault et copie-colle ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais installer gogcli (le CLI Google Workspace de openclaw) pour\nconnecter mes services Google (Gmail, Calendar, Drive, Docs, Sheets, Contacts,\nTasks) à mon IA.\n\nIMPORTANT : on installe UNIQUEMENT gogcli, pas le bundle openclaw entier.\nLa doc officielle est ici : https://github.com/openclaw/gogcli\nLa commande binaire s'appelle `gog`.\n\nÉtape 1 : Install\n1. Va lire le README à https://github.com/openclaw/gogcli\n2. Détecte mon OS (macOS / Linux / Windows) et choisis la méthode\n   d'installation la plus simple recommandée par la doc :\n   - macOS : Homebrew (avec le tap openclaw si nécessaire)\n   - Linux : binaire depuis les releases ou source build\n   - Windows : ZIP depuis les releases + ajout au PATH\n3. Installe et vérifie que `gog --version` fonctionne.\n\nÉtape 2 : Setup Google Cloud (côté navigateur)\nGuide-moi pas à pas, en m'attendant à chaque étape, pour :\n1. Créer un projet sur https://console.cloud.google.com (nom : \"Mon IA\")\n2. Activer les APIs : Gmail, Calendar, Drive, Docs, Sheets, Contacts, Tasks.\n   Lien rapide d'activation :\n   https://console.cloud.google.com/apis/enableflow?apiid=gmail.googleapis.com,calendar-json.googleapis.com,drive.googleapis.com,docs.googleapis.com,sheets.googleapis.com,people.googleapis.com,tasks.googleapis.com\n3. Configurer l'écran de consentement OAuth :\n   - Type d'utilisateur : External\n   - Nom de l'app : \"Mon IA\"\n   - Email d'assistance + email développeur : mon adresse Gmail\n   - Utilisateur test : mon adresse Gmail\n4. Créer un identifiant OAuth :\n   - Type : \"Application de bureau\"\n   - Télécharger le fichier JSON dans ~/Downloads/\n\nÉtape 3 : Auth gogcli\n1. Charge le JSON dans gog :\n   `gog auth credentials ~/Downloads/client_secret_*.json`\n2. Authentifie mon compte :\n   `gog auth add MON_EMAIL@gmail.com --services gmail,calendar,drive,docs,sheets,contacts,tasks`\n   (un navigateur s'ouvre, j'accepte)\n3. Vérifie que tout marche :\n   `gog auth doctor --check`\n\nÉtape 4 : Test\nLance une commande simple pour valider :\n`gog calendar agenda --today`\nou\n`gog gmail list --max-results 5`\n\nÀ chaque étape, ATTENDS ma confirmation avant de passer à la suivante.\nSi la doc officielle a évolué depuis ton entraînement, fais confiance à\nla doc (lis-la) plutôt qu'à ta mémoire.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va lire la doc, détecter ton OS, faire les bons choix et te guider clic par clic sur les étapes navigateur.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sécurité\">Sécurité</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Les credentials sont <strong class=\"font-semibold text-foreground\">chiffrés</strong> et stockés dans le keyring de ton OS (Keychain sur macOS, secret-tool sur Linux, Credential Manager sur Windows).</li>\n<li class=\"leading-7\">Tu peux <strong class=\"font-semibold text-foreground\">révoquer l'accès</strong> à tout moment depuis <a href=\"https://myaccount.google.com/permissions\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">myaccount.google.com/permissions</a>.</li>\n<li class=\"leading-7\">L'IA ne peut utiliser que les APIs que <strong class=\"font-semibold text-foreground\">tu</strong> as activées dans Google Cloud Console.</li>\n<li class=\"leading-7\">Tu peux ajouter ou enlever des services après coup avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gog auth add</code> / <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gog auth remove</code>.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai regardé la vidéo tutoriel — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai regardé la vidéo tutoriel</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai donné le prompt d'installation à l'IA — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai donné le prompt d'installation à l'IA</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"gogcli est installé et `gog --version` répond — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">gogcli est installé et `gog --version` répond</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé un projet Google Cloud — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé un projet Google Cloud</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai activé les APIs (Gmail, Calendar, Drive, Docs, Sheets, Contacts, Tasks) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai activé les APIs (Gmail, Calendar, Drive, Docs, Sheets, Contacts, Tasks)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai configuré l'écran de consentement OAuth — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai configuré l'écran de consentement OAuth</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai créé un OAuth Desktop, téléchargé le JSON et lancé `gog auth credentials` — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai créé un OAuth Desktop, téléchargé le JSON et lancé `gog auth credentials`</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai lancé `gog auth add MON_EMAIL --services ...` et accepté dans le navigateur — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai lancé `gog auth add MON_EMAIL --services ...` et accepté dans le navigateur</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"`gog auth doctor --check` est tout vert — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">`gog auth doctor --check` est tout vert</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé avec `gog calendar agenda --today` ou `gog gmail list` — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé avec `gog calendar agenda --today` ou `gog gmail list`</span></li></ul>",
      "content_markdown": "## Connecter les services Google\n\nConnecter Google Workspace à ton IA\n\nWalkthrough : installer gogcli, autoriser ton compte Google, et lancer les premières commandes (Gmail, Calendar, Sheets, Drive).\n\nImagine pouvoir dire à ton IA : « Lis mes emails d'aujourd'hui et résume les urgences », « Quels sont mes rendez-vous cette semaine ? », ou encore « Mets à jour mon Google Sheet avec les chiffres du mois », et qu'elle le fasse vraiment.\n\nC'est exactement ce que permet **[gogcli](https://github.com/openclaw/gogcli)** : un CLI maintenu par la communauté openclaw qui donne à ton IA un accès direct à tous tes services Google via une seule commande `gog`.\n\n📧\n\nGmail\n\nLire, trier, envoyer, répondre\n\n📅\n\nCalendar\n\nAgenda, créer des événements\n\n📁\n\nDrive\n\nChercher, lire, uploader\n\n📊\n\nSheets\n\nLire et modifier tes tableaux\n\n📝\n\nDocs\n\nLire et éditer tes documents\n\n💬\n\nContacts & Tasks\n\nCarnet, tâches, todos\n\nConcrètement, une fois installé, tu pourras dire à ton IA des choses comme :\n\n- « Lis mes emails d'aujourd'hui et résume les urgences »\n- « Crée un brouillon de réponse pour l'email de Jean »\n- « Quels sont mes rendez-vous cette semaine ? Y a-t-il des conflits ? »\n- « Trouve le fichier X dans mon Drive et résume-le »\n- « Mets à jour ce Google Sheet avec les chiffres du mois »\n- « Prépare-moi un compte-rendu de standup avec mes tâches récentes »\n\n---\n\n## Tutoriel vidéo\n\nCette vidéo te montre l'installation et la mise en route de gogcli pas à pas. Regarde-la une fois avant de lancer le prompt ci-dessous, ça te donne le tour d'horizon.\n\nInstaller gogcli et connecter ses services Google\n\nLe tour complet : install, Google Cloud Console, OAuth, premières commandes.\n\n> Important : ce qu'on installe ici, c'est uniquement gogcli (le CLI Google), pas le bundle openclaw en entier. Tu n'as pas besoin de cloner openclaw/openclaw. Une seule commande d'install bien faite suffit. Le prompt ci-dessous le précise à l'IA.\n\n---\n\n## Comment ça s'installe ?\n\nL'installation se fait **avec l'aide de ton IA**. Tu n'as pas besoin de comprendre chaque étape technique : l'IA lit la doc officielle, détecte ton OS, et te guide.\n\n### Le prompt à donner à l'IA\n\nOuvre ton IA dans ton vault et copie-colle ce prompt :\n\n```\nJ'aimerais installer gogcli (le CLI Google Workspace de openclaw) pour\nconnecter mes services Google (Gmail, Calendar, Drive, Docs, Sheets, Contacts,\nTasks) à mon IA.\n\nIMPORTANT : on installe UNIQUEMENT gogcli, pas le bundle openclaw entier.\nLa doc officielle est ici : https://github.com/openclaw/gogcli\nLa commande binaire s'appelle `gog`.\n\nÉtape 1 : Install\n1. Va lire le README à https://github.com/openclaw/gogcli\n2. Détecte mon OS (macOS / Linux / Windows) et choisis la méthode\n   d'installation la plus simple recommandée par la doc :\n   - macOS : Homebrew (avec le tap openclaw si nécessaire)\n   - Linux : binaire depuis les releases ou source build\n   - Windows : ZIP depuis les releases + ajout au PATH\n3. Installe et vérifie que `gog --version` fonctionne.\n\nÉtape 2 : Setup Google Cloud (côté navigateur)\nGuide-moi pas à pas, en m'attendant à chaque étape, pour :\n1. Créer un projet sur https://console.cloud.google.com (nom : \"Mon IA\")\n2. Activer les APIs : Gmail, Calendar, Drive, Docs, Sheets, Contacts, Tasks.\n   Lien rapide d'activation :\n   https://console.cloud.google.com/apis/enableflow?apiid=gmail.googleapis.com,calendar-json.googleapis.com,drive.googleapis.com,docs.googleapis.com,sheets.googleapis.com,people.googleapis.com,tasks.googleapis.com\n3. Configurer l'écran de consentement OAuth :\n   - Type d'utilisateur : External\n   - Nom de l'app : \"Mon IA\"\n   - Email d'assistance + email développeur : mon adresse Gmail\n   - Utilisateur test : mon adresse Gmail\n4. Créer un identifiant OAuth :\n   - Type : \"Application de bureau\"\n   - Télécharger le fichier JSON dans ~/Downloads/\n\nÉtape 3 : Auth gogcli\n1. Charge le JSON dans gog :\n   `gog auth credentials ~/Downloads/client_secret_*.json`\n2. Authentifie mon compte :\n   `gog auth add MON_EMAIL@gmail.com --services gmail,calendar,drive,docs,sheets,contacts,tasks`\n   (un navigateur s'ouvre, j'accepte)\n3. Vérifie que tout marche :\n   `gog auth doctor --check`\n\nÉtape 4 : Test\nLance une commande simple pour valider :\n`gog calendar agenda --today`\nou\n`gog gmail list --max-results 5`\n\nÀ chaque étape, ATTENDS ma confirmation avant de passer à la suivante.\nSi la doc officielle a évolué depuis ton entraînement, fais confiance à\nla doc (lis-la) plutôt qu'à ta mémoire.\n```\n\nL'IA va lire la doc, détecter ton OS, faire les bons choix et te guider clic par clic sur les étapes navigateur.\n\n---\n\n## Sécurité\n\n- Les credentials sont **chiffrés** et stockés dans le keyring de ton OS (Keychain sur macOS, secret-tool sur Linux, Credential Manager sur Windows).\n- Tu peux **révoquer l'accès** à tout moment depuis [myaccount.google.com/permissions](https://myaccount.google.com/permissions).\n- L'IA ne peut utiliser que les APIs que **tu** as activées dans Google Cloud Console.\n- Tu peux ajouter ou enlever des services après coup avec `gog auth add` / `gog auth remove`.\n\n---\n\n- J'ai regardé la vidéo tutoriel\n- J'ai donné le prompt d'installation à l'IA\n- gogcli est installé et `gog --version` répond\n- J'ai créé un projet Google Cloud\n- J'ai activé les APIs (Gmail, Calendar, Drive, Docs, Sheets, Contacts, Tasks)\n- J'ai configuré l'écran de consentement OAuth\n- J'ai créé un OAuth Desktop, téléchargé le JSON et lancé `gog auth credentials`\n- J'ai lancé `gog auth add MON_EMAIL --services ...` et accepté dans le navigateur\n- `gog auth doctor --check` est tout vert\n- J'ai testé avec `gog calendar agenda --today` ou `gog gmail list`",
      "assets": [],
      "links": [
        {
          "text": "gogcli",
          "url": "https://github.com/openclaw/gogcli"
        },
        {
          "text": "myaccount.google.com/permissions",
          "url": "https://myaccount.google.com/permissions"
        }
      ],
      "videos": [
        {
          "duration": null,
          "embed_url": "https://www.loom.com/embed/4e7cf6db4c21432087021043d083e37d",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Connecter Google Workspace à ton IA",
          "title_source": "iframe-title",
          "video_id": "4e7cf6db4c21432087021043d083e37d",
          "watch_url": "https://www.loom.com/share/4e7cf6db4c21432087021043d083e37d"
        },
        {
          "duration": null,
          "embed_url": "https://www.youtube-nocookie.com/embed/D8k0n7DrjGo",
          "placement_index": 2,
          "provider": "YouTube",
          "title": "Installer gogcli et connecter ses services Google",
          "title_source": "iframe-title",
          "video_id": "D8k0n7DrjGo",
          "watch_url": "https://www.youtube.com/watch?v=D8k0n7DrjGo"
        }
      ],
      "captured_at": "2026-08-03T10:06:07.158Z",
      "counts": {
        "code_blocks": 7,
        "headings": 5,
        "iframes": 2,
        "images": 0,
        "links": 2,
        "text_chars": 5348
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "31-semaine-1-beeper",
      "order": 31,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Centraliser tes messages avec Beeper (WhatsApp, Insta, Telegram, LinkedIn...)",
      "slug": "semaine-1-beeper",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-beeper",
      "summary": "Donner à ton IA un accès à tous tes messages (WhatsApp, Instagram, Telegram, Signal, Messenger, LinkedIn, Discord, Slack...) via le MCP officiel Beeper Desktop. Triage matinal, recherche transverse, drafts dans ton style, détection des relances.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"connecter-tous-tes-messages-avec-beeper-whatsapp-instagram-t\">Connecter tous tes messages avec Beeper (WhatsApp, Instagram, Telegram, LinkedIn, Slack...)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tes messages sont dispersés sur 10 apps : WhatsApp, Instagram, Telegram, Signal, Messenger, LinkedIn, X, Google Messages, Discord, Slack. Pour ton IA, c'est l'enfer. Elle ne peut rien faire de centralisé : tu dois copier-coller, switcher d'app, perdre du temps.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Beeper</strong> résout ce problème en amont (côté humain) <strong class=\"font-semibold text-foreground\">et</strong> côté IA. C'est une app desktop qui agrège toutes tes conversations dans une seule interface, et qui expose un <strong class=\"font-semibold text-foreground\">MCP officiel</strong> pour que ton IA puisse lire, chercher et répondre dans n'importe lequel de ces canaux.</p>\n<div class=\"my-6 rounded-2xl border-2 border-indigo-200 bg-gradient-to-br from-indigo-50 to-violet-50 p-6 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-indigo-600 mb-2\">Beeper</div><div class=\"text-2xl font-bold text-indigo-900 mb-3\">One inbox for all your chats</div><p class=\"text-sm text-indigo-900/80 max-w-md mx-auto\">Une seule app desktop qui regroupe WhatsApp, Instagram, Messenger, Telegram, Signal, LinkedIn, Slack, Discord, X, Google Messages, Google Chat, Google Voice. Et un MCP local qui expose le tout à ton IA.</p><div class=\"mt-4 text-xs text-indigo-700\"><a href=\"https://www.beeper.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-semibold\">beeper.com</a></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pourquoi-cest-puissant\">Pourquoi c'est puissant</h2>\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-4 text-center mb-3\"><div class=\"text-lg font-bold text-blue-700\">OpenCode (ou Claude Code)</div><div class=\"text-sm text-blue-500 mt-1\">Ton IA, dans son interface habituelle</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-6 py-3 text-center mb-3\"><div class=\"text-sm font-semibold text-zinc-600\">MCP Beeper Desktop (local)</div><div class=\"text-xs text-zinc-400 mt-1\">Tourne sur ton ordi, jamais dans le cloud</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"grid grid-cols-3 sm:grid-cols-4 gap-2\"><div class=\"rounded-lg border border-emerald-200 bg-emerald-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-emerald-700\">WhatsApp</div></div><div class=\"rounded-lg border border-blue-200 bg-blue-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-blue-700\">Messenger</div></div><div class=\"rounded-lg border border-purple-200 bg-purple-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-purple-700\">Instagram</div></div><div class=\"rounded-lg border border-sky-200 bg-sky-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-sky-700\">Telegram</div></div><div class=\"rounded-lg border border-violet-200 bg-violet-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-violet-700\">Signal</div></div><div class=\"rounded-lg border border-amber-200 bg-amber-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-amber-700\">LinkedIn</div></div><div class=\"rounded-lg border border-zinc-200 bg-zinc-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-zinc-700\">Slack</div></div><div class=\"rounded-lg border border-indigo-200 bg-indigo-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-indigo-700\">+ Discord, X, Google Chat...</div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tout ça est exposé via un <strong class=\"font-semibold text-foreground\">seul MCP</strong> que ton IA peut interroger : \"Liste mes messages WhatsApp non lus\", \"Cherche dans toutes mes convos LinkedIn celles qui parlent du projet X\", \"Réponds à ce message Instagram dans mon style\". Sans switcher d'app, sans copier-coller.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-typiques\">Cas d'usage typiques</h2>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Triage matinal</div><div class=\"text-sm font-bold text-emerald-900 mb-2\">\"Résume tous mes messages non lus de la nuit, regroupe par conversation et priorise.\"</div><div class=\"text-xs text-emerald-700/80\">Ton IA fait le tri sur 8 apps en parallèle pendant que tu prends ton café.</div></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Recherche transverse</div><div class=\"text-sm font-bold text-blue-900 mb-2\">\"Trouve dans toutes mes convos le dernier échange avec Sophie sur le projet X.\"</div><div class=\"text-xs text-blue-700/80\">Peu importe sur quelle app vous vous écriviez : WhatsApp ce mois-ci, LinkedIn le mois passé, l'IA trouve.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Drafts dans ton style</div><div class=\"text-sm font-bold text-violet-900 mb-2\">\"Drafte une réponse à ce DM Instagram dans mon style habituel pour cette personne.\"</div><div class=\"text-xs text-violet-700/80\">L'IA lit l'historique de la conversation pour caler le ton, puis te propose un draft à valider avant envoi.</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Relances</div><div class=\"text-sm font-bold text-amber-900 mb-2\">\"Liste les personnes à qui j'ai écrit la dernière fois et qui n'ont pas répondu depuis 7 jours.\"</div><div class=\"text-xs text-amber-700/80\">Tu détectes ce qui s'est perdu et tu peux relancer automatiquement (avec validation, évidemment).</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"installation\">Installation</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"étape-1-installer-beeper-desktop\">Étape 1 : Installer Beeper Desktop</h3>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Va sur <a href=\"https://beeper.com/download\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">beeper.com/download</a></li>\n<li class=\"leading-7\">Télécharge l'app pour ton OS (macOS, Windows, Linux)</li>\n<li class=\"leading-7\">Crée un compte (gratuit) et connecte tes apps de messagerie une par une (WhatsApp via QR code, Instagram via login, etc.)</li>\n<li class=\"leading-7\">Vérifie que tes messages remontent bien dans Beeper</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Coût :</strong> Beeper est <strong class=\"font-semibold text-foreground\">gratuit</strong>. Une option <strong class=\"font-semibold text-foreground\">Premium (10 $/mois)</strong> débloque les fonctions IA on-device et quelques bonus, mais pas nécessaire pour utiliser le MCP.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"étape-2-activer-lapi-mcp-local\">Étape 2 : Activer l'API + MCP local</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'API et le MCP sont <strong class=\"font-semibold text-foreground\">intégrés à Beeper Desktop</strong>, mais en mode <strong class=\"font-semibold text-foreground\">experimental</strong>. Tu dois les activer dans les paramètres :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Dans Beeper Desktop, ouvre <strong class=\"font-semibold text-foreground\">Settings</strong></li>\n<li class=\"leading-7\">Va dans <strong class=\"font-semibold text-foreground\">Advanced</strong> → <strong class=\"font-semibold text-foreground\">Desktop API</strong></li>\n<li class=\"leading-7\">Active l'API locale et copie le <strong class=\"font-semibold text-foreground\">token d'accès</strong> généré</li>\n<li class=\"leading-7\">Note l'URL locale (par défaut <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">http://localhost:23373</code>)</li>\n</ol>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"étape-3-connecter-à-opencode-ou-claude-code-via-connect-mcp\">Étape 3 : Connecter à OpenCode (ou Claude Code) via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans ton IA, tape :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/connect-mcp beeper\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le skill va te demander le token de l'étape 2 et patcher ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code> (ou ta config Claude Code). Tu peux aussi le faire à la main :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"mcp\": {\n    \"beeper\": {\n      \"type\": \"remote\",\n      \"url\": \"http://localhost:23373/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer TON_TOKEN_BEEPER\"\n      },\n      \"enabled\": true\n    }\n  }\n}\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"étape-4-tester\">Étape 4 : Tester</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Liste mes 10 derniers messages reçus, toutes apps confondues.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu vois des résultats réels, c'est gagné. Sinon, vérifie que Beeper Desktop est <strong class=\"font-semibold text-foreground\">bien ouvert</strong> (le MCP n'existe que quand l'app tourne).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"important-confidentialité\">Important : confidentialité</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Beeper, c'est tes messages. Ce qu'il y a de plus sensible.</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Le MCP tourne 100 % en local.</strong> Tes messages ne quittent jamais ta machine pour aller chez Beeper, ni chez nous.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">MAIS quand ton IA interroge le MCP, le contenu des messages part chez ton modèle.</strong> Si tu utilises ChatGPT Plus ou Claude.ai, OpenAI/Anthropic reçoivent tes messages dans la requête. Pour ce type d'usage, route plutôt via <strong class=\"font-semibold text-foreground\">OpenRouter en mode Privacy</strong> avec un modèle ZDR (DeepSeek V4 Flash, GLM 5.2). Voir <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Désactive l'auto-tool-use</strong> dans OpenCode pour ces requêtes : tu veux valider à la main avant que l'IA fasse une recherche dans WhatsApp ou envoie un message en ton nom.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"alternative-mcp-communautaire\">Alternative : MCP communautaire</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu n'as pas envie d'activer l'API Beeper \"experimental\", il existe un MCP communautaire : <a href=\"https://github.com/tetmin/mcp-beeper-texts\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">github.com/tetmin/mcp-beeper-texts</a> (Node.js, install via npm). Mêmes fonctionnalités sur WhatsApp/Telegram/Signal/Insta/X/LinkedIn, install et auth indépendantes du flow officiel. Choix valable si tu veux un setup plus stable et open source.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé Beeper Desktop et connecté mes apps de messagerie — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé Beeper Desktop et connecté mes apps de messagerie</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai activé l'API locale dans Beeper et récupéré le token — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai activé l'API locale dans Beeper et récupéré le token</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai connecté le MCP Beeper dans OpenCode (via /connect-mcp ou config manuelle) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai connecté le MCP Beeper dans OpenCode (via /connect-mcp ou config manuelle)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé une requête simple (liste messages, recherche conversation) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé une requête simple (liste messages, recherche conversation)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que pour des messages sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que pour des messages sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus</span></li></ul>",
      "content_markdown": "## Connecter tous tes messages avec Beeper (WhatsApp, Instagram, Telegram, LinkedIn, Slack...)\n\nTes messages sont dispersés sur 10 apps : WhatsApp, Instagram, Telegram, Signal, Messenger, LinkedIn, X, Google Messages, Discord, Slack. Pour ton IA, c'est l'enfer. Elle ne peut rien faire de centralisé : tu dois copier-coller, switcher d'app, perdre du temps.\n\n**Beeper** résout ce problème en amont (côté humain) **et** côté IA. C'est une app desktop qui agrège toutes tes conversations dans une seule interface, et qui expose un **MCP officiel** pour que ton IA puisse lire, chercher et répondre dans n'importe lequel de ces canaux.\n\nBeeper\n\nOne inbox for all your chats\n\nUne seule app desktop qui regroupe WhatsApp, Instagram, Messenger, Telegram, Signal, LinkedIn, Slack, Discord, X, Google Messages, Google Chat, Google Voice. Et un MCP local qui expose le tout à ton IA.\n\n[beeper.com](https://www.beeper.com)\n\n---\n\n## Pourquoi c'est puissant\n\nOpenCode (ou Claude Code)\n\nTon IA, dans son interface habituelle\n\nMCP Beeper Desktop (local)\n\nTourne sur ton ordi, jamais dans le cloud\n\nWhatsApp\n\nMessenger\n\nInstagram\n\nTelegram\n\nSignal\n\nLinkedIn\n\nSlack\n\n+ Discord, X, Google Chat...\n\nTout ça est exposé via un **seul MCP** que ton IA peut interroger : \"Liste mes messages WhatsApp non lus\", \"Cherche dans toutes mes convos LinkedIn celles qui parlent du projet X\", \"Réponds à ce message Instagram dans mon style\". Sans switcher d'app, sans copier-coller.\n\n---\n\n## Cas d'usage typiques\n\nTriage matinal\n\n\"Résume tous mes messages non lus de la nuit, regroupe par conversation et priorise.\"\n\nTon IA fait le tri sur 8 apps en parallèle pendant que tu prends ton café.\n\nRecherche transverse\n\n\"Trouve dans toutes mes convos le dernier échange avec Sophie sur le projet X.\"\n\nPeu importe sur quelle app vous vous écriviez : WhatsApp ce mois-ci, LinkedIn le mois passé, l'IA trouve.\n\nDrafts dans ton style\n\n\"Drafte une réponse à ce DM Instagram dans mon style habituel pour cette personne.\"\n\nL'IA lit l'historique de la conversation pour caler le ton, puis te propose un draft à valider avant envoi.\n\nRelances\n\n\"Liste les personnes à qui j'ai écrit la dernière fois et qui n'ont pas répondu depuis 7 jours.\"\n\nTu détectes ce qui s'est perdu et tu peux relancer automatiquement (avec validation, évidemment).\n\n---\n\n## Installation\n\n### Étape 1 : Installer Beeper Desktop\n\n1. Va sur [beeper.com/download](https://beeper.com/download)\n2. Télécharge l'app pour ton OS (macOS, Windows, Linux)\n3. Crée un compte (gratuit) et connecte tes apps de messagerie une par une (WhatsApp via QR code, Instagram via login, etc.)\n4. Vérifie que tes messages remontent bien dans Beeper\n\n**Coût :** Beeper est **gratuit**. Une option **Premium (10 $/mois)** débloque les fonctions IA on-device et quelques bonus, mais pas nécessaire pour utiliser le MCP.\n\n### Étape 2 : Activer l'API + MCP local\n\nL'API et le MCP sont **intégrés à Beeper Desktop**, mais en mode **experimental**. Tu dois les activer dans les paramètres :\n\n1. Dans Beeper Desktop, ouvre **Settings**\n2. Va dans **Advanced** → **Desktop API**\n3. Active l'API locale et copie le **token d'accès** généré\n4. Note l'URL locale (par défaut `http://localhost:23373`)\n\n### Étape 3 : Connecter à OpenCode (ou Claude Code) via `/connect-mcp`\n\nDans ton IA, tape :\n\n```\n/connect-mcp beeper\n```\n\nLe skill va te demander le token de l'étape 2 et patcher ton `opencode.json` (ou ta config Claude Code). Tu peux aussi le faire à la main :\n\n```\n{\n  \"mcp\": {\n    \"beeper\": {\n      \"type\": \"remote\",\n      \"url\": \"http://localhost:23373/mcp\",\n      \"headers\": {\n        \"Authorization\": \"Bearer TON_TOKEN_BEEPER\"\n      },\n      \"enabled\": true\n    }\n  }\n}\n```\n\n### Étape 4 : Tester\n\nDans OpenCode :\n\n```\nListe mes 10 derniers messages reçus, toutes apps confondues.\n```\n\nSi tu vois des résultats réels, c'est gagné. Sinon, vérifie que Beeper Desktop est **bien ouvert** (le MCP n'existe que quand l'app tourne).\n\n---\n\n## Important : confidentialité\n\nBeeper, c'est tes messages. Ce qu'il y a de plus sensible.\n\n- **Le MCP tourne 100 % en local.** Tes messages ne quittent jamais ta machine pour aller chez Beeper, ni chez nous.\n- **MAIS quand ton IA interroge le MCP, le contenu des messages part chez ton modèle.** Si tu utilises ChatGPT Plus ou Claude.ai, OpenAI/Anthropic reçoivent tes messages dans la requête. Pour ce type d'usage, route plutôt via **OpenRouter en mode Privacy** avec un modèle ZDR (DeepSeek V4 Flash, GLM 5.2). Voir [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite).\n- **Désactive l'auto-tool-use** dans OpenCode pour ces requêtes : tu veux valider à la main avant que l'IA fasse une recherche dans WhatsApp ou envoie un message en ton nom.\n\n---\n\n## Alternative : MCP communautaire\n\nSi tu n'as pas envie d'activer l'API Beeper \"experimental\", il existe un MCP communautaire : [github.com/tetmin/mcp-beeper-texts](https://github.com/tetmin/mcp-beeper-texts) (Node.js, install via npm). Mêmes fonctionnalités sur WhatsApp/Telegram/Signal/Insta/X/LinkedIn, install et auth indépendantes du flow officiel. Choix valable si tu veux un setup plus stable et open source.\n\n---\n\n- J'ai installé Beeper Desktop et connecté mes apps de messagerie\n- J'ai activé l'API locale dans Beeper et récupéré le token\n- J'ai connecté le MCP Beeper dans OpenCode (via /connect-mcp ou config manuelle)\n- J'ai testé une requête simple (liste messages, recherche conversation)\n- Je sais que pour des messages sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus",
      "assets": [],
      "links": [
        {
          "text": "beeper.com",
          "url": "https://www.beeper.com/"
        },
        {
          "text": "beeper.com/download",
          "url": "https://beeper.com/download"
        },
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "github.com/tetmin/mcp-beeper-texts",
          "url": "https://github.com/tetmin/mcp-beeper-texts"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:06:08.518Z",
      "counts": {
        "code_blocks": 9,
        "headings": 10,
        "iframes": 0,
        "images": 0,
        "links": 4,
        "text_chars": 5061
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "32-semaine-1-microsoft-365",
      "order": 32,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Connecter Microsoft 365 (Outlook, OneDrive, Teams, Excel)",
      "slug": "semaine-1-microsoft-365",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-microsoft-365",
      "summary": "Donner à ton IA un accès complet à toute la suite Microsoft (mail Outlook, calendrier, OneDrive, SharePoint, Teams, Excel, OneNote, Tasks) via le MCP ms-365-mcp-server (90+ tools sur la Graph API officielle). Setup en 2 minutes avec /connect-mcp, compte perso ou Entra ID d'entreprise.",
      "objective": "Si ton tenant exige une app interne, ton admin doit créer une app registration Entra ID (type \"Mobile and desktop applications\"), te fournir CLIENT_ID et TENANT_ID, et accorder les permissions Graph dont tu as besoin (Mail.ReadWrite, Calendars.ReadWrite, Files.ReadWrite, etc.). Tu les passes en variables d'env au serveur.",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"connecter-microsoft-365-outlook-onedrive-teams-excel-sharepo\">Connecter Microsoft 365 (Outlook, OneDrive, Teams, Excel, SharePoint)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si ton travail tourne autour de la suite Microsoft (mail Outlook, fichiers OneDrive, réunions Teams, fichiers SharePoint, Excel, OneNote, Tasks/Planner), tu veux que ton IA puisse y accéder directement. Pas via du copier-coller, pas via des exports manuels. Directement, comme elle accède à ton coffre Obsidian.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est exactement ce que fait le MCP <strong class=\"font-semibold text-foreground\">Microsoft 365 (ms-365-mcp-server)</strong> : un MCP open source qui parle à toute la suite Microsoft via la Graph API officielle. 90+ tools, un seul plug-in, et ton IA gère tes mails, tes events, tes fichiers et tes feuilles Excel pour toi.</p>\n<div class=\"my-6 rounded-2xl border-2 border-sky-200 bg-gradient-to-br from-sky-50 to-blue-50 p-6 text-center\"><div class=\"text-xs font-semibold uppercase tracking-wider text-sky-600 mb-2\">ms-365-mcp-server (Softeria)</div><div class=\"text-2xl font-bold text-sky-900 mb-3\">A Model Context Protocol server for Microsoft 365 and Office services</div><p class=\"text-sm text-sky-900/80 max-w-md mx-auto\">Open source, gratuit, 90+ tools sur toute la suite Microsoft 365 via la Graph API officielle. Compte perso (outlook.com, hotmail) ou compte d'entreprise (Entra ID).</p><div class=\"mt-4 text-xs text-sky-700\"><a href=\"https://github.com/Softeria/ms-365-mcp-server\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline font-semibold\">github.com/Softeria/ms-365-mcp-server</a></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"ce-que-ça-débloque-concrètement\">Ce que ça débloque concrètement</h2>\n<div class=\"my-8 flex flex-col items-center\"><div class=\"w-full max-w-xl\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 px-6 py-4 text-center mb-3\"><div class=\"text-lg font-bold text-blue-700\">OpenCode (ou Claude Code)</div><div class=\"text-sm text-blue-500 mt-1\">Ton IA, dans son interface habituelle</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 px-6 py-3 text-center mb-3\"><div class=\"text-sm font-semibold text-zinc-600\">ms-365-mcp-server</div><div class=\"text-xs text-zinc-400 mt-1\">Le pont vers Microsoft Graph API</div></div><div class=\"flex justify-center mb-3\"><div class=\"h-6 w-px bg-zinc-300\"></div></div><div class=\"grid grid-cols-2 sm:grid-cols-4 gap-2\"><div class=\"rounded-lg border border-blue-200 bg-blue-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-blue-700\">Outlook</div><div class=\"text-[10px] text-blue-500\">Mail + Calendar</div></div><div class=\"rounded-lg border border-emerald-200 bg-emerald-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-emerald-700\">OneDrive</div><div class=\"text-[10px] text-emerald-500\">Fichiers</div></div><div class=\"rounded-lg border border-violet-200 bg-violet-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-violet-700\">Teams</div><div class=\"text-[10px] text-violet-500\">Chats + meetings</div></div><div class=\"rounded-lg border border-amber-200 bg-amber-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-amber-700\">SharePoint</div><div class=\"text-[10px] text-amber-500\">Sites + drives</div></div><div class=\"rounded-lg border border-emerald-200 bg-emerald-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-emerald-700\">Excel</div><div class=\"text-[10px] text-emerald-500\">Lecture + écriture</div></div><div class=\"rounded-lg border border-purple-200 bg-purple-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-purple-700\">OneNote</div><div class=\"text-[10px] text-purple-500\">Pages + sections</div></div><div class=\"rounded-lg border border-rose-200 bg-rose-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-rose-700\">Tasks</div><div class=\"text-[10px] text-rose-500\">To Do + Planner</div></div><div class=\"rounded-lg border border-zinc-200 bg-zinc-50/50 px-3 py-2 text-center\"><div class=\"text-xs font-medium text-zinc-700\">Contacts</div><div class=\"text-[10px] text-zinc-500\">Annuaire</div></div></div></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est exactement la contrepartie Microsoft de la leçon <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../30-semaine-1-google-workspace/semaine-1-google-workspace.html\">Connecter Google Workspace</a>. Si tu vis dans l'écosystème Microsoft, c'est ce MCP que tu installes.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-typiques\">Cas d'usage typiques</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois branché, ton IA peut faire ce genre de choses sans que tu sortes d'OpenCode :</p>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Mail Outlook</div><div class=\"text-sm font-bold text-blue-900 mb-2\">\"Résume mes 20 derniers mails non lus, regroupe par sujet, et propose un brouillon de réponse pour les 3 urgents.\"</div><div class=\"text-xs text-blue-700/80\">L'IA lit ton inbox, classifie, drafte des réponses, tu valides.</div></div><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">OneDrive / SharePoint</div><div class=\"text-sm font-bold text-emerald-900 mb-2\">\"Trouve le dernier brief client X dans OneDrive, lis-le, et rédige un suivi pour notre call de demain.\"</div><div class=\"text-xs text-emerald-700/80\">L'IA cherche le fichier, l'ouvre, en tire la synthèse, prépare le call.</div></div><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-violet-600 mb-1\">Calendar + Teams</div><div class=\"text-sm font-bold text-violet-900 mb-2\">\"Cale une réunion Teams de 30 min avec Sophie et Marc cette semaine, créneau qui marche pour tous, et envoie l'invitation.\"</div><div class=\"text-xs text-violet-700/80\">L'IA croise les calendriers, crée le meeting, envoie les invits.</div></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-amber-600 mb-1\">Excel</div><div class=\"text-sm font-bold text-amber-900 mb-2\">\"Ouvre mon Excel de pipeline commercial, ajoute les 5 nouveaux leads de cette semaine, et envoie-moi la nouvelle prévision de CA.\"</div><div class=\"text-xs text-amber-700/80\">Lecture + écriture dans tes feuilles, recalcul, restitution.</div></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"installation-3-chemins-du-plus-simple-au-plus-contrôlé\">Installation : 3 chemins, du plus simple au plus contrôlé</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-a-via-le-skill-connect-mcp-recommandé\">Option A : via le skill <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/connect-mcp</code> (recommandé)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est le chemin le plus simple, parce que le skill du bootcamp connaît déjà ce MCP.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode (ou Claude Code), tape simplement :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/connect-mcp microsoft 365\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le skill va :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ajouter <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">@softeria/ms-365-mcp-server</code> à ton <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code></li>\n<li class=\"leading-7\">Te demander si tu utilises ton compte Microsoft perso ou un compte Entra ID d'entreprise</li>\n<li class=\"leading-7\">Lancer l'auth Device Code Flow : un code à coller sur <a href=\"https://microsoft.com/devicelogin\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">microsoft.com/devicelogin</a> depuis ton navigateur</li>\n<li class=\"leading-7\">Vérifier que les tools sont bien chargés</li>\n</ol>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est plié en 2 minutes. Passe à la section \"Tester\" plus bas.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-b-commande-claude-opencode-directe\">Option B : commande Claude / OpenCode directe</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu veux le faire à la main sans passer par le skill, une seule commande dans ton terminal :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># macOS / Linux\nclaude mcp add ms365 -- npx -y @softeria/ms-365-mcp-server\n\n# Windows\nclaude mcp add ms365 -s user -- cmd /c \"npx -y @softeria/ms-365-mcp-server\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis dans Claude Code (ou OpenCode), tape <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/mcp</code> pour vérifier que <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">ms365</code> est listé. Au premier appel d'un tool, tu seras invité à te connecter via Device Code Flow.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-c-configuration-manuelle-dans-opencodejson\">Option C : configuration manuelle dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">opencode.json</code></h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour ceux qui veulent maîtriser exactement le contenu de leur config :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"mcp\": {\n    \"ms365\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@softeria/ms-365-mcp-server\"],\n      \"enabled\": true\n    }\n  }\n}\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour limiter à certains scopes (ex : juste mail + calendar) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-json\">{\n  \"mcp\": {\n    \"ms365\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@softeria/ms-365-mcp-server\", \"--enabled-tools\", \"mail,calendar\"],\n      \"enabled\": true\n    }\n  }\n}\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Presets disponibles :</strong> <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">mail</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">calendar</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">files</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">personal</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">work</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">excel</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">contacts</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">tasks</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">onenote</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">search</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">users</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">all</code>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"compte-microsoft-perso-ou-entra-id-dentreprise\">Compte Microsoft perso ou Entra ID d'entreprise ?</h2>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Compte perso (outlook.com, hotmail, live)</div><div class=\"text-base font-bold text-emerald-900 mb-2\">Aucune config admin</div><p class=\"text-sm text-emerald-900/80\">L'app cliente du MCP est déjà configurée côté Softeria. Tu lances l'install, tu acceptes le consentement sur le device login, et c'est en place. Idéal pour les indépendants et les usages perso.</p></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Compte d'entreprise (Microsoft 365 / Entra ID)</div><div class=\"text-base font-bold text-blue-900 mb-2\">Selon la politique IT</div><p class=\"text-sm text-blue-900/80\">Si ton tenant exige une app interne, ton admin doit créer une <strong>app registration Entra ID</strong> (type \"Mobile and desktop applications\"), te fournir <code>CLIENT_ID</code> et <code>TENANT_ID</code>, et accorder les permissions Graph dont tu as besoin (Mail.ReadWrite, Calendars.ReadWrite, Files.ReadWrite, etc.). Tu les passes en variables d'env au serveur.</p></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu es dans un contexte pro et que tu n'es pas sûr, demande à ton équipe IT avant l'installation. C'est une bonne pratique de sécurité, et beaucoup d'entreprises veulent garder le contrôle sur les apps qui touchent à leur tenant.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"tester-en-1-minute\">Tester en 1 minute</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois connecté, lance OpenCode dans ton vault et essaie :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Donne-moi un résumé de mes 5 derniers mails reçus en boîte de réception.\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Liste mes prochains rendez-vous Outlook pour cette semaine.\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Cherche dans mon OneDrive le dernier fichier modifié contenant \"budget\" et résume-le.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu vois des résultats réels (et pas une excuse du type \"je n'ai pas accès à\"), c'est gagné. Sinon, demande à l'IA elle-même de débugger : <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">pourquoi le MCP ms365 ne répond pas ?</code> Elle ouvrira la config et te dira ce qui manque.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"alternative-officielle-microsoft-work-iq\">Alternative officielle : Microsoft Work IQ</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Microsoft a sorti ses propres MCP servers sous le nom <strong class=\"font-semibold text-foreground\">Work IQ</strong> (anciennement Agent 365). C'est de la solution officielle Microsoft, intégrée directement avec Copilot Studio et Azure AI Foundry.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Quand le choisir :</strong> tu as déjà une <strong class=\"font-semibold text-foreground\">licence Microsoft 365 Copilot</strong> active sur ton compte (entreprise principalement), et tu veux le support et la garantie Microsoft sur le canal officiel.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Quand garder Softeria :</strong> tu n'as pas de licence Copilot (cas le plus courant pour les indépendants et la majorité des entreprises), tu veux 200+ tools couvrant tout le Graph, et tu veux rester open source.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Plus d'infos : <a href=\"https://github.com/microsoft/work-iq\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">github.com/microsoft/work-iq</a> et <a href=\"https://learn.microsoft.com/en-us/microsoft-agent-365/tooling-servers-overview\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Learn - Work IQ MCP overview</a>.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"bonnes-pratiques\">Bonnes pratiques</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"active-le-mode-read-only-au-démarrage\">Active le mode read-only au démarrage</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Au premier setup, lance le serveur avec <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">--read-only</code> pour explorer sans risque d'écriture accidentelle. Tu désactives ce flag quand tu es confiant.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"limite-les-scopes-à-ce-dont-tu-te-sers\">Limite les scopes à ce dont tu te sers</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu n'utilises jamais Excel ni OneNote via l'IA, ne charge pas ces tools (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">--enabled-tools mail,calendar,files</code>). Ton IA est plus rapide et plus précise quand son menu d'outils est court.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pense-à-la-confidentialité\">Pense à la confidentialité</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le MCP donne à ton IA un accès à des données sensibles (mails clients, documents internes, calendrier perso). Avant de connecter, vérifie ton modèle : si tu passes par un modèle non ZDR (ChatGPT Plus, Claude.ai), les contenus de tes mails peuvent transiter par leur infra. Pour ce type d'usage, route plutôt via OpenRouter en mode Privacy avec un modèle open source (DeepSeek V4 Flash, GLM 5.2). Cf. <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé le MCP via /connect-mcp microsoft 365 (ou la commande claude mcp add) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé le MCP via /connect-mcp microsoft 365 (ou la commande claude mcp add)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je me suis authentifié via Device Code Flow — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je me suis authentifié via Device Code Flow</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé une lecture de mail et une requête calendrier dans OpenCode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé une lecture de mail et une requête calendrier dans OpenCode</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai limité mes scopes aux services que j'utilise vraiment — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai limité mes scopes aux services que j'utilise vraiment</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je sais que pour des données sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je sais que pour des données sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus</span></li></ul>",
      "content_markdown": "## Connecter Microsoft 365 (Outlook, OneDrive, Teams, Excel, SharePoint)\n\nSi ton travail tourne autour de la suite Microsoft (mail Outlook, fichiers OneDrive, réunions Teams, fichiers SharePoint, Excel, OneNote, Tasks/Planner), tu veux que ton IA puisse y accéder directement. Pas via du copier-coller, pas via des exports manuels. Directement, comme elle accède à ton coffre Obsidian.\n\nC'est exactement ce que fait le MCP **Microsoft 365 (ms-365-mcp-server)** : un MCP open source qui parle à toute la suite Microsoft via la Graph API officielle. 90+ tools, un seul plug-in, et ton IA gère tes mails, tes events, tes fichiers et tes feuilles Excel pour toi.\n\nms-365-mcp-server (Softeria)\n\nA Model Context Protocol server for Microsoft 365 and Office services\n\nOpen source, gratuit, 90+ tools sur toute la suite Microsoft 365 via la Graph API officielle. Compte perso (outlook.com, hotmail) ou compte d'entreprise (Entra ID).\n\n[github.com/Softeria/ms-365-mcp-server](https://github.com/Softeria/ms-365-mcp-server)\n\n---\n\n## Ce que ça débloque concrètement\n\nOpenCode (ou Claude Code)\n\nTon IA, dans son interface habituelle\n\nms-365-mcp-server\n\nLe pont vers Microsoft Graph API\n\nOutlook\n\nMail + Calendar\n\nOneDrive\n\nFichiers\n\nTeams\n\nChats + meetings\n\nSharePoint\n\nSites + drives\n\nExcel\n\nLecture + écriture\n\nOneNote\n\nPages + sections\n\nTasks\n\nTo Do + Planner\n\nContacts\n\nAnnuaire\n\nC'est exactement la contrepartie Microsoft de la leçon [Connecter Google Workspace](/plateforme/ia-juillet-2026/semaine-1-google-workspace). Si tu vis dans l'écosystème Microsoft, c'est ce MCP que tu installes.\n\n---\n\n## Cas d'usage typiques\n\nUne fois branché, ton IA peut faire ce genre de choses sans que tu sortes d'OpenCode :\n\nMail Outlook\n\n\"Résume mes 20 derniers mails non lus, regroupe par sujet, et propose un brouillon de réponse pour les 3 urgents.\"\n\nL'IA lit ton inbox, classifie, drafte des réponses, tu valides.\n\nOneDrive / SharePoint\n\n\"Trouve le dernier brief client X dans OneDrive, lis-le, et rédige un suivi pour notre call de demain.\"\n\nL'IA cherche le fichier, l'ouvre, en tire la synthèse, prépare le call.\n\nCalendar + Teams\n\n\"Cale une réunion Teams de 30 min avec Sophie et Marc cette semaine, créneau qui marche pour tous, et envoie l'invitation.\"\n\nL'IA croise les calendriers, crée le meeting, envoie les invits.\n\nExcel\n\n\"Ouvre mon Excel de pipeline commercial, ajoute les 5 nouveaux leads de cette semaine, et envoie-moi la nouvelle prévision de CA.\"\n\nLecture + écriture dans tes feuilles, recalcul, restitution.\n\n---\n\n## Installation : 3 chemins, du plus simple au plus contrôlé\n\n### Option A : via le skill `/connect-mcp` (recommandé)\n\nC'est le chemin le plus simple, parce que le skill du bootcamp connaît déjà ce MCP.\n\nDans OpenCode (ou Claude Code), tape simplement :\n\n```\n/connect-mcp microsoft 365\n```\n\nLe skill va :\n\n1. Ajouter `@softeria/ms-365-mcp-server` à ton `opencode.json`\n2. Te demander si tu utilises ton compte Microsoft perso ou un compte Entra ID d'entreprise\n3. Lancer l'auth Device Code Flow : un code à coller sur [microsoft.com/devicelogin](https://microsoft.com/devicelogin) depuis ton navigateur\n4. Vérifier que les tools sont bien chargés\n\nC'est plié en 2 minutes. Passe à la section \"Tester\" plus bas.\n\n### Option B : commande Claude / OpenCode directe\n\nSi tu veux le faire à la main sans passer par le skill, une seule commande dans ton terminal :\n\n```\n# macOS / Linux\nclaude mcp add ms365 -- npx -y @softeria/ms-365-mcp-server\n\n# Windows\nclaude mcp add ms365 -s user -- cmd /c \"npx -y @softeria/ms-365-mcp-server\"\n```\n\nPuis dans Claude Code (ou OpenCode), tape `/mcp` pour vérifier que `ms365` est listé. Au premier appel d'un tool, tu seras invité à te connecter via Device Code Flow.\n\n### Option C : configuration manuelle dans `opencode.json`\n\nPour ceux qui veulent maîtriser exactement le contenu de leur config :\n\n```\n{\n  \"mcp\": {\n    \"ms365\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@softeria/ms-365-mcp-server\"],\n      \"enabled\": true\n    }\n  }\n}\n```\n\nPour limiter à certains scopes (ex : juste mail + calendar) :\n\n```\n{\n  \"mcp\": {\n    \"ms365\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@softeria/ms-365-mcp-server\", \"--enabled-tools\", \"mail,calendar\"],\n      \"enabled\": true\n    }\n  }\n}\n```\n\n**Presets disponibles :** `mail`, `calendar`, `files`, `personal`, `work`, `excel`, `contacts`, `tasks`, `onenote`, `search`, `users`, `all`.\n\n---\n\n## Compte Microsoft perso ou Entra ID d'entreprise ?\n\nCompte perso (outlook.com, hotmail, live)\n\nAucune config admin\n\nL'app cliente du MCP est déjà configurée côté Softeria. Tu lances l'install, tu acceptes le consentement sur le device login, et c'est en place. Idéal pour les indépendants et les usages perso.\n\nCompte d'entreprise (Microsoft 365 / Entra ID)\n\nSelon la politique IT\n\nSi ton tenant exige une app interne, ton admin doit créer une **app registration Entra ID** (type \"Mobile and desktop applications\"), te fournir `CLIENT_ID` et `TENANT_ID`, et accorder les permissions Graph dont tu as besoin (Mail.ReadWrite, Calendars.ReadWrite, Files.ReadWrite, etc.). Tu les passes en variables d'env au serveur.\n\n> Si tu es dans un contexte pro et que tu n'es pas sûr, demande à ton équipe IT avant l'installation. C'est une bonne pratique de sécurité, et beaucoup d'entreprises veulent garder le contrôle sur les apps qui touchent à leur tenant.\n\n---\n\n## Tester en 1 minute\n\nUne fois connecté, lance OpenCode dans ton vault et essaie :\n\n```\nDonne-moi un résumé de mes 5 derniers mails reçus en boîte de réception.\n```\n\n```\nListe mes prochains rendez-vous Outlook pour cette semaine.\n```\n\n```\nCherche dans mon OneDrive le dernier fichier modifié contenant \"budget\" et résume-le.\n```\n\nSi tu vois des résultats réels (et pas une excuse du type \"je n'ai pas accès à\"), c'est gagné. Sinon, demande à l'IA elle-même de débugger : `pourquoi le MCP ms365 ne répond pas ?` Elle ouvrira la config et te dira ce qui manque.\n\n---\n\n## Alternative officielle : Microsoft Work IQ\n\nMicrosoft a sorti ses propres MCP servers sous le nom **Work IQ** (anciennement Agent 365). C'est de la solution officielle Microsoft, intégrée directement avec Copilot Studio et Azure AI Foundry.\n\n**Quand le choisir :** tu as déjà une **licence Microsoft 365 Copilot** active sur ton compte (entreprise principalement), et tu veux le support et la garantie Microsoft sur le canal officiel.\n\n**Quand garder Softeria :** tu n'as pas de licence Copilot (cas le plus courant pour les indépendants et la majorité des entreprises), tu veux 200+ tools couvrant tout le Graph, et tu veux rester open source.\n\nPlus d'infos : [github.com/microsoft/work-iq](https://github.com/microsoft/work-iq) et [Microsoft Learn - Work IQ MCP overview](https://learn.microsoft.com/en-us/microsoft-agent-365/tooling-servers-overview).\n\n---\n\n## Bonnes pratiques\n\n### Active le mode read-only au démarrage\n\nAu premier setup, lance le serveur avec `--read-only` pour explorer sans risque d'écriture accidentelle. Tu désactives ce flag quand tu es confiant.\n\n### Limite les scopes à ce dont tu te sers\n\nSi tu n'utilises jamais Excel ni OneNote via l'IA, ne charge pas ces tools (`--enabled-tools mail,calendar,files`). Ton IA est plus rapide et plus précise quand son menu d'outils est court.\n\n### Pense à la confidentialité\n\nLe MCP donne à ton IA un accès à des données sensibles (mails clients, documents internes, calendrier perso). Avant de connecter, vérifie ton modèle : si tu passes par un modèle non ZDR (ChatGPT Plus, Claude.ai), les contenus de tes mails peuvent transiter par leur infra. Pour ce type d'usage, route plutôt via OpenRouter en mode Privacy avec un modèle open source (DeepSeek V4 Flash, GLM 5.2). Cf. [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite).\n\n---\n\n- J'ai installé le MCP via /connect-mcp microsoft 365 (ou la commande claude mcp add)\n- Je me suis authentifié via Device Code Flow\n- J'ai testé une lecture de mail et une requête calendrier dans OpenCode\n- J'ai limité mes scopes aux services que j'utilise vraiment\n- Je sais que pour des données sensibles, je route via OpenRouter ZDR plutôt que ChatGPT Plus",
      "assets": [],
      "links": [
        {
          "text": "github.com/Softeria/ms-365-mcp-server",
          "url": "https://github.com/Softeria/ms-365-mcp-server"
        },
        {
          "text": "Connecter Google Workspace",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-google-workspace"
        },
        {
          "text": "microsoft.com/devicelogin",
          "url": "https://microsoft.com/devicelogin"
        },
        {
          "text": "github.com/microsoft/work-iq",
          "url": "https://github.com/microsoft/work-iq"
        },
        {
          "text": "Microsoft Learn - Work IQ MCP overview",
          "url": "https://learn.microsoft.com/en-us/microsoft-agent-365/tooling-servers-overview"
        },
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:06:10.428Z",
      "counts": {
        "code_blocks": 37,
        "headings": 14,
        "iframes": 0,
        "images": 0,
        "links": 6,
        "text_chars": 7453
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "33-semaine-1-himalaya-emails",
      "order": 33,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Connecter ses emails (non-Google) avec Himalaya",
      "slug": "semaine-1-himalaya-emails",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-himalaya-emails",
      "summary": "Donner à ton IA un accès à tes emails Proton, Outlook, iCloud, FastMail, Infomaniak, OVH ou tout autre IMAP/SMTP via Himalaya CLI. Setup, sécurisation du mot de passe (keyring / Bitwarden), cas d'usage.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"connecter-ses-emails-non-google-avec-himalaya\">Connecter ses emails (non-Google) avec Himalaya</h2>\n<div class=\"my-6 space-y-2 max-w-2xl\"><div class=\"text-sm font-medium text-zinc-800\">Connecter ses emails (non-Google) à l'IA via Himalaya</div><div class=\"relative w-full aspect-video overflow-hidden rounded-xl border border-zinc-200\"><iframe src=\"https://www.loom.com/embed/12482d5f9b734fca9a601c852c310307\" title=\"Connecter ses emails (non-Google) à l'IA via Himalaya\" loading=\"lazy\" class=\"absolute inset-0 block h-full w-full\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture\" allowfullscreen=\"\" referrerpolicy=\"strict-origin-when-cross-origin\"></iframe></div><div class=\"text-xs text-zinc-500 italic\">Pourquoi un CLI plutôt qu'un MCP, démo concrète (list, archive, send), et comment laisser l'IA tout installer pour toi.</div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu n'es pas sur Gmail / Google Workspace ? Tu utilises Proton Mail, Outlook, iCloud Mail, FastMail, Infomaniak, OVH ou n'importe quelle adresse en IMAP/SMTP ? Alors la leçon précédente (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gogcli</code>) ne te concerne pas. À la place, tu vas connecter ton IA à ta boîte mail via <strong class=\"font-semibold text-foreground\"><a href=\"https://github.com/pimalaya/himalaya\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">Himalaya</a></strong> : un CLI open source qui parle IMAP/SMTP nativement et qui s'utilise comme une commande shell normale.</p>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Pourquoi un CLI plutôt qu'un MCP ?</strong> Parce que c'est <strong class=\"font-semibold text-foreground\">beaucoup plus fiable</strong>. Le CLI tourne en local, parle directement à IMAP/SMTP, et l'IA appelle simplement la commande shell. Pas de couche API tierce à maintenir, pas d'auth qui peut casser, pas de quotas. Himalaya existe depuis longtemps, gros support communautaire, marche avec tous les providers.</p>\n</blockquote>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois en place, tu peux dire à ton IA :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">« Résume-moi les emails non lus d'aujourd'hui »</li>\n<li class=\"leading-7\">« Cherche tous les mails de [client] des 30 derniers jours »</li>\n<li class=\"leading-7\">« Réponds à cet email avec ce template »</li>\n<li class=\"leading-7\">« Archive tous les newsletters non lues »</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Et elle le fait via la commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">himalaya</code>, exactement comme <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">gog</code> pour Google.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"pour-qui-cest\">Pour qui c'est</h2>\n<div class=\"my-6 grid grid-cols-1 sm:grid-cols-2 gap-4\"><div class=\"rounded-xl border-2 border-emerald-200 bg-emerald-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-emerald-600 mb-1\">Plutôt Himalaya</div><div class=\"text-base font-bold text-emerald-900 mb-2\">Tu utilises…</div><ul class=\"text-sm text-emerald-900/85 list-disc list-inside space-y-1\"><li>Proton Mail (via Proton Bridge)</li><li>Outlook / Microsoft 365</li><li>iCloud Mail</li><li>FastMail, Tutanota, mailbox.org</li><li>Infomaniak, OVH, IONOS, Gandi</li><li>N'importe quel IMAP/SMTP (auto-hébergé inclus)</li></ul></div><div class=\"rounded-xl border-2 border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-600 mb-1\">Plutôt gogcli</div><div class=\"text-base font-bold text-blue-900 mb-2\">Tu utilises…</div><ul class=\"text-sm text-blue-900/85 list-disc list-inside space-y-1\"><li>Gmail (perso ou Workspace)</li><li>Tu veux aussi Calendar, Drive, Sheets, Docs</li></ul><p class=\"text-xs text-blue-700 mt-3\">→ <a href=\"../30-semaine-1-google-workspace/semaine-1-google-workspace.html\" class=\"underline\">Voir la leçon Connecter Google Workspace</a></p></div></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Tu as les deux ?</strong> Installe les deux. L'IA appellera la bonne commande selon l'adresse que tu lui mentionnes.</p>\n</blockquote>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-1-laisse-lia-installer-himalaya-pour-toi\">Étape 1 : Laisse l'IA installer Himalaya pour toi</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la voie la plus simple. Tu colles le prompt ci-dessous dans OpenCode (ou Claude Code), et ton IA détecte ton OS, installe le binaire, lance le wizard, et te guide jusqu'à ce que ta boîte mail soit connectée.</p>\n<div class=\"my-6 rounded-xl border border-blue-200 bg-blue-50 p-5\"><div class=\"text-xs font-semibold uppercase tracking-wider text-blue-500 mb-2\">Prompt à coller dans OpenCode</div><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais que tu installes Himalaya CLI sur ma machine pour que tu\npuisses accéder à mes emails directement depuis le terminal.\n\n1. Détecte mon OS et installe Himalaya avec le bon package manager\n   (brew sur macOS, scoop sur Windows, cargo/pacman/nix sur Linux).\n   Si ces options ne marchent pas, télécharge le binaire pré-compilé\n   depuis https://github.com/pimalaya/himalaya/releases\n\n2. Lance `himalaya account configure` pour créer mon premier compte.\n   Demande-moi mon email et mon provider avant de lancer.\n\n3. En fonction de mon provider, suis les instructions spécifiques\n   du README officiel (en particulier Proton Mail qui nécessite\n   Proton Bridge) :\n   https://github.com/pimalaya/himalaya#proton-mail\n\n   - Proton Mail → installe Proton Bridge, host 127.0.0.1, port IMAP\n     1143, SMTP 1025, SSL/TLS désactivé (Bridge fait le chiffrement)\n   - iCloud → mot de passe d'application Apple, login IMAP sans le\n     domaine (juste la partie locale)\n   - Outlook → host outlook.office365.com port 993, OAuth2 ou mot\n     de passe d'application si MFA activé\n   - Autres providers IMAP/SMTP standards → le wizard détecte tout\n\n4. Pour le mot de passe, propose-moi le keyring système (Keychain\n   macOS / gnome-keyring / Windows Credential Manager) plutôt que\n   le stockage en clair. Si j'utilise Bitwarden CLI, propose-le\n   aussi en alternative.\n\n5. Une fois configuré, lance `himalaya envelope list` pour\n   vérifier que ça marche et montre-moi les 5 derniers emails.\n\n6. Ajoute une ligne dans AGENTS.md du vault : « Quand l'utilisateur\n   parle de ses mails (lire, chercher, répondre, archiver), utilise\n   la commande CLI `himalaya`. »\n\nSi tu rencontres une erreur, ne la cache pas, dis-moi exactement\nce qui bloque pour qu'on résolve ensemble.\n</code></pre></div></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA va exécuter ces étapes une par une, te poser les questions au fur et à mesure, et te livrer un système opérationnel.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"si-tu-préfères-installer-à-la-main\">Si tu préfères installer à la main</h2>\n<details><summary class=\"cursor-pointer text-sm font-semibold text-zinc-700 mb-2\">Voir les commandes d'install manuelles par OS</summary><p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">macOS :</strong></p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">brew install himalaya\n</code></pre></div><p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Linux :</strong></p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Arch / Manjaro\npacman -S himalaya\n\n# Nix\nnix-shell -p himalaya\n\n# Cargo (toutes distros)\ncargo install himalaya\n</code></pre></div><p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Windows :</strong></p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-powershell\">scoop install himalaya\n</code></pre></div><p class=\"text-base leading-7 text-muted-foreground mb-4\">Ou télécharge le binaire pré-compilé sur <a href=\"https://github.com/pimalaya/himalaya/releases\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">github.com/pimalaya/himalaya/releases</a>.</p><p class=\"text-base leading-7 text-muted-foreground mb-4\">Vérifie l'install :</p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya --version\n</code></pre></div><p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis configure ton premier compte :</p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya account configure\n</code></pre></div><p class=\"text-base leading-7 text-muted-foreground mb-4\">Le wizard te demande : nom du compte, email, serveurs IMAP/SMTP (auto-détectés pour la plupart des providers), mot de passe.</p><p class=\"text-base leading-7 text-muted-foreground mb-4\">Test :</p><div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya envelope list\n</code></pre></div></details>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"provider-specific-les-pièges-à-connaître\">Provider-specific : les pièges à connaître</h2>\n<div class=\"my-6 space-y-4\"><div class=\"rounded-xl border-2 border-violet-200 bg-violet-50 p-5\"><div class=\"text-base font-bold text-violet-900 mb-2\">Proton Mail</div><p class=\"text-sm text-violet-900/85 mb-2\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Proton ne supporte pas l'IMAP standard pour des raisons de chiffrement de bout en bout. Tu dois installer <strong>Proton Mail Bridge</strong> (gratuit pour les comptes payants) qui crée un proxy IMAP/SMTP local sur ta machine.</p></p><ol class=\"text-sm text-violet-900/85 list-decimal list-inside space-y-1\"><li>Télécharge <a href=\"https://proton.me/mail/bridge\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">Proton Mail Bridge</a></li><li>Connecte-toi avec ton compte Proton, copie le mot de passe IMAP généré (différent du mot de passe Proton)</li><li>Dans le wizard Himalaya : host = <code>127.0.0.1</code>, port IMAP = <code>1143</code>, port SMTP = <code>1025</code>, SSL/TLS désactivé (Bridge fait le chiffrement)</li></ol></div><div class=\"rounded-xl border-2 border-sky-200 bg-sky-50 p-5\"><div class=\"text-base font-bold text-sky-900 mb-2\">iCloud Mail</div><p class=\"text-sm text-sky-900/85\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Il te faut un <strong>mot de passe d'application</strong> (Apple ne laisse pas utiliser ton mot de passe iCloud principal pour l'IMAP). Génère-le sur <a href=\"https://appleid.apple.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"underline\">appleid.apple.com</a> → Sign-In and Security → App-Specific Passwords. Le login IMAP est ta partie locale d'email (par ex. <code>johnappleseed</code>, pas <code><a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"mailto:johnappleseed@icloud.com\">johnappleseed@icloud.com</a></code>).</p></p></div><div class=\"rounded-xl border-2 border-amber-200 bg-amber-50 p-5\"><div class=\"text-base font-bold text-amber-900 mb-2\">Outlook / Microsoft 365</div><p class=\"text-sm text-amber-900/85\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Si ton organisation a activé l'auth moderne (OAuth2), Himalaya supporte ça aussi via le backend <code>imap-oauth2</code>. Sinon, host = <code>outlook.office365.com</code>, port = <code>993</code> avec SSL/TLS. Mot de passe d'application requis si MFA activé.</p></p></div><div class=\"rounded-xl border-2 border-zinc-200 bg-zinc-50 p-5\"><div class=\"text-base font-bold text-zinc-900 mb-2\">Tout le reste (FastMail, OVH, Infomaniak, perso…)</div><p class=\"text-sm text-zinc-700\"><p class=\"text-base leading-7 text-muted-foreground mb-4\">Le wizard est généralement assez intelligent pour deviner les serveurs. Sinon : récupère les params IMAP/SMTP de ton provider (host, port, SSL/TLS) dans leur documentation, et entre-les au moment du wizard. C'est tout.</p></p></div></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-3-plusieurs-comptes\">Étape 3 : Plusieurs comptes</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux ajouter autant de comptes que tu veux (pro + perso, par exemple) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya account configure -a pro\nhimalaya account configure -a perso\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis tu choisis lequel utiliser via <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">-a</code> :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya -a pro envelope list\nhimalaya -a perso envelope list\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Tu peux aussi définir un compte par défaut dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.config/himalaya/config.toml</code> (clé <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">default = true</code> sous le compte voulu).</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-4-sécuriser-le-mot-de-passe\">Étape 4 : Sécuriser le mot de passe</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Par défaut, le wizard stocke le mot de passe <strong class=\"font-semibold text-foreground\">en clair dans la config</strong>. À éviter. Deux options propres :</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-a-keyring-système-recommandée\">Option A : keyring système (recommandée)</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Himalaya peut récupérer le mot de passe depuis ton trousseau système (Keychain macOS, gnome-keyring Linux, Windows Credential Manager).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">~/.config/himalaya/config.toml</code>, remplace :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-toml\">passwd = \"monmotdepasse\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">par :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-toml\">passwd.keyring = \"himalaya-pro\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis stocke le mot de passe une seule fois :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\">himalaya account configure -a pro\n# choisis \"keyring\" comme méthode quand demandé\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"option-b-bitwarden-cli\">Option B : Bitwarden CLI</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu utilises déjà Bitwarden CLI (cf. <a class=\"text-primary underline underline-offset-4 hover:text-primary/80\" href=\"../../../03-installation/lessons/9-semaine-1-securite/semaine-1-securite.html\">Zoom sur la sécurité</a>) :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-toml\">passwd.cmd = \"bw get password 'Mon email pro'\"\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Himalaya appelle <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">bw</code> au runtime pour récupérer le mot de passe. Aucun secret en clair sur disque.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"étape-5-donner-accès-à-ton-ia\">Étape 5 : Donner accès à ton IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Dans OpenCode (ou Claude Code), tu peux maintenant lui dire :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Utilise la commande `himalaya` pour lire mes emails non lus,\nrésume les 5 plus urgents.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Quelques commandes que l'IA va apprendre vite :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code class=\"language-bash\"># Lister les enveloppes (sujets + expéditeurs)\nhimalaya envelope list\n\n# Filtrer par expéditeur, date, sujet... (requête intégrée)\nhimalaya envelope list from contact@perspectives.ac\n# Cibler un dossier précis\nhimalaya envelope list --folder INBOX\n\n# Lire un email\nhimalaya message read &lt;id&gt;\n\n# Marquer comme lu / non lu\nhimalaya flag add &lt;id&gt; seen\n\n# Archiver / déplacer\nhimalaya message move &lt;id&gt; --to Archive\n\n# Envoyer (composer via stdin)\necho \"Salut, voici ma réponse...\" | himalaya message send\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Bonus :</strong> Himalaya a aussi un mode REPL (<a href=\"https://github.com/pimalaya/himalaya-repl\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">himalaya-repl</a>) pratique pour des sessions interactives.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-dusage-concrets\">Cas d'usage concrets</h2>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"triage-quotidien\">Triage quotidien</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Liste tous mes mails non lus de la journée.\nPour chacun, dis-moi en une phrase ce que c'est et si je dois\ny répondre, archiver, ou ignorer. Propose-moi une action par mail.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"recherche-dans-tes-archives\">Recherche dans tes archives</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Cherche tous les mails avec [client] des 6 derniers mois.\nExtrais les décisions importantes qu'on a prises et range\nça dans 2 CASQUETTES/Clients/[client]/notes-mails.md.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"réponse-automatisée-à-partir-dun-template\">Réponse automatisée à partir d'un template</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Réponds à cet email avec mon template \"demande devis\" (que tu\ntrouves dans 4 TOOLS/Modèles/email-devis.md). Adapte-le au\ncontexte de la demande, et laisse-moi valider avant d'envoyer.\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"suivi-de-conversation\">Suivi de conversation</h3>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Sors-moi tous les mails échangés avec [contact] sur le sujet\n\"projet X\" depuis le début. Synthétise la timeline et les\npoints en suspens.\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"sécurité\">Sécurité</h2>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Himalaya tourne <strong class=\"font-semibold text-foreground\">100 % en local</strong>. Aucun email ne passe par un serveur tiers — c'est ta connexion IMAP/SMTP directe.</li>\n<li class=\"leading-7\">Stocke le mot de passe via <strong class=\"font-semibold text-foreground\">keyring</strong> ou <strong class=\"font-semibold text-foreground\">Bitwarden CLI</strong> (pas en clair).</li>\n<li class=\"leading-7\">L'IA n'a accès qu'à ce que tu lui demandes : si tu veux limiter, ajoute une règle dans <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">AGENTS.md</code> du genre « ne supprime jamais un mail sans confirmation explicite ».</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé Himalaya (brew, scoop, cargo selon mon OS) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé Himalaya (brew, scoop, cargo selon mon OS)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai configuré au moins un compte via `himalaya account configure` — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai configuré au moins un compte via `himalaya account configure`</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Mon mot de passe est dans le keyring ou via Bitwarden CLI (pas en clair) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Mon mot de passe est dans le keyring ou via Bitwarden CLI (pas en clair)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé `himalaya envelope list` et je vois bien mes mails — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé `himalaya envelope list` et je vois bien mes mails</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai demandé à mon IA de lire mes mails non lus via la commande `himalaya` — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai demandé à mon IA de lire mes mails non lus via la commande `himalaya`</span></li></ul>",
      "content_markdown": "## Connecter ses emails (non-Google) avec Himalaya\n\nConnecter ses emails (non-Google) à l'IA via Himalaya\n\nPourquoi un CLI plutôt qu'un MCP, démo concrète (list, archive, send), et comment laisser l'IA tout installer pour toi.\n\nTu n'es pas sur Gmail / Google Workspace ? Tu utilises Proton Mail, Outlook, iCloud Mail, FastMail, Infomaniak, OVH ou n'importe quelle adresse en IMAP/SMTP ? Alors la leçon précédente (`gogcli`) ne te concerne pas. À la place, tu vas connecter ton IA à ta boîte mail via **[Himalaya](https://github.com/pimalaya/himalaya)** : un CLI open source qui parle IMAP/SMTP nativement et qui s'utilise comme une commande shell normale.\n\n> Pourquoi un CLI plutôt qu'un MCP ? Parce que c'est beaucoup plus fiable. Le CLI tourne en local, parle directement à IMAP/SMTP, et l'IA appelle simplement la commande shell. Pas de couche API tierce à maintenir, pas d'auth qui peut casser, pas de quotas. Himalaya existe depuis longtemps, gros support communautaire, marche avec tous les providers.\n\nUne fois en place, tu peux dire à ton IA :\n\n- « Résume-moi les emails non lus d'aujourd'hui »\n- « Cherche tous les mails de [client] des 30 derniers jours »\n- « Réponds à cet email avec ce template »\n- « Archive tous les newsletters non lues »\n\nEt elle le fait via la commande `himalaya`, exactement comme `gog` pour Google.\n\n---\n\n## Pour qui c'est\n\nPlutôt Himalaya\n\nTu utilises…\n\n- Proton Mail (via Proton Bridge)\n- Outlook / Microsoft 365\n- iCloud Mail\n- FastMail, Tutanota, mailbox.org\n- Infomaniak, OVH, IONOS, Gandi\n- N'importe quel IMAP/SMTP (auto-hébergé inclus)\n\nPlutôt gogcli\n\nTu utilises…\n\n- Gmail (perso ou Workspace)\n- Tu veux aussi Calendar, Drive, Sheets, Docs\n\n→ [Voir la leçon Connecter Google Workspace](/plateforme/ia-juillet-2026/semaine-1-google-workspace)\n\n> Tu as les deux ? Installe les deux. L'IA appellera la bonne commande selon l'adresse que tu lui mentionnes.\n\n---\n\n## Étape 1 : Laisse l'IA installer Himalaya pour toi\n\nC'est la voie la plus simple. Tu colles le prompt ci-dessous dans OpenCode (ou Claude Code), et ton IA détecte ton OS, installe le binaire, lance le wizard, et te guide jusqu'à ce que ta boîte mail soit connectée.\n\nPrompt à coller dans OpenCode\n\n```\nJ'aimerais que tu installes Himalaya CLI sur ma machine pour que tu\npuisses accéder à mes emails directement depuis le terminal.\n\n1. Détecte mon OS et installe Himalaya avec le bon package manager\n   (brew sur macOS, scoop sur Windows, cargo/pacman/nix sur Linux).\n   Si ces options ne marchent pas, télécharge le binaire pré-compilé\n   depuis https://github.com/pimalaya/himalaya/releases\n\n2. Lance `himalaya account configure` pour créer mon premier compte.\n   Demande-moi mon email et mon provider avant de lancer.\n\n3. En fonction de mon provider, suis les instructions spécifiques\n   du README officiel (en particulier Proton Mail qui nécessite\n   Proton Bridge) :\n   https://github.com/pimalaya/himalaya#proton-mail\n\n   - Proton Mail → installe Proton Bridge, host 127.0.0.1, port IMAP\n     1143, SMTP 1025, SSL/TLS désactivé (Bridge fait le chiffrement)\n   - iCloud → mot de passe d'application Apple, login IMAP sans le\n     domaine (juste la partie locale)\n   - Outlook → host outlook.office365.com port 993, OAuth2 ou mot\n     de passe d'application si MFA activé\n   - Autres providers IMAP/SMTP standards → le wizard détecte tout\n\n4. Pour le mot de passe, propose-moi le keyring système (Keychain\n   macOS / gnome-keyring / Windows Credential Manager) plutôt que\n   le stockage en clair. Si j'utilise Bitwarden CLI, propose-le\n   aussi en alternative.\n\n5. Une fois configuré, lance `himalaya envelope list` pour\n   vérifier que ça marche et montre-moi les 5 derniers emails.\n\n6. Ajoute une ligne dans AGENTS.md du vault : « Quand l'utilisateur\n   parle de ses mails (lire, chercher, répondre, archiver), utilise\n   la commande CLI `himalaya`. »\n\nSi tu rencontres une erreur, ne la cache pas, dis-moi exactement\nce qui bloque pour qu'on résolve ensemble.\n```\n\nL'IA va exécuter ces étapes une par une, te poser les questions au fur et à mesure, et te livrer un système opérationnel.\n\n---\n\n## Si tu préfères installer à la main\n\nVoir les commandes d'install manuelles par OS\n**macOS :**\n\n```\nbrew install himalaya\n```\n\n**Linux :**\n\n```\n# Arch / Manjaro\npacman -S himalaya\n\n# Nix\nnix-shell -p himalaya\n\n# Cargo (toutes distros)\ncargo install himalaya\n```\n\n**Windows :**\n\n```\nscoop install himalaya\n```\n\nOu télécharge le binaire pré-compilé sur [github.com/pimalaya/himalaya/releases](https://github.com/pimalaya/himalaya/releases).\n\nVérifie l'install :\n\n```\nhimalaya --version\n```\n\nPuis configure ton premier compte :\n\n```\nhimalaya account configure\n```\n\nLe wizard te demande : nom du compte, email, serveurs IMAP/SMTP (auto-détectés pour la plupart des providers), mot de passe.\n\nTest :\n\n```\nhimalaya envelope list\n```\n\n---\n\n## Provider-specific : les pièges à connaître\n\nProton Mail\n\nProton ne supporte pas l'IMAP standard pour des raisons de chiffrement de bout en bout. Tu dois installer **Proton Mail Bridge** (gratuit pour les comptes payants) qui crée un proxy IMAP/SMTP local sur ta machine.\n\n1. Télécharge [Proton Mail Bridge](https://proton.me/mail/bridge)\n2. Connecte-toi avec ton compte Proton, copie le mot de passe IMAP généré (différent du mot de passe Proton)\n3. Dans le wizard Himalaya : host = `127.0.0.1`, port IMAP = `1143`, port SMTP = `1025`, SSL/TLS désactivé (Bridge fait le chiffrement)\n\niCloud Mail\n\nIl te faut un **mot de passe d'application** (Apple ne laisse pas utiliser ton mot de passe iCloud principal pour l'IMAP). Génère-le sur [appleid.apple.com](https://appleid.apple.com) → Sign-In and Security → App-Specific Passwords. Le login IMAP est ta partie locale d'email (par ex. `johnappleseed`, pas `[johnappleseed@icloud.com](mailto:johnappleseed@icloud.com)`).\n\nOutlook / Microsoft 365\n\nSi ton organisation a activé l'auth moderne (OAuth2), Himalaya supporte ça aussi via le backend `imap-oauth2`. Sinon, host = `outlook.office365.com`, port = `993` avec SSL/TLS. Mot de passe d'application requis si MFA activé.\n\nTout le reste (FastMail, OVH, Infomaniak, perso…)\n\nLe wizard est généralement assez intelligent pour deviner les serveurs. Sinon : récupère les params IMAP/SMTP de ton provider (host, port, SSL/TLS) dans leur documentation, et entre-les au moment du wizard. C'est tout.\n\n---\n\n## Étape 3 : Plusieurs comptes\n\nTu peux ajouter autant de comptes que tu veux (pro + perso, par exemple) :\n\n```\nhimalaya account configure -a pro\nhimalaya account configure -a perso\n```\n\nPuis tu choisis lequel utiliser via `-a` :\n\n```\nhimalaya -a pro envelope list\nhimalaya -a perso envelope list\n```\n\nTu peux aussi définir un compte par défaut dans `~/.config/himalaya/config.toml` (clé `default = true` sous le compte voulu).\n\n---\n\n## Étape 4 : Sécuriser le mot de passe\n\nPar défaut, le wizard stocke le mot de passe **en clair dans la config**. À éviter. Deux options propres :\n\n### Option A : keyring système (recommandée)\n\nHimalaya peut récupérer le mot de passe depuis ton trousseau système (Keychain macOS, gnome-keyring Linux, Windows Credential Manager).\n\nDans `~/.config/himalaya/config.toml`, remplace :\n\n```\npasswd = \"monmotdepasse\"\n```\n\npar :\n\n```\npasswd.keyring = \"himalaya-pro\"\n```\n\nPuis stocke le mot de passe une seule fois :\n\n```\nhimalaya account configure -a pro\n# choisis \"keyring\" comme méthode quand demandé\n```\n\n### Option B : Bitwarden CLI\n\nSi tu utilises déjà Bitwarden CLI (cf. [Zoom sur la sécurité](/plateforme/ia-juillet-2026/semaine-1-securite)) :\n\n```\npasswd.cmd = \"bw get password 'Mon email pro'\"\n```\n\nHimalaya appelle `bw` au runtime pour récupérer le mot de passe. Aucun secret en clair sur disque.\n\n---\n\n## Étape 5 : Donner accès à ton IA\n\nDans OpenCode (ou Claude Code), tu peux maintenant lui dire :\n\n```\nUtilise la commande `himalaya` pour lire mes emails non lus,\nrésume les 5 plus urgents.\n```\n\nQuelques commandes que l'IA va apprendre vite :\n\n```\n# Lister les enveloppes (sujets + expéditeurs)\nhimalaya envelope list\n\n# Filtrer par expéditeur, date, sujet... (requête intégrée)\nhimalaya envelope list from contact@perspectives.ac\n# Cibler un dossier précis\nhimalaya envelope list --folder INBOX\n\n# Lire un email\nhimalaya message read <id>\n\n# Marquer comme lu / non lu\nhimalaya flag add <id> seen\n\n# Archiver / déplacer\nhimalaya message move <id> --to Archive\n\n# Envoyer (composer via stdin)\necho \"Salut, voici ma réponse...\" | himalaya message send\n```\n\n**Bonus :** Himalaya a aussi un mode REPL ([himalaya-repl](https://github.com/pimalaya/himalaya-repl)) pratique pour des sessions interactives.\n\n---\n\n## Cas d'usage concrets\n\n### Triage quotidien\n\n```\nListe tous mes mails non lus de la journée.\nPour chacun, dis-moi en une phrase ce que c'est et si je dois\ny répondre, archiver, ou ignorer. Propose-moi une action par mail.\n```\n\n### Recherche dans tes archives\n\n```\nCherche tous les mails avec [client] des 6 derniers mois.\nExtrais les décisions importantes qu'on a prises et range\nça dans 2 CASQUETTES/Clients/[client]/notes-mails.md.\n```\n\n### Réponse automatisée à partir d'un template\n\n```\nRéponds à cet email avec mon template \"demande devis\" (que tu\ntrouves dans 4 TOOLS/Modèles/email-devis.md). Adapte-le au\ncontexte de la demande, et laisse-moi valider avant d'envoyer.\n```\n\n### Suivi de conversation\n\n```\nSors-moi tous les mails échangés avec [contact] sur le sujet\n\"projet X\" depuis le début. Synthétise la timeline et les\npoints en suspens.\n```\n\n---\n\n## Sécurité\n\n- Himalaya tourne **100 % en local**. Aucun email ne passe par un serveur tiers — c'est ta connexion IMAP/SMTP directe.\n- Stocke le mot de passe via **keyring** ou **Bitwarden CLI** (pas en clair).\n- L'IA n'a accès qu'à ce que tu lui demandes : si tu veux limiter, ajoute une règle dans `AGENTS.md` du genre « ne supprime jamais un mail sans confirmation explicite ».\n\n---\n\n- J'ai installé Himalaya (brew, scoop, cargo selon mon OS)\n- J'ai configuré au moins un compte via `himalaya account configure`\n- Mon mot de passe est dans le keyring ou via Bitwarden CLI (pas en clair)\n- J'ai testé `himalaya envelope list` et je vois bien mes mails\n- J'ai demandé à mon IA de lire mes mails non lus via la commande `himalaya`",
      "assets": [],
      "links": [
        {
          "text": "Himalaya",
          "url": "https://github.com/pimalaya/himalaya"
        },
        {
          "text": "Voir la leçon Connecter Google Workspace",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-google-workspace"
        },
        {
          "text": "github.com/pimalaya/himalaya/releases",
          "url": "https://github.com/pimalaya/himalaya/releases"
        },
        {
          "text": "Proton Mail Bridge",
          "url": "https://proton.me/mail/bridge"
        },
        {
          "text": "appleid.apple.com",
          "url": "https://appleid.apple.com/"
        },
        {
          "text": "johnappleseed@icloud.com",
          "url": "mailto:johnappleseed@icloud.com"
        },
        {
          "text": "Zoom sur la sécurité",
          "url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-securite"
        },
        {
          "text": "himalaya-repl",
          "url": "https://github.com/pimalaya/himalaya-repl"
        }
      ],
      "videos": [
        {
          "duration": "non-Google",
          "embed_url": "https://www.loom.com/embed/12482d5f9b734fca9a601c852c310307",
          "placement_index": 1,
          "provider": "Loom",
          "title": "Connecter ses emails (non-Google) à l'IA via Himalaya",
          "title_source": "iframe-title",
          "video_id": "12482d5f9b734fca9a601c852c310307",
          "watch_url": "https://www.loom.com/share/12482d5f9b734fca9a601c852c310307"
        }
      ],
      "captured_at": "2026-08-03T10:06:12.216Z",
      "counts": {
        "code_blocks": 55,
        "headings": 16,
        "iframes": 1,
        "images": 0,
        "links": 8,
        "text_chars": 8855
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "34-semaine-1-fichiers-office",
      "order": 34,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Traiter les fichiers PowerPoint, Word et Excel",
      "slug": "semaine-1-fichiers-office",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-fichiers-office",
      "summary": "Comment lire et convertir les fichiers Office avec l'IA — et pourquoi migrer vers des fichiers libres.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"traiter-les-fichiers-powerpoint-word-et-excel-avec-lia\">Traiter les fichiers PowerPoint, Word et Excel avec l'IA</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">OpenCode ne peut pas lire nativement les fichiers <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.pptx</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.docx</code> ou <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.xlsx</code>. Ce sont des formats binaires compressés (du XML dans un ZIP) : quand l'IA essaie de les ouvrir directement, elle obtient du charabia. C'est une limite de <strong class=\"font-semibold text-foreground\">tous</strong> les agents code, pas juste d'OpenCode.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Il y a deux limites à bien distinguer, parce que beaucoup s'y cassent les dents :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">L'agent lit du texte.</strong> Les fichiers Office (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.pptx</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.docx</code>, <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.xlsx</code>) et les PDF sont des binaires. Sans conversion, l'IA voit du charabia. C'est vrai pour tous les agents code.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Le modèle derrière compte aussi.</strong> La plupart des modèles open source que tu utiliseras via OpenRouter (DeepSeek, GLM...) sont <em>text-only</em> : ils ne lisent ni les binaires (PDF, Word, Excel, PowerPoint) ni les <strong class=\"font-semibold text-foreground\">images</strong>. Les modèles multimodaux (GPT, Gemini, Claude) voient les images, mais ont quand même besoin d'une conversion pour les fichiers Office.</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Bonne nouvelle : il existe une solution simple pour chaque cas. Et surtout, une philosophie : <strong class=\"font-semibold text-foreground\">aller vers des fichiers libres</strong> que l'IA peut éditer directement.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"quel-outil-pour-quel-cas\">Quel outil pour quel cas</h3>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">PDF, Word, Excel, PowerPoint</strong> : MarkItDown (Solution 1). Ta solution par défaut.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">EPUB et formats exotiques</strong> : pandoc.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">PDF complexe</strong> (colonnes, tableaux denses, scans) : pdfjs-dist.</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Images dans le document</strong> (schéma, capture, photo) : bascule sur un modèle multimodal (GPT, Gemini) qui voit les images.</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"solution-1-markitdown-mcp-par-microsoft-pour-lire-les-fichie\">Solution 1 : MarkItDown MCP (par Microsoft), pour lire les fichiers Office</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Microsoft a créé un outil open-source (160k+ stars sur GitHub) qui convertit automatiquement les fichiers Office en Markdown lisible par l'IA. C'est <strong class=\"font-semibold text-foreground\">la solution recommandée</strong> pour importer du contenu existant.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Formats supportés :</strong> PDF, PowerPoint, Word, Excel, images, audio, HTML, CSV, JSON, XML, ZIP, YouTube...</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"installation\">Installation</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre OpenCode et demande-lui :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Installe le MCP markitdown pour que tu puisses lire les fichiers PowerPoint, Word et Excel.\nVoici la config :\n\n{\n  \"mcpServers\": {\n    \"markitdown\": {\n      \"command\": \"uvx\",\n      \"args\": [\"markitdown-mcp\"]\n    }\n  }\n}\n</code></pre></div>\n<blockquote class=\"border-l-4 border-primary/30 pl-4 italic text-muted-foreground my-4\">\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><strong class=\"font-semibold text-foreground\">Installe la version à jour.</strong> MarkItDown évolue vite, et une vieille version alpha (type <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">0.0.1a1</code>) qui traîne dans certains tutos plante ou rate des formats. <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">uvx markitdown-mcp</code> récupère normalement la dernière version. Si tu l'avais installé il y a longtemps, demande à OpenCode de forcer la mise à jour (<code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">uvx markitdown-mcp@latest</code>).</p>\n</blockquote>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"utilisation\">Utilisation</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois installé, tu peux simplement dire :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Lis le fichier presentation.pptx et résume-le en notes dans mon vault\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Extrais le contenu de rapport.docx et crée une note de synthèse\n</code></pre></div>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Convertis le tableau budget.xlsx en fichier CSV lisible\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA convertira automatiquement le fichier en Markdown avant de le traiter.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"solution-2-convertir-en-pdf-zéro-installation\">Solution 2 : Convertir en PDF (zéro installation)</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu ne veux rien installer, le plus simple :</p>\n<ol class=\"list-decimal pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Ouvre ton fichier dans PowerPoint, Word ou Excel</li>\n<li class=\"leading-7\"><strong class=\"font-semibold text-foreground\">Fichier → Enregistrer sous → PDF</strong></li>\n<li class=\"leading-7\">Place le PDF dans ton vault ou dossier de travail</li>\n<li class=\"leading-7\">OpenCode sait lire les PDF nativement</li>\n</ol>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"solution-3-lapp-claude-sur-claudeai\">Solution 3 : l'app Claude sur claude.ai</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Sur <a href=\"https://claude.ai/\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\">claude.ai</a> (le chat web), tu peux directement <strong class=\"font-semibold text-foreground\">glisser-déposer</strong> tes fichiers PowerPoint, Word et Excel en pièce jointe. L'IA les lit et les comprend sans aucune configuration.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">C'est la méthode la plus rapide pour une analyse ponctuelle.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"cas-particuliers-epub-pdf-complexes-et-images\">Cas particuliers : EPUB, PDF complexes et images</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">MarkItDown couvre l'immense majorité des besoins. Pour le reste, voici les bons outils.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"epub-et-livres-numériques\">EPUB et livres numériques</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">MarkItDown (comme docling) gère mal les EPUB : le résultat est souvent incomplet ou cassé, ne t'y fie pas. <strong class=\"font-semibold text-foreground\">Pour les EPUB, la solution fiable c'est pandoc.</strong> C'est l'outil de référence pour convertir un livre numérique en Markdown propre.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Demande à OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Installe pandoc et convertis mon-livre.epub en Markdown\n</code></pre></div>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"pdf-complexes\">PDF complexes</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Certains PDF passent mal avec MarkItDown : colonnes multiples, tableaux denses, mises en page tordues, scans. Dans ce cas, <strong class=\"font-semibold text-foreground\">pdfjs-dist</strong> (la librairie PDF de Mozilla, celle qui fait tourner Firefox) extrait le texte de façon plus robuste.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Demande à OpenCode d'extraire le texte de ton PDF avec pdfjs-dist.</p>\n<h3 class=\"text-xl font-semibold mt-5 mb-2\" id=\"images-dans-un-document\">Images dans un document</h3>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si l'information que tu cherches est <strong class=\"font-semibold text-foreground\">dans une image</strong> (schéma, capture d'écran, photo, graphique), aucune conversion en texte ne la fera apparaître. Il te faut un <strong class=\"font-semibold text-foreground\">modèle qui voit les images</strong>, donc un modèle multimodal : bascule sur GPT ou Gemini. Un modèle text-only (DeepSeek, GLM...) restera aveugle à l'image, même convertie.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Le plus simple : glisse l'image (ou le PDF qui la contient) directement dans claude.ai, ChatGPT ou Gemini. Sinon, configure OpenCode avec un modèle multimodal.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"la-vraie-philosophie-aller-vers-des-fichiers-libres\">La vraie philosophie : aller vers des fichiers libres</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'objectif à moyen terme, c'est de <strong class=\"font-semibold text-foreground\">sortir petit à petit des fichiers propriétaires</strong>. Pourquoi ?</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Les fichiers Markdown, HTML et CSV sont <strong class=\"font-semibold text-foreground\">directement éditables</strong> par l'IA, sans conversion ni MCP supplémentaire</li>\n<li class=\"leading-7\">Tu n'as plus besoin d'un abonnement Microsoft Office ou Google Workspace</li>\n<li class=\"leading-7\">L'IA peut modifier le contenu <strong class=\"font-semibold text-foreground\">en direct</strong>, pas juste le lire</li>\n<li class=\"leading-7\">Tes fichiers sont légers, versionnables (Git) et pérennes</li>\n</ul>\n<div class=\"my-8 overflow-x-auto\"><table class=\"w-full text-sm border-collapse\"><thead><tr class=\"bg-slate-100\"><th class=\"border border-slate-200 px-4 py-2 text-left\">Au lieu de...</th><th class=\"border border-slate-200 px-4 py-2 text-left\">Utilise...</th><th class=\"border border-slate-200 px-4 py-2 text-left\">Pourquoi c'est mieux</th></tr></thead><tbody><tr><td class=\"border border-slate-200 px-4 py-2\">PowerPoint (.pptx)</td><td class=\"border border-slate-200 px-4 py-2\">Présentations HTML</td><td class=\"border border-slate-200 px-4 py-2\">L'IA crée des slides animées bien plus belles que PowerPoint, éditables en direct</td></tr><tr><td class=\"border border-slate-200 px-4 py-2\">Word (.docx)</td><td class=\"border border-slate-200 px-4 py-2\">Fichiers Markdown (.md)</td><td class=\"border border-slate-200 px-4 py-2\">Lisibles partout, éditables par l'IA en direct, convertibles en PDF</td></tr><tr><td class=\"border border-slate-200 px-4 py-2\">Excel (.xlsx)</td><td class=\"border border-slate-200 px-4 py-2\">Fichiers CSV ou Markdown</td><td class=\"border border-slate-200 px-4 py-2\">L'IA les lit et les modifie nativement, pas de logiciel requis</td></tr><tr><td class=\"border border-slate-200 px-4 py-2\">Google Docs / Sheets</td><td class=\"border border-slate-200 px-4 py-2\">MCP Google Workspace (GOG)</td><td class=\"border border-slate-200 px-4 py-2\">Connecte directement OpenCode à Google Drive, Docs, Sheets, Calendar</td></tr></tbody></table></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"exemple-remplacer-powerpoint-par-des-slides-html\">Exemple : remplacer PowerPoint par des slides HTML</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Avec le skill <strong class=\"font-semibold text-foreground\">frontend-slides</strong>, l'IA peut créer des présentations HTML animées directement depuis OpenCode. Le résultat est souvent <strong class=\"font-semibold text-foreground\">bien plus beau</strong> qu'un PowerPoint classique :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Animations fluides et personnalisées</li>\n<li class=\"leading-7\">Design responsive (fonctionne sur mobile)</li>\n<li class=\"leading-7\">Zéro logiciel requis : s'ouvre dans n'importe quel navigateur</li>\n<li class=\"leading-7\">L'IA peut les modifier en direct, slide par slide</li>\n</ul>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Pour l'installer, demande simplement à OpenCode :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Installe le skill frontend-slides depuis ce repo :\nhttps://github.com/zarazhangrui/frontend-slides\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Puis pour créer une présentation :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>Crée une présentation de 10 slides sur [ton sujet]\n</code></pre></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"et-la-commande-done-dans-tout-ça\">Et la commande /done dans tout ça ?</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">La commande <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code> met à jour le <strong class=\"font-semibold text-foreground\">contexte de ton projet</strong> en fonction de ce que l'IA a fait pendant ta session de travail. Elle ne \"lit\" pas tes fichiers PowerPoint ou Word : elle résume les <strong class=\"font-semibold text-foreground\">actions effectuées</strong> durant la session (fichiers créés, modifiés, décisions prises, etc.).</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Si tu as travaillé avec l'IA sur un fichier Office (via MarkItDown ou une conversion PDF), alors oui, ce travail sera reflété dans le contexte mis à jour par <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">/done</code>.</p>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends pourquoi OpenCode ne lit pas les fichiers Office nativement — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends pourquoi OpenCode ne lit pas les fichiers Office nativement</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé le MCP MarkItDown (ou je sais convertir en PDF) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé le MCP MarkItDown (ou je sais convertir en PDF)</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé la lecture d'un fichier Office dans OpenCode — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé la lecture d'un fichier Office dans OpenCode</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"Je comprends l'intérêt de migrer vers des fichiers libres (Markdown, HTML, CSV) — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">Je comprends l'intérêt de migrer vers des fichiers libres (Markdown, HTML, CSV)</span></li></ul>",
      "content_markdown": "## Traiter les fichiers PowerPoint, Word et Excel avec l'IA\n\nOpenCode ne peut pas lire nativement les fichiers `.pptx`, `.docx` ou `.xlsx`. Ce sont des formats binaires compressés (du XML dans un ZIP) : quand l'IA essaie de les ouvrir directement, elle obtient du charabia. C'est une limite de **tous** les agents code, pas juste d'OpenCode.\n\nIl y a deux limites à bien distinguer, parce que beaucoup s'y cassent les dents :\n\n- **L'agent lit du texte.** Les fichiers Office (`.pptx`, `.docx`, `.xlsx`) et les PDF sont des binaires. Sans conversion, l'IA voit du charabia. C'est vrai pour tous les agents code.\n- **Le modèle derrière compte aussi.** La plupart des modèles open source que tu utiliseras via OpenRouter (DeepSeek, GLM...) sont *text-only* : ils ne lisent ni les binaires (PDF, Word, Excel, PowerPoint) ni les **images**. Les modèles multimodaux (GPT, Gemini, Claude) voient les images, mais ont quand même besoin d'une conversion pour les fichiers Office.\n\nBonne nouvelle : il existe une solution simple pour chaque cas. Et surtout, une philosophie : **aller vers des fichiers libres** que l'IA peut éditer directement.\n\n### Quel outil pour quel cas\n\n- **PDF, Word, Excel, PowerPoint** : MarkItDown (Solution 1). Ta solution par défaut.\n- **EPUB et formats exotiques** : pandoc.\n- **PDF complexe** (colonnes, tableaux denses, scans) : pdfjs-dist.\n- **Images dans le document** (schéma, capture, photo) : bascule sur un modèle multimodal (GPT, Gemini) qui voit les images.\n\n---\n\n## Solution 1 : MarkItDown MCP (par Microsoft), pour lire les fichiers Office\n\nMicrosoft a créé un outil open-source (160k+ stars sur GitHub) qui convertit automatiquement les fichiers Office en Markdown lisible par l'IA. C'est **la solution recommandée** pour importer du contenu existant.\n\n**Formats supportés :** PDF, PowerPoint, Word, Excel, images, audio, HTML, CSV, JSON, XML, ZIP, YouTube...\n\n### Installation\n\nOuvre OpenCode et demande-lui :\n\n```\nInstalle le MCP markitdown pour que tu puisses lire les fichiers PowerPoint, Word et Excel.\nVoici la config :\n\n{\n  \"mcpServers\": {\n    \"markitdown\": {\n      \"command\": \"uvx\",\n      \"args\": [\"markitdown-mcp\"]\n    }\n  }\n}\n```\n\n> Installe la version à jour. MarkItDown évolue vite, et une vieille version alpha (type 0.0.1a1) qui traîne dans certains tutos plante ou rate des formats. uvx markitdown-mcp récupère normalement la dernière version. Si tu l'avais installé il y a longtemps, demande à OpenCode de forcer la mise à jour (uvx markitdown-mcp@latest).\n\n### Utilisation\n\nUne fois installé, tu peux simplement dire :\n\n```\nLis le fichier presentation.pptx et résume-le en notes dans mon vault\n```\n\n```\nExtrais le contenu de rapport.docx et crée une note de synthèse\n```\n\n```\nConvertis le tableau budget.xlsx en fichier CSV lisible\n```\n\nL'IA convertira automatiquement le fichier en Markdown avant de le traiter.\n\n---\n\n## Solution 2 : Convertir en PDF (zéro installation)\n\nSi tu ne veux rien installer, le plus simple :\n\n1. Ouvre ton fichier dans PowerPoint, Word ou Excel\n2. **Fichier → Enregistrer sous → PDF**\n3. Place le PDF dans ton vault ou dossier de travail\n4. OpenCode sait lire les PDF nativement\n\n---\n\n## Solution 3 : l'app Claude sur claude.ai\n\nSur [claude.ai](https://claude.ai) (le chat web), tu peux directement **glisser-déposer** tes fichiers PowerPoint, Word et Excel en pièce jointe. L'IA les lit et les comprend sans aucune configuration.\n\nC'est la méthode la plus rapide pour une analyse ponctuelle.\n\n---\n\n## Cas particuliers : EPUB, PDF complexes et images\n\nMarkItDown couvre l'immense majorité des besoins. Pour le reste, voici les bons outils.\n\n### EPUB et livres numériques\n\nMarkItDown (comme docling) gère mal les EPUB : le résultat est souvent incomplet ou cassé, ne t'y fie pas. **Pour les EPUB, la solution fiable c'est pandoc.** C'est l'outil de référence pour convertir un livre numérique en Markdown propre.\n\nDemande à OpenCode :\n\n```\nInstalle pandoc et convertis mon-livre.epub en Markdown\n```\n\n### PDF complexes\n\nCertains PDF passent mal avec MarkItDown : colonnes multiples, tableaux denses, mises en page tordues, scans. Dans ce cas, **pdfjs-dist** (la librairie PDF de Mozilla, celle qui fait tourner Firefox) extrait le texte de façon plus robuste.\n\nDemande à OpenCode d'extraire le texte de ton PDF avec pdfjs-dist.\n\n### Images dans un document\n\nSi l'information que tu cherches est **dans une image** (schéma, capture d'écran, photo, graphique), aucune conversion en texte ne la fera apparaître. Il te faut un **modèle qui voit les images**, donc un modèle multimodal : bascule sur GPT ou Gemini. Un modèle text-only (DeepSeek, GLM...) restera aveugle à l'image, même convertie.\n\nLe plus simple : glisse l'image (ou le PDF qui la contient) directement dans claude.ai, ChatGPT ou Gemini. Sinon, configure OpenCode avec un modèle multimodal.\n\n---\n\n## La vraie philosophie : aller vers des fichiers libres\n\nL'objectif à moyen terme, c'est de **sortir petit à petit des fichiers propriétaires**. Pourquoi ?\n\n- Les fichiers Markdown, HTML et CSV sont **directement éditables** par l'IA, sans conversion ni MCP supplémentaire\n- Tu n'as plus besoin d'un abonnement Microsoft Office ou Google Workspace\n- L'IA peut modifier le contenu **en direct**, pas juste le lire\n- Tes fichiers sont légers, versionnables (Git) et pérennes\n\n| Au lieu de... | Utilise... | Pourquoi c'est mieux |\n| --- | --- | --- |\n| PowerPoint (.pptx) | Présentations HTML | L'IA crée des slides animées bien plus belles que PowerPoint, éditables en direct |\n| Word (.docx) | Fichiers Markdown (.md) | Lisibles partout, éditables par l'IA en direct, convertibles en PDF |\n| Excel (.xlsx) | Fichiers CSV ou Markdown | L'IA les lit et les modifie nativement, pas de logiciel requis |\n| Google Docs / Sheets | MCP Google Workspace (GOG) | Connecte directement OpenCode à Google Drive, Docs, Sheets, Calendar |\n\n---\n\n## Exemple : remplacer PowerPoint par des slides HTML\n\nAvec le skill **frontend-slides**, l'IA peut créer des présentations HTML animées directement depuis OpenCode. Le résultat est souvent **bien plus beau** qu'un PowerPoint classique :\n\n- Animations fluides et personnalisées\n- Design responsive (fonctionne sur mobile)\n- Zéro logiciel requis : s'ouvre dans n'importe quel navigateur\n- L'IA peut les modifier en direct, slide par slide\n\nPour l'installer, demande simplement à OpenCode :\n\n```\nInstalle le skill frontend-slides depuis ce repo :\nhttps://github.com/zarazhangrui/frontend-slides\n```\n\nPuis pour créer une présentation :\n\n```\nCrée une présentation de 10 slides sur [ton sujet]\n```\n\n---\n\n## Et la commande /done dans tout ça ?\n\nLa commande `/done` met à jour le **contexte de ton projet** en fonction de ce que l'IA a fait pendant ta session de travail. Elle ne \"lit\" pas tes fichiers PowerPoint ou Word : elle résume les **actions effectuées** durant la session (fichiers créés, modifiés, décisions prises, etc.).\n\nSi tu as travaillé avec l'IA sur un fichier Office (via MarkItDown ou une conversion PDF), alors oui, ce travail sera reflété dans le contexte mis à jour par `/done`.\n\n---\n\n- Je comprends pourquoi OpenCode ne lit pas les fichiers Office nativement\n- J'ai installé le MCP MarkItDown (ou je sais convertir en PDF)\n- J'ai testé la lecture d'un fichier Office dans OpenCode\n- Je comprends l'intérêt de migrer vers des fichiers libres (Markdown, HTML, CSV)",
      "assets": [],
      "links": [
        {
          "text": "claude.ai",
          "url": "https://claude.ai/"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:06:13.505Z",
      "counts": {
        "code_blocks": 25,
        "headings": 14,
        "iframes": 0,
        "images": 0,
        "links": 1,
        "text_chars": 6926
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    },
    {
      "id": "35-semaine-1-frontend-slides",
      "order": 35,
      "kind": "subsection",
      "section": "07-outils-ia",
      "title": "Créer de belles slides avec l'IA",
      "slug": "semaine-1-frontend-slides",
      "source_url": "https://prisme.one/plateforme/ia-juillet-2026/semaine-1-frontend-slides",
      "summary": "Installer le plugin frontend-slides (zarazhangrui) pour générer des présentations HTML autonomes (un seul fichier, zéro dépendance) directement avec ton IA.",
      "objective": "",
      "expected_output": "",
      "content_html": "<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"créer-de-belles-slides-sans-toucher-au-css\">Créer de belles slides sans toucher au CSS</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\"><a href=\"https://github.com/zarazhangrui/frontend-slides\" class=\"text-primary underline underline-offset-4 hover:text-primary/80\" target=\"_blank\" rel=\"noopener noreferrer\"><strong class=\"font-semibold text-foreground\">frontend-slides</strong></a> est un plugin Claude Code (qui marche aussi très bien avec OpenCode) pour générer des <strong class=\"font-semibold text-foreground\">présentations HTML autonomes</strong> : un seul fichier <code class=\"rounded bg-muted px-1.5 py-0.5 text-sm font-mono\">.html</code>, zéro dépendance, esthétique propre. Pas de PowerPoint, pas de Google Slides, pas de Reveal.js à configurer. Tu décris ce que tu veux, ton IA produit le fichier, tu l'ouvres dans ton navigateur ou tu le présentes en plein écran.</p>\n<div class=\"my-6 max-w-2xl mx-auto\"><img alt=\"frontend-slides : créer de belles slides avec l'IA\" class=\"w-full rounded-xl border border-zinc-200\" src=\"assets/01-frontend-slides-creer-de-belles-slides-avec-l-ia.png\"></div>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"linstaller-en-une-commande\">L'installer en une commande</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Ouvre ton IA dans ton vault (Claude Code ou OpenCode) et colle ce prompt :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>J'aimerais installer le plugin frontend-slides de zarazhangrui pour\ngénérer des présentations HTML autonomes avec toi.\n\nRepo officiel : https://github.com/zarazhangrui/frontend-slides\n\n1. Va lire le README à l'URL ci-dessus.\n2. Détecte si je suis sur Claude Code (commandes /plugin disponibles)\n   ou OpenCode (installation manuelle dans le dossier skills).\n3. Installe la méthode officielle recommandée par le README pour mon outil.\n4. Vérifie que la commande `/frontend-slides` est dispo et fais un test\n   rapide pour valider que tout fonctionne.\n\nSi la doc a évolué depuis ton entraînement, fais confiance au README\nplutôt qu'à ta mémoire.\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">L'IA fait le reste.</p>\n<hr class=\"my-8 border-border\">\n<h2 class=\"text-2xl font-semibold tracking-tight mt-6 mb-3\" id=\"lutiliser\">L'utiliser</h2>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Une fois installé, tu lances :</p>\n<div class=\"relative group my-4\"><pre class=\"rounded-lg bg-muted p-4 overflow-x-auto text-sm pr-14\"><code>/frontend-slides\n</code></pre></div>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Et tu décris ta présentation : sujet, audience, ton, structure souhaitée. L'IA génère un fichier HTML autonome. Tu l'ouvres dans ton navigateur, tu présentes en plein écran. Fini.</p>\n<p class=\"text-base leading-7 text-muted-foreground mb-4\">Cas d'usage typiques :</p>\n<ul class=\"list-disc pl-6 space-y-2 mb-4 text-muted-foreground\">\n<li class=\"leading-7\">Une pitch deck pour un appel client</li>\n<li class=\"leading-7\">Un support pour un live ou un atelier</li>\n<li class=\"leading-7\">Une présentation interne pour ton équipe</li>\n<li class=\"leading-7\">Un cours, une formation</li>\n<li class=\"leading-7\">Une explication visuelle pour un client ou un prospect</li>\n</ul>\n<hr class=\"my-8 border-border\">\n<ul class=\"space-y-0.5 my-4 list-none pl-0\"><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai installé frontend-slides via le prompt — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai installé frontend-slides via le prompt</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"La commande /frontend-slides est disponible — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">La commande /frontend-slides est disponible</span></li><li class=\"flex items-start gap-3 py-1.5\"><button class=\"mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded border transition-colors border-border hover:border-primary/50\" aria-label=\"J'ai testé la création d'une slide d'exemple — à faire\"></button><span class=\"text-sm leading-6 text-foreground\">J'ai testé la création d'une slide d'exemple</span></li></ul>",
      "content_markdown": "## Créer de belles slides sans toucher au CSS\n\n[**frontend-slides**](https://github.com/zarazhangrui/frontend-slides) est un plugin Claude Code (qui marche aussi très bien avec OpenCode) pour générer des **présentations HTML autonomes** : un seul fichier `.html`, zéro dépendance, esthétique propre. Pas de PowerPoint, pas de Google Slides, pas de Reveal.js à configurer. Tu décris ce que tu veux, ton IA produit le fichier, tu l'ouvres dans ton navigateur ou tu le présentes en plein écran.\n\n![frontend-slides : créer de belles slides avec l'IA](assets/01-frontend-slides-creer-de-belles-slides-avec-l-ia.png)\n\n---\n\n## L'installer en une commande\n\nOuvre ton IA dans ton vault (Claude Code ou OpenCode) et colle ce prompt :\n\n```\nJ'aimerais installer le plugin frontend-slides de zarazhangrui pour\ngénérer des présentations HTML autonomes avec toi.\n\nRepo officiel : https://github.com/zarazhangrui/frontend-slides\n\n1. Va lire le README à l'URL ci-dessus.\n2. Détecte si je suis sur Claude Code (commandes /plugin disponibles)\n   ou OpenCode (installation manuelle dans le dossier skills).\n3. Installe la méthode officielle recommandée par le README pour mon outil.\n4. Vérifie que la commande `/frontend-slides` est dispo et fais un test\n   rapide pour valider que tout fonctionne.\n\nSi la doc a évolué depuis ton entraînement, fais confiance au README\nplutôt qu'à ta mémoire.\n```\n\nL'IA fait le reste.\n\n---\n\n## L'utiliser\n\nUne fois installé, tu lances :\n\n```\n/frontend-slides\n```\n\nEt tu décris ta présentation : sujet, audience, ton, structure souhaitée. L'IA génère un fichier HTML autonome. Tu l'ouvres dans ton navigateur, tu présentes en plein écran. Fini.\n\nCas d'usage typiques :\n\n- Une pitch deck pour un appel client\n- Un support pour un live ou un atelier\n- Une présentation interne pour ton équipe\n- Un cours, une formation\n- Une explication visuelle pour un client ou un prospect\n\n---\n\n- J'ai installé frontend-slides via le prompt\n- La commande /frontend-slides est disponible\n- J'ai testé la création d'une slide d'exemple",
      "assets": [
        {
          "alt": "frontend-slides : créer de belles slides avec l'IA",
          "original_url": "https://opengraph.githubassets.com/1/zarazhangrui/frontend-slides",
          "path": "assets/01-frontend-slides-creer-de-belles-slides-avec-l-ia.png",
          "bytes": 93878,
          "content_type": "image/png",
          "status": "downloaded",
          "source_status": 200
        }
      ],
      "links": [
        {
          "text": "frontend-slides",
          "url": "https://github.com/zarazhangrui/frontend-slides"
        }
      ],
      "videos": [],
      "captured_at": "2026-08-03T10:06:15.428Z",
      "counts": {
        "code_blocks": 5,
        "headings": 3,
        "iframes": 0,
        "images": 1,
        "links": 1,
        "text_chars": 1787
      },
      "validation": {
        "status": "ok",
        "errors": []
      },
      "asset_warnings": []
    }
  ],
  "capture": {
    "status": "complete",
    "started_at": "2026-08-03T09:50:38.667Z",
    "completed_at": "2026-08-03T10:06:15.454Z",
    "current_index": 35,
    "last_lesson_id": "35-semaine-1-frontend-slides",
    "last_saved_at": "2026-08-03T10:06:15.428Z"
  },
  "generated_at": "2026-08-03T10:58:51.337Z"
}
