FAQ13 min de lecture

Commandes personnalisées et skills - FAQ

SFEIR Institute

En Bref (TL;DR)

Les commandes personnalisées, skills et hooks de Claude Code vous permettent d'automatiser vos workflows de développement et d'enseigner vos patterns à l'IA. Créez des commandes slash custom en quelques minutes, déléguez des tâches à des subagents autonomes et déclenchez des actions déterministes via les hooks pour gagner un temps significatif sur vos tâches répétitives.

Les commandes personnalisées, skills et hooks de Claude Code vous permettent d'automatiser vos workflows de développement et d'enseigner vos patterns à l'IA. Créez des commandes slash custom en quelques minutes, déléguez des tâches à des subagents autonomes et déclenchez des actions déterministes via les hooks pour gagner un temps significatif sur vos tâches répétitives.

Les commandes personnalisées et skills de Claude Code constituent un système d'extensibilité qui transforme l'agent IA en assistant sur mesure. Claude Code propose plusieurs mécanismes d'extension : les commandes slash custom, les skills, les subagents, les hooks et les intégrations tierces. la majorité des utilisateurs avancés créent au moins une commande personnalisée dans leur première semaine d'utilisation.

Formations SFEIR Institute

Formation Claude Code

1 jour · Fondamentaux

Voir le programme

Développeur Augmenté par l'IA

2 jours · Intermédiaire

Voir le programme

Comment créer une commande slash personnalisée dans Claude Code ?

Créez un fichier Markdown dans le répertoire .claude/commands/ de votre projet pour définir une commande slash custom. Chaque fichier .md devient automatiquement une commande accessible via /.

Note : les commandes personnalisées ont été fusionnées dans les skills. Le chemin historique .claude/commands/.md reste valide en tant que forme legacy, mais l'approche recommandée aujourd'hui est un skill défini dans .claude/skills//SKILL.md.

Le nom du fichier détermine le nom de la commande. Par exemple, .claude/commands/review.md crée la commande /review. Vous pouvez organiser vos commandes dans des sous-dossiers pour les regrouper par catégorie.

Voici comment structurer votre première commande :

mkdir -p .claude/commands
touch .claude/commands/review.md

Le contenu du fichier définit le prompt envoyé à Claude Code. Utilisez la variable $ARGUMENTS pour capturer les paramètres passés par l'utilisateur :

Analyse le fichier $ARGUMENTS et vérifie :
1. Les erreurs de typage TypeScript
2. Les failles de sécurité OWASP Top 10
3. La conformité avec nos conventions ESLint
Propose des corrections concrètes avec du code.

Pour des commandes partagées à l'échelle de votre machine, placez-les dans ~/.claude/commands/. Ces commandes globales sont disponibles dans tous vos projets.

EmplacementPortéeExemple d'usage
.claude/commands/Projet uniquementConventions d'équipe, review custom
~/.claude/commands/Tous les projetsTemplates personnels, raccourcis
.claude/commands/sous-dossier/Projet, groupéCommandes par domaine (test, deploy)

En pratique, une commande slash custom réduit un prompt de 200 mots à une invocation de 3 mots. Consultez la référence complète des commandes personnalisées pour découvrir la syntaxe avancée avec variables multiples.

À retenir : une commande slash custom est un fichier Markdown dans .claude/commands/ : un fichier = une commande.

Quels sont les cas d'usage les plus courants des commandes custom ?

Les commandes custom couvrent quatre catégories principales : la revue de code, la génération de tests, la documentation et le déploiement.

Voici concrètement les commandes les plus créées par les équipes de développement :

# .claude/commands/test-unit.md
Génère des tests unitaires pour $ARGUMENTS en utilisant :
- Framework : Vitest
- Pattern : AAA (Arrange, Act, Assert)
- Couverture : branches et edge cases
- Mocks : vi.mock pour les dépendances externes
# .claude/commands/doc-api.md
Documente l'endpoint API dans $ARGUMENTS :
- Méthode HTTP et URL
- Paramètres requis et optionnels
- Codes de réponse (200, 400, 401, 500)
- Exemple curl fonctionnel

les équipes qui adoptent au moins 5 commandes custom réduisent sensiblement le temps consacré aux tâches de revue de code. Les commandes slash essentielles fournissent une base solide avant de créer vos propres variantes.

CatégorieCommandeTemps gagné par invocation (estimation indicative)
Revue de code/reviewplusieurs minutes
Tests unitaires/test-unitplusieurs minutes
Documentation API/doc-apiplusieurs minutes
Migration de code/migrateplusieurs minutes

À retenir : concentrez vos commandes custom sur les tâches que vous répétez plus de 3 fois par semaine.

Comment fonctionnent les skills dans Claude Code ?

Un skill est un dossier contenant un fichier SKILL.md qui décrit une compétence réutilisable : un workflow, une procédure ou un savoir-faire que Claude Code peut mobiliser à la demande. Placez vos skills de projet dans .claude/skills//SKILL.md, ou vos skills personnels dans ~/.claude/skills//SKILL.md.

Le fichier SKILL.md commence par un frontmatter YAML (notamment name, description et, si besoin, une liste d'outils autorisés), suivi des instructions en Markdown. Claude Code peut invoquer un skill automatiquement quand sa description correspond à la tâche, ou vous pouvez le déclencher explicitement.

Ne confondez pas un skill avec le système de mémoire CLAUDE.md. Le fichier CLAUDE.md, placé à la racine du projet ou dans des répertoires imbriqués, contient les instructions et conventions persistantes chargées au démarrage de chaque session. C'est la mémoire du projet, pas un skill. Le système de mémoire CLAUDE.md en détaille l'architecture complète.

Voici comment structurer un skill :

---
name: revue-securite
description: Audite un fichier source à la recherche de failles OWASP Top 10
---

# Revue de sécurité

Analyse le fichier fourni et vérifie :
- Les injections (SQL, commande, XSS)
- La gestion des secrets et des permissions
- La validation des entrées utilisateur

Propose des corrections concrètes avec du code.
EmplacementPortéeContenu
.claude/skills//SKILL.mdProjet (partagé via Git)Skills de l'équipe
~/.claude/skills//SKILL.mdPersonnel (tous les projets)Skills individuels
CLAUDE.md (racine ou répertoire)ProjetMémoire et conventions persistantes

À retenir : un skill est un dossier SKILL.md dans .claude/skills/, invocable à la demande, tandis que CLAUDE.md est la mémoire du projet chargée automatiquement.

Peut-on utiliser des subagents pour paralléliser les tâches ?

Lancez des subagents via l'outil Agent de Claude Code pour exécuter plusieurs tâches en parallèle et diviser le travail complexe. Un subagent est une instance autonome de Claude qui traite une sous-tâche spécifique.

Les subagents disposent de leur propre contexte et peuvent lire des fichiers, exécuter des commandes et produire des résultats. Vous pouvez en lancer plusieurs simultanément pour des tâches indépendantes. Concrètement, un subagent de type Explore recherche dans votre codebase pendant qu'un autre de type general-purpose implémente une fonctionnalité.

Voici les types de subagents disponibles en février 2026 :

Type de subagentCapacitésCas d'usage
general-purposeLecture, écriture, bash, tous outilsImplémentation, refactoring
ExploreLecture seule, rechercheExploration de codebase
PlanLecture seule, architectureConception de plans

En pratique, lancer plusieurs subagents en parallèle accélère sensiblement l'analyse d'un projet volumineux par rapport à un traitement séquentiel. Découvrez comment le coding agentique exploite cette parallélisation pour résoudre des problèmes complexes.

À retenir : les subagents divisent le travail, lancez-en plusieurs en parallèle pour les tâches indépendantes.

Comment configurer les hooks pour automatiser des actions ?

Les hooks sont des commandes shell exécutées automatiquement par Claude Code en réponse à des événements précis. Configurez-les dans le fichier .claude/settings.json de votre projet.

Un hook se déclenche de manière déterministe, sans intervention de l'IA. C'est la différence fondamentale avec une commande ou un skill : le hook est une automatisation fiable et reproductible à 100 %.

{
 "hooks": {
 "PostToolUse": [
 {
 "matcher": "Write|Edit",
 "hooks": [
 {
 "type": "command",
 "command": "./.claude/hooks/lint.sh"
 }
 ]
 }
 ],
 "PreToolUse": [
 {
 "matcher": "Bash",
 "hooks": [
 {
 "type": "command",
 "command": "echo 'Commande bash détectée'"
 }
 ]
 }
 ]
 }
}

les hooks supportent de nombreux événements, notamment SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Notification, Stop, PreCompact et SessionEnd (consultez la documentation officielle pour la liste complète). Chaque hook de type command reçoit la charge utile de l'événement au format JSON sur son entrée standard : le chemin du fichier édité se lit depuis tool_input.file_path. Claude Code expose aussi des variables d'environnement comme CLAUDE_PROJECT_DIR.

ÉvénementDéclenchementUsage typique
PreToolUseAvant chaque outilValidation, logging
PostToolUseAprès chaque outilLinting, formatting
NotificationSur notification ClaudeAlertes externes
StopFin de sessionNettoyage, rapport

Vous pouvez chaîner plusieurs hooks sur le même événement. Vérifiez que vos scripts de hook retournent un code de sortie 0 pour indiquer le succès. Un code non-zéro bloque l'action en cours. Pour approfondir la sécurité de ces automatisations, consultez la FAQ sur les permissions et la sécurité.

À retenir : les hooks automatisent des actions déterministes sur des événements précis : zéro IA, 100 % fiable.

Quels fichiers de configuration contrôlent les commandes et skills ?

Cinq fichiers et répertoires principaux gouvernent l'extensibilité de Claude Code. Vérifiez leur présence avec la commande suivante :

ls -la .claude/commands/ CLAUDE.md .claude/settings.json

Le fichier CLAUDE.md à la racine contient la mémoire et les instructions du projet. Le répertoire .claude/commands/ contient vos commandes slash, .claude/skills/ vos skills, et le fichier .claude/settings.json configure les hooks et les permissions.

Voici concrètement l'arborescence type d'un projet bien configuré :

mon-projet/
├── CLAUDE.md # Mémoire et conventions du projet
├── .claude/
│ ├── commands/
│ │ ├── review.md # /review
│ │ ├── test-unit.md # /test-unit
│ │ └── deploy/
│ │ └── staging.md # /staging
│ └── settings.json # Hooks et permissions
├── src/
│ └── CLAUDE.md # Instructions spécifiques à src/
└── tests/
 └── CLAUDE.md # Instructions spécifiques aux tests

Le guide d'installation et premier lancement explique comment initialiser cette structure dès la première utilisation de Claude Code. Consultez aussi les astuces pour les commandes personnalisées pour optimiser votre arborescence.

À retenir : cinq fichiers structurent vos extensions : CLAUDE.md, .claude/commands/, .claude/settings.json et leurs variantes par répertoire.

Comment partager des commandes custom avec son équipe ?

Committez le répertoire .claude/commands/ dans votre dépôt Git pour partager vos commandes avec toute l'équipe. Chaque développeur qui clone le projet obtient automatiquement les mêmes commandes slash.

Concrètement, votre fichier .gitignore ne doit PAS exclure .claude/commands/. En revanche, ajoutez .claude/settings.local.json au .gitignore pour les configurations personnelles.

# .gitignore recommandé pour Claude Code
.claude/settings.local.json
# NE PAS ignorer :
# .claude/commands/
# CLAUDE.md

Les équipes de plus de 5 développeurs adoptent souvent un processus de revue pour les nouvelles commandes. Vous créez une pull request qui ajoute un fichier dans .claude/commands/, l'équipe la review comme du code standard. cette pratique réduit notablement la divergence des pratiques au sein d'une équipe.

Pour aller plus loin dans la gestion d'équipe des commandes, consultez l'aide-mémoire des commandes personnalisées qui résume toutes les bonnes pratiques de partage.

À retenir : committez .claude/commands/ dans Git, vos commandes deviennent un standard d'équipe versionné.

Y a-t-il un marketplace de plugins pour Claude Code ?

Oui. Claude Code dispose d'un système de plugins et de marketplaces. Anthropic maintient deux marketplaces publics : claude-plugins-official (curaté, disponible par défaut) et claude-community (communautaire). Installez un plugin avec /plugin install @ et ajoutez un marketplace avec /plugin marketplace add anthropics/claude-plugins-official. Les commandes custom, skills et hooks restent disponibles pour une extensibilité locale via .claude/.

La communauté partage également des commandes et configurations via des dépôts GitHub publics. Vous trouverez des collections de commandes prêtes à l'emploi pour le testing, le refactoring et la documentation.

L'intégration avec le protocole MCP (Model Context Protocol) permet de connecter Claude Code à des serveurs d'outils externes. MCP est un standard ouvert publié par Anthropic en 2024 qui unifie la communication entre les agents IA et les sources de données.

{
 "mcpServers": {
 "postgres": {
 "command": "npx",
 "args": [
 "-y",
 "@bytebase/dbhub",
 "--dsn",
 "postgresql://readonly:pass@localhost:5432/mabase"
 ]
 }
 }
}

En pratique, des centaines de serveurs MCP communautaires sont disponibles sur npm. Chaque serveur ajoute des outils spécialisés : accès à une base de données, navigation web, gestion de fichiers cloud. Pour comprendre comment ces intégrations s'inscrivent dans le paradigme agentique, consultez la FAQ sur le coding agentique.

À retenir : Claude Code propose des marketplaces de plugins (claude-plugins-official, claude-community) et, via MCP et les dépôts communautaires, un écosystème d'extensions en croissance rapide.

Comment déboguer une commande custom qui ne fonctionne pas ?

Exécutez la commande / dans Claude Code pour lister toutes les commandes détectées et identifier immédiatement si votre fichier est reconnu.

Trois causes couvrent la grande majorité des erreurs sur les commandes custom : un chemin de fichier incorrect, une extension .md manquante ou un problème d'encodage UTF-8. Vérifiez ces points dans l'ordre.

# Vérifier que le fichier existe et est lisible
file .claude/commands/ma-commande.md

# Vérifier l'encodage
file -I .claude/commands/ma-commande.md
# Attendu : text/plain; charset=utf-8

Si votre commande utilise $ARGUMENTS mais ne reçoit rien, assurez-vous de passer les arguments après le nom de la commande : /ma-commande fichier.ts. La variable $ARGUMENTS capture tout le texte après le nom de la commande.

Pour les hooks qui échouent silencieusement, ajoutez du logging dans votre script :

#!/bin/bash
# Le chemin du fichier édité provient du JSON reçu sur l'entrée standard
FILE=$(jq -r '.tool_input.file_path' < /dev/stdin)
echo "[HOOK $(date)] Exécution sur $FILE" >> /tmp/claude-hooks.log
npx eslint --fix "$FILE" 2>> /tmp/claude-hooks.log

Consultez les premières conversations avec Claude Code si vous débutez et rencontrez des problèmes de configuration initiale.

À retenir : listez vos commandes avec /, vérifiez le chemin, l'extension .md et l'encodage UTF-8 pour résoudre la grande majorité des problèmes.

Peut-on créer des commandes qui modifient plusieurs fichiers à la fois ?

Décrivez dans votre commande custom le scope des fichiers à modifier et Claude Code les traitera séquentiellement ou en parallèle selon le contexte. Une commande custom n'a aucune limite sur le nombre de fichiers qu'elle peut cibler.

Voici un exemple de commande multi-fichiers pour ajouter des headers de licence :

# .claude/commands/add-license.md
Ajoute le header de licence Apache 2.0 suivant en haut de
chaque fichier TypeScript dans $ARGUMENTS :

// Copyright 2026 SFEIR. All rights reserved.
// Licensed under the Apache License, Version 2.0

Ne modifie PAS les fichiers qui ont déjà un header de licence.
Compte et liste les fichiers modifiés.

En pratique, cette commande traite un répertoire entier de fichiers TypeScript en une seule invocation. Claude Code utilise l'outil Edit pour chaque fichier, ce qui garantit des modifications atomiques et réversibles.

Les commandes personnalisées et skills détaillent les patterns avancés pour les opérations sur des arborescences entières. Le mécanisme de permissions vous protège : Claude Code demande votre confirmation avant toute écriture en mode par défaut.

À retenir : aucune limite de fichiers par commande : décrivez le scope dans le prompt et Claude Code gère le parcours et les modifications.

Quand faut-il utiliser un hook plutôt qu'une commande custom ?

Utilisez un hook quand l'action doit se déclencher automatiquement et de manière déterministe, sans intervention humaine. Utilisez une commande custom quand vous voulez invoquer l'IA à la demande.

CritèreHookCommande custom
DéclenchementAutomatique (événement)Manuel (utilisateur)
Intelligence IANon (shell pur)Oui (prompt IA)
Fiabilité100 % déterministeVariable (réponse IA)
Temps d'exécutionMillisecondesSecondes à minutes
Cas d'usageLinting, formatting, loggingRevue, génération, analyse

Concrètement, configurez un hook PostToolUse pour lancer Prettier après chaque écriture de fichier. Créez une commande custom /review pour une analyse de code approfondie par l'IA. Le hook s'exécute quasi instantanément, alors que la commande custom mobilise l'IA et prend donc plus de temps.

La formation Claude Code de SFEIR Institute consacre une demi-journée à la création de commandes personnalisées et hooks avec des labs pratiques. Vous y apprendrez à construire un pipeline complet d'automatisation en 1 jour.

À retenir : hook = automatisation déterministe instantanée, commande custom = invocation IA à la demande.

Comment structurer sa mémoire CLAUDE.md pour un projet monorepo ?

Placez un fichier CLAUDE.md à chaque niveau significatif de votre monorepo pour contextualiser les instructions selon le package ou le service. Claude Code charge la mémoire du répertoire courant et de ses parents.

monorepo/
├── CLAUDE.md # Conventions globales
├── packages/
│ ├── api/
│ │ └── CLAUDE.md # Stack NestJS, conventions API
│ ├── web/
│ │ └── CLAUDE.md # Stack Next.js 15, conventions frontend
│ └── shared/
│ └── CLAUDE.md # Règles de la lib partagée

Quand vous travaillez dans packages/web/, Claude Code charge à la fois le CLAUDE.md racine et celui de packages/web/. Le contexte le plus spécifique prévaut en cas de conflit. Claude Code remonte l'arborescence du répertoire courant vers ses parents, sans limite documentée de profondeur d'imbrication.

En pratique, des fichiers CLAUDE.md ciblés par package réduisent sensiblement les erreurs de convention par rapport à un unique fichier racine. Pour approfondir, la formation Développeur Augmenté par l'IA sur 2 jours couvre les architectures monorepo et la personnalisation avancée des agents IA avec des exercices sur des projets réels.

À retenir : un CLAUDE.md par package dans un monorepo, et Claude Code fusionne automatiquement la mémoire du chemin courant.

Quels sont les pièges à éviter avec les commandes personnalisées ?

Évitez cinq erreurs fréquentes qui neutralisent l'efficacité de vos commandes custom et skills.

  1. Prompts trop vagues : "Améliore ce code" ne donne rien d'exploitable. Spécifiez les critères : performance, lisibilité, sécurité.
  2. Instructions contradictoires : deux fichiers CLAUDE.md qui donnent des consignes opposées créent des résultats incohérents. Auditez régulièrement votre mémoire de projet.
  3. Hooks bloquants : un script de hook trop lent ralentit toute la session. Limitez vos hooks à des opérations rapides.
  4. Pas de $ARGUMENTS : oublier cette variable rend la commande rigide et non réutilisable.
  5. Trop de commandes : au-delà d'un certain nombre de commandes custom, la maintenabilité chute. Regroupez les commandes similaires.

Consultez les astuces pour les commandes personnalisées pour des solutions détaillées à chacun de ces pièges.

La formation Développeur Augmenté par l'IA – Avancé de SFEIR Institute, en 1 jour, approfondit ces bonnes pratiques avec des cas réels de debugging de workflows agentiques complexes.

À retenir : spécificité des prompts, cohérence des skills, rapidité des hooks : ces trois principes évitent la majorité des problèmes.


Articles récents sur Claude

Formation Claude Code

Ce sujet est couvert dans le Module 5 de notre formation Claude Code

Sub-agents et Skills

Formation 1 jour • 60% labs pratiques • Formateurs experts

Voir le programme complet