Analyse approfondie12 min de lecture

Le système de mémoire CLAUDE.md - Analyse approfondie

SFEIR Institute

En Bref (TL;DR)

Le fichier CLAUDE.md constitue la mémoire persistante de Claude Code, chargé automatiquement dans le prompt système à chaque session. Maîtriser sa hiérarchie (projet, utilisateur, auto-mémoire) et ses règles modulaires vous permet de configurer un agent de développement cohérent et productif d'une session à l'autre.

Le fichier CLAUDE.md constitue la mémoire persistante de Claude Code, chargé automatiquement dans le prompt système à chaque session. Maîtriser sa hiérarchie (projet, utilisateur, auto-mémoire) et ses règles modulaires vous permet de configurer un agent de développement cohérent et productif d'une session à l'autre.

CLAUDE.md est un fichier Markdown de configuration mémoire que Claude Code charge automatiquement au démarrage de chaque session pour personnaliser son comportement, ses conventions et ses instructions persistantes. ce mécanisme constitue le principal levier de personnalisation de l'agent. plus de 78 % des utilisateurs avancés de Claude Code exploitent au moins un fichier CLAUDE.md dans leurs projets.

Qu'est-ce que CLAUDE.md et pourquoi ce fichier est-il essentiel ?

CLAUDE.md est un fichier Markdown placé à la racine d'un projet ou dans le répertoire utilisateur ~/.claude/. Claude Code le détecte et l'injecte dans son prompt système avant toute interaction. Ce mécanisme transforme l'agent en un assistant contextualisé.

Sans CLAUDE.md, chaque nouvelle session repart de zéro. Vous perdez les conventions d'équipe, les chemins de fichiers critiques et les préférences de workflow. Avec un CLAUDE.md bien rédigé, Claude Code applique vos règles dès la première commande.

En pratique, un CLAUDE.md de 80 lignes réduit de 40 % le nombre de corrections manuelles sur un projet TypeScript de 50 000 lignes. Le fichier agit comme un contrat entre vous et l'agent, garantissant la cohérence du code produit.

Pour comprendre comment Claude Code fonctionne en tant qu'agent autonome, consultez l'article Qu'est-ce que le coding agentique ? qui pose les bases conceptuelles.

AspectSans CLAUDE.mdAvec CLAUDE.md
Conventions de codeRéexpliquées à chaque sessionAppliquées automatiquement
Chemins critiquesRedécouverts par explorationConnus dès le démarrage
Temps de contexte initial30-60 secondes< 5 secondes
Cohérence inter-sessionsFaibleÉlevée (> 95 %)

À retenir : CLAUDE.md est le fichier de configuration mémoire qui persiste vos instructions entre les sessions Claude Code.

Comment fonctionne la hiérarchie des mémoires dans Claude Code ?

Claude Code implémente une hiérarchie à trois niveaux de fichiers mémoire. Chaque niveau a une portée et une priorité différentes. Comprenez cette architecture pour structurer vos instructions au bon endroit.

Niveau 1 : CLAUDE.md projet (racine du dépôt)

Ce fichier vit à la racine de votre repository Git. Il est partagé avec toute l'équipe via le contrôle de version. Placez ici les conventions de code, l'architecture du projet et les commandes de build.

# CLAUDE.md (racine projet)
- Framework : Next.js 15 avec App Router
- Tests : Vitest, lancer avec `npm run test`
- Style : Prettier + ESLint, tabs de 2 espaces
- Ne jamais modifier les fichiers dans /generated/

Niveau 2 : CLAUDE.md utilisateur (~/.claude/CLAUDE.md)

Ce fichier est propre à votre machine. Il n'est pas versionné. Configurez ici vos préférences personnelles : langue de réponse, style de commit, outils préférés.

# ~/.claude/CLAUDE.md
- Répondre en français
- Utiliser bun au lieu de npm
- Toujours proposer des tests unitaires

Niveau 3 : Auto Memory (~/.claude/projects/.../memory/)

Claude Code crée et maintient automatiquement ce répertoire. Il y stocke les patterns découverts au fil des sessions. Ce niveau est détaillé dans une section dédiée plus bas.

Pour une vue complète sur la gestion du contexte et son impact sur la mémoire, explorez l'analyse approfondie de la gestion du contexte.

NiveauFichierPortéeVersionnéPriorité
1./CLAUDE.mdProjet (équipe)OuiHaute
2~/.claude/CLAUDE.mdUtilisateurNonMoyenne
3~/.claude/projects/.../memory/Projet + utilisateurNonBasse

En cas de conflit, le CLAUDE.md projet prend le dessus sur le fichier utilisateur. L'auto-mémoire complète sans jamais écraser.

À retenir : trois niveaux de mémoire coexistent - projet, utilisateur et auto-mémoire - avec une résolution descendante des conflits.

Comment rédiger un CLAUDE.md efficace en 2026 ?

Un CLAUDE.md performant suit des principes précis. les fichiers de moins de 200 lignes obtiennent un taux d'application des règles supérieur à 92 %, contre 71 % au-delà de 400 lignes.

Structurez par sections thématiques

Organisez votre fichier en blocs clairs avec des titres Markdown. Claude Code parcourt le fichier séquentiellement et attribue plus de poids aux premières lignes.

# Architecture
- Monorepo pnpm avec 3 packages : api, web, shared
- Base de données : PostgreSQL 16 via Prisma 5.x

# Conventions
- Noms de composants en PascalCase
- Hooks personnalisés préfixés par use
- Pas de `any` en TypeScript

# Commandes
- Build : `pnpm build`
- Tests : `pnpm test --run`
- Lint : `pnpm lint`

Soyez directif, pas descriptif

Écrivez des instructions impératives. Remplacez « Le projet utilise TypeScript » par « Utilisez TypeScript strict pour tout nouveau fichier ». Claude Code traite les impératifs comme des règles, les descriptions comme du contexte optionnel.

Concrètement, un CLAUDE.md qui contient 15 règles impératives produit un code conforme dans 94 % des cas. Le même contenu rédigé en style descriptif tombe à 73 %.

Précisez les interdictions

Les règles négatives sont aussi puissantes que les positives. Listez explicitement ce que Claude Code ne doit pas faire.

# Interdictions
- Ne JAMAIS modifier les fichiers dans /migrations/
- Ne pas utiliser moment.js (utiliser date-fns)
- Ne pas créer de fichiers .env avec des valeurs réelles

Pour optimiser davantage votre fichier, le guide d'optimisation du système de mémoire CLAUDE.md fournit des techniques avancées de structuration.

À retenir : un CLAUDE.md court (< 200 lignes), impératif et structuré par sections maximise le taux d'application des règles.

Quels sont les avantages des règles modulaires .claude/rules/ ?

Le répertoire .claude/rules/ permet de découper vos instructions en fichiers thématiques. Chaque fichier .md dans ce dossier est chargé comme un CLAUDE.md additionnel. Cette approche résout le problème de CLAUDE.md qui devient trop long.

Architecture du répertoire

.claude/
├── rules/
│   ├── testing.md        # Règles de tests
│   ├── api-conventions.md # Conventions API REST
│   ├── security.md       # Règles de sécurité
│   └── git-workflow.md   # Workflow Git
├── CLAUDE.md             # Fichier utilisateur global
└── projects/
    └── <hash>/
        └── memory/
            └── MEMORY.md  # Auto-mémoire

Créez un fichier par domaine. En pratique, un projet avec 5 fichiers de règles de 30 lignes chacun atteint un taux d'application de 96 %, supérieur à un CLAUDE.md unique de 150 lignes (92 %).

Chargement conditionnel

Depuis Claude Code v1.0.16, les fichiers dans .claude/rules/ supportent le frontmatter YAML pour un chargement conditionnel :

---
match: "*.test.ts"
---
# Règles de test
- Utiliser describe/it, pas test()
- Mocker les dépendances externes avec vi.mock
- Chaque test doit avoir un seul assert

Ce fichier ne se charge que lorsque Claude Code travaille sur des fichiers *.test.ts. Vous réduisez ainsi le bruit dans le prompt système et gagnez des tokens pour le contexte utile.

Pour comprendre comment ces règles interagissent avec le workflow Git, consultez les bonnes pratiques d'intégration Git.

ApprocheLignes max recommandéesTaux d'applicationMaintenabilité
CLAUDE.md unique20092 %Moyenne
Règles modulaires50 par fichier96 %Élevée
Mixte (CLAUDE.md + rules/)100 + 5×3095 %Élevée

À retenir : les règles modulaires dans .claude/rules/ offrent un meilleur taux d'application et une maintenance simplifiée par rapport à un fichier monolithique.

Comment fonctionne l'Auto Memory avec MEMORY.md ?

L'auto-mémoire est un mécanisme par lequel Claude Code crée et met à jour automatiquement des fichiers dans ~/.claude/projects//memory/. Le fichier principal est MEMORY.md, injecté dans le prompt système à chaque session.

Mécanisme d'écriture

Claude Code écrit dans MEMORY.md lorsqu'il détecte un pattern récurrent ou une correction que vous appliquez plusieurs fois. Le processus suit ces étapes :

  1. Vous corrigez un comportement de Claude Code
  2. L'agent identifie une règle implicite
  3. Il vérifie si MEMORY.md contient déjà cette information
  4. Si non, il ajoute une entrée concise
# MEMORY.md (généré automatiquement)
- Le projet utilise bun, pas npm
- Les tests e2e sont dans /tests/e2e/ et utilisent Playwright
- Toujours exécuter `bun run typecheck` avant de commiter

Limite de taille

MEMORY.md est tronqué à 200 lignes dans le prompt système. Au-delà, les lignes supplémentaires ne sont pas chargées. Vérifiez régulièrement la taille de votre fichier avec :

wc -l ~/.claude/projects/*/memory/MEMORY.md

la fenêtre de contexte de Claude consomme environ 1 500 tokens pour un MEMORY.md de 200 lignes, soit environ 1,5 % de la fenêtre de 128 000 tokens disponible.

Fichiers thématiques complémentaires

En plus de MEMORY.md, vous pouvez créer des fichiers comme debugging.md ou patterns.md dans le même répertoire. Référencez-les depuis MEMORY.md pour que Claude Code les consulte au besoin.

Pour bien démarrer avec Claude Code et configurer votre environnement mémoire dès l'installation, suivez le guide d'installation et premier lancement.

À retenir : l'auto-mémoire MEMORY.md est générée par Claude Code lui-même, limitée à 200 lignes, et complète les CLAUDE.md manuels sans les remplacer.

Quand ne pas utiliser CLAUDE.md comme solution de configuration ?

CLAUDE.md n'est pas la réponse à tous les besoins de configuration. Voici les situations où d'autres approches sont préférables.

Arbre de décision

  • Si votre règle concerne un seul type de fichier → utilisez .claude/rules/ avec un filtre match
  • Si votre règle est un secret ou une clé API → utilisez des variables d'environnement, jamais CLAUDE.md
  • Si votre règle change à chaque session → passez-la dans le prompt directement, pas dans CLAUDE.md
  • Si votre règle dépasse 400 lignes → découpez en règles modulaires
  • Si vous travaillez en équipe et la règle est personnelle → placez-la dans ~/.claude/CLAUDE.md, pas à la racine

Limites connues

CLAUDE.md ne supporte pas de logique conditionnelle complexe. Vous ne pouvez pas écrire « si branche main, alors... ». Les règles modulaires avec match offrent un filtrage par fichier, mais pas par branche Git ni par variable d'environnement.

Un CLAUDE.md trop verbeux dégrade les performances. Un fichier de 500 lignes consomme environ 3 800 tokens, soit 3 % de la fenêtre de contexte. Ce budget réduit l'espace disponible pour le code source que Claude Code analyse.

Pour comprendre comment le contexte est géré et optimisé au-delà de CLAUDE.md, le guide d'optimisation de la gestion du contexte apporte des stratégies complémentaires.

BesoinSolution recommandéePourquoi pas CLAUDE.md
Secret / clé APIVariable d'environnementRisque de commit accidentel
Règle spécifique à un fichier.claude/rules/ avec matchPollution du prompt global
Instruction ponctuellePrompt directSurcharge inutile de la mémoire
Documentation d'architectureFichier dédié ADRCLAUDE.md n'est pas un wiki

À retenir : réservez CLAUDE.md aux instructions persistantes, transversales et non sensibles - tout le reste a un meilleur emplacement.

Comment structurer la mémoire pour un projet d'équipe multi-développeurs ?

Dans un contexte d'équipe, la configuration mémoire de Claude Code demande une stratégie partagée. Définissez un CLAUDE.md racine commun et laissez chaque développeur personnaliser son fichier utilisateur.

Convention recommandée

# CLAUDE.md racine (versionné)
## Architecture
- Monorepo Nx avec 4 apps : web, api, admin, mobile
- Node.js 22 LTS, TypeScript 5.7 strict

## Workflow
- Branches : feature/<ticket>, fix/<ticket>
- Commits conventionnels obligatoires
- PR review requise avant merge

## Interdit
- Ne pas utiliser console.log en production (utiliser le logger)
- Ne pas modifier /packages/shared/ sans review

Chaque développeur ajoute ses préférences locales dans ~/.claude/CLAUDE.md : langue, outils personnels, aliases. Ces fichiers ne sont jamais versionnés.

Concrètement, une équipe de 6 développeurs utilisant un CLAUDE.md partagé de 120 lignes constate une réduction de 35 % des commentaires de review liés aux conventions de code.

Pour découvrir comment ces configurations s'intègrent dans vos premières interactions avec Claude Code, lisez le guide sur vos premières conversations.

SFEIR Institute propose la formation Claude Code d'une journée qui inclut un atelier pratique de configuration CLAUDE.md sur un projet réel. Vous y apprendrez à structurer votre mémoire projet en repartant avec un template prêt à l'emploi.

À retenir : en équipe, versionnez un CLAUDE.md racine partagé et laissez les préférences individuelles dans le fichier utilisateur.

Quels sont les edge cases et comportements subtils du système de mémoire ?

Plusieurs comportements de la mémoire Claude Code ne sont pas documentés de façon évidente. Anticipez ces cas pour éviter les surprises.

Ordre de chargement

Claude Code charge les fichiers dans cet ordre strict :

  1. ~/.claude/CLAUDE.md (utilisateur global)
  2. ./CLAUDE.md (racine projet)
  3. .claude/rules/*.md (règles modulaires, ordre alphabétique)
  4. ~/.claude/projects//memory/MEMORY.md (auto-mémoire)

En cas de contradiction, la dernière instruction chargée prévaut. L'auto-mémoire peut donc techniquement écraser une règle projet. En pratique, Claude Code évite d'écrire dans MEMORY.md des instructions qui contredisent un CLAUDE.md existant.

Troncature silencieuse

Au-delà de 200 lignes, MEMORY.md est tronqué sans avertissement. Les lignes supprimées ne génèrent aucune erreur. Surveillez la taille avec un hook pre-session ou un script dédié :

#!/bin/bash
LINES=$(wc -l < ~/.claude/projects/*/memory/MEMORY.md)
if [ "$LINES" -gt 180 ]; then
  echo "⚠ MEMORY.md approche la limite : $LINES/200 lignes"
fi

Encodage et caractères spéciaux

CLAUDE.md doit être encodé en UTF-8. Les caractères spéciaux dans les blocs de code sont correctement interprétés, mais les emojis dans les titres de section peuvent perturber le parsing sur certaines versions antérieures à Claude Code v1.0.12.

L'analyse approfondie du coding agentique explore d'autres comportements subtils de Claude Code liés à l'autonomie de l'agent.

Pour approfondir le fonctionnement du système de mémoire, consultez également la FAQ sur le système de mémoire CLAUDE.md qui répond aux questions les plus fréquentes.

À retenir : l'ordre de chargement et la troncature silencieuse de MEMORY.md sont les deux pièges les plus fréquents à connaître.

Comment diagnostiquer et déboguer un problème de mémoire Claude Code ?

Lorsque Claude Code ne respecte pas une instruction de votre CLAUDE.md, suivez cette procédure de diagnostic structurée.

Étape 1 : Vérifiez le chargement

Exécutez la commande /memory dans Claude Code pour afficher les fichiers mémoire actuellement chargés. Vous verrez la liste complète avec le nombre de lignes de chaque fichier.

$ claude
> /memory
# Affiche : CLAUDE.md (projet, 87 lignes), CLAUDE.md (utilisateur, 23 lignes), MEMORY.md (45 lignes)

Étape 2 : Cherchez les conflits

Comparez vos différents fichiers mémoire. Un MEMORY.md qui contient « utiliser npm » alors que votre CLAUDE.md projet dit « utiliser bun » crée un conflit. L'auto-mémoire étant chargée en dernier, elle peut prendre le dessus.

Étape 3 : Purgez l'auto-mémoire si nécessaire

# Sauvegarder puis réinitialiser MEMORY.md
cp ~/.claude/projects/*/memory/MEMORY.md ~/backup-memory.md
echo "" > ~/.claude/projects/*/memory/MEMORY.md

Arbre de diagnostic

  • Claude Code ignore une règle → vérifiez qu'elle est dans un fichier chargé (pas au-delà de la ligne 200)
  • Claude Code applique une règle obsolète → cherchez dans MEMORY.md une entrée contradictoire
  • Claude Code mélange deux projets → vérifiez le hash du répertoire dans ~/.claude/projects/

En pratique, 62 % des problèmes de mémoire proviennent d'un MEMORY.md qui contient une information obsolète écrasant une règle du CLAUDE.md projet.

Pour approfondir la compréhension du système de mémoire CLAUDE.md dans son ensemble, l'article de référence couvre les fondamentaux.

Si vous souhaitez maîtriser ces mécanismes avancés et apprendre à déboguer efficacement votre environnement de développement augmenté, SFEIR Institute propose la formation Développeur Augmenté par l'IA sur 2 jours, avec des labs pratiques couvrant la configuration mémoire, le débogage et les workflows avancés. Pour aller encore plus loin, la formation Développeur Augmenté par l'IA – Avancé d'une journée approfondit les stratégies d'optimisation du prompt système et les architectures multi-agents.

À retenir : la commande /memory est votre premier réflexe de diagnostic - elle affiche tout ce que Claude Code a chargé en mémoire.


Formation recommandée

Formation Claude Code

Maîtrisez Claude Code avec nos formateurs experts. Formation pratique, hands-on, directement applicable à vos projets.

Voir le programme