Aller au contenu principal
Leçon 6 sur 14 · Mistral Vibe Avancé — Agents, Skills et Mode Local

Créer un skill avec SKILL.md

Leçon 6 sur 14 Mis à jour le 2 novembre 2026 Avancé
Sur cette page
  1. Skills : des composants réutilisables
  2. Anatomie d’un SKILL.md
  3. Les champs du frontmatter YAML
  4. Le corps du SKILL.md
  5. Créer votre premier skill
  6. Bonnes pratiques
  7. Points clés à retenir

Leçon mise à jour le 2 novembre 2026 d’après la page Skills de la documentation de Vibe : un skill est un jeu d’instructions (il n’ajoute pas d’outils), allowed-tools est lu mais pas appliqué, et deux champs ont été ajoutés (disable-model-invocation, compatibility). Source : Skills.

Skills : des composants réutilisables

Les agents définissent qui exécute une tâche. Les skills définissent quoi : ce sont des jeux d’instructions réutilisables qui ajoutent à Mistral Vibe des procédures et des slash commands. La distinction devient concrète dès que vous l’appliquez à votre équipe — un agent reflète une posture de travail personnelle, un skill encapsule une procédure que tout le monde doit exécuter de la même façon.

Un skill est un répertoire contenant un fichier SKILL.md avec un frontmatter YAML. Cette structure suit la spécification ouverte Agent Skills, ce qui les rend portables et partageables : le même dossier fonctionne sur la machine de votre collègue sans adaptation.

Anatomie d’un SKILL.md

Voici la structure complète d’un skill, ici une revue de code automatisée :

---
name: code-review
description: Effectue des revues de code automatisées avec analyse de qualité
license: MIT
user-invocable: true
allowed-tools:
  - read_file
  - grep
  - ask_user_question
---

# Code Review Skill

Ce skill analyse la qualité du code source en vérifiant :

1. **Conventions de nommage** — variables, fonctions, classes
2. **Complexité cyclomatique** — fonctions trop longues ou imbriquées
3. **Duplication** — code copié-collé à factoriser
4. **Sécurité** — patterns dangereux (eval, injection SQL, XSS)

## Utilisation

Lancez `/code-review` suivi du chemin ou de la description du code à analyser.

## Format de sortie

Le rapport est structuré en trois niveaux :
- 🔴 **Critique** — à corriger immédiatement
- 🟡 **Avertissement** — à corriger avant merge
- 🟢 **Suggestion** — amélioration optionnelle

Les champs du frontmatter YAML

Le champ name est l’identifiant unique du skill. Il sert à l’activer, le désactiver et le référencer dans les configurations — c’est aussi ce nom qui devient la slash command, ce qui vaut la peine d’être gardé court.

name: code-review

La description, jusqu’à 1 024 caractères, est la phrase qui apparaît quand Vibe liste les skills disponibles. Écrivez-la du point de vue de celui qui cherche : elle doit permettre de choisir entre deux skills voisins sans ouvrir les fichiers.

description: Effectue des revues de code automatisées avec analyse de qualité

Le champ license indique la licence du skill, ce qui devient important dès que vous le partagez au-delà de votre poste de travail.

license: MIT

Le booléen user-invocable, vrai par défaut, expose le skill comme slash command. Passez-le à false pour le masquer du menu / : l’agent peut toujours le charger de lui-même quand la tâche s’y prête.

user-invocable: true   # Accessible via /code-review
user-invocable: false  # Masqué du menu /, l'agent peut encore le charger

Le champ disable-model-invocation, passé à true, empêche l’agent de charger le skill de lui-même : il ne s’exécute plus que si vous tapez /nom-du-skill. Réservez-le aux procédures qu’aucun modèle ne doit déclencher sans vous, comme un déploiement.

disable-model-invocation: true

Deux champs informatifs complètent la liste : compatibility, qui note les prérequis (« Requires git »), et allowed-tools, qui énumère les outils que le skill compte utiliser. Attention à ce dernier : la documentation précise que Vibe le lit mais ne l’applique pas. Un skill peut appeler n’importe quel outil que l’agent actif autorise. Pour limiter ce qu’un skill peut faire, restreignez les outils et les permissions de l’agent (leçons 2 et 3).

allowed-tools:
  - read_file
  - grep
  - ask_user_question

Le corps du SKILL.md

Après le frontmatter, le corps du fichier est du Markdown libre. Il sert à la fois de documentation et de prompt : Vibe le lit pour comprendre comment le skill fonctionne et dans quel contexte l’appliquer. C’est donc l’endroit où décrire ce que fait le skill, les étapes de son fonctionnement, le format de sortie attendu et des exemples d’utilisation. Un corps vague donne un skill imprévisible ; un corps précis donne un skill qui produit le même résultat d’une semaine à l’autre.

Créer votre premier skill

Construisons un skill de génération de tests. Commencez par créer son répertoire :

mkdir -p ~/.vibe/skills/test-generator

Déposez-y le SKILL.md suivant. Observez comment le corps répond aux questions que Vibe se poserait autrement : quel framework choisir, comment nommer les blocs, où écrire le fichier produit.

---
name: test-generator
description: Génère des tests unitaires pour les fonctions TypeScript/JavaScript
license: MIT
user-invocable: true
allowed-tools:
  - read_file
  - write_file
  - grep
---

# Test Generator

Génère des tests unitaires complets pour les fonctions
TypeScript et JavaScript.

## Processus

1. Lire le fichier source cible
2. Identifier toutes les fonctions exportées
3. Pour chaque fonction, générer :
   - Test du cas nominal
   - Test avec entrées vides/null
   - Test des cas limites
   - Test des erreurs attendues
4. Écrire les tests dans un fichier `.test.ts` adjacent

## Conventions

- Framework : Vitest (par défaut) ou Jest si détecté
- Nommage : `describe` par fonction, `it` par cas de test
- Assertions : `expect` avec matchers précis
- Pas de mocks sauf si nécessaire (dépendances externes)

## Exemple

Pour un fichier `utils/math.ts` contenant `add(a, b)`,
le skill génère `utils/math.test.ts` avec les tests correspondants.

Une fois le fichier créé, le skill est immédiatement disponible : aucune commande d’installation, aucun redémarrage. Lancez Vibe et appelez-le sur un fichier réel.

vibe
# > /test-generator src/utils/math.ts

Vibe charge le skill, lit son SKILL.md pour comprendre le comportement attendu, et exécute la tâche avec les outils autorisés. Prenez le temps de lire le résultat : c’est en confrontant la sortie à ce que vous imaginiez que vous corrigerez le corps du fichier.

Bonnes pratiques

Tenez-vous à un skill par fonctionnalité. Mélanger revue de code et génération de tests dans un même fichier produit un prompt qui hésite, et vous empêche de désactiver l’un sans perdre l’autre. Limitez de même les outils autorisés à ceux dont le skill a réellement besoin.

Le reste tient à la qualité de la rédaction. Le corps du SKILL.md est votre prompt : soyez précis, et incluez des exemples concrets de ce que le skill produit — un exemple de sortie vaut mieux que trois lignes de description. Testez enfin votre skill sur plusieurs cas, y compris un cas tordu, avant de le partager avec l’équipe.

Points clés à retenir

  • Un skill est un répertoire avec un fichier SKILL.md contenant un frontmatter YAML
  • Le frontmatter définit le nom, la description, les outils autorisés et l’invocabilité
  • Le corps Markdown sert à la fois de documentation et de prompt pour Vibe
  • user-invocable: true rend le skill accessible via une slash command
  • Créez des skills spécialisés avec le minimum d’outils nécessaire