8.8 KiB
CLAUDE.md
Ce fichier fournit des consignes à Claude Code (claude.ai/code) lorsqu'il travaille avec le code de ce dépôt.
Vue d'ensemble du dépôt
Ceci est un dépôt de bonnes pratiques pour la configuration de Claude Code, démontrant des patterns pour skills, sous-agents, hooks et commandes. Il sert d'implémentation de référence plutôt que de codebase applicative.
Composants clés
Système météo (workflow d'exemple)
Une démonstration de deux patterns de skills distincts via l'architecture Commande → Agent → Skill :
- Commande
/weather-orchestrator(.claude/commands/weather-orchestrator.md) : point d'entrée — demande C/F à l'utilisateur, invoque l'agent, puis invoque le skill SVG - Agent
weather-agent(.claude/agents/weather-agent.md) : récupère la température avec son skill préchargéweather-fetcher(pattern agent skill) - Skill
weather-fetcher(.claude/skills/weather-fetcher/SKILL.md) : préchargé dans l'agent — instructions pour récupérer la température depuis Open-Meteo - Skill
weather-svg-creator(.claude/skills/weather-svg-creator/SKILL.md) : skill — crée une carte météo SVG, écritorchestration-workflow/weather.svgetorchestration-workflow/output.md
Deux patterns de skills : agent skills (préchargés via le champ skills:) vs skills (invoqués via l'outil Skill). Voir orchestration-workflow/orchestration-workflow.md pour le diagramme de flux complet.
Structure de définition des skills
Les skills dans .claude/skills/<name>/SKILL.md utilisent un frontmatter YAML :
name: nom d'affichage et/slash-command(par défaut le nom du répertoire)description: quand invoquer (recommandé pour l'auto-découverte)argument-hint: indice d'autocomplétion (par ex.[issue-number])disable-model-invocation: mettretruepour empêcher l'invocation automatiqueuser-invocable: mettrefalsepour masquer du menu/(connaissance d'arrière-plan uniquement)allowed-tools: outils autorisés sans demandes de permission quand le skill est actifmodel: modèle à utiliser quand le skill est actifcontext: mettreforkpour exécuter dans un contexte de sous-agent isoléagent: type de sous-agent pourcontext: fork(défaut :general-purpose)hooks: hooks de cycle de vie limités à ce skill
Système de présentation
Voir .claude/rules/presentation.md — le travail de présentation est délégué par présentation à presentation-vibe-coding (pour presentation/vibe-coding-to-agentic-engineering/) ou presentation-claude-gemini (pour presentation/2026-04-25-gdg-kolachi-cli-claude-code-gemini/).
Système de hooks
Système multiplateforme de notifications sonores dans .claude/hooks/ :
scripts/hooks.py: gestionnaire principal des événements hook Claude Codeconfig/hooks-config.json: configuration partagée de l'équipeconfig/hooks-config.local.json: overrides personnels (ignorés par git)sounds/: fichiers audio organisés par événement hook (générés via ElevenLabs TTS)
Événements hook configurés dans .claude/settings.json : PreToolUse, PostToolUse, UserPromptSubmit, Notification, Stop, SubagentStart, SubagentStop, PreCompact, SessionStart, SessionEnd, Setup, PermissionRequest, TeammateIdle, TaskCompleted, ConfigChange.
Traitement spécial : les commits git déclenchent le son pretooluse-git-committing.
Patterns critiques
Orchestration de sous-agents
Les sous-agents ne peuvent pas invoquer d'autres sous-agents via des commandes bash. Utilise l'outil Agent (renommé depuis Task en v2.1.63 ; Task(...) fonctionne encore comme alias) :
Agent(subagent_type="agent-name", description="...", prompt="...", model="haiku")
Sois explicite sur l'usage des outils dans les définitions de sous-agents. Évite les termes vagues comme "launch", qui pourraient être interprétés comme des commandes bash.
Structure de définition des sous-agents
Les sous-agents dans .claude/agents/*.md utilisent un frontmatter YAML :
name: identifiant du sous-agentdescription: quand invoquer (utilise "PROACTIVELY" pour l'auto-invocation)tools: allowlist d'outils séparée par des virgules (hérite de tout si omis). Supporte la syntaxeAgent(agent_type)disallowedTools: outils à refuser, retirés de la liste héritée ou spécifiéemodel: alias de modèle :haiku,sonnet,opusouinherit(défaut :inherit)permissionMode: mode de permission (par ex."acceptEdits","plan","bypassPermissions")maxTurns: nombre maximal de tours agentiques avant arrêt du sous-agentskills: liste de noms de skills à précharger dans le contexte de l'agentmcpServers: serveurs MCP pour ce sous-agent (noms de serveurs ou configs inline)hooks: hooks de cycle de vie limités à ce sous-agent (tous les événements hook sont supportés ;PreToolUse,PostToolUseetStopsont les plus courants)memory: portée de mémoire persistante —user,projectoulocal(voirreports/claude-agent-memory.md)background: mettretruepour toujours exécuter comme tâche en arrière-planeffort: surcharge du niveau d'effort :low,medium,high,max(défaut : hérite de la session)isolation: mettre"worktree"pour exécuter dans un worktree git temporairecolor: couleur de sortie CLI pour distinction visuelle
Hiérarchie de configuration
- Managed (
managed-settings.json/ plist MDM / Registry) : imposé par l'organisation, non surchargeable - Arguments de ligne de commande : overrides pour une seule session
.claude/settings.local.json: paramètres projet personnels (ignorés par git).claude/settings.json: paramètres partagés par l'équipe~/.claude/settings.json: valeurs globales personnelles par défauthooks-config.local.jsonsurchargehooks-config.json
Désactiver les hooks
Mettre "disableAllHooks": true dans .claude/settings.local.json, ou désactiver des hooks individuels dans hooks-config.json.
Répondre aux questions de bonnes pratiques
Quand l'utilisateur pose une question de bonnes pratiques Claude Code, cherche toujours d'abord dans ce dépôt (best-practice/, reports/, tips/, implementation/ et README.md) avant de t'appuyer sur la connaissance d'entraînement ou des sources externes. Ce dépôt est la source d'autorité — ne bascule vers les docs externes ou le web que si la réponse n'est pas trouvée ici.
Bonnes pratiques de workflow
Tirées de l'expérience avec ce dépôt :
- Garder
CLAUDE.mdsous 200 lignes par fichier pour une adhérence fiable .claude/rules/*.mdavec frontmatter YAMLpaths:sont chargés paresseusement seulement quand Claude touche des fichiers correspondants ; sans frontmatter, ils se chargent dans chaque session commeCLAUDE.md- Utiliser les commandes pour les workflows plutôt que des agents autonomes
- Créer des sous-agents spécifiques aux fonctionnalités avec skills (divulgation progressive), plutôt que des agents généralistes
- Faire un
/compactmanuel vers ~50 % d'usage du contexte - Commencer avec plan mode pour les tâches complexes
- Utiliser un workflow de liste de tâches avec validation humaine pour les tâches multi-étapes
- Découper les sous-tâches assez petites pour tenir sous 50 % du contexte
Astuces de débogage
- Utilise
/doctorpour les diagnostics - Lance les commandes terminal longues comme tâches en arrière-plan pour une meilleure visibilité des logs
- Utilise les MCP d'automatisation navigateur (Claude in Chrome, Playwright, Chrome DevTools) pour que Claude inspecte les logs console
- Fournis des captures d'écran quand tu signales des problèmes visuels
Règles de commit Git
Quand tu commits des changements, crée des commits séparés par fichier. NE regroupe PAS plusieurs changements de fichiers dans un seul commit. Chaque fichier obtient son propre commit avec un message descriptif spécifique à ses changements.
Par exemple, si README.md, best-practice/claude-subagents.md et un fichier de skill ont tous changé :
- Commit 1 :
git add README.md→ commit avec message spécifique au README - Commit 2 :
git add best-practice/claude-subagents.md→ commit avec message spécifique à la doc subagents - Commit 3 :
git add .claude/skills/weather-fetcher/SKILL.md→ commit avec message spécifique au skill
Cela rend l'historique git plus propre et plus facile à relire, revert ou cherry-pick changement par changement.
Documentation
Voir .claude/rules/markdown-docs.md pour les standards de documentation. Docs clés :
best-practice/claude-subagents.md: frontmatter des sous-agents, hooks et agents du dépôtbest-practice/claude-commands.md: patterns de commandes slash et référence des commandes intégréesorchestration-workflow/orchestration-workflow.md: diagramme de flux du système météo