CLAUDE.md
Dans la page précédente, tu as appris à naviguer entre les modes Chat, Plan et Auto-accept. Maintenant, on va voir comment donner à Claude une mémoire permanente de ton projet.
Pourquoi CLAUDE.md ?
Sans CLAUDE.md, Claude repart de zéro à chaque session. Il ne connaît pas :
- Les conventions de code du projet
- Les erreurs passées à éviter
- Les patterns architecturaux choisis
- Les commandes spécifiques au projet
Le fichier CLAUDE.md est la solution : un fichier texte à la racine de ton projet que Claude lit automatiquement à chaque démarrage.
Quel template choisir ?
Avant de plonger dans les templates, identifie ton besoin :
Template de base
Pour un projet simple sans auth ni paiement :
CLAUDE.md, Template de base
# CLAUDE.md
## Project Overview
Description courte du projet (2-3 phrases).
## Tech Stack
- Framework: Next.js 16
- Language: TypeScript
- Style: Tailwind CSS v4
## Commands
\`\`\`bash
npm run dev # Start dev server
npm run build # Production build
npm run test # Run tests
\`\`\`
## Code Style
- TypeScript strict mode
- Async/await over callbacks
- Named exports over default exports
## Common Mistakes to Avoid
- Ne jamais exposer les clés API côté client
- Toujours valider les inputs utilisateur
- Utiliser les Server Actions pour les mutations
Template avancé (projets complexes)
Pour un MVP complet comme LaunchList, ajoute un rôle, les patterns de référence et les conventions :
CLAUDE.md, Template avancé
# CLAUDE.md
## Role
Tu es un senior full-stack developer spécialisé en Next.js,
TypeScript et architecture hexagonale.
## Project Overview
LaunchList, plateforme de waitlist payante pour créateurs.
Les utilisateurs créent des landing pages avec paiement intégré.
## Tech Stack
- Framework: Next.js 16 (App Router, Server Components)
- ORM: Drizzle (PostgreSQL via Supabase)
- Auth: Better-Auth (email + OAuth)
- Payments: Stripe (Connect + Checkout)
- Style: Tailwind CSS v4
- Email: Resend
- Deploy: Vercel
## Commands
\`\`\`bash
npm run dev # Dev server (port 3001)
npm run build # Build production
npm run lint # ESLint
npm run test # Vitest
npm run db:push # Push schema to DB
npm run db:studio # Open Drizzle Studio
\`\`\`
## Architecture
- src/app/ , Pages et routes (App Router)
- src/components/ , Composants réutilisables
- src/lib/ , Utilitaires et configurations
- src/db/ , Schéma Drizzle et migrations
## Patterns (fichiers de référence)
- Server Action : src/app/dashboard/actions.ts
- Formulaire : src/components/WaitlistForm.tsx
- Schéma DB : src/db/schema.ts
- Validation : src/lib/validations.ts
## Conventions
- Server Components par défaut
- Server Actions pour les mutations (pas d'API Routes)
- Validation Zod sur toutes les entrées utilisateur
- Permissions vérifiées via la session dans chaque action
- Types TypeScript explicites (pas de any)
- Tailwind uniquement (pas de CSS modules)
## Common Mistakes to Avoid
- Ne pas oublier revalidatePath après une mutation
- Toujours vérifier session.user.id dans les Server Actions
- Utiliser headers() dans les Server Actions (pas cookies())
Le rôle dans le CLAUDE.md applique le principe d'Anthropic : donner un rôle à Claude active les connaissances pertinentes. "Senior full-stack developer spécialisé en Next.js" produira un code différent de celui sans rôle.
Où placer le fichier ?
Claude cherche CLAUDE.md dans cet ordre :
- Racine du projet :
./CLAUDE.md(le plus courant) - Dossier .claude :
.claude/CLAUDE.md - Global :
~/.claude/CLAUDE.md
Sections essentielles
| Section | Contenu | Pourquoi |
|---|---|---|
| Role | Domaine d'expertise de Claude | Active les bonnes connaissances |
| Project Overview | 2-3 phrases décrivant le projet | Donne le cadre |
| Tech Stack | Frameworks, libs, services | Évite les suggestions hors-stack |
| Commands | Commandes npm/pnpm du projet | Claude peut les exécuter |
| Patterns | Fichiers de référence à suivre | Cohérence du code |
| Code Style | Conventions de code importantes | Standards du projet |
| Common Mistakes | Erreurs à éviter (crucial !) | Apprentissage cumulatif |
Bonnes pratiques
- Garde-le concis, moins de 200 lignes (recommandation officielle Anthropic). Au-delà, Claude consomme du contexte pour le lire, ce qui laisse moins de place pour ton prompt et le code. N'inclus que les instructions qui s'appliquent globalement au projet
- Sois spécifique, pas de généralités, des instructions précises. "Utilise des Server Actions" est mieux que "Utilise les bonnes pratiques"
- Documente les erreurs, chaque erreur corrigée = une ligne ajoutée. C'est le feedback loop le plus puissant
- Versionne-le, commit chaque modification. Le CLAUDE.md évolue avec le projet
- Pointe vers des fichiers, "Suis le pattern dans src/app/dashboard/actions.ts" est plus précis que décrire le pattern en texte
Quand Claude fait une erreur récurrente, ajoute-la à la section "Common Mistakes to Avoid" du CLAUDE.md. C'est plus efficace que de corriger l'erreur à chaque session.
Templates CLAUDE.md prêts à l'emploi
Télécharge un template adapté à ton type de projet et personnalise-le :
| Template | Pour quel projet | Télécharger |
|---|---|---|
| MVP | Tout projet early-stage | claude-md-mvp.md |
| SaaS | App avec auth, paiements, dashboard | claude-md-saas.md |
| API | API REST ou backend pur | claude-md-api.md |
Mettre à jour CLAUDE.md
Le CLAUDE.md n'est pas un fichier "write once". Il doit évoluer avec ton projet. Voici les moments clés pour le mettre à jour :
Auto-memory : Claude apprend tout seul
Le CLAUDE.md est ce que toi tu écris pour Claude. L'auto-memory est ce que Claude écrit pour lui-même. Ce sont deux systèmes complémentaires, chargés au début de chaque session.
Comment ça marche
Quand tu corriges Claude ou qu'il découvre quelque chose d'utile (une commande de build, un pattern de debug, une préférence de style), il sauvegarde automatiquement une note dans ~/.claude/projects/<projet>/memory/. Pas besoin de lui demander.
~/.claude/projects/<projet>/memory/
├── MEMORY.md # Index concis, chargé à chaque session (200 lignes max)
├── debugging.md # Notes détaillées sur le debugging
├── api-conventions.md # Décisions d'architecture API
└── ... # Autres fichiers par sujet
Les 200 premières lignes de MEMORY.md sont chargées au début de chaque conversation. Les fichiers détaillés (debugging.md, etc.) sont lus à la demande quand Claude en a besoin.
Quand utiliser quoi
| CLAUDE.md | Auto-memory | |
|---|---|---|
| Qui écrit | Toi | Claude |
| Contenu | Instructions et règles | Apprentissages et patterns |
| Scope | Projet, utilisateur, ou organisation | Par répertoire de travail |
| Utilise pour | Standards de code, workflows, architecture | Commandes de build, insights de debug, préférences découvertes |
Gérer l'auto-memory
/memorypour voir tous les fichiers chargés (CLAUDE.md + auto-memory) et les éditer- "Retiens que..." dans un prompt pour forcer Claude à sauvegarder quelque chose
- Les fichiers sont du markdown que tu peux éditer ou supprimer à tout moment
L'auto-memory est activée par défaut. Tous les worktrees et sous-répertoires d'un même dépôt git partagent le même dossier de mémoire. Les fichiers restent locaux à ta machine.
Checklist
Avant de passer à la page suivante, vérifie que :
- Tu as un fichier
CLAUDE.mdà la racine de ton projet - Il contient au minimum : Project Overview, Tech Stack, Commands, Common Mistakes
- Tu as commité le fichier dans git
- Tu sais que Claude apprend automatiquement via l'auto-memory (
/memorypour vérifier)
Prochaine étape
Ton CLAUDE.md est en place et l'auto-memory fait le reste. Claude connaît ton projet, ta stack et tes conventions. Il est temps d'apprendre à lui parler efficacement : c'est l'art du prompting.