Claude Skills et SKILL.md pour les développeurs : VS Code, JetBrains, Cursor

Créer des Claude Skills qui tiennent en situation réelle

Sommaire

La plupart des équipes utilisent mal les Claude Skills de l’une de ces deux manières. Elles transforment soit SKILL.md en une poubelle, soit elles ne parviennent jamais à se départir de prompts géants copiés-collés.

Les deux approches sont négligées. Si vous voulez que les Skills fonctionnent dans un vrai flux de développement, vous devez les traiter comme du code et de la logique d’exploitation, et non comme de la poésie de prompt.

laptop with claude skill

Les Claude Skills sont des répertoires ancrés par SKILL.md, avec des scripts, des références et des ressources facultatifs. Ils fonctionnent grâce à la divulgation progressive. L’agent commence par charger uniquement des métadonnées compactes, telles que le nom de la skill et sa description, puis lit les instructions complètes uniquement lorsque la tâche correspond. Cela permet à un agent de garder de nombreuses skills disponibles sans surcharger chaque session dès le départ.

Si vous exploitez également Hermes Agent, la même structure sur disque est alignée avec la spécification de type agentskills documentée par Hermes — l’activation conditionnelle, le balayage du hub et la distinction entre secrets et configuration sont détaillés dans Hermes Agent Skill Authoring — SKILL.md Structure and Best Practices.

Les propres directives d’Anthropic rendent assez claire la répartition de travail prévue. CLAUDE.md est destiné au contexte de projet durable et toujours actif. Les Skills sont destinées aux connaissances réutilisables, aux plans d’action et aux flux de travail invocables qui devraient se charger à la demande. Cela fait des Skills l’endroit naturel pour encoder une boucle de développement pilotée par spécification — spécifier, planifier, implémenter, valider — lorsque vous souhaitez plus de structure que le codage à l’instinct, mais moins de cérémonie qu’un échafaudage complet de Spec Kit. Consultez GitHub Spec Kit vs Kiro vs Claude Code SDD Workflows pour voir comment les skills de Claude Code se comparent aux alternatives portables et intégrées aux IDE. Si vous préférez installer cette boucle préconstruite et appliquée plutôt que de l’auteur vous-même, Superpowers empaquette exactement ce type de pile de skills — brainstorming, planification, revue par sous-agent, TDD — en tant que plugin installable.

Claude Code a même intégré les anciennes commandes personnalisées dans le même mécanisme, de sorte que les fichiers legacy .claude/commands/*.md fonctionnent toujours, mais les Skills sont désormais la meilleure forme à long terme — et le bloc de construction le plus réutilisable dans tout flux de développement propulsé par l’IA.

Quand utiliser les Claude Skills : CLAUDE.md vs Skills vs Hooks

Une Claude Skill vaut la peine d’être créée lorsque vous ne cessez de coller la même liste de contrôle, le même plan de déploiement, le même ruban d’évaluation de code ou les mêmes pièges de votre API interne dans le chat. Anthropic recommande explicitement de créer une skill lorsque vous réutilisez constamment la même procédure, ou lorsqu’une section de CLAUDE.md a grandi pour devenir un processus plutôt qu’un fait. C’est la réponse pratique à la question FAQ « Qu’est-ce qu’une Claude Skill et quand devrait-on en utiliser une ». Utilisez une Skill pour une procédure répétable, et non pour un goût général ou des règles de dépôt larges.

Le vrai avantage est le contrôle sur le coût du contexte et le comportement. Une bonne Skill est chargée uniquement lorsque c’est pertinent, tandis qu’un CLAUDE.md surchargé est chargé à chaque session. Anthropic recommande de garder CLAUDE.md court et de déplacer les connaissances de domaine ou les procédures dans des Skills précisément parce que le chargement à la demande garde l’agent concentré sur la tâche devant lui.

Ma règle opinionnée est simple. Si l’instruction doit s’appliquer à chaque session, elle appartient dans CLAUDE.md. Si l’instruction est une méthode réutilisable, une liste de contrôle ou un flux de travail qui n’a d’importance que parfois, elle appartient dans une Skill. Si l’action doit se produire automatiquement à chaque événement correspondant, elle appartient probablement dans un hook, et non dans une Skill. La vue d’ensemble des fonctionnalités d’Anthropic cadre ces outils dans un modèle de stratification presque exactement celui-ci.

Couche Outil Quand l’utiliser
CLAUDE.md Toujours chargé Faits du projet, conventions durables, règles globales du dépôt
Skill Chargée à la demande Procédures répétables, plans d’action, listes de contrôle de domaine
Hook Déclenché par événement Effets de bord automatiques lors de l’enregistrement de fichier, du commit ou du démarrage de session

Un indice pratique pour chacun : si vous vous surprenez à coller les mêmes instructions dans chaque chat, c’est une Skill. Si une section de CLAUDE.md a grandi pour devenir un processus étape par étape, extrayez-la dans une Skill. Si vous voulez que quelque chose se déclenche silencieusement chaque fois qu’un fichier est enregistré, écrivez un hook à la place. Il y a aussi une quatrième couche qui vaut la peine d’être connue : lorsqu’une tâche génère beaucoup de sortie intermédiaire bruyante que vous ne voulez pas voir encombrer la session principale — exploration de la base de code, une grande exécution de tests — c’est un travail pour un sous-agent, et non une Skill.

Prise en charge des IDE pour Claude Skills : VS Code, JetBrains, Cursor et Codex

Claude Code fonctionne sur CLI, Bureau, VS Code, JetBrains, web et les flux de contrôle à distance liés au mobile. Anthropic décrit le CLI comme la surface locale la plus complète, tandis que les intégrations IDE sacrifient certaines capacités exclusives au CLI au profit d’une revue native de l’éditeur, du contexte de fichier et d’une ergonomie de flux de travail plus étroite. La configuration, la mémoire du projet et les serveurs MCP sont partagés entre les surfaces locales, de sorte que votre configuration .claude vous suit plutôt que d’être piégée dans un seul éditeur.

Pour VS Code, Anthropic indique que l’extension est l’interface recommandée à l’intérieur de l’éditeur. Elle fournit la revue de plan, les diffs en ligne, la prise en charge de la mention de fichiers et l’accès intégré au CLI. Le même flux d’installation expose également un chemin direct pour Cursor. Pour JetBrains, la liste actuellement prise en charge inclut IntelliJ IDEA, PyCharm, Android Studio, WebStorm, PhpStorm et GoLand, avec l’affichage des diffs, le partage de sélection, les raccourcis de référence de fichiers et le partage de diagnostics intégrés au plugin.

La prise en charge de JetBrains est meilleure que ce que beaucoup de développeurs réalisent. Si vous exécutez claude depuis le terminal intégré de l’IDE, les fonctionnalités d’intégration sont actives automatiquement. Si vous démarrez depuis un terminal externe, Anthropic documente la commande /ide pour reconnecter Claude Code à la session JetBrains, et recommande explicitement de lancer depuis la même racine de projet pour que Claude voie les mêmes fichiers que votre IDE. Si vous utilisez des modes d’édition automatique dans JetBrains, Anthropic avertit également que les fichiers de configuration de l’IDE peuvent devenir partie de la surface éditable, de sorte que les approbations manuelles sont le défaut plus sûr dans cet environnement.

Maintenant, le point plus large. Les Claude Skills ne sont pas seulement une affaire de Claude Code. Agent Skills est un standard ouvert. Le guide de démarrage officiel d’Agent Skills indique que la même skill peut fonctionner dans VS Code avec GitHub Copilot, Claude Code et OpenAI Codex, et les propres documents de Codex d’OpenAI indiquent que les Skills sont disponibles dans le CLI Codex, l’extension IDE et l’application. Le guide d’implémentation d’Agent Skills ajoute un détail de portabilité important : .agents/skills est apparu comme la convention inter-client, tandis que certains clients balayent également .claude/skills pour une compatibilité pragmatique.

Voici donc la règle de compatibilité pratique que je recommande. Si vous construisez d’abord et uniquement pour Claude Code, créez dans .claude/skills. Si vous voulez vraiment la portabilité inter-client, visez la forme ouverte d’Agent Skills et utilisez .agents/skills comme chemin canonique. Ne prétendez pas que ces deux objectifs sont identiques. Ils sont liés, mais pas identiques.

Référence rapide de compatibilité :

Client Chemin des Skills Notes
Claude Code CLI .claude/skills/ ou ~/.claude/skills/ Surface la plus complète ; prise en charge complète de allowed-tools
VS Code + extension Claude .claude/skills/ Diffs en ligne, revue de plan, mention de fichier
Cursor .claude/skills/ Même chemin d’installation que VS Code
JetBrains (IDEA, PyCharm, etc.) .claude/skills/ Exécutez claude depuis le terminal IDE ou utilisez /ide pour reconnecter
GitHub Copilot, OpenAI Codex .agents/skills/ Standard ouvert Agent Skills ; portabilité inter-client
Claude.ai web Téléversez via l’interface Le nom du répertoire doit correspondre au champ name ; limite de description de 200 caractères

Structure, disposition des dossiers et emplacements de stockage du fichier SKILL.md

Une Skill appropriée est un dossier, et non un fichier markdown aléatoire situé à la racine du dépôt. La spécification de base exige un répertoire avec un fichier SKILL.md et permet des répertoires facultatifs scripts/, references/ et assets/. SKILL.md doit contenir un frontmatter YAML suivi d’instructions markdown. Dans la spécification, name et description sont obligatoires, name est limité à 64 caractères utilisant des lettres minuscules, des chiffres et des tirets, compatibility est uniquement pour les exigences d’environnement réelles, et allowed-tools est explicitement expérimental entre les implémentations.

Claude Code est un peu plus souple que la spécification portable car il peut dériver un nom à partir du répertoire et faire un retour sur le premier paragraphe lorsque description est manquant. Vous ne devriez pas compter sur cela si vous vous souciez de la portabilité ou de la prévisibilité. Claude.ai exige que le nom du répertoire corresponde au champ name, et son chemin de téléversement de skill personnalisé limite les descriptions à 200 caractères, même si la spécification plus large permet beaucoup plus. Le choix portable est de définir un name explicite, de garder le répertoire identique et d’écrire une description précise qui s’adapte aux limites étroites. Cela répond au sujet FAQ « Que doit contenir un fichier SKILL.md » sans esquive.

Commencez par une structure ennuyeuse à ce point :

repo/
  .claude/
    skills/
      review-pr/
        SKILL.md
        scripts/
          review.sh
        references/
          checklist.md
        assets/
          comment-template.md

Si la portabilité entre les clients compatibles avec les Skills est plus importante que la commodité de Claude Code, conservez la même forme interne et remplacez .claude/skills/ par .agents/skills/. La structure des dossiers est la même idée dans les deux cas.

Pour Claude Code, les emplacements de stockage sont simples. Les skills de projet se trouvent dans .claude/skills/<skill-name>/SKILL.md. Les skills personnelles se trouvent dans ~/.claude/skills/<skill-name>/SKILL.md. Les skills distribuées par plugin se trouvent sous <plugin>/skills/<skill-name>/SKILL.md. Anthropic documente la priorité entre les étendues intégrées comme entreprise sur personnel sur projet, tandis que les skills de plugin évitent les collisions en utilisant une forme namespacée telle que plugin-name:skill-name. Sur Windows, ~/.claude se résout en %USERPROFILE%\.claude, et CLAUDE_CONFIG_DIR peut réinstaller le répertoire de base entier.

Le choix entre l’étendue projet et l’étendue personnelle est simple. Utilisez .claude/skills/ dans le dépôt lorsque la Skill est étroitement couplée à cette base de code — par exemple, un plan de déploiement qui connaît vos noms de cluster spécifiques ou un ruban de revue ajusté aux conventions de votre équipe. Utilisez ~/.claude/skills/ pour les Skills qui voyagent avec vous entre les projets : listes de contrôle personnelles, générateurs de journal des modifications génériques, flux de travail de débogage préférés. Tout ce que vous mettriez dans un dépôt de dotfiles appartient à l’étendue personnelle.

Quelques bords tranchants méritent d’être mémorisés. SKILL.md doit être nommé exactement avec cette casse. Le guide PDF d’Anthropic recommande des noms de dossiers en kebab-case et dit explicitement de ne pas placer un README.md à l’intérieur du dossier de skill, parce que la documentation opérationnelle devrait vivre dans SKILL.md ou references/. Ce même guide insiste également sur le fait que le nommage de SKILL.md est sensible à la casse. Ce sont des contraintes ennuyeuses, mais les contraintes ennuyeuses sont ce qui rend les outils fiables.

Claude Code fait aussi la bonne chose pour les monorepos. Il détecte automatiquement les répertoires .claude/skills/ imbriqués lorsque vous travaillez dans des sous-répertoires, ce qui est idéal pour les skills au niveau du paquet ou du service. Il surveille également les répertoires de skills existants pour les modifications en direct pendant la session actuelle. Le seul piège de redémarrage est la création d’un répertoire de skills de niveau supérieur qui n’existait pas au moment où la session a commencé. Anthropic documente cela comme le cas où vous devez redémarrer pour que le nouveau répertoire puisse être surveillé.

Meilleures pratiques pour les Claude Skills : Descriptions, Scripts et Étendue

La façon la plus rapide de créer une Skill inutile est de demander à un LLM d’en inventer une à partir de connaissances d’entraînement génériques. Le guide des meilleures pratiques d’Anthropic met en garde contre exactement cela. Les parties précieuses sont les corrections spécifiques au domaine, les cas limites, les choix d’outils et les conventions que le modèle n’inventerait pas de manière fiable par lui-même. Le bon flux de travail est de résoudre la tâche une fois avec l’agent, de la corriger jusqu’à ce qu’elle fonctionne, puis d’extraire la méthode dans une Skill.

Délimitez la Skill comme une bonne fonction, et non comme un wiki. Anthropic indique que les Skills doivent encapsuler une unité de travail cohérente. Trop étroite, et vous forcez plusieurs skills à s’empiler pour une seule tâche. Trop large, et l’agent ne peut pas les activer précisément. Le guide des meilleures pratiques est franc : les skills trop complètes peuvent nuire plus qu’elles n’aident, car le modèle poursuit des instructions non pertinentes et perd le signal.

La qualité de la description n’est pas une question cosmétique. C’est la couche de routage. Tant Anthropic que les documents d’Agent Skills indiquent que le champ description est le mécanisme principal que le modèle utilise pour décider s’il doit charger une Skill ou non. Les bonnes descriptions disent ce que la Skill fait, quand l’utiliser et les phrases déclencheuses ou types de fichiers qu’un utilisateur mentionnerait réellement. Les mauvaises descriptions sont vagues, trop techniques ou assez larges pour correspondre à n’importe quoi. C’est la vraie réponse à la question FAQ « Pourquoi une Claude Skill ne se déclenche-t-elle pas ». Habituellement, le routeur est mauvais, et non le modèle.

Le contraste est clair côte à côte :

Mauvaises descriptions — trop vagues pour router de manière fiable :

  • Aide à la revue de code — correspond à tout, ne désambiguise rien
  • Utile pour les tâches de développement — plus large qu’une requête de recherche
  • Assiste à l'écriture — pas un routeur, juste une étiquette de catégorie

Bonnes descriptions — langage de déclenchement spécifique :

  • Revue les pull requests pour les problèmes de sécurité, le risque de migration et les tests manquants. Utilisez lors de la revue d'une PR, d'un git diff ou d'un changement critique de release.
  • Génère un journal des modifications à partir de la sortie git log. Utilisez lors de la préparation d'une release, de l'écriture des notes de release ou de la résumption des commits depuis le dernier tag.
  • Échafaudage d'un nouveau gestionnaire HTTP Go avec validation de requête et middleware d'erreur. Utilisez lors de l'ajout d'un nouveau point d'accès ou d'une route à un service Go.

Le motif est le même à chaque fois : énoncez ce que la Skill fait, nommez les phrases utilisateur exactes qui devraient l’activer et, optionnellement, nommez les types de fichiers ou les outils pertinents. Si votre description correspondrait à une requête Google générique, elle n’est pas assez spécifique.

Si un flux de travail a des effets de bord, rendez-le manuel. Claude Code l’expose directement. disable-model-invocation: true rend une Skill invocable uniquement par l’utilisateur, ce qu’Anthropic recommande pour des actions telles que les déploiements, les commits ou les messages sortants. user-invocable: false va dans l’autre sens et masque la Skill du menu slash tout en permettant à Claude de l’utiliser comme connaissance de fond. Cela répond au sujet FAQ « Quand une skill devrait-elle être manuelle plutôt qu’automatique » en une phrase : manuel pour le risque, automatique pour les conseils répétables sûrs.

Gardez SKILL.md assez petit pour rester intelligible. Anthropic recommande de le garder sous 500 lignes et environ 5 000 jetons, puis de déplacer le matériel détaillé dans references/ ou des fichiers similaires avec des instructions de chargement explicites. « Lisez references/api-errors.md si l’API renvoie un non-200 » est un bon motif. « Voir references/ » est paresseux. Claude Code injecte également la Skill rendue dans la conversation en tant que message et ne relit pas le fichier sur les tours ultérieurs. Après la compaction du contexte, seul le contenu récent de la Skill est porté vers l’avant dans les budgets de jetons. Les grosses Skills ne sont donc pas seulement laides. Elles sont fragiles sur les longues sessions.

Un bon SKILL.md peut rester très simple :

---
name: review-pr
description: Review pull requests for security issues, migration risk, and missing tests. Use when reviewing a PR, git diff, or release critical change.
compatibility: Designed for Claude Code. Requires git and gh.
disable-model-invocation: true
allowed-tools: Bash(git diff *) Bash(gh pr diff *) Read Grep Glob
---
# Review PR

Read references/checklist.md before running any commands.

1. Collect the diff and changed files.
2. Flag correctness, security, and test coverage issues.
3. Return findings grouped by severity with file references.
4. Suggest the smallest safe fix first.

Utilisez des scripts lorsque la détermination compte plus que l’éloquence. Le guide des scripts Skills est excellent ici. Il indique que les scripts destinés aux agents doivent éviter les invites interactives, documenter l’utilisation via --help, émettre des messages d’erreur utiles, privilégier une sortie structurée telle que JSON ou CSV sur stdout, envoyer les diagnostics sur stderr et supporter une utilisation sûre pour la reprise. Il recommande également d’épingler les versions d’outils ponctuelles et de décrire explicitement les exigences d’exécution dans SKILL.md ou le champ compatibility plutôt que de supposer que l’environnement a les bons paquets.

Un script minimal mais correct destiné aux agents ressemble à ceci :

#!/usr/bin/env bash
# scripts/collect-diff.sh — called by review-pr skill
# Usage: collect-diff.sh <base-ref> [<head-ref>]
set -euo pipefail

BASE="${1:?Usage: collect-diff.sh <base-ref> [<head-ref>]}"
HEAD="${2:-HEAD}"

# Structured output to stdout so the agent can parse it
git diff "${BASE}...${HEAD}" --stat --name-only \
  | jq -Rs '{
      "changed_files": split("\n") | map(select(length > 0))
    }' \
  || { printf '{"error":"git diff failed"}\n' >&2; exit 1; }

Trois choses rendent ceci sûr pour l’agent. set -euo pipefail assure que le script se termine bruyamment en cas d’échec plutôt que de continuer silencieusement. Le JSON sur stdout donne à l’agent un format qu’il peut analyser sans deviner. Les diagnostics vont sur stderr pour que le flux stdout de l’agent reste propre. Rien de tout cela n’est astucieux. Tout est nécessaire.

Un piège subtil est allowed-tools. Dans la spécification, il est expérimental et le support varie. Dans Claude Code, il pré-approuve des outils spécifiques pendant que la Skill est active, mais il ne restreint pas l’univers des outils appelables, et les règles de refus appartiennent toujours aux permissions de Claude Code. Dans le SDK Agent Claude, Anthropic indique explicitement que le frontmatter allowed-tools dans SKILL.md ne s’applique pas, de sorte que les applications SDK doivent appliquer l’accès aux outils dans la configuration principale allowed_tools ou allowedTools. Si vous ignorez cette différence, votre Skill se comportera différemment dans le CLI et dans l’automatisation propulsée par le SDK.

Un motif avancé de plus vaut la peine d’être volé. Lorsqu’un flux de travail inonderait votre thread principal avec des journaux, des recherches de fichiers ou une longue sortie de recherche, Claude Code permet à une Skill de s’exécuter dans un sous-agent fourchu en utilisant context: fork et un agent tel que Explore. Anthropic montre cela pour les flux de travail de recherche, où le travail lourd se produit dans un contexte isolé et la conversation principale reçoit le résumé. Pour l’exploration profonde de la base de code, c’est un bien meilleur design qu’une grande Skill en ligne qui pollue la session principale.

Une Skill fourchue ressemble à ceci dans le frontmatter :

---
name: explore-codebase
description: Deep exploration of an unfamiliar codebase. Use when onboarding to a new repo, auditing architecture, or mapping module dependencies.
context: fork
agent: Explore
compatibility: Requires Claude Code CLI.
---
# Explore Codebase

1. Walk the directory tree and summarise the top-level modules.
2. Identify the main entry points and their responsibilities.
3. Map the dependency graph between packages.
4. Return a structured summary to the main session — not the raw file list.

La ligne clé est context: fork. Sans cela, la sortie d’exploration atterrit en ligne dans votre conversation. Avec cela, le sous-agent s’exécute dans sa propre fenêtre de contexte et renvoie un résumé. La différence compte sur les grands dépôts où l’exploration seule peut consommer des milliers de jetons.

Test des Claude Skills : Déclencheurs, Exactitude et Comparaisons de Base

Une Skill n’est pas testée parce qu’une seule démonstration de chemin de succès a fonctionné une fois. Le guide d’Anthropic découpe le test en trois couches : test manuel dans Claude.ai, test scripté dans Claude Code et test programmatique via l’API Skills. Les domaines d’évaluation recommandés sont le déclenchement, l’exactitude fonctionnelle et les performances par rapport à une base sans la Skill. C’est aussi la meilleure réponse à la question FAQ « Comment testez-vous si une skill est fiable ». Vous testez la sélection de route, la qualité de la sortie et l’efficacité, et non seulement si le modèle semblait confiant.

Les directives officielles d’évaluation donnent une structure propre pour les cas de test. Chaque cas doit inclure un prompt utilisateur réaliste, une description lisible par un humain de la sortie attendue et des fichiers d’entrée facultatifs. Les documents stockent ceux-ci dans evals/evals.json à l’intérieur du répertoire de la Skill, ce qui est une convention sensée même si vous créez votre propre harnais.

Utilisez un fichier de fixture et une mise en place d’évaluation sans ambiguïté comme ceci :

{
  "skill_name": "review-pr",
  "evals": [
    {
      "id": 1,
      "prompt": "Review this PR for security issues and missing tests",
      "expected_output": "Findings grouped by severity with file references and at least one test recommendation.",
      "files": ["evals/files/pr-diff.patch"]
    },
    {
      "id": 2,
      "prompt": "Summarise last week's commits",
      "expected_output": "The skill should not activate.",
      "files": []
    }
  ]
}

Ma propre règle de test est plus sévère que ce que la plupart des équipes utilisent, mais elle s’aligne sur les directives officielles. Chaque Skill sérieuse devrait avoir des requêtes qui doivent déclencher, des requêtes qui ne doivent pas déclencher, au moins un test de cas limite et une comparaison de base sans la Skill. Les exemples d’Anthropic comparent les appels d’outils, les appels d’API échoués, les boucles de clarification et l’utilisation des jetons avec et sans la Skill, car « fonctionne » n’est pas la même chose que « améliore le flux de travail ».

Si vous testez via le SDK Agent Claude, rappelez-vous de la plomberie. Les Skills sont des artefacts de système de fichiers là-bas, et non des enregistrements programmatiques. Anthropic indique que vous devez activer l’outil "Skill" et charger les paramètres de système de fichiers pertinents via settingSources ou setting_sources. Si vous omettez user ou project, ou pointez cwd vers le mauvais endroit, le SDK ne découvrira pas la Skill. Anthropic recommande même de demander « Quelles Skills sont disponibles ? » comme vérification de découverte directe.

Testez également sur le modèle et le client que vous avez réellement l’intention de livrer. Le guide de démarrage ouvert d’Agent Skills avertit explicitement que la fiabilité de l’utilisation d’outils varie entre les modèles, et que certains modèles peuvent répondre directement au lieu d’exécuter la commande que la Skill prévoit. Ce n’est pas toujours un problème de conception de Skill. Parfois, c’est un problème de sélection de modèle, et votre matrice de test devrait l’exposer.

Dépannage des Claude Skills : Échecs Courants et Corrections

Lorsqu’une Skill se comporte mal, supposez l’emballage avant l’intelligence. Les échecs les plus courants sont toujours les ennuyeux.

  • Si la Skill n’est pas trouvée du tout, vérifiez que le fichier est nommé exactement SKILL.md, avec la bonne casse, à l’intérieur du répertoire correct. Le guide de dépannage d’Anthropic cite explicitement la casse du nom de fichier, et ses documents Claude Code et SDK vous pointent directement vers .claude/skills/*/SKILL.md et ~/.claude/skills/*/SKILL.md comme premiers contrôles.
  • Si le frontmatter est invalide, vérifiez d’abord les délimiteurs YAML et les guillemets. Les exemples d’Anthropic montrent les erreurs classiques : --- manquant, guillemets non fermés ou noms invalides avec des espaces et des majuscules. Les noms de Skill doivent être en minuscules et hyphenés.
  • Si la Skill existe mais ne se déclenche pas, la description est généralement trop vague. Le propre dépannage de Claude Code indique d’inclure des mots-clés que les utilisateurs diraient naturellement, de vérifier que la Skill apparaît lorsque vous demandez « Quelles skills sont disponibles ? » et d’essayer de reformuler plus près de la description. Le guide PDF d’Anthropic ajoute une excellente astuce de diagnostic : demandez à Claude quand il utiliserait la Skill et écoutez comment il reformule la description pour vous.
  • Si la Skill se déclenche trop souvent, restreignez l’étendue. Anthropic recommande de rendre la description plus spécifique, d’ajouter des déclencheurs négatifs et d’utiliser disable-model-invocation: true pour les flux de travail que vous voulez uniquement par commande explicite. Le déclenchement excessif est généralement juste un langage de routage sous-spécifié.
  • Si la Skill semble perdre son influence dans les longues sessions, rappelez-vous que les descriptions peuvent être raccourcies dans le catalogue de Claude Code lorsque de nombreuses skills sont présentes, et que les Skills invoquées sont ensuite portées dans les budgets de jetons après compaction. Anthropic recommande de charger les mots-clés en début de description, de tailler le texte excédentaire et, pour Claude Code spécifiquement, d’ajuster SLASH_COMMAND_TOOL_CHAR_BUDGET si les listes de descriptions sont trop agressivement comprimées.
  • Si un script jointe se bloque ou se comporte de manière erratique, vérifiez s’il s’attend à une entrée interactive. Le guide des scripts indique que les agents s’exécutent dans des coquilles non interactives, de sorte que les invites TTY, les dialogues de mot de passe et les menus de confirmation sont des bugs de conception. Acceptez l’entrée via des drapeaux, des variables d’environnement ou stdin et rendez les échecs explicites.
  • Si le SDK ne voit pas votre Skill, confirmez que allowed_tools inclut "Skill", que settingSources ou setting_sources contient user et/ou project, et que cwd pointe vers le répertoire qui contient réellement .claude/skills/. Sans cette configuration, le système de Skills n’est pas activé, à quel point votre markdown est correct.
  • Si une Skill basée sur MCP se charge mais que les appels d’outils échouent, la liste de contrôle de dépannage d’Anthropic est sensée : vérifiez que le serveur MCP est connecté, confirmez l’authentification et les étendues, testez l’outil MCP directement sans la Skill, puis vérifiez les noms exacts des outils car ils sont sensibles à la casse.

La vérité ennuyeuse est que de bonnes Claude Skills ressemblent à une bonne ingénierie opérationnelle. Noms clairs. Petits fichiers. Déclencheurs explicites. Scripts déterministes lorsque nécessaire. Tests réels. Si votre Skill se lit comme un runbook net, l’agent a une chance de lutter. Si elle se lit comme un brainstorming, vous avez simplement caché le chaos dans un dossier.

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.