04 - Les skills : etendre les capacités de Claude
Ce que tu vas apprendre
- Ce qu'est un skill et comment il fonctionne
- Les skills intégrés a Claude Code
- Creer tes propres skills avec SKILL.md
- Les scopes et la découverte automatique
Prerequisites
Un skill, c'est quoi exactement ?
Un skill, c'est un fichier SKILL.md avec un frontmatter qui definit une commande personnalisee. Quand tu tapes /deploy ou /review-pr dans Claude Code, c'est un skill qui s'exécuté. Le fichier contient les instructions, les outils autorises, et eventuellement les chemins de fichiers pertinents.
Pense aux skills comme des prompts structures et reutilisables. Au lieu de retaper les memes instructions a chaque session ("analyse cette PR, vérifié les conventions, liste les problèmes potentiels"), tu les encapsules dans un skill que tu invoques en deux secondes.
Les skills intégrés
Claude Code vient avec quelques skills prets a l'emploi :
/batch : exécuté une meme opération sur plusieurs fichiers. "Ajoute un header de licence a tous les fichiers .ts du dossier src" en une seule commande.
/simplify : analyse le code modifie et propose des simplifications. Detecte la duplication, les abstractions inutiles, les imports morts.
/loop : exécuté une commande ou un skill a intervalles réguliers. /loop 5m /simplify lance une review automatique toutes les cinq minutes. Utile quand tu travailles sur une longue session et que tu veux un filet de sécurité.
/debug : mode debug structure. Claude reproduit le bug, identifié la cause, propose un fix. Plus methodique qu'un simple "fixe ce bug".
Tu peux lister les skills disponibles avec /help ou en parcourant la documentation inline de Claude Code.
Creer ton premier skill
Les skills vivent dans .claude/skills/ (scope projet) ou ~/.claude/skills/ (scope utilisateur). Chaque skill est un fichier SKILL.md.
Voici un skill /deploy pour un projet hébergé sur un VPS :
markdown---
name: deploy
description: "Deployer le projet en production"
allowed-tools: ["Bash", "Read"]
---
# Deploiement en production
1. Lance les tests : `pnpm test`
2. Si les tests passent, build le projet : `pnpm build`
3. Connecte-toi au serveur via SSH et deploie :
```bash
ssh deploy@monserveur.fr "cd /app && git pull && pnpm install --frozen-lockfile && pnpm build && pm2 restart all"
- Verifie que le site repond en faisant un curl sur l'URL de production.
- Si tout va bien, confirme le deploiement. Sinon, donne les details de l'erreur.
Place ce fichier dans `.claude/skills/deploy.md`. Maintenant, quand tu tapes `/deploy` dans Claude Code, il suit ces instructions a la lettre.
## Un skill de review de PR
Un autre exemple concret qui me sert quotidiennement :
```markdown
---
name: review-pr
description: "Review une pull request en detail"
allowed-tools: ["Bash", "Read", "Grep", "Glob"]
---
# Review de PR
1. Lance `git diff main...HEAD` pour voir tous les changements
2. Pour chaque fichier modifie, verifie :
- La coherence avec les conventions du projet (cf CLAUDE.md)
- Les erreurs de logique ou les edge cases non geres
- Les imports inutilises ou les variables mortes
- La couverture de tests (les nouvelles fonctions ont-elles des tests ?)
3. Lance `pnpm lint` et `pnpm test` pour verifier que rien ne casse
4. Resume les problemes trouves par ordre de severite
5. Propose les corrections pour chaque probleme
Ce skill remplace facilement 20 minutes de review manuelle sur une PR de taille moyenne. Claude vérifié des choses que l'oeil humain rate souvent (un import oublie, un cas limite non teste).
Le frontmatter en détail
Le frontmatter d'un SKILL.md accepte plusieurs champs :
markdown---
name: mon-skill
description: "Ce que fait le skill en une phrase"
allowed-tools: ["Bash", "Read", "Edit", "Grep", "Glob"]
paths: ["src/api/**", "tests/**"]
---
name : le nom de la commande (invoque avec /name).
description : Claude utilise cette description pour détecter automatiquement quand un skill est pertinent. Si tu demandes "deploie le projet" sans taper /deploy, Claude peut reconnatre que le skill deploy correspond et te proposer de l'utiliser.
allowed-tools : restreint les outils que le skill peut utiliser. Un skill de review n'a pas besoin d'écrire des fichiers, donc tu peux exclure Edit et Write.
paths : limite le scope du skill a certains chemins. Un skill de review d'API ne devrait regarder que src/api/.
Contexte dynamique avec !`command`
Un truc puissant et peu connu : tu peux injecter le résultat d'une commande dans les instructions du skill avec la syntaxe !command``. Par exemple :
markdownVoici la liste des fichiers modifies recemment :
!`git diff --name-only HEAD~5`
Analyse ces fichiers pour detecter des regressions.
A l'exécution du skill, Claude lance git diff --name-only HEAD~5, injecte le résultat dans le prompt, et travaille avec. Ca rend les skills dynamiques sans avoir a les modifier manuellement.
Scope projet vs utilisateur
Les skills dans .claude/skills/ sont spécifiques au projet. Tu les commits dans git, toute l'équipe y a acces. Les skills dans ~/.claude/skills/ sont perso, disponibles sur tous tes projets.
Ma repartition : les skills de deploy et de review spécifiques au projet vont dans .claude/skills/. Les skills génériques (formater un changelog, générer un résumé de session) vont dans ~/.claude/skills/.
Trouver des skills communautaires
L'ecosysteme de skills grandit vite. Tu peux découvrir des skills partages par d'autres développeurs en explorant les repos GitHub tagges "claude-code-skills". Claude Code a aussi une commande de découverte qui te suggéré des skills en fonction de ton projet.
Ne te noie pas sous les skills. Commence avec deux ou trois qui collent a ton workflow quotidien. Ajoute les autres quand le besoin se fait sentir. Un skill que tu n'utilises jamais, c'est du bruit dans ton répertoire.
Article précédent : 03 - Les MCP servers
Article suivant : 05 - Les hooks : automatiser les reactions de Claude