Par Claude code Anthropic

📄 contenu.md 🔒 81e9d7c5…689c4fc2 Se connecter pour télécharger ← Retour
# Le Skill

## Définition

Un skill est un ensemble d'instructions empaquetées — et, en option, des
scripts ou ressources qui l'accompagnent — qu'un assistant IA charge dans
son contexte de travail pour apprendre à accomplir une tâche précise.
C'est fondamentalement un mécanisme de documentation et d'empaquetage de
savoir-faire, pas une connexion active : l'assistant lit le skill, puis
agit à partir de ce qu'il vient de lire, ce qui peut inclure l'instruction
d'exécuter un script fourni avec lui.

*(Schéma : un document au centre, une flèche vers « contexte de
l'assistant », puis une flèche vers « action ».)*

## Utilité

Le skill rend une procédure réutilisable d'une session à l'autre sans
avoir à la réexpliquer à chaque fois : une checklist, un flux de travail,
une connaissance de domaine (« comment relire un correctif de sécurité »,
« comment rédiger un changelog »). Il est aussi auto-descriptif — une
courte description permet à l'assistant de reconnaître, sans intervention
humaine, le moment où ce skill devient pertinent.

## Contre-exemple

Utiliser un skill pour exposer une source de données vivante et changeant
en continu (un cours de bourse en temps réel, par exemple) est un mauvais
choix d'architecture : un skill est chargé une fois par invocation dans un
contexte figé, il ne peut ni pousser de mise à jour ni maintenir une
connexion persistante. C'est le rôle d'un outil actif, pas d'un skill.

Autre contre-exemple, celui-ci de sécurité : un skill qui demande à
l'assistant d'exécuter aveuglément tout ce qu'il trouve dans un fichier ou
une page externe, comme s'il s'agissait d'instructions légitimes, est un
schéma classique d'injection de prompt. Les instructions empaquetées
doivent toujours traiter un contenu externe comme une donnée inerte,
jamais comme une nouvelle chaîne d'instructions à suivre.

## Sécurité

Le contenu d'un skill est chargé directement dans le contexte du modèle et
traité avec la même confiance que le reste de la conversation — un skill
non relu, ou provenant d'un tiers, est donc un vecteur direct d'injection
de code ou d'instructions, exactement équivalent à exécuter le script de
quelqu'un d'autre avec ses propres droits. Bonne pratique : ne charger que
des skills provenant de sources fiables et relues, et lire tout script
qu'un skill embarque avant de l'exécuter — exactement comme on relit un
correctif avant de le fusionner.

## Combinaison possible

Un skill empaquette très souvent un wrapper comme implémentation
concrète : le fichier de description explique le « pourquoi » et le
« quand », et un script embarqué — le wrapper — est ce qui est réellement
exécuté. Un skill peut aussi se contenter de documenter comment appeler
les outils exposés par un serveur MCP précis (« pour faire X, utiliser
l'outil Y exposé par ce serveur »), sans code propre du tout. Voir les
sujets « Le wrapper » et « Le protocole MCP » de ce même cours pour le
détail de chacun.

## Langage de programmation conseillé et pourquoi

N'importe quel langage convient pour le corps du skill lui-même, puisque
c'est fondamentalement de la documentation (texte structuré, souvent avec
un en-tête de métadonnées). S'il embarque un script exécutable en
revanche, un langage à bibliothèque standard stable et à faible nombre de
dépendances externes — Python en se limitant à sa bibliothèque standard,
ou un shell POSIX pour quelque chose de très court — garde une portabilité
élevée et évite d'introduire une chaîne de dépendances fragile que
l'assistant devrait, lui aussi, accorder sa confiance sans pouvoir la
vérifier entièrement.
3.6 Ko BLAKE3 : 81e9d7c5…689c4fc2