Retour au blog

Les Skills Claude Code : créer des workflows réutilisables

$date: |read: 8 min|cat: Claude Code
claude-codetutoriel
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.

~90%
Tokens économisés
100+
Skills chargés au démarrage
~100
Tokens pour les métadonnées
7+
Adopteurs du standard

#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 :

  1. Métadonnées (~100 tokens) : le nom et la description de chaque Skill sont pré-chargés au démarrage
  2. Instructions principales (moins de 5k tokens) : le contenu complet du SKILL.md est chargé quand Claude juge le Skill pertinent
  3. 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 ?

EmplacementPortéeUsage
~/.claude/skills/Tous vos projetsSkills personnels
.claude/skills/Ce projet uniquementSkills partagés avec l'équipe
plugin/skills/Via un pluginSkills 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
---
OptionEffetCas d'usage
disable-model-invocationSeul l'utilisateur peut invoquerActions sensibles (deploy, push)
user-invocable: falseSeul Claude peut invoquerContexte automatique en arrière-plan
context: forkExécute dans un subagent isoléTâches lourdes sans polluer le contexte
allowed-toolsPré-approuve des outilsÉviter les confirmations répétitives
model: claude-opus-4Force un modèle spécifiqueTâ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 :

  1. Faites la tâche manuellement avec Claude une première fois
  2. Identifiez le pattern que vous répétez
  3. Demandez à Claude de créer le Skill : "Crée un Skill qui capture ce pattern"
  4. Testez dans une nouvelle session (le Skill se charge au démarrage)
  5. 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.

AspectSlash Commands (ancien)Skills (actuel)
Emplacement.claude/commands/.claude/skills/nom/SKILL.md
InvocationUtilisateur uniquementUtilisateur + Claude automatique
Fichiers supportUn seul fichier .mdDossier complet (scripts, refs, assets)
FrontmatterNonOui (contrôle d'invocation, modèle, etc.)
Progressive disclosureNonOui (3 niveaux)
Standard ouvertNonOui (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 :

Dans un prochain article, on explorera comment créer des Skills avancés avec des scripts Python et des workflows multi-étapes.