Cette page détaille ma configuration Claude Code personnelle, affinée après des mois d'utilisation quotidienne sur plusieurs projets. Dernière mise à jour : avril 2026.
Architecture de la configuration
Claude Code utilise un système de mémoire à 3 niveaux :
| Niveau | Fichier | Quand c'est chargé |
|---|---|---|
| Global | ~/.claude/CLAUDE.md | Toutes les conversations, tous les projets |
| Projet | ./CLAUDE.md à la racine du projet | Chaque conversation dans ce projet |
| Sous-dossier | ./CLAUDE.md dans un sous-dossier | Quand Claude lit un fichier dans ce dossier |
Fichiers supplémentaires :
~/.claude/rules/→ Règles globales (chargées selon le contexte)~/.claude/commands/→ Skills et commandes custom~/.claude/agents/→ Sub-agents autonomes~/.claude/scripts/→ Scripts d'automatisation pour les hooks~/.claude/settings.json→ Plugins, deny list, permissions globales, hooks~/.claude/settings.local.json→ Status line et permissions locales.claude/dans chaque projet → Rules et settings spécifiques au projet
Les modèles que j'utilise en 2026
| Modèle | Quand je l'appelle | Comment |
|---|---|---|
| Opus 4.7 (1M context) | Feature importante, refacto large, lecture de codebase entière | Par défaut dans /model |
| Sonnet 4.6 (1M context) | Workflows longs, édition de 10+ fichiers, quand Opus est trop lent | /model sonnet |
| Haiku 4.5 | Tâches courtes, scripts, exploration rapide, sub-agents | /model haiku |
| Opus 4.6 fast | Itération rapide avec la qualité Opus (mode "Fast") | /fast en cours de session |
Le 1M de contexte change tout : je peux charger un monorepo entier avant de commencer à réfléchir. En pratique je reste sur Opus 4.7 pour tout ce qui demande de la qualité, et je bascule Haiku pour les sub-agents d'exploration où seul le volume compte.
Mon CLAUDE.md global (~50 lignes)
Fichier chargé dans TOUTES les conversations. Contient :
- Identité : dev fullstack Next.js + Supabase + shadcn/ui + Tailwind v4, réponses en français, code en anglais
- Coding standards : TypeScript strict, Server Components par défaut, Server Actions + RLS + Zod
- UI/UX : shadcn/ui obligatoire, Tailwind v4 CSS vars, Recharts SSR pattern
- Git : commits conventionnels en anglais, jamais push/force push sans demander
- Outils : pnpm par défaut, Prettier via hook
Mes règles globales (~/.claude/rules/)
safety.md, ce qui est INTERDIT
rm -rf→ utilisertrashsudosans confirmation- Supprimer des migrations SQL
supabase db reset(détruit données + credentials)
supabase.md, patterns obligatoires
createClient()(anon+RLS) pour les pages usercreateAdminClient()UNIQUEMENT pour admin/scripts- Pattern server action :
"use server"→createClient()→getUser()→ Zod → query
nextjs.md, conventions Next.js
- Server Components par défaut, Client Components seulement si state/events
- LIRE 3 FICHIERS SIMILAIRES avant de créer un nouveau composant/route/action
- URL search params pour les filtres (SSR-friendly), pas de useState
- Ne jamais créer
middleware.tssans vérifier l'existant
quality.md, standards de qualité
- Ne jamais marquer une tâche terminée sans preuve que ça marche
- Demand elegance pour les changements non-triviaux
- Simplicity first, no laziness, minimal impact
workflow.md, gestion des sessions
- Plan mode pour toute tâche 3+ étapes
- Subagents pour garder le contexte propre
/compactà 60%, STOP à 80%,/rewindsi ça déraille
self-improvement.md, auto-amélioration
- Après correction utilisateur → sauvegarder en mémoire (feedback)
- Pattern manquant détecté → suggérer mise à jour des rules
changelog.md, CHANGELOG automatique
- Mise à jour du
CHANGELOG.mdaprès chaque changement de code
typescript-errors.md, scope multi-agent
- Ne corriger que les erreurs TypeScript dans ses propres fichiers
writing-style.md, anti-patterns IA
- Zéro tiret cadratin, zéro parallélisme, zéro formule sentencieuse
pdf-export.md, export PDF carrousel
- Dimensions divisibles par 4 (standard : 1080x1348px)
- Post-processing pypdf pour MediaBox exact
Mes hooks
Les hooks sont la partie "automatique" de Claude Code : ils s'exécutent à des moments précis du cycle (session start, avant un outil, après un outil, fin de session). Le chapitre 9 couvre le fonctionnement complet et comment les écrire. Voici ceux que j'ai branchés dans mon ~/.claude/settings.json :
- SessionStart → charge automatiquement
brain/INDEX.mdetbrain/memory/MEMORY.mdquand j'ouvre une session dans~/Claude OS/. Je n'ai jamais à rappeler mon knowledge base, il est déjà en contexte. - PostToolUse (Prettier) → après chaque édition de fichier, lance
npx prettier --write. Le code reste formaté sans y penser. - PostToolUse (console warn) → alerte si un
console.logest glissé dans du TypeScript. - PreToolUse (config protection) → bloque les modifications sauvages de
.eslintrc,.prettierrc,biome.json. Force à corriger le code plutôt qu'à affaiblir les règles. - PreToolUse (TypeScript pré-commit) →
npx tsc --noEmitavant chaquegit commit, commit bloqué si erreur. - Stop → notification macOS cliquable avec projet, branche et durée de session.
Mes plugins actifs
Les plugins ajoutent des workflows pré-configurés. Installables via le marketplace officiel.
- superpowers → framework complet avec brainstorming 4 rounds, TDD, debugging structuré, plans, code review parallèle, worktrees. Le couteau suisse quand je veux de la rigueur.
- claude-seo → audit SEO full-site, technique, schema, GEO (AI Overviews), images, sitemap. Je le lance après chaque gros refresh de contenu.
- claude-blog → moteur éditorial complet : write, rewrite, analyze, outline, audit, repurpose, avec scoring 100 points optimisé ranking Google + citations IA.
- ralph-loop → pour les tâches qui doivent se répéter pendant une session (monitoring, polling, itération contrôlée).
- claude-carbon → affiche l'empreinte carbone de mes sessions et génère des cartes de rapport. Pour garder l'impact en tête.
Mes serveurs MCP
Les serveurs MCP connectent Claude Code à des services externes via le Model Context Protocol.
Local
- nano-banana : génération et édition d'images via Gemini (chapitre 15)
Cloud (connectés via claude.ai)
- Notion : lire, créer et modifier des pages et bases de données
- Gmail : rechercher, lire et rédiger des emails
- Google Calendar : gérer l'agenda
- Supabase : exécuter du SQL, migrations, edge functions, types
- Vercel : déploiements, logs, configuration projet
- Stripe : paiements, webhooks, authentification
- Sentry : monitoring et alertes
- Context7 : documentation à jour de n'importe quelle librairie
- Canva : création et édition de designs
- Excalidraw : diagrammes et schémas techniques
Résultat : pousser un carousel dans Notion, checker un déploiement Vercel, exécuter du SQL sur Supabase, ou rechercher un email. Sans quitter le terminal.
Mon workflow /code, Prompt Discovery
Le problème, Lost in the Middle
Les LLMs donnent plus d'attention aux tokens en début et fin de contexte. Un gros prompt initial se retrouve "au milieu" après l'exploration → le modèle le suit moins bien.
La solution : Prompt Discovery, chaque étape est lue JUSTE AVANT son exécution, gardant les instructions fraîches en fin de contexte.
Comment utiliser /code
/code Ajouter une page profil utilisateur
→ Explore la codebase → Exécute → Vérifie (TypeScript, build)
/code --plan Ajouter un système de notifications
→ Explore → Crée un plan → Validation utilisateur → Exécute → Vérifie
/code --plan --test --branch --pr Refactorer le système de crédits
→ Explore → Plan → Branche git → Exécute → Tests → PR
Les 4 étapes
| Étape | Fichier | Ce qui se passe |
|---|---|---|
| Explore | 01-explore.md | Lance des sub-agents pour analyser la codebase, lit 3+ fichiers similaires |
| Plan | 02-plan.md | Crée un plan structuré, identifie les décisions (si --plan) |
| Execute | 03-execute.md | Code dans l'ordre : migrations → types → actions → UI |
| Verify | 04-verify.md | TypeScript check, lint, build, tests (si --test), PR (si --pr) |
Les commandes que j'utilise en flux tendu
En plus de /code, trois commandes intégrées rythment toutes mes sessions :
/loop→ pour lancer une tâche qui doit se répéter (polling d'un déploiement, itération contrôlée sur un rendu). Je donne l'intervalle ou je laisse le modèle se temporiser./rewind(ou double Esc) → annule les dernières modifs de code ET revient en arrière dans la conversation. Quand Claude part dans une mauvaise piste, c'est 3x plus efficace que corriger à la main./compact→ résume la conversation et libère du contexte. Je le lance vers 50-60%, jamais plus tard.
Mes sub-agents custom
Un sub-agent est un "mini-Claude" dispatché pour une tâche spécifique. Il explore, analyse, puis renvoie un résumé au contexte principal. Avantage : il peut lire 120K tokens et n'en renvoyer que 1-2K.
Exploration
- explore-codebase : structure du projet, stack, patterns, utilitaires (~500 mots)
- explore-supabase : migrations SQL, policies RLS, server actions (~800 mots)
- doc-lookup : documentation via Context7 MCP ou web search (~1000 mots)
Blog & contenu
- blog-researcher : statistiques récentes, vérification de sources, images libres
- blog-writer : rédaction d'articles optimisés SEO et citations IA
- blog-reviewer : review qualité sur 5 catégories, scoring /100
- blog-seo : optimisation SEO on-page
SEO (7 agents spécialisés)
- seo-content · seo-technical · seo-schema · seo-geo · seo-performance · seo-sitemap · seo-visual
Chaque agent SEO couvre un domaine : contenu, technique, schema.org, citations IA, Core Web Vitals, sitemaps, rendu visuel.
Impact sur le contexte : un sub-agent peut lire 120K tokens et n'en renvoyer que 1-2K au contexte principal. C'est une économie massive qui te permet de garder ton contexte propre pour les instructions importantes.
Mes skills et commandes
Chaque fichier .md dans ~/.claude/commands/ devient une commande /nom.
Développement
/code · /apex · /debug · /review · /component · /server-action · /form-builder · /migration-sql · /rls-policy · /refactor · /test-gen · /supabase-types · /codebase-map · /security-scan · /deploy-check · /push-prod · /pr · /clean-code · /explain · /perf-audit · /oneshot
Contenu & marketing
/carousel · /lk · /insta · /bip · /newsletter · /email · /veille · /image · /photo-gaetan · /banner · /video · /short · /deck · /content-repurpose · /recap · /ship · /metrics-share · /inbox-notion
Workflows multi-étapes
/code: Explore → Plan → Execute → Verify. Chaque étape est un fichier lu juste-à-temps (Prompt Discovery)./apex: version avancée avec flags--auto,--plan,--branch,--pr,--test/brainstorm: recherche profonde en 4 rounds, Exploration, Devil's Advocate, Synthèse, Cristallisation/debug: debugging structuré en 5 étapes, Init, Analyse, Solutions, Fix, Verify/review: code review parallèle avec 4 reviewers, Code, Best Practices, Security, Devil Advocate
Checklist nouveau projet
- Créer le projet et initialiser git
- Lancer
claudedans le dossier du projet - Lancer
/initpour générer leCLAUDE.mdautomatiquement - Réduire le
CLAUDE.mdà ~100-200 lignes (garder l'essentiel) - Créer
.claude/settings.local.jsonavec les permissions - Ajouter des rules scoped dans
.claude/rules/si nécessaire - Ajouter des code comments dans les fichiers utilitaires clés (coût zéro)
Configuration settings.json
Le fichier ~/.claude/settings.json contient des réglages qui améliorent significativement la qualité des réponses. Ces 3 options sont recommandées par Boris Cherny (créateur de Claude Code) :
{
"effortLevel": "high",
"alwaysThinkingEnabled": true,
"outputStyle": "Explanatory"
}
Ce que chaque option fait :
- effortLevel: "high" : Claude utilise plus de tokens pour réfléchir. Plus lent mais plus intelligent. Boris l'utilise sur tout.
- alwaysThinkingEnabled: true : affiche le raisonnement de Claude. Tu vois pourquoi il fait chaque choix.
- outputStyle: "Explanatory" : ajoute des boîtes "Insight" qui expliquent les patterns et frameworks utilisés. Très utile quand tu explores un codebase inconnu.
Ces réglages sont aussi accessibles via :
/modelpour changer le modèle et l'effort level/configpour l'output style/fastpour basculer en Opus 4.6 fast en cours de session
Status line avec alerte contexte
La status line affiche des infos en temps réel sous le composer. Ma version ajoute un warning de contexte :
#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
DIR=$(echo "$input" | jq -r '.workspace.current_dir')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
COST=$(echo "$input" | jq -r '.cost.total_cost_usd // 0')
FOLDER="${DIR##*/}"
if [ "$PCT" -ge 80 ]; then
CTX=" [COMPACT NOW]"
elif [ "$PCT" -ge 60 ]; then
CTX=" [compact soon]"
else
CTX=""
fi
echo "[$MODEL] $FOLDER | ${PCT}% ctx${CTX} | \$$COST"
Résultat : [Opus 4.7] mon-projet | 45% ctx | $1.23. Et quand le contexte dépasse 60% : [Opus 4.7] mon-projet | 65% ctx [compact soon] | $2.10
Pour l'activer, ajoute dans settings.local.json :
{
"statusLine": {
"type": "command",
"command": "~/.claude/statusline.sh",
"padding": 2
}
}
Auto-memory : ce qui est officiel, ce qui est personnel
La taxonomie 4-types que j'utilise pour mes mémoires (user, feedback,
project, reference) est ma convention perso, pas une contrainte
Anthropic. Le système officiel se limite à un MEMORY.md qui sert d'index ;
tout le reste (les sous-fichiers, les catégories, les conventions de nommage)
est de la structuration que j'ai ajoutée par-dessus pour que mon brain reste
lisible. Tu peux l'adopter, la simplifier, ou ne rien formaliser du tout.
Concrètement dans mon setup, ~/Claude OS/brain/memory/MEMORY.md liste les mémoires typées et pointe vers des fichiers markdown individuels. Les hooks écrivent directement dans ce dossier, et Claude le lit au démarrage via le hook SessionStart. Le seul contrat vraiment officiel, c'est l'existence d'un MEMORY.md comme point d'entrée.
Deny list globale (filet de sécurité)
Dans ~/.claude/settings.json, la deny list bloque les commandes dangereuses partout, même en mode trust :
{
"permissions": {
"deny": [
"Bash(rm -rf*)",
"Bash(sudo*)",
"Bash(supabase db reset*)",
"Bash(git push --force*)",
"Bash(git push -f*)",
"Bash(git reset --hard*)",
"Bash(git clean -f*)"
]
}
}
Ces commandes sont les plus destructrices : suppression de fichiers, écrasement de l'historique git, destruction de base de données. Mieux vaut les bloquer une fois pour toutes.
Tips avancés
Règle des 3 fichiers
Avant de créer un nouveau composant/route/action, Claude doit LIRE au moins 3 fichiers similaires existants. Cela garantit la cohérence des patterns sans avoir à tout documenter dans le CLAUDE.md.
Code comments comme instructions
Ajouter des commentaires // CLAUDE: dans les fichiers utilitaires clés. Quand Claude lit ces fichiers pour comprendre les patterns, il hérite des instructions gratuitement, 0 token supplémentaire dans le contexte.
Exemples concrets :
supabase/server.ts→ différence entre client anon et adminai/types.ts→ comment ajouter un nouveau skill IAstripe/client.ts→ ne pas exposer la secret key côté client
Mot-clé "ultrathink"
Ajouter ultrathink dans un prompt force Claude à utiliser un raisonnement approfondi (extended thinking). Idéal pour les problèmes d'architecture complexes, les choix de design avec beaucoup de trade-offs, ou le debugging de problèmes subtils.
Prompt Discovery (anti "Lost in the Middle")
Ne jamais donner toutes les instructions d'un workflow en une seule fois. Découper en fichiers steps lus juste-à-temps pour que les instructions restent toujours "fraîches" en fin de contexte.
Meta-prompt pour optimiser tes prompts
Le skill /meta-prompt génère des prompts optimisés en appliquant les best practices Anthropic : XML tags, few-shot examples, chain-of-thought, etc. Utile pour créer des prompts système pour tes skills IA.
Hook pre-commit TypeScript
Un hook PreToolUse qui intercepte les git commit et lance npx tsc --noEmit avant. Bloque le commit si erreur TypeScript, filet de sécurité automatique.
Arborescence type
~/.claude/
├── CLAUDE.md ← Préférences globales
├── settings.json ← Plugins, deny list, hooks
├── settings.local.json ← Status line, permissions locales
├── rules/
│ ├── safety.md ← Interdictions (rm -rf, sudo, db reset)
│ ├── supabase.md ← Patterns Supabase obligatoires
│ ├── nextjs.md ← Conventions Next.js
│ ├── workflow.md ← Best practices /compact, /rewind, sessions
│ └── changelog.md ← Mise à jour CHANGELOG après chaque modif
├── commands/
│ └── code/
│ ├── skill.md ← Workflow /code (entry point)
│ └── steps/
│ ├── 01-explore.md ← Étape exploration
│ ├── 02-plan.md ← Étape plan (si --plan)
│ ├── 03-execute.md ← Étape exécution
│ └── 04-verify.md ← Étape vérification
└── agents/
├── explore-codebase.md ← Sub-agent exploration projet
├── explore-supabase.md ← Sub-agent schéma Supabase
└── doc-lookup.md ← Sub-agent documentation
~/code/mon-projet/
├── CLAUDE.md ← ~100-200 lignes, spécifique au projet
└── .claude/
├── settings.local.json ← Permissions projet
└── rules/
├── db-schema.md ← Schéma DB (si applicable)
└── roadmap.md ← Phases et sprints