Écrire ses propres commandes : enregistrer les prompts récurrents
Une commande slash personnalisée est un fichier Markdown enregistré : une fois écrite, /ta-commande suffit ensuite au lieu d'un long prompt.
L'idée de base
Tu tapes toujours le même prompt – « Résume mes changements », « Vérifie ce fichier » –, tu peux l'enregistrer comme commande personnalisée. Claude Code connaît deux formats pour cela : un fichier Markdown sous .claude/commands/ ou un dossier de skill sous .claude/skills/. Les deux créent la même commande slash : deploy.md et deploy/SKILL.md deviennent tous deux /deploy. Les Custom Commands ont été officiellement fusionnées dans les Skills ; les anciens fichiers de commande continuent de fonctionner.
Structure du fichier
Le fichier commence en option par un frontmatter YAML entre deux lignes ---. Le champ le plus important est description : c'est à cela que Claude reconnaît si la commande correspond à la tâche, et peut même la charger automatiquement. Après le frontmatter vient le texte du prompt proprement dit.
Arguments
Avec le placeholder $ARGUMENTS, tu récupères tout ce que tu tapes après la commande : avec /fix-issue 123, $ARGUMENTS devient 123. Tu accèdes aux arguments individuels en base 0 via $0, $1, etc.
Commande personnalisée ou règle CLAUDE.md ?
La règle empirique de la doc : les règles qui doivent toujours s'appliquer (« ne jamais pousser sur main ») vont dans CLAUDE.md – il est chargé intégralement à chaque session. Les procédures dont tu n'as besoin que parfois vont dans une commande ou un skill : leur texte ne se charge qu'à l'appel et ne coûte presque aucun contexte avant cela. Quand une section de CLAUDE.md a grandi jusqu'à devenir toute une procédure, c'est exactement, selon la doc, le moment de la transformer en commande.
EXEMPLE
Fichier `.claude/skills/fix-issue/SKILL.md` : --- description: Corrige une issue GitHub à partir de son numéro disable-model-invocation: true --- Corrige l'issue GitHub $ARGUMENTS : lis l'issue, implémente le correctif, écris des tests. Appel ensuite : `/fix-issue 123`
🛠️ EXERCICE — À TOI DE JOUER
Construis ta première commande personnalisée et teste les deux façons de l'invoquer.
- Crée le fichier .claude/skills/resumer/SKILL.md – avec une description (« Résume les changements non commités ») et le prompt « Résume le git diff actuel en 3 points. »
- Démarre Claude Code, modifie un fichier et invoque /resumer directement.
- Ensuite, demande en langage naturel « Qu'est-ce que j'ai changé ? » et observe si Claude charge le skill de lui-même.
✅ AUTO-VÉRIFICATION
- ☐ Sais-tu pourquoi le champ description est décisif pour le chargement automatique ?
- ☐ Peux-tu expliquer quand ce même texte aurait mieux eu sa place dans CLAUDE.md ?
- ☐ As-tu compris comment tu récupérerais des arguments avec $ARGUMENTS ?
QUIZ RAPIDE
Que se passe-t-il techniquement quand tu invoques une commande personnalisée comme `/fix-issue 123` ?
SOURCES
- Doc Claude Code : Skills (inclut Custom Commands) ↗ code.claude.com
- Doc Claude Code : Slash Commands ↗ code.claude.com
- Doc Claude Code : CLAUDE.md et Memory ↗ code.claude.com