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
- Auth: Better-Auth
- Database: Postgres + Drizzle ORM
- Payments: Stripe
## 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, ~2500 tokens max. Au-delà, Claude consomme du contexte pour le lire, ce qui laisse moins de place pour ton prompt et le code
- 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 :
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
Prochaine étape
Ton CLAUDE.md est en place. Claude connaît ton projet, ta stack et tes conventions. Il est temps d'apprendre à lui parler efficacement : c'est l'art du prompting.