Skills et commandes personnalisées
Sur cette page
Claude Code est livré avec des commandes intégrées, accessibles en tapant /. Vous les utiliserez tous les jours, mais elles ne connaissent rien de votre projet. Dès qu’une même consigne revient chaque semaine (auditer les dépendances, écrire des tests selon vos conventions, préparer une release), la retaper devient absurde. Les skills répondent à ce besoin : un fichier Markdown contenant le prompt que vous auriez écrit à la main, que vous appelez comme une commande, et que Claude peut aussi charger de lui-même quand la demande correspond.
Des commandes aux skills
Les commandes personnalisées d’autrefois, un fichier .claude/commands/audit.md, existent toujours et fonctionnent encore. Mais la documentation les a fusionnées dans les skills : .claude/commands/audit.md et .claude/skills/audit/SKILL.md créent tous deux /audit. La forme skill ajoute un dossier pour des fichiers annexes (scripts, gabarits, documentation de référence), un en-tête qui contrôle qui peut la déclencher, et la possibilité pour Claude de la charger automatiquement. Pour tout nouveau travail, écrivez une skill. Les skills suivent le standard ouvert Agent Skills, commun à plusieurs outils.
Créer votre première skill
Une skill vit dans un dossier contenant un fichier SKILL.md. Le nom du dossier devient la commande. Trois emplacements :
| Emplacement | Chemin | Disponible |
|---|---|---|
| Personnel | ~/.claude/skills/<nom>/SKILL.md | Dans tous vos projets sur cette machine |
| Projet | .claude/skills/<nom>/SKILL.md | Dans ce dépôt, pour toute l’équipe via Git |
| Plugin | <plugin>/skills/<nom>/SKILL.md | Partout où le plugin est activé, sous la forme /plugin:nom |
Voici une skill d’audit des dépendances, dans .claude/skills/audit/SKILL.md :
---
description: Audite les dépendances npm du projet et corrige les vulnérabilités. À utiliser quand on demande un audit de sécurité ou des mises à jour de paquets.
disable-model-invocation: true
---
Effectue un audit de sécurité des dépendances du projet :
1. Exécute `npm audit` pour trouver les paquets vulnérables
2. Exécute `npm audit fix` pour appliquer les mises à jour
3. Lance les tests pour vérifier que rien n'est cassé
4. Résume les résultats, en séparant ce qui est corrigé de ce qui reste
Le fichier a deux parties. L’en-tête YAML, entre deux lignes ---, décrit la skill ; seule description est recommandée, et c’est elle que Claude lit pour décider quand charger la skill de lui-même. Le corps est le prompt. Ici, disable-model-invocation: true réserve le déclenchement à vous : Claude ne lancera pas un npm audit fix parce que votre code lui semble prêt. Personne n’oubliera de relancer les tests après la correction, parce que l’étape 3 est écrite dans le fichier et non dans la mémoire de celui qui lance l’audit un vendredi soir.
Inutile de redémarrer : Claude Code surveille les dossiers de skills et prend en compte un ajout ou une modification dans la session en cours. Si vous créez un dossier .claude/skills/ qui n’existait pas au lancement, tapez /reload-skills une fois.
Passer des arguments
Une skill figée ne va pas loin ; vous voudrez presque toujours lui désigner une cible. Le texte tapé après le nom de la commande remplace $ARGUMENTS :
---
description: Écrit des tests complets pour un fichier ou un module, selon les conventions du projet.
argument-hint: [fichier ou module]
---
Écris des tests complets pour : $ARGUMENTS
Conventions :
- Vitest avec React Testing Library
- fichiers dans un dossier __tests__, nommés [nom].test.ts(x)
Couverture : cas nominaux, cas limites, états d'erreur.
/write-tests le hook use-auth.ts dans src/hooks fonctionne aussi bien avec un chemin qu’avec une phrase. Pour des arguments positionnels, $0, $1 (ou $ARGUMENTS[0]) : /migrate-component SearchBar JavaScript TypeScript remplit « migre le composant $0 de $1 vers $2 ». argument-hint s’affiche dans l’autocomplétion.
Injecter du contexte au moment de l’appel
Une ligne de la forme !`commande` est exécutée par Claude Code avant que Claude ne lise la skill, et remplacée par sa sortie. L’exemple officiel résume les changements non commités :
---
description: Résume les changements non commités et signale ce qui paraît risqué. À utiliser quand on demande ce qui a changé ou un message de commit.
---
## Changements en cours
!`git diff HEAD`
## Instructions
Résume les changements ci-dessus en deux ou trois points, puis liste les risques : gestion d'erreur absente, valeurs codées en dur, tests à mettre à jour.
La skill arrive donc avec le diff réel, et non avec ce que Claude aurait deviné des fichiers ouverts.
L’en-tête, champ par champ
| Champ | Rôle |
|---|---|
name | Nom de la commande, sinon le nom du dossier |
description | Ce que fait la skill et quand l’utiliser ; sert au déclenchement automatique |
argument-hint, arguments | Indice d’autocomplétion ; noms d’arguments positionnels |
disable-model-invocation: true | Seul vous pouvez la lancer ; sa description ne charge plus le contexte |
user-invocable: false | Seul Claude peut la charger ; pour un savoir de fond qui n’est pas une action |
allowed-tools | Outils autorisés sans demande pendant le tour qui invoque la skill |
model, effort | Modèle ou niveau d’effort pour le reste du tour |
context: fork | Exécute la skill dans un sous-agent, en arrière-plan par défaut |
paths | Ne se déclenche automatiquement que sur des fichiers qui correspondent |
hooks | Hooks enregistrés quand la skill est invoquée |
Le coût caché et les skills fournies
Chaque skill que Claude peut invoquer ajoute sa description au contexte de chaque tour, qu’elle serve ou non. /skill-doctor indique ce que coûte chacune et à quelle fréquence elle est utilisée, pour décider lesquelles désactiver ; /skills les liste avec leur source et leur poids. Une skill réservée à vous (disable-model-invocation: true) ne coûte rien tant que vous ne l’appelez pas.
Claude Code inclut des skills prêtes à l’emploi, qui apparaissent dans le menu / : /code-review relit les changements de la branche, /verify lance l’application pour constater le résultat, /simplify nettoie le code modifié, /doctor diagnostique l’installation, /batch orchestre un changement à grande échelle, /debug lit le journal de la session, /claude-api aide sur les projets qui utilisent l’API Claude.
Quand une skill ne se déclenche pas
La cause est presque toujours la description : elle doit contenir les mots que vous emploierez dans vos demandes. Vérifiez qu’elle apparaît avec « Quelles skills sont disponibles ? », reformulez, ou appelez-la directement avec /nom. Un en-tête YAML mal formé charge la skill sans ses champs : /nom fonctionne mais Claude ne peut plus la reconnaître ; claude plugin validate .claude/skills repère ces fichiers. Le cours Introduction aux Agent Skills du catalogue approfondit l’écriture, les fichiers annexes et la diffusion en équipe.
À vous de jouer
- Prenez la tâche que vous avez le plus répétée cette semaine et écrivez-la dans
.claude/skills/<nom>/SKILL.mdavec une description qui dit quand l’utiliser. - Appelez-la avec
/nom, puis formulez une demande en langage courant qui correspond à sa description : Claude doit la charger seul (sauf si vous avez misdisable-model-invocation: true). - Ajoutez
$ARGUMENTSet unargument-hint, puis relancez avec une cible. - Lancez
/skill-doctoret regardez ce que vos skills coûtent.
Sources officielles : Extend Claude with skills · Commands · Extend Claude Code
Points clés à retenir
- Les commandes personnalisées ont été fusionnées dans les skills :
.claude/skills/<nom>/SKILL.mdcrée/nom; les fichiers.claude/commands/fonctionnent encore descriptiondécide du déclenchement automatique ;disable-model-invocation: trueréserve la skill à vous$ARGUMENTS,$0,$1passent des paramètres ;!`commande`injecte une sortie au moment de l’appel- Les modifications sont prises en compte sans redémarrage ;
/reload-skillspour un nouveau dossier - Chaque skill a un coût en contexte :
/skill-doctorle mesure