Tu tapes le meme prompt 10 fois par jour. "Initialise le repo sur GitHub", "Debug cette erreur", "Fais un commit propre". A chaque nouvelle conversation Claude Code, tu repars de zero.
Les skills Claude Code resolvent ce probleme. Un skill, c'est un workflow reutilisable que tu lances en une commande. Tu tapes /github-init et tout se fait : git init, .gitignore, premier commit, creation du repo GitHub, push. Fini les copier-coller.
Dans cet article, je t'explique tout : comment ca marche sous le capot, comment creer tes propres skills, et comment installer ceux de la communaute.
Imagine que Claude Code c'est un chef cuisinier. Sans skill, il a tous les outils disponibles dans la cuisine -- les casseroles, les couteaux, le four -- mais il n'a aucune recette. Il ne sait pas comment faire. Si tu lui demandes de faire des pates carbonara, il va essayer d'utiliser les outils disponibles, mais sans avoir les vraies infos. Il va improviser.
Avec les skills, tu donnes au chef un livre de cuisine.
Tu lui donnes un "recipe skill" avec toutes les recettes, et un "kitchen skill" pour lui expliquer comment utiliser les outils specifiques de la cuisine. Quand il a besoin de faire des pates carbonara, il va dans sa table des matieres, trouve la recette, la recupere et l'execute.
Et si dans la recette des carbonara on lui dit qu'il doit utiliser la machine a gaz, il va utiliser le skill "kitchen", chercher le bon fichier qui explique comment utiliser la machine a gaz, et le faire.
Concretement :
SKILL.md c'est la table des matieres du livre de cuisinescripts/ ce sont les techniques de cuisineL'avantage enorme de cette structure : l'IA ne lit que la table des matieres. Elle ne charge pas tout le livre d'un coup. Elle va chercher uniquement la recette dont elle a besoin. Ca evite de surcharger le contexte avec des infos inutiles.
Et le plus puissant : Claude peut auto-invoquer un skill quand c'est pertinent. Si tu lui demandes "comment marche ce code ?", et que tu as un skill explain-code avec une description qui matche, Claude va le charger automatiquement sans que tu tapes /explain-code. C'est comme si le chef reconnaissait tout seul qu'il a besoin de la recette des carbonara.
Un skill vit dans le dossier .claude/skills/ (projet) ou ~/.claude/skills/ (global, aussi appele "personal").
Il existe aussi d'autres niveaux : Enterprise (via managed settings) et Plugin (via le systeme de plugins). La priorite est enterprise > personal > project.
Pour des workflows basiques, un skill c'est juste un dossier avec un SKILL.md :
.claude/skills/
github-init/
SKILL.md # Tout est dans ce fichier
Pour des workflows plus avances, tu structures ton skill avec des sous-dossiers :
.claude/skills/
pdf-skill/
SKILL.md # Entry point (table des matieres)
reference.md # Documentation detaillee
examples.md # Exemples d'utilisation
scripts/
extract-data.py # Script executable
read-value.py # Autre script

Le SKILL.md sert d'index. Il liste les fichiers disponibles et explique quand les utiliser. L'IA lit d'abord cet index, puis va chercher uniquement les fichiers dont elle a besoin pour la tache en cours. C'est ce qu'on appelle la progressive disclosure : on decouvre les informations petit a petit au lieu de tout charger d'un coup. La documentation officielle recommande de garder le SKILL.md sous 500 lignes et de deplacer les details dans des fichiers supplementaires.
Quand tu lances /github-init dans Claude Code, voici ce qui se passe :
SKILL.mdC'est du prompt injection au sens positif. Toi, tu envoies un texte (par exemple le nom du repo), et Claude Code vient injecter tout le prompt du skill en plus. Ca lui donne les instructions detaillees pour suivre le workflow que tu as defini.
C'est exactement le meme mecanisme que les regles dans CLAUDE.md -- sauf que la, c'est a la demande et pas automatique. Pour plus de details sur CLAUDE.md, consulte l'article sur les tips Claude Code.
Plutot que de creer le skill a la main, demande a Claude Code de le faire. C'est le meilleur moyen.
Lance Claude Code dans ton dossier de configuration global (~/.claude/) et tape :
Cree un skill global qui permet de creer un repository sur GitHub,
commit les changements actuels et prepare tout ca.
Claude Code va :
~/.claude/skills/github-init/SKILL.md avec toutes les etapesLe skill genere va contenir un workflow complet :
gh) est installe.gitignorePour le tester, va dans un nouveau projet (par exemple tax-calculator), lance Claude Code et tape :
/github-init tax-calculator-2025
Claude Code va suivre chaque etape du skill. Il va initialiser git, ajouter les fichiers, creer le commit, te demander public ou prive, creer le repo sur GitHub et push le code. Si gh n'est pas installe, le skill va meme l'installer pour toi.

Les skills supportent les arguments via le frontmatter et la variable $ARGUMENTS.
Dans le SKILL.md de github-init, tu vas trouver un frontmatter comme :
---
name: github-init
description: Initialize a GitHub repository
argument-hint: "[repo-name]"
---Le champ argument-hint affiche un indice pendant l'autocompletion pour indiquer les arguments attendus. Quand tu tapes /github-init tax-calculator, la valeur "tax-calculator" est passee au skill via $ARGUMENTS.
Tu peux utiliser $ARGUMENTS n'importe ou dans le contenu du SKILL.md. Claude Code remplace cette variable par tout ce que tu tapes apres le nom du skill. Tu peux aussi acceder aux arguments individuellement avec $ARGUMENTS[0], $ARGUMENTS[1], etc. (ou le raccourci $0, $1, $2).
Si ton SKILL.md ne contient pas $ARGUMENTS, Claude Code ajoute automatiquement ARGUMENTS: <ta valeur> a la fin du contenu. Pas besoin de le gerer manuellement.
Pas besoin de tout creer toi-meme. Le site skills.sh propose un repertoire de skills prets a l'emploi, maintenus par Vercel et la communaute. Les skills suivent le standard ouvert Agent Skills cree par Anthropic.
npx skills add vercel-labs/agent-skills --skill web-design-guidelinesPendant l'installation :
Ensuite, tu peux l'utiliser directement :
/web-design-guidelines Redesigne mon application en mode giga-shadcn
Ce skill-la est simple -- un seul fichier. Mais il y en a des plus complexes.
Tu peux aussi parcourir les skills officiels d'Anthropic sur github.com/anthropics/skills, qui inclut des skills pour creer des documents (PDF, DOCX, PPTX, XLSX) et plus encore.
Pour les skills officiels Anthropic (documents, etc.), tu peux aussi utiliser le systeme de plugins directement dans Claude Code :
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
La facon la plus simple de creer un skill, c'est de demander a Claude Code directement. Il connait la structure et va generer le SKILL.md correctement :
Cree un nouveau skill qui me permet de debug les erreurs.
Je lui envoie une erreur, il brainstorm plusieurs solutions,
me demande la meilleure solution et fixe le probleme.
Claude Code va :
.claude/skills/ ou ~/.claude/skills/SKILL.md avec le frontmatter (name, description) et les instructionsLe resultat : un nouveau skill debugger/ avec toute la structure prete a l'emploi. Tu peux ensuite l'ajuster selon tes besoins.
Tu peux aussi utiliser le template officiel du repo Anthropic comme point de depart.
Si tu as deja utilise les commands (.claude/commands/), tu te demandes peut-etre quelle est la difference. La documentation officielle dit clairement : les custom slash commands ont ete fusionnees dans les skills. Un fichier dans .claude/commands/review.md et un skill dans .claude/skills/review/SKILL.md creent tous les deux /review et fonctionnent pareil.
Pour plus de details sur les commands, consulte l'article dedie aux commands et skills.
| Commands | Skills | |
|---|---|---|
| Emplacement | .claude/commands/ | .claude/skills/ |
| Structure | Un seul fichier .md | Un dossier avec SKILL.md + fichiers supplementaires |
| Fichiers supplementaires | Non | Oui (templates, exemples, scripts) |
| Auto-invocation par Claude | Non | Oui (via la description dans le frontmatter) |
| Frontmatter avance | Supporte | Supporte + disable-model-invocation, context: fork, allowed-tools, etc. |
| Priorite | Plus basse | Plus haute (si meme nom, le skill gagne) |
Les commands continuent de fonctionner et supportent le meme frontmatter que les skills. Mais pour tout nouveau workflow, utilise les skills -- ils offrent plus de flexibilite.
Le frontmatter YAML en haut du SKILL.md te permet de configurer finement le comportement du skill. Voici les champs les plus utiles :
---
name: deploy
description: Deploy the application to production
disable-model-invocation: true
allowed-tools: Bash(git *), Bash(vercel *)
context: fork
---| Champ | Description |
|---|---|
name | Nom du skill (devient la commande /name). Si absent, utilise le nom du dossier |
description | Ce que fait le skill. Claude l'utilise pour decider quand l'invoquer automatiquement |
argument-hint | Indice affiche pendant l'autocompletion (ex: [issue-number]) |
disable-model-invocation | Mettre a true pour empecher Claude de lancer le skill automatiquement. Utilise ca pour les skills avec des effets de bord (/deploy, /commit) |
user-invocable | Mettre a false pour cacher le skill du menu /. Utile pour des skills de contexte que seul Claude doit invoquer |
allowed-tools | Restreindre les outils disponibles quand le skill est actif |
context | Mettre a fork pour executer le skill dans un sous-agent isole |
Le champ disable-model-invocation est particulierement important. Tu ne veux pas que Claude decide tout seul de deployer parce que ton code a l'air pret. Pour les hooks et scripts d'automatisation, c'est le meme principe de controle.
Voici des skills que tu peux creer pour gagner du temps :
/smart-commit - Analyse le diff, genere un message de commit conventionnel, groupe les changements par type/debug-error - Recois une erreur, brainstorm 3 solutions, demande laquelle appliquer, fixe le probleme/deploy-check - Verifie les types, lance les tests, build le projet, verifie les variables d'env, donne le feu vert pour deploy/code-review - Analyse les fichiers modifies, verifie la logique metier, les edge cases, les erreurs de typage, la lisibilite/refactor - Identifie le code duplique, propose un plan de refactoring, demande validation, execute, relance les testsPour chacun, demande simplement a Claude Code de creer le skill pour toi. Il connait la structure et va generer le SKILL.md correctement.
Garde le SKILL.md sous 500 lignes. C'est la table des matieres, pas le roman complet. Mets les details dans des fichiers supplementaires que tu references depuis le SKILL.md.
Utilise les scripts pour les taches repetitives. Si ton skill doit parser du JSON ou extraire des donnees, mets ca dans un script Python ou Bash dans scripts/.
Commence simple. Un skill avec un seul fichier SKILL.md suffit dans 80% des cas. N'ajoute des fichiers supplementaires que quand c'est vraiment necessaire.
Utilise disable-model-invocation: true pour les skills dangereux. Tout ce qui deploie, commit, ou a des effets de bord doit etre invoque manuellement.
Teste ton skill plusieurs fois. Avant de le partager, lance-le dans differents contextes pour verifier qu'il fonctionne comme prevu.
Demande a Claude de creer tes skills. Ne les ecris pas a la main. Claude connait la structure et va generer quelque chose de propre. Tu ajustes ensuite.
Un skill c'est un dossier dans .claude/skills/ qui contient au minimum un fichier SKILL.md. C'est un prompt reutilisable que tu lances avec /nom-du-skill, ou que Claude peut charger automatiquement quand c'est pertinent. Quand il s'active, le contenu du SKILL.md est injecte comme instructions dans la conversation. Les skills suivent le standard ouvert Agent Skills qui fonctionne aussi avec d'autres outils (Cursor, GitHub Copilot, OpenAI Codex, etc.).
Lance npx skills add owner/repo dans ton terminal (par exemple npx skills add vercel-labs/agent-skills). Choisis "Claude Code" comme agent et "Global" pour l'installer partout. Le skill sera disponible dans tous tes projets via /nom-du-skill. Tu peux aussi installer un skill specifique avec --skill nom-du-skill.
Oui. Les fichiers dans .claude/commands/ continuent de fonctionner et supportent le meme frontmatter que les skills. Mais pour tout nouveau workflow, prefere les skills dans .claude/skills/ qui supportent les fichiers supplementaires et l'auto-invocation par Claude.
Tape /mon-skill tes arguments ici. Tout ce qui vient apres le nom du skill est accessible via $ARGUMENTS dans le fichier SKILL.md. Tu peux aussi acceder a chaque argument individuellement avec $ARGUMENTS[0], $ARGUMENTS[1] (ou $0, $1). Le champ argument-hint dans le frontmatter affiche un indice pendant l'autocompletion.
Un skill dans ~/.claude/skills/ est "personal" -- disponible dans tous tes projets. Un skill dans .claude/skills/ (a la racine du repo) est specifique au projet. Utilise le personal pour les workflows generiques (commit, deploy) et le projet pour les workflows specifiques (migration de base de donnees, generation de composants). En cas de conflit de nom, la priorite est : enterprise > personal > project. Claude Code decouvre aussi automatiquement les skills dans les sous-dossiers (utile pour les monorepos).
Les skills sont une piece du puzzle Claude Code. Pour maitriser tout l'ecosysteme :

Avec une ligne de commande, récupère ma configuration complète.