Guide complet Claude Code : structure `.claude`, `CLAUDE.md`, skills, hooks, mémoire et slash commands
Guide pratique et à jour sur Claude Code : structure `.claude`, `CLAUDE.md`, settings, skills, hooks, sous-agents, mémoire et slash commands.
Claude Code devient beaucoup plus puissant quand on arrête de l'utiliser comme un simple terminal assisté, et qu'on le traite comme un véritable environnement d'ingénierie configurable.
La vraie valeur n'est pas seulement dans le modèle. Elle est dans la manière dont vous structurez :
- votre dossier
.claude - vos fichiers
CLAUDE.md - vos skills
- vos hooks
- votre mémoire persistante
- vos permissions et conventions d'équipe
Si cette couche est propre, Claude Code devient plus stable, plus réutilisable, et surtout beaucoup plus rentable au quotidien.
Ce guide met à jour la structure classique que beaucoup d'équipes ont en tête, avec un point important :
dans la documentation actuelle, les custom commands ont été fusionnées dans le système de skills. Les fichiers .claude/commands/ continuent de fonctionner, mais Anthropic recommande désormais de privilégier les skills, parce qu'ils supportent mieux les fichiers annexes, les règles d'invocation et les sous-agents.
Vue d'ensemble : les deux niveaux de configuration
Claude Code fonctionne avec deux couches principales :
- Le niveau utilisateur dans
~/.claude/ - Le niveau projet dans votre repository
Dans la pratique, vous obtenez une architecture de ce type :
```text ~/.claude/ ← niveau utilisateur ├── CLAUDE.md # préférences personnelles globales ├── settings.json # config globale ├── skills/ # skills perso utilisables partout └── agents/ # sous-agents perso
mon-projet/ ├── CLAUDE.md # instructions d'équipe pour le projet └── .claude/ ├── settings.json # config partagée dans git ├── settings.local.json # overrides personnels gitignored ├── skills/ # skills du projet ├── commands/ # toujours supporté, mais plus legacy ├── rules/ # règles modulaires └── agents/ # sous-agents spécialisés ```
La logique est simple :
~/.claude/= vos préférences perso./CLAUDE.mdet./.claude/= conventions projet partagées.claude/settings.local.json= vos overrides locaux non commités
L'ordre de priorité réel des settings
D'après la documentation officielle, les settings s'appliquent dans cet ordre de priorité :
- Managed settings (niveau organisation, non surchargable)
- Arguments de ligne de commande
- `.claude/settings.local.json`
- `.claude/settings.json`
- `~/.claude/settings.json`
Autre détail important : les tableaux ne sont pas simplement remplacés. Pour certaines clés, les tableaux sont concaténés et dédupliqués, tandis que les objets sont fusionnés en profondeur.
En clair :
- les règles les plus spécifiques gagnent
- mais certaines listes s'additionnent au lieu de s'écraser
CLAUDE.md : la mémoire que vous contrôlez
Le fichier CLAUDE.md reste la brique la plus importante.
Il sert à donner à Claude Code un contexte persistant sur :
- votre stack
- vos conventions
- vos commandes essentielles
- votre architecture
- vos règles d'équipe
La doc officielle distingue bien deux mécanismes :
- `CLAUDE.md` : instructions que vous écrivez
- auto-memory : mémoire que Claude écrit lui-même à partir de vos corrections
Autre point utile : la documentation actuelle indique que `CLAUDE.local.md` est désormais déprécié. Le mécanisme recommandé pour garder des consignes supplémentaires est plutôt d'utiliser les imports @chemin-vers-fichier.md depuis CLAUDE.md, avec des fichiers gitignorés si nécessaire.
Où mettre CLAUDE.md ?
Les emplacements les plus utiles sont :
~/.claude/CLAUDE.mdpour vos préférences globales./CLAUDE.mdpour les instructions projet- des
CLAUDE.mddans des sous-dossiers quand vous voulez du contexte plus local
Claude charge :
- les
CLAUDE.mdsitués au-dessus du répertoire courant au démarrage - les
CLAUDE.mddans les sous-répertoires à la demande, quand il lit des fichiers dedans
Donc un monorepo peut très bien avoir :
- un
CLAUDE.mdracine - des
CLAUDE.mdspécifiques par package - des règles plus fines dans
.claude/rules/
Bonne pratique clé : rester court
Anthropic recommande explicitement de viser moins de 200 lignes par CLAUDE.md.
Pourquoi :
- le fichier consomme du contexte à chaque session
- plus il est long, plus l'adhérence baisse
- des instructions courtes, concrètes et bien structurées sont mieux suivies
Si votre CLAUDE.md grossit trop, le bon move n'est pas d'en faire un pavé. C'est de le splitter :
CLAUDE.mdpour le socle.claude/rules/pour les règles modulaires- imports
@fichier.mdpour la doc annexe
.claude/rules/ : une excellente convention d'équipe
Point important : `.claude/rules/` n'est pas la primitive officielle principale documentée par Anthropic au même titre que CLAUDE.md, skills, agents ou settings.
En revanche, c'est une très bonne convention d'équipe si vous l'utilisez comme répertoire de règles modulaires référencées depuis CLAUDE.md.
Vous pouvez y placer des fichiers markdown par sujet :
``text .claude/ └── rules/ ├── typescript.md ├── testing.md ├── api-design.md └── security.md ``
L'idée est simple :
- une règle = un sujet
- noms explicites
- séparation claire entre standards de test, conventions API, style, sécurité
C'est beaucoup plus maintenable qu'un énorme CLAUDE.md, à condition de garder la logique explicite via des imports ou des références claires dans le guide principal.
settings.json et settings.local.json
Le fichier officiel de configuration est settings.json.
Les scopes utiles sont :
~/.claude/settings.jsonpour l'utilisateur.claude/settings.jsonpour le projet.claude/settings.local.jsonpour les préférences locales non partagées
La doc officielle confirme aussi que quand settings.local.json est créé, Claude Code configure git pour l'ignorer.
Ce qu'on met dans settings.json
En pratique, c'est là que vous placez :
- les permissions
- les hooks
- le modèle par défaut
- l'effort level
- certains plugins
- des variables d'environnement de session
Exemple minimal propre pour une équipe :
``json { "model": "claude-sonnet-4-6", "permissions": { "allow": [ "Read", "Write", "Bash(git *)", "Bash(npm *)", "Bash(node *)" ], "deny": [ "Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)", "Bash(git push --force *)" ] }, "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/check-style.sh" } ] } ] } } ``
Ce qu'on met dans settings.local.json
Réservez-le pour :
- vos outils machine-spécifiques
- des tests personnels de config
- des accès plus puissants non partageables
Typiquement :
dockerkubectl- des scripts locaux
- des préférences modèle/effort propres à votre machine
Skills : le vrai centre de gravité aujourd'hui
Le changement important dans la doc Claude Code récente, c'est que les custom commands ont été absorbées par le système de skills.
Officiellement :
- un skill dans
.claude/skills/<nom>/SKILL.mdcrée une commande/nom - un fichier
.claude/commands/*.mdcontinue de fonctionner - mais les skills sont recommandés
Pourquoi les skills sont meilleurs :
- ils supportent les fichiers annexes
- ils supportent le frontmatter riche
- ils supportent l'activation automatique
- ils peuvent tourner dans un sous-agent isolé
- ils peuvent embarquer leurs propres hooks
Structure recommandée d'un skill
``text .claude/skills/ └── review-pr/ ├── SKILL.md ├── examples.md └── scripts/ └── validate.sh ``
Exemple de SKILL.md
```md --- name: review-pr description: Review a pull request diff and identify critical, important, and minor issues. disable-model-invocation: true allowed-tools: Read, Grep, Bash(git *), Bash(gh *) ---
Pull request context
- Diff: !
gh pr diff - Changed files: !
gh pr diff --name-only
Review this PR with three sections:
- Critical
- Important
- Minor
```
Les champs frontmatter à connaître
Les plus utiles au quotidien sont :
namedescriptionargument-hintdisable-model-invocationuser-invocableallowed-toolsmodeleffortcontext: forkagenthookspaths
Deux champs sont particulièrement importants :
disable-model-invocation: truesi vous voulez un workflow manuel comme/deploycontext: forksi vous voulez exécuter le skill dans un sous-agent isolé
Les custom commands existent encore, mais ne sont plus le meilleur choix
Beaucoup de guides plus anciens présentent encore .claude/commands/ comme le mécanisme principal.
Aujourd'hui, la bonne lecture est :
- oui,
.claude/commands/fonctionne toujours - non, ce n'est plus la structure la plus riche
- oui, pour un nouveau projet, il vaut mieux penser directement en skills
Si vous avez déjà :
``text .claude/commands/review.md .claude/commands/deploy.md ``
... vous n'êtes pas obligé de tout casser.
Mais si vous voulez une base durable pour une équipe, migrez progressivement vers :
``text .claude/skills/review/SKILL.md .claude/skills/deploy/SKILL.md ``
Sous-agents : quand il faut spécialiser vraiment
Claude Code supporte aussi des subagents dans :
~/.claude/agents/.claude/agents/
Chaque sous-agent a :
- un
name - une
description - éventuellement une liste de
tools - un prompt système spécialisé
Exemple :
```md --- name: code-reviewer description: Expert code review specialist. Use proactively for quality, maintainability, and security review. tools: Read, Grep, Glob ---
Review code for:
- logic bugs
- security issues
- maintainability risks
- missing tests
```
À utiliser quand vous voulez :
- préserver le contexte principal
- déléguer une tâche spécialisée
- mieux contrôler les outils autorisés
Mémoire : CLAUDE.md vs auto-memory
La doc officielle distingue bien les deux couches.
1. CLAUDE.md
C'est la mémoire que vous écrivez.
Utilisez-la pour :
- conventions de code
- architecture
- commandes build/test/lint
- règles absolues
- workflows d'équipe
2. Auto-memory
C'est la mémoire que Claude construit lui-même à partir de vos corrections et habitudes.
Elle vit dans :
``text ~/.claude/projects/<project>/memory/ ``
Le point important :
MEMORY.mdest relu au démarrage- seule une partie est chargée automatiquement au startup
- Claude lit ensuite les autres fichiers mémoire à la demande avec ses outils habituels
La doc précise aussi que vous pouvez ouvrir et éditer cette mémoire via :
``text /memory ``
Le bon usage concret
Utilisez :
CLAUDE.mdpour les règles stables- auto-memory pour les learnings opérationnels
Exemples de bonnes choses à mémoriser :
- "toujours utiliser notre logger interne"
- "les tests d'intégration se lancent avec tel script"
- "sur ce repo, éviter de toucher tel dossier sans validation"
Hooks : l'automatisation réactive qui change vraiment le jeu
Les hooks permettent d'exécuter des actions à certains moments du cycle de vie.
La doc officielle distingue plusieurs types d'événements, notamment :
PreToolUsePostToolUseSessionStartStop
Et plusieurs types de hooks :
commandhttppromptagent
Le cas d'usage le plus rentable
Le meilleur point de départ n'est pas un système complexe.
C'est plutôt :
- formatter après écriture
- lancer un check ciblé
- bloquer certaines actions dangereuses
Exemple :
``json { "hooks": { "PostToolUse": [ { "matcher": "Write|Edit", "hooks": [ { "type": "command", "command": "npx prettier --write \"$CLAUDE_FILE_PATHS\"" } ] } ] } } ``
Et pour une règle de sécurité :
``json { "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "[ \"$(git branch --show-current)\" != \"main\" ] || { echo '{\"decision\":\"block\",\"reason\":\"No direct edits on main\"}'; exit 0; }" } ] } ] } } ``
Détail important
Les hooks peuvent aussi :
- tourner en arrière-plan avec
async: true - appeler un endpoint HTTP
- lancer une vérification par prompt
- lancer un sous-agent de validation
Autrement dit, ce n'est pas juste du shell post-formatage. C'est un vrai système d'orchestration légère.
Slash commands essentielles à connaître
La référence officielle liste aujourd'hui un grand nombre de commandes intégrées. Les plus utiles dans un workflow d'équipe sont :
/init/clear/compact/memory/permissions/config/hooks/model/effort/agents/skills/doctor/status/cost/usage/rewind
Celles qu'il faut vraiment utiliser
/init
Très utile pour générer une première base CLAUDE.md.
La doc officielle précise aussi que :
CLAUDE_CODE_NEW_INIT=trueactive un flux interactif plus riche- ce flux peut aussi vous guider pour les skills, hooks et fichiers de mémoire personnelle
/compact
Indispensable dans les longues sessions.
Il compresse l'historique conversationnel tout en gardant le contexte utile.
/clear
À utiliser entre deux tâches vraiment différentes pour éviter la dérive de contexte.
/memory
Très utile pour :
- vérifier ce que Claude retient
- éditer les fichiers mémoire
- activer ou désactiver l'auto-memory
/permissions
Commande clé quand vous voulez ajuster rapidement les règles sans aller éditer le JSON à la main.
/hooks
Très pratique pour auditer les hooks actifs et voir d'où ils viennent.
Raccourcis clavier vraiment utiles
D'après la doc actuelle d'Interactive Mode, les raccourcis les plus utiles sont :
Shift+Tabpour faire tourner les permission modesOption+P/Alt+Ppour changer de modèleOption+T/Alt+Tpour basculer l'extended thinkingCtrl+Opour activer le mode verboseCtrl+Rpour la recherche dans l'historiqueCtrl+Bpour passer une tâche bash en arrière-planCtrl+Tpour afficher ou masquer la task list
Et pour l'input multi-ligne :
Option+EnterShift+Enterselon le terminalCtrl+J- ou simplement
\+Enter
Notre structure recommandée pour une équipe Neologix
Si vous devez industrialiser Claude Code sur plusieurs projets, une structure saine ressemble à ceci :
``text mon-projet/ ├── CLAUDE.md └── .claude/ ├── settings.json ├── settings.local.json ├── rules/ │ ├── typescript.md │ ├── testing.md │ └── security.md ├── skills/ │ ├── review-pr/ │ │ └── SKILL.md │ ├── deploy/ │ │ └── SKILL.md │ └── onboard/ │ └── SKILL.md └── agents/ ├── code-reviewer.md └── security-auditor.md ``
Ce qui va dans git
CLAUDE.md.claude/settings.json.claude/rules/.claude/skills/.claude/agents/
Ce qui ne va pas dans git
.claude/settings.local.json- vos préférences personnelles
- les secrets
- les chemins machine-spécifiques
Ajoutez au minimum :
``gitignore .claude/settings.local.json CLAUDE.local.md ``
Les bonnes pratiques qui évitent 80 % des problèmes
1. Garder CLAUDE.md court et testable
Si une règle n'est pas vérifiable, elle sera mal suivie.
Mauvais :
- "écrire du code propre"
Mieux :
- "écrire des composants React en arrow functions"
- "toujours lancer
npm run lintavant de finaliser" - "ne jamais lire
.env"
2. Mettre les règles durables dans CLAUDE.md, pas dans le chat
Si vous répétez une instruction plusieurs fois en session, elle doit probablement remonter dans :
CLAUDE.md.claude/rules/- ou un skill dédié
3. Réserver les hooks aux contrôles utiles
Un hook trop agressif devient vite une usine à friction.
Commencez avec :
- format
- lint ciblé
- blocage de certaines commandes
Puis élargissez seulement si l'équipe en tire une vraie valeur.
4. Préférer les skills aux commandes legacy
Les commandes dans .claude/commands/ ne sont pas mortes.
Mais si vous repartez proprement aujourd'hui, investissez directement dans :
.claude/skills/- des descriptions nettes
- du frontmatter maîtrisé
- des fichiers de support bien rangés
5. Utiliser /clear entre sujets
Beaucoup de sessions "moyennes" viennent simplement d'un contexte devenu sale.
Le bon réflexe :
/compactpour une longue même tâche/clearquand on change vraiment de sujet
Verdict
Le vrai niveau "senior" sur Claude Code ne vient pas d'un meilleur prompt.
Il vient d'une meilleure architecture de contexte.
Si votre équipe structure proprement :
CLAUDE.md.claude/settings.json.claude/rules/- les skills
- les sous-agents
- les hooks
- la mémoire
... alors Claude Code devient beaucoup plus stable, plus prévisible, et beaucoup plus utile dans de vrais projets.
Et c'est précisément là que beaucoup d'équipes se trompent : elles optimisent le modèle, alors qu'elles devraient d'abord optimiser le système.
Si vous voulez structurer cela proprement dans votre équipe, commencez par un audit IA ou parlez à Opuslon pour cadrer une stack Claude Code, Copilot, Codex ou agents IA qui reste vraiment exploitable à l'échelle.
Sources
Références utilisées pour construire et enrichir cet article.
Pages utiles pour aller plus loin
Si ce sujet est prioritaire pour vous, commencez par ces pages liées pour approfondir, voir des exemples concrets et lancer la discussion.
Audit & Conseil IA
Identification des cas d'usage à fort impact, priorisation et feuille de route sur mesure.
Gouvernance & Sécurité
Politiques d'usage, contrôle qualité et gestion des risques pour un déploiement conforme.
Demander un audit IA
Recevez une feuille de route priorisée pour vos cas d'usage les plus rentables.
Parler à Opuslon
Décrivez votre contexte et obtenez un retour rapide sur la meilleure approche.
Prêt à intégrer l'IA dans votre entreprise ?
Demandez un audit IA gratuit et recevez votre roadmap en 14 jours.
Demander un audit IA