SKILL.md placés dans un répertoire nommé. Cette page présente tout ce que vous devez savoir pour rédiger des skills efficaces.
Structure des fichiers
Placez les skills dans le répertoire approprié en fonction du périmètre :/my-skill). Le fichier SKILL.md contient un frontmatter YAML facultatif ainsi que le contenu du prompt de la skill.
Sous Windows,
%APPDATA% correspond généralement à C:\Users\<YourUser>\AppData\Roaming.Référence du frontmatter
Tous les champs du frontmatter
Remplacement de modèle
Utilisez le champmodel pour exécuter un skill avec un modèle différent de celui utilisé dans la session en cours. C’est utile pour utiliser un modèle plus rapide pour les tâches simples ou un modèle plus performant pour les tâches complexes :
--model (par ex. opus, sonnet, swe, codex). Voir Modèles pour la liste complète.
Exécuter des skills comme sous-agents
Par défaut, le prompt d’une skill est injecté dans la conversation en cours — l’agent le traite inline. Vous pouvez aussi exécuter une skill comme sous-agent, ce qui lance un processus indépendant avec sa propre fenêtre de contexte. C’est utile pour les skills qui effectuent des tâches ciblées et autonomes, lorsque vous ne voulez pas que le résultat encombre la conversation principale. Il existe deux façons d’exécuter une skill comme sous-agent :subagent: true
Définissez subagent: true pour exécuter la skill comme sous-agent avec le profil subagent_general par défaut :
agent: <profile>
Utilisez le champ agent pour exécuter la skill comme sous-agent en utilisant un profil personnalisé de sous-agent :
agent doit correspondre au nom d’un profil de sous-agent enregistré (intégré, comme subagent_explore / subagent_general, ou d’un profil personnalisé que vous avez défini). Le sous-agent hérite du prompt système, des restrictions sur les outils et du modèle du profil, tandis que le contenu du skill devient la tâche. Le champ allowed-tools d’un profil personnalisé constitue une véritable restriction (les outils non listés sont indisponibles pour le sous-agent) : c’est donc le moyen d’exécuter une skill avec un ensemble d’outils limité.
Si
agent et subagent sont tous deux définis, agent prévaut. Le champ model du skill remplace le modèle du profil de sous-agent lorsque les deux sont spécifiés.Les skills exécutés en tant que sous-agents ne lancent pas de sous-agents imbriqués : si le skill s’exécute déjà dans un sous-agent, il s’exécute en ligne à la place afin d’éviter une récursion infinie.
Orchestrer des sous-agents à l’aide de skills
Comme les skills peuvent s’exécuter comme des sous-agents, vous pouvez les utiliser pour orchestrer un travail en plusieurs étapes. Définissez un ensemble de skills de sous-agent, chacun chargé d’une tâche précise, puis rédigez un skill classique qui les invoque. Le skill externe devient l’orchestrateur : il appelle chaque sous-agent, recueille les résultats et décide de la suite. Par exemple, voici deux skills de sous-agent et un orchestrateur qui les coordonne :/health-check exécute l’orchestrateur dans l’agent principal. Il appelle /research-changes, qui lance un sous-agent pour explorer le dépôt. Une fois cette étape terminée, il appelle /validate-tests, qui lance un autre sous-agent pour exécuter les tests. L’orchestrateur fusionne ensuite les deux résultats dans un résumé final.
Une skill de sous-agent n’utilise jamais de sous-agent lorsqu’elle appelle d’autres skills, même si ces skills ont subagent: true — elles s’exécutent en ligne à la place. Cela signifie que vous n’avez pas à vous soucier d’une imbrication infinie. Le modèle d’orchestration ne comporte toujours qu’un seul niveau : l’orchestrateur lance des sous-agents, et ces sous-agents exécutent tout le reste en ligne.
Contenu du prompt
Le contenu du fichier SKILL.md (après le frontmatter) constitue le prompt injecté lorsque le skill est invoqué.Autorisations
Les skills peuvent définir leur propre périmètre d’autorisations en utilisant la même syntaxe que la configuration principale des autorisations :allow— Ces périmètres sont automatiquement autorisés pendant l’exécution du skilldeny— Ces périmètres sont bloqués pendant l’exécution du skillask— Ces périmètres demandent toujours une confirmation à l’utilisateur
deny est le moyen de bloquer complètement un outil pour un skill en ligne. Les entrées correspondant à un nom d’outil, comme exec ou edit, bloquent l’outil dans son intégralité, et les motifs mcp__server__tool bloquent les outils MCP — voir Autorisations basées sur les outils.
Les autorisations des skills s’ajoutent aux autorisations de base de la session (sans les remplacer). Un skill ne peut pas accorder d’autorisations refusées à un niveau supérieur (configuration du projet ou de l’organisation).
Les autorisations des skills s’appliquent uniquement lorsque le skill s’exécute en ligne. Elles ne sont pas appliquées lorsque le skill s’exécute en tant que sous-agent (
subagent: true ou agent:).Outils approuvés automatiquement
allowed-tools répertorie les outils automatiquement approuvés pendant l’exécution du skill, afin que l’agent puisse les utiliser sans prompt d’autorisation :
permissions.allow pour le nom d’outil correspondant. Noms d’outils disponibles : read, edit, grep, glob, exec
Vous pouvez également approuver automatiquement des outils MCP :
Exemples
skill de revue de code
Générateur de composants
Checklist de déploiement
Expert de la recherche
Conseils
Gardez les prompts ciblés
Un skill doit faire une seule chose, et bien la faire. Créez plusieurs skills plutôt qu’un méga-skill.
Incluez des exemples
Montrez à l’agent à quoi ressemble un bon résultat dans votre prompt.
Interdisez ce qu'un skill ne doit pas faire
Utilisez
permissions.deny (ou un profil de sous-agent personnalisé) pour bloquer des outils. allowed-tools se contente de passer outre les prompts.Testez avec /skill-name
Exécutez votre skill et ajustez le prompt jusqu’à obtenir le résultat souhaité.

