Les Skills Claude Code : créer des workflows réutilisables
#C'est quoi un Skill ?
Un Skill est une extension pour Claude Code. Concrètement, c'est un dossier contenant un fichier SKILL.md avec des instructions que Claude charge dynamiquement quand il en a besoin.
Chaque Skill crée automatiquement une commande slash (/nom-du-skill) que vous pouvez invoquer depuis le terminal. Mais contrairement aux anciennes slash commands, les Skills peuvent aussi être déclenchés automatiquement par Claude quand le contexte le justifie.
Les Skills suivent le standard ouvert Agent Skills publié par Anthropic sur agentskills.io. Un Skill écrit pour Claude Code fonctionne aussi dans Cursor, GitHub Copilot et d'autres outils compatibles.
#Pourquoi utiliser des Skills ?
Imaginez que vous faites régulièrement les mêmes tâches : review de PR, commit avec un format spécifique, déploiement, analyse de code... Sans Skills, vous répétez les mêmes instructions à Claude à chaque session.
Avec un Skill, vous encapsulez ce pattern une fois et vous l'invoquez en une commande.
#Le Progressive Disclosure
C'est le concept clé derrière les Skills. Plutôt que de tout charger dans le contexte de Claude au démarrage, le système fonctionne en trois niveaux :
- Métadonnées (~100 tokens) : le nom et la description de chaque Skill sont pré-chargés au démarrage
- Instructions principales (moins de 5k tokens) : le contenu complet du
SKILL.mdest chargé quand Claude juge le Skill pertinent - Ressources (à la demande) : les fichiers de référence sont chargés uniquement si nécessaire
C'est comme un livre bien organisé : la table des matières est toujours visible, mais vous n'ouvrez un chapitre que quand vous en avez besoin.
#Créer son premier Skill
#Structure minimale
Un Skill, c'est juste un dossier avec un fichier SKILL.md :
.claude/skills/mon-skill/
└── SKILL.md
#Le fichier SKILL.md
Le fichier combine un frontmatter YAML (les métadonnées) et du contenu Markdown (les instructions) :
---
name: review-code
description: "Analyse le code pour détecter les problèmes de sécurité,
de performance et de lisibilité. Utiliser pour les reviews de PR
ou l'audit de code."
---
# Review de code
Quand tu fais une review, suis ces étapes :
1. Lis tous les fichiers modifiés
2. Vérifie les failles de sécurité (OWASP Top 10)
3. Identifie les problèmes de performance
4. Vérifie la lisibilité et les conventions du projet
5. Produis un rapport structuré avec tes findings
C'est tout. Vous avez maintenant une commande /review-code disponible dans Claude Code.
#Où placer ses Skills ?
| Emplacement | Portée | Usage |
|---|---|---|
| ~/.claude/skills/ | Tous vos projets | Skills personnels |
| .claude/skills/ | Ce projet uniquement | Skills partagés avec l'équipe |
| plugin/skills/ | Via un plugin | Skills communautaires |
#Les options du frontmatter
Le frontmatter YAML offre plusieurs options pour contrôler le comportement de votre Skill :
#Champs requis
---
name: mon-skill # max 64 caractères, minuscules + tirets
description: "Description claire de ce que fait le skill et quand l'utiliser"
---
La description est critique. C'est elle qui permet à Claude de décider quand charger votre Skill automatiquement. Incluez des mots-clés naturels qui décrivent les situations d'utilisation.
#Champs optionnels utiles
---
name: deploy
description: "Déploie l'application en production"
disable-model-invocation: true # Seul l'utilisateur peut invoquer
allowed-tools: Read, Bash(git *) # Pré-approuve certains outils
argument-hint: "[branch-name]" # Aide à l'autocomplétion
---
| Option | Effet | Cas d'usage |
|---|---|---|
| disable-model-invocation | Seul l'utilisateur peut invoquer | Actions sensibles (deploy, push) |
| user-invocable: false | Seul Claude peut invoquer | Contexte automatique en arrière-plan |
| context: fork | Exécute dans un subagent isolé | Tâches lourdes sans polluer le contexte |
| allowed-tools | Pré-approuve des outils | Éviter les confirmations répétitives |
| model: claude-opus-4 | Force un modèle spécifique | Tâches nécessitant plus de raisonnement |
#Structure avancée d'un Skill
Pour des Skills plus complexes, vous pouvez organiser les fichiers en sous-dossiers :
.claude/skills/audit-securite/
├── SKILL.md # Instructions principales
├── references/ # Documentation détaillée
│ ├── owasp-top-10.md
│ └── checklist.md
├── scripts/ # Code exécutable
│ └── scan.sh
└── assets/ # Templates et données
└── rapport-template.md
Les fichiers dans references/ sont chargés à la demande par Claude — c'est le troisième niveau du progressive disclosure.
#Fonctionnalités avancées
#Variables dynamiques
Les Skills supportent des substitutions pour recevoir des arguments :
---
name: fix-issue
description: "Corrige un ticket GitHub"
argument-hint: "[issue-number]"
---
# Fix Issue
1. Récupère les détails du ticket : `gh issue view $ARGUMENTS`
2. Analyse le problème décrit
3. Implémente la correction
4. Crée un commit avec le message "fix: closes #$1"
L'invocation /fix-issue 42 remplace $ARGUMENTS par 42.
#Injection de contexte dynamique
Vous pouvez exécuter des commandes avant que Claude reçoive les instructions :
---
name: review-pr
description: "Review la PR courante"
---
Voici le diff de la PR actuelle :
!`gh pr diff`
Analyse ce diff et produis une review structurée.
La syntaxe ! suivie de la commande entre backticks exécute la commande et injecte le résultat dans le prompt.
#Workflows avec checklist
Pour des tâches complexes, donnez à Claude une checklist à suivre :
Copie cette checklist et suis ta progression :
```
Progression :
- [ ] Étape 1 : Lire tous les fichiers source
- [ ] Étape 2 : Identifier les problèmes
- [ ] Étape 3 : Proposer des corrections
- [ ] Étape 4 : Implémenter les changements
- [ ] Étape 5 : Vérifier que le build passe
```
#Exemples concrets
#Skill de commit conventionnel
---
name: commit
description: "Crée un commit avec un message conventionnel.
Utiliser après des modifications de code."
---
# Commit conventionnel
1. Exécute `git diff --staged` pour voir les changements
2. Détermine le type de commit :
- `feat:` nouvelle fonctionnalité
- `fix:` correction de bug
- `refactor:` refactoring sans changement de comportement
- `docs:` documentation
- `chore:` maintenance
3. Rédige un message concis en français
4. Crée le commit (ne push PAS sans confirmation)
#Skill d'exploration de codebase
---
name: explore
description: "Explore en profondeur un aspect du codebase.
Utiliser pour comprendre l'architecture ou trouver des patterns."
context: fork
agent: Explore
---
Explore le codebase pour répondre à la question : $ARGUMENTS
Sois exhaustif :
1. Cherche tous les fichiers pertinents
2. Lis le code source, pas juste les noms de fichiers
3. Identifie les patterns et les dépendances
4. Produis un rapport structuré avec tes findings
#Bonnes pratiques
#La description fait tout
La description de votre Skill détermine si Claude le chargera automatiquement ou non. Comparez :
- Mauvais :
"Aide avec les PDFs" - Bon :
"Extrait le texte et les tables des fichiers PDF, remplit les formulaires, fusionne les documents. Utiliser quand l'utilisateur travaille avec des PDFs ou mentionne des formulaires."
#Restez concis
Claude est déjà très intelligent. Vous n'avez pas besoin de lui expliquer les bases. Challengez chaque ligne de votre SKILL.md :
- Gardez le fichier principal sous 500 lignes
- Déplacez les détails dans
references/ - Ne répétez pas ce que Claude sait déjà
#Testez itérativement
La méthode recommandée par Anthropic pour créer un Skill :
- Faites la tâche manuellement avec Claude une première fois
- Identifiez le pattern que vous répétez
- Demandez à Claude de créer le Skill : "Crée un Skill qui capture ce pattern"
- Testez dans une nouvelle session (le Skill se charge au démarrage)
- Itérez selon les résultats
Un Skill mal écrit peut consommer beaucoup de tokens inutilement. Par défaut, chaque Skill est limité à 2% de la fenêtre de contexte. Si vos Skills ne se chargent plus, vérifiez avec /context que le budget n'est pas dépassé.
#Skills vs anciennes Slash Commands
Si vous utilisiez les custom slash commands (fichiers .md dans .claude/commands/), sachez qu'ils ont été fusionnés dans les Skills.
| Aspect | Slash Commands (ancien) | Skills (actuel) |
|---|---|---|
| Emplacement | .claude/commands/ | .claude/skills/nom/SKILL.md |
| Invocation | Utilisateur uniquement | Utilisateur + Claude automatique |
| Fichiers support | Un seul fichier .md | Dossier complet (scripts, refs, assets) |
| Frontmatter | Non | Oui (contrôle d'invocation, modèle, etc.) |
| Progressive disclosure | Non | Oui (3 niveaux) |
| Standard ouvert | Non | Oui (agentskills.io) |
Les anciennes slash commands continuent de fonctionner, mais les Skills offrent plus de flexibilité. En cas de conflit de nom, le Skill prend la priorité.
#Pour aller plus loin
Les Skills sont un outil puissant pour capitaliser sur vos workflows. Plutôt que de répéter les mêmes instructions à chaque session, encapsulez-les dans un Skill et laissez Claude les charger quand c'est pertinent.
Quelques ressources pour explorer :
- La documentation officielle sur code.claude.com/docs/en/skills
- Le dépôt d'exemples sur github.com/anthropics/skills
- La collection communautaire awesome-claude-skills
Dans un prochain article, on explorera comment créer des Skills avancés avec des scripts Python et des workflows multi-étapes.