Aller au contenu principal

Créer un skill avec SKILL.md

Skills : des composants réutilisables

Les agents définissent qui exécute une tâche. Les skills définissent quoi — ce sont des composants réutilisables qui ajoutent des outils, des slash commands et des comportements spécialisés à Mistral Vibe.

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.

Anatomie d’un SKILL.md

Voici la structure complète d’un skill :

---
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

name

L’identifiant unique du skill. Utilisé pour l’activer, le désactiver et le référencer dans les configurations :

name: code-review

description

Une description courte qui apparaît quand Vibe liste les skills disponibles :

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

license

La licence du skill — important si vous le partagez :

license: MIT

user-invocable

Détermine si le skill peut être lancé directement par l’utilisateur via une slash command :

user-invocable: true   # Accessible via /code-review
user-invocable: false  # Utilisé uniquement en interne par d'autres skills

allowed-tools

La liste des outils que le skill est autorisé à utiliser :

allowed-tools:
  - read_file
  - grep
  - list_dir
  - ask_user_question
  - write_file

Le corps du SKILL.md

Après le frontmatter, le corps du fichier est du Markdown libre. Il sert de documentation et de prompt — Vibe l’utilise pour comprendre comment le skill fonctionne et dans quel contexte l’appliquer.

Structurez-le avec :

  • Une description de ce que fait le skill
  • Les étapes de son fonctionnement
  • Le format de sortie attendu
  • Des exemples d’utilisation

Créer votre premier skill

Créons un skill de génération de tests :

mkdir -p ~/.vibe/skills/test-generator
---
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
  - list_dir
---

# 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.

Tester le skill

Une fois le fichier créé, le skill est immédiatement disponible :

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.

Bonnes pratiques

  • Un skill = une fonctionnalité : ne mélangez pas revue de code et génération de tests dans un même skill
  • Outils minimaux : n’autorisez que les outils nécessaires
  • Documentation claire : le corps du SKILL.md est votre prompt — soyez précis
  • Exemples concrets : incluez des exemples de ce que le skill produit
  • Testez votre skill sur plusieurs cas avant de le partager

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