CLAUDE.md : le fichier qui décide de la qualité de Claude Code
Un seul fichier explique pourquoi Claude Code est brillant sur un projet et médiocre sur un autre. Sept conseils pour l'écrire, le garder court et le maintenir vivant.
19 juillet 2026 · 11 min de lecture
Tu ouvres Claude Code sur un projet et il comprend tout du premier coup. Tu l'ouvres sur un autre et il réinvente ta structure de dossiers, lance la mauvaise commande de test, et te propose une librairie que tu as bannie il y a six mois. Même outil, même modèle, deux résultats opposés.
La différence ne vient presque jamais du modèle. Elle vient d'un fichier texte à la racine de ton projet.Ce fichier s'appelle CLAUDE.md. Claude Code le lit automatiquement au démarrage de chaque session, avant que tu aies tapé quoi que ce soit. C'est le seul endroit où tu peux lui donner, une fois pour toutes, ce qu'il ne peut pas deviner en lisant ton code. La plupart des gens le créent une fois, ne le relisent jamais, et se demandent pourquoi l'agent répète les mêmes erreurs.
Le Claude AI Lab, c'est ma communauté Skool où je partage mes systèmes Claude et les modules plus avancés. L'accès est à $67/mois.
Rejoindre le Lab →Tout ce que tu répètes à l'agent plus d'une fois devrait être dans ce fichier. Si tu le répètes, c'est qu'il n'y est pas.
Comprendre ce que c'est vraiment
L'erreur de départ, c'est de traiter CLAUDE.md comme une documentation technique. Les gens y déversent l'architecture complète, la justification de chaque choix, l'historique du projet. Le fichier gonfle, et sa valeur baisse.
Ce fichier est une table des matières. Son rôle n'est pas de tout contenir, c'est d'indiquer où tout se trouve. Où vit le code, quelles commandes lancer, quelles conventions respecter, et vers quels documents aller pour le détail.
docs/api.md » vaut mieux que trois cents lignes de specs recopiées dans le fichier.Si un nouveau développeur ne peut pas lire ton CLAUDE.md en deux minutes et se mettre au travail, l'agent non plus.
Laisser Claude écrire le premier jet
La page blanche est la vraie raison pour laquelle ce fichier n'existe pas dans la plupart des projets. Personne ne sait par quoi commencer, donc personne ne commence.
Tu n'as pas à écrire la première version toi-même. Depuis la racine de ton projet :
claude
Puis, dans la session :
/init
Claude Code parcourt le projet, repère la stack, les scripts, l'arborescence et les patterns qui reviennent, puis en génère un CLAUDE.md de départ. Tu passes de zéro à une base structurée en une commande.
L'agent est très bon pour décrire ce qui est observable dans ton code. C'est exactement la moitié du travail. L'autre moitié, celle qu'il ne peut pas faire, c'est le conseil suivant.
Traiter la sortie comme un brouillon
C'est ici que la plupart des gens s'arrêtent. Ils lancent /init, voient un fichier apparaître, se disent que c'est fait, et passent à autre chose. Le résultat est un fichier qui décrit correctement la surface du projet et rate tout ce qui compte.
Ce que /init produit est un point de départ, jamais un livrable. Il faut le relire ligne à ligne.
package.json n'a rien à faire là.Maintiens ce fichier comme du code, pas comme une note. Il se relit, il se corrige, il se commit avec le reste.
Ce qu'il faut vraiment y mettre
Une structure qui tient sur à peu près tous les projets, dans cet ordre.
Ajoute en fin de fichier les pointeurs vers la documentation profonde : le fichier de specs, le guide de contribution, le schéma de base de données. Une ligne par pointeur, avec le chemin exact.
Les règles. C'est celle qui change le comportement de l'agent séance après séance, et c'est celle que /init ne peut pas générer pour toi.
Rester court, sans exception
Le conseil que presque tout le monde ignore, et celui qui a le plus d'effet.
Un CLAUDE.md qui gonfle dilue ses propres instructions. Quand une règle critique est noyée au milieu de six cents lignes de contexte, elle pèse moins lourd dans l'attention de l'agent qu'au milieu de quatre-vingts. Tu n'obtiens pas plus d'obéissance en écrivant plus, tu en obtiens moins.
Deux cents lignes est la cible officiellement recommandée, et la raison avancée est exactement celle-là : un fichier long consomme plus de contexte et fait baisser le respect des consignes. Au-delà, tu as commencé à recopier de la documentation au lieu de pointer vers elle.
docs/. Le CLAUDE.md garde une ligne qui y renvoie. Tu peux même l'importer explicitement avec la syntaxe @docs/api.md, qui va chercher le contenu du fichier au chargement (les imports s'enchaînent, jusqu'à quatre niveaux de profondeur).main directement » suffit. Le paragraphe qui justifie la règle peut disparaître.Un fichier court que l'agent applique bat un fichier exhaustif qu'il applique mal. Le plus productif est toujours le plus sobre.
Utiliser les trois niveaux de mémoire
Voilà le point que les guides sur le sujet oublient presque systématiquement, et il change complètement la façon de tenir le conseil précédent. CLAUDE.md n'est pas un fichier unique, c'est un système à plusieurs niveaux qui se cumulent.
~/.claude/CLAUDE.md. Chargé sur tous tes projets, sans exception. C'est là que vivent tes préférences personnelles : ta langue, ton style de réponse, tes règles de sécurité../CLAUDE.md à la racine du repo. Committé, partagé avec l'équipe. Tout ce qui concerne ce projet précis.CLAUDE.md dans src/api/ par exemple. Il apporte le contexte spécifique à cette partie du code, sans polluer le fichier racine.L'intérêt est direct : ton fichier racine n'a plus à porter les règles de chaque sous-partie du projet. Tu descends le détail au niveau où il s'applique, et la racine reste sous ton plafond de deux cents lignes.
Le détail qui rend la chose vraiment rentable : les fichiers des sous-dossiers ne sont pas chargés au démarrage. Ils entrent en contexte seulement quand l'agent touche des fichiers de ce dossier. Autrement dit, tu peux être précis et détaillé dans src/api/CLAUDE.md sans payer une seule ligne de contexte sur les sessions où tu ne travailles pas sur l'API.
Le niveau global est ce qui rend Claude Code cohérent d'un projet à l'autre. Tu écris tes préférences une fois, elles s'appliquent partout, y compris sur les projets que tu ouvriras dans six mois.
L'entretenir sans y penser
Un CLAUDE.md écrit une fois puis oublié se périme en quelques semaines. Les commandes changent, les conventions évoluent, et le fichier devient une source d'erreurs au lieu d'une source de vérité. Le problème n'est pas la volonté, c'est le moment : personne n'ouvre son éditeur pour documenter une règle en plein milieu d'une tâche.
La solution est de capturer la règle au moment exact où elle apparaît, sans quitter ta session. Tu n'as rien de particulier à apprendre : demande-le en langage naturel, l'agent l'enregistre en mémoire.
Retiens que les tests tournent avec npm run test:unit, jamais avec npx jest directement.
C'est trois secondes au lieu d'un aller-retour dans ton éditeur, et c'est toute la différence entre un fichier vivant et un fichier mort.
/memory. La commande liste tes fichiers de mémoire et les ouvre dans ton éditeur. Une passe de nettoyage toutes les quelques semaines suffit à couper les règles devenues fausses.Si tu n'as pas eu à répéter la même consigne deux fois dans le mois, ton fichier fait son travail. Si tu la répètes, tu viens de trouver la prochaine ligne à écrire.
Ce que ce fichier ne fera pas pour toi
Deux points d'honnêteté.
Le premier : CLAUDE.md oriente, il ne contraint pas. Une règle écrite est une instruction forte, pas une barrière technique. Pour ce qui ne doit jamais arriver, une règle dans un fichier ne remplace pas une protection réelle du côté de ton projet.
Le second : il ne compense pas un projet illisible. Si ta structure est incohérente et tes commandes cassées, décrire ce désordre proprement ne le range pas. Le fichier accélère un projet sain, il ne sauve pas un projet malade.
Et maintenant
Ouvre ton projet le plus actif, lance /init, et donne-toi dix minutes de relecture sérieuse. Coupe le générique, ajoute les trois interdits que tu répètes le plus souvent, et vérifie que tu tiens sous deux cents lignes.
Puis prends le réflexe qui compte vraiment : la prochaine fois que tu corriges l'agent, ne te contente pas de le corriger. Écris la règle avec #.
La qualité de Claude Code sur ton projet n'est pas une propriété du modèle. C'est une propriété de ce que tu lui as écrit avant de commencer.
Tu veux aller plus loin ?
Dans le Lab, je partage les configs, instructions et architectures que j'affine en continu pour faire de Claude un vrai copilote.
Une session ou un programme dédié, calibré sur tes outils et tes cas d'usage.
Et au quotidien, je partage un reel par jour sur Instagram : @quentin_iamarketing