# Guide Débutant : Les Skills dans Claude Code
> **Guide pédagogique pour comprendre et créer vos propres skills Claude Code**
> Aucune connaissance technique avancée requise !
---
## 📚 Table des matières
1. [Qu'est-ce qu'une Skill ?](#1-quest-ce-quune-skill-)
2. [Pourquoi utiliser des Skills ?](#2-pourquoi-utiliser-des-skills-)
3. [Votre première Skill (très simple)](#3-votre-première-skill-très-simple)
4. [Comment fonctionnent les Skills ?](#4-comment-fonctionnent-les-skills-)
5. [Créer des Skills plus avancées](#5-créer-des-skills-plus-avancées)
6. [Exemples pratiques étape par étape](#6-exemples-pratiques-étape-par-étape)
7. [Organisation et bonnes pratiques](#7-organisation-et-bonnes-pratiques)
8. [Dépannage et erreurs courantes](#8-dépannage-et-erreurs-courantes)
9. [Idées de Skills à créer](#9-idées-de-skills-à-créer)
---
## 1. Qu'est-ce qu'une Skill ?
### 🤔 Analogie simple
Imaginez que Claude est un assistant personnel très intelligent. Une **skill** est comme une **fiche de consignes** que vous lui donnez pour une tâche spécifique.
**Exemple de la vie réelle :**
- Vous avez un assistant
- Vous lui donnez une fiche : "Procédure pour préparer mon café du matin"
- Chaque fois que vous dites "prépare mon café", il suit exactement cette procédure
**Avec Claude Code :**
- Vous avez Claude
- Vous créez une skill : "Procédure pour réviser mon code"
- Chaque fois que vous tapez `/reviser-code`, Claude suit cette procédure
### 🎯 Définition simple
Une **skill** est :
- Un fichier texte (format Markdown)
- Contenant des instructions pour Claude
- Accessible via une commande slash (ex: `/ma-skill`)
- Réutilisable à volonté
### ✨ Ce qu'une Skill PEUT faire
- ✅ Donner des instructions détaillées à Claude
- ✅ Définir un processus étape par étape
- ✅ Spécifier un format de réponse
- ✅ Créer des raccourcis pour tâches répétitives
- ✅ Appliquer un rôle spécifique à Claude (expert en sécurité, testeur, etc.)
### ❌ Ce qu'une Skill NE PEUT PAS faire
- ❌ Exécuter du code directement (c'est Claude qui le fait)
- ❌ Modifier les fichiers automatiquement sans Claude
- ❌ Remplacer un vrai programme
- ❌ Fonctionner sans Claude
---
## 2. Pourquoi utiliser des Skills ?
### 💡 Les avantages
#### 1. **Gain de temps**
Au lieu de retaper les mêmes instructions à chaque fois :
```
❌ SANS SKILL (à chaque fois) :
"Claude, peux-tu réviser mon code en vérifiant la sécurité, la performance,
la lisibilité, et me donner un rapport avec les problèmes trouvés classés
par priorité avec des suggestions de correction..."
✅ AVEC SKILL (une seule fois) :
/reviser-code
```
#### 2. **Cohérence**
Les instructions sont toujours identiques, donc les résultats sont plus prévisibles.
#### 3. **Partage**
Vous pouvez partager vos skills avec votre équipe ou la communauté.
#### 4. **Organisation**
Vous construisez votre propre "boîte à outils" personnalisée.
### 🎯 Cas d'usage concrets
| Situation | Sans Skill | Avec Skill |
|-----------|------------|------------|
| Révision de code quotidienne | Retaper les critères à chaque fois | `/reviser-code` |
| Génération de tests | Expliquer le format voulu | `/generer-tests` |
| Documentation | Décrire la structure attendue | `/documenter` |
| Commit Git | Rappeler le format de message | `/commit-message` |
---
## 3. Votre première Skill (très simple)
### 🎬 Tutoriel pas-à-pas pour débutants
Nous allons créer une skill qui demande à Claude de vous saluer de manière amicale.
#### Étape 1 : Créer le dossier pour les skills
**Sur macOS/Linux :**
```bash
# Ouvrir le Terminal et taper :
mkdir -p ~/.claude/skills
```
**Sur Windows :**
```powershell
# Ouvrir PowerShell et taper :
New-Item -ItemType Directory -Path "$env:USERPROFILE\.claude\skills" -Force
```
**Explication :**
- `mkdir` = créer un dossier
- `-p` = créer aussi les dossiers parents si nécessaire
- `~/.claude/skills` = emplacement où Claude cherche les skills
#### Étape 2 : Créer le dossier de votre skill
```bash
mkdir -p ~/.claude/skills/salut
```
**Pourquoi un dossier ?**
Chaque skill a son propre dossier. C'est plus organisé et permet d'ajouter d'autres fichiers si besoin.
#### Étape 3 : Créer le fichier de la skill
Ouvrez votre éditeur de texte préféré (TextEdit, Notepad, VS Code, etc.) et créez un fichier nommé **exactement** :
```
SKILL.md
```
**Emplacement complet :**
```
~/.claude/skills/salut/SKILL.md
```
#### Étape 4 : Écrire le contenu de la skill
Copiez-collez ce texte dans votre fichier `SKILL.md` :
```markdown
---
name: salut
description: Salue l'utilisateur de manière amicale
---
# Skill de salutation
Salue l'utilisateur de manière chaleureuse et amicale.
## Instructions
1. Salue l'utilisateur en français
2. Demande comment se passe sa journée
3. Propose ton aide pour la session de travail
## Ton de communication
- Chaleureux et amical
- Professionnel mais décontracté
- Encourageant
```
#### Étape 5 : Sauvegarder le fichier
Sauvegardez le fichier **en format texte brut** (pas de format Word ou Rich Text).
#### Étape 6 : Tester votre skill
1. Ouvrez Claude Code :
```bash
claude
```
2. Tapez :
```bash
/salut
```
3. Appuyez sur Entrée
**Résultat attendu :**
Claude devrait vous saluer chaleureusement en suivant les instructions de votre skill !
#### 🎉 Félicitations !
Vous venez de créer votre première skill ! C'était simple, non ?
---
## 4. Comment fonctionnent les Skills ?
### 📖 Anatomie d'une Skill
Une skill a deux parties principales :
#### Partie 1 : Le Frontmatter (en-tête)
```markdown
---
name: nom-de-la-skill
description: Description courte
---
```
**Explication :**
- Les `---` délimitent l'en-tête
- `name` : Le nom de votre commande (utilisé avec `/nom`)
- `description` : Aide Claude à décider quand utiliser cette skill automatiquement
#### Partie 2 : Le Corps (instructions)
```markdown
# Titre de la skill
Instructions détaillées pour Claude...
## Section 1
[Instructions...]
## Section 2
[Instructions...]
```
**Explication :**
- Écrit en Markdown (format de texte simple avec `#` pour les titres)
- Contient toutes les instructions pour Claude
- Peut être organisé en sections
### 🗺️ Où mettre vos Skills ?
Il existe **deux emplacements** pour vos skills :
#### 1. Skills globales (pour tous vos projets)
```
~/.claude/skills/
ma-skill-1/
SKILL.md
ma-skill-2/
SKILL.md
```
**Quand l'utiliser :**
- Skills génériques (révision de code, génération de tests, etc.)
- Skills que vous voulez réutiliser partout
#### 2. Skills de projet (pour un projet spécifique)
```
mon-projet/
.claude/
skills/
skill-specifique/
SKILL.md
```
**Quand l'utiliser :**
- Skills spécifiques à un projet
- Skills qui dépendent de l'architecture du projet
### 🔍 Comment Claude trouve vos Skills
Quand vous tapez `/ma-skill`, Claude cherche dans cet ordre :
1. **Projet local** : `.claude/skills/ma-skill/SKILL.md`
2. **Utilisateur global** : `~/.claude/skills/ma-skill/SKILL.md`
3. **Plugins** : `~/.claude/plugins/*/skills/ma-skill/SKILL.md`
**Important :** La première skill trouvée est utilisée (priorité au projet local).
---
## 5. Créer des Skills plus avancées
### 🎨 Structure recommandée pour une Skill complète
```markdown
---
name: ma-skill-avancee
description: Description précise de ce que fait la skill
version: 1.0.0
---
# Titre de la Skill
Description générale de ce que fait la skill.
## Ton rôle
Tu es un [expert en X, spécialiste de Y, etc.].
## Contexte
[Informations de contexte importantes]
## Processus
1. **Étape 1 :** [Description]
- Sous-action A
- Sous-action B
2. **Étape 2 :** [Description]
- Sous-action A
- Sous-action B
3. **Étape 3 :** [Description]
## Règles importantes
- ⚠️ Règle critique 1
- ⚠️ Règle critique 2
- ✅ Règle positive 1
## Format de sortie
[Description précise du format attendu]
### Exemple de sortie
[Exemple concret de ce que tu attends]
## Cas particuliers
### Cas A
[Comment gérer le cas A]
### Cas B
[Comment gérer le cas B]
## Critères de qualité
- [ ] Critère 1
- [ ] Critère 2
- [ ] Critère 3
```
### 📝 Éléments optionnels dans le Frontmatter
```markdown
---
name: ma-skill # Obligatoire
description: Description # Recommandé
version: 1.0.0 # Optionnel (pour suivre les versions)
author: Votre Nom # Optionnel
tags: [python, testing, backend] # Optionnel (pour organisation)
---
```
---
## 6. Exemples pratiques étape par étape
### 📘 Exemple 1 : Skill de révision de code
#### Objectif
Créer une skill qui révise votre code en vérifiant la sécurité, la qualité et les performances.
#### Étape par étape
**1. Créer le dossier :**
```bash
mkdir -p ~/.claude/skills/reviser-code
```
**2. Créer le fichier `SKILL.md` :**
```bash
# Sur macOS/Linux
touch ~/.claude/skills/reviser-code/SKILL.md
# Sur Windows
New-Item ~/.claude/skills/reviser-code/SKILL.md
```
**3. Remplir le contenu :**
```markdown
---
name: reviser-code
description: Effectue une révision complète du code (sécurité, qualité, performance)
version: 1.0.0
---
# Révision de Code Complète
Tu es un expert en révision de code avec 10+ ans d'expérience.
## Ton rôle
Analyser le code fourni et identifier tous les problèmes potentiels dans ces catégories :
- Sécurité
- Performance
- Qualité du code
- Maintenabilité
## Processus de révision
### 1. Lecture initiale
- Lis tout le code fourni
- Comprends l'intention et le contexte
- Identifie les patterns utilisés
### 2. Analyse de sécurité
Vérifie :
- ❌ Injections SQL
- ❌ XSS (Cross-Site Scripting)
- ❌ CSRF (Cross-Site Request Forgery)
- ❌ Exposition de données sensibles
- ❌ Authentification/Autorisation faibles
- ❌ Utilisation de dépendances vulnérables
### 3. Analyse de performance
Vérifie :
- 🐌 Boucles inefficaces
- 🐌 Requêtes N+1
- 🐌 Chargements inutiles en mémoire
- 🐌 Calculs redondants
- 🐌 Manque de cache
### 4. Analyse de qualité
Vérifie :
- 📖 Lisibilité du code
- 📖 Noms de variables/fonctions clairs
- 📖 Commentaires appropriés
- 📖 Respect des conventions
- 📖 Code dupliqué
- 📖 Fonctions trop longues/complexes
### 5. Analyse de maintenabilité
Vérifie :
- 🔧 Architecture et structure
- 🔧 Couplage entre composants
- 🔧 Gestion des erreurs
- 🔧 Tests manquants
- 🔧 Documentation manquante
## Format de sortie
Pour chaque problème identifié, utilise ce format :
### [Catégorie] Problème #N
**🔴 Sévérité :** Critique / Haute / Moyenne / Basse
**📍 Localisation :**
- Fichier : `nom-fichier.ext`
- Ligne(s) : 42-45
**🔍 Description :**
[Explication claire du problème]
**💡 Recommandation :**
[Solution proposée avec exemple de code si pertinent]
**📚 Ressources :**
[Liens utiles si applicable]
---
## Résumé final
À la fin de ta révision, fournis :
### Statistiques
- 🔴 Problèmes critiques : X
- 🟠 Problèmes de haute sévérité : X
- 🟡 Problèmes de sévérité moyenne : X
- 🟢 Problèmes de basse sévérité : X
### Points positifs
- ✅ [Aspect bien fait 1]
- ✅ [Aspect bien fait 2]
- ✅ [Aspect bien fait 3]
### Priorités d'action
1. [Action prioritaire 1]
2. [Action prioritaire 2]
3. [Action prioritaire 3]
### Note globale
[Note de 0 à 10 avec justification]
## Règles importantes
- ⚠️ Sois constructif, pas juste critique
- ⚠️ Fournis toujours des solutions, pas juste des problèmes
- ⚠️ Priorise les problèmes de sécurité
- ⚠️ Reste factuel et objectif
```
**4. Tester la skill :**
```bash
claude
```
Puis :
```
/reviser-code
[Collez votre code ou référencez un fichier]
```
---
### 📗 Exemple 2 : Skill de génération de tests
#### Objectif
Créer une skill qui génère des tests unitaires complets pour votre code.
#### Contenu de la skill
```markdown
---
name: generer-tests
description: Génère des tests unitaires complets avec cas nominaux, limites et d'erreur
version: 1.0.0
---
# Générateur de Tests Unitaires
Tu es un expert en testing avec une expertise en TDD (Test-Driven Development).
## Ton rôle
Générer des tests unitaires complets, robustes et maintenables pour le code fourni.
## Analyse préliminaire
Avant de générer les tests, analyse :
1. **Langage et framework**
- Identifie le langage de programmation
- Détecte le framework de test à utiliser (Jest, pytest, JUnit, etc.)
2. **Code à tester**
- Fonctions/méthodes publiques
- Entrées possibles
- Sorties attendues
- Cas limites (edge cases)
- Erreurs possibles
## Types de tests à générer
### 1. Tests des cas nominaux
Tests des scénarios standards et attendus.
**Exemple :**
```javascript
test('addition de deux nombres positifs', () => {
expect(add(2, 3)).toBe(5);
});
```
### 2. Tests des cas limites (edge cases)
Tests des valeurs extrêmes ou inhabituelles.
**Exemples de cas limites :**
- Valeurs nulles (`null`, `undefined`)
- Valeurs vides (chaînes vides, tableaux vides, objets vides)
- Très grandes valeurs
- Très petites valeurs
- Valeurs négatives
- Zéro
**Exemple :**
```javascript
test('addition avec zéro', () => {
expect(add(5, 0)).toBe(5);
});
test('addition avec nombres négatifs', () => {
expect(add(-2, -3)).toBe(-5);
});
```
### 3. Tests d'erreur
Tests qui vérifient que les erreurs sont bien gérées.
**Exemple :**
```javascript
test('erreur si argument non numérique', () => {
expect(() => add('a', 2)).toThrow('Arguments must be numbers');
});
```
## Structure des tests
Utilise le pattern **AAA** (Arrange-Act-Assert) :
```javascript
test('description claire du test', () => {
// Arrange (Préparer)
const input = ...;
const expected = ...;
// Act (Agir)
const result = functionToTest(input);
// Assert (Vérifier)
expect(result).toBe(expected);
});
```
## Règles de qualité
### Noms de tests
✅ **BON :**
```javascript
test('retourne true quand l\'utilisateur est authentifié')
test('lève une erreur si l\'email est invalide')
```
❌ **MAUVAIS :**
```javascript
test('test1')
test('ça marche')
```
### Organisation
```javascript
describe('NomDeLaFonction', () => {
describe('cas nominaux', () => {
test('scénario 1', () => { ... });
test('scénario 2', () => { ... });
});
describe('cas limites', () => {
test('avec valeur nulle', () => { ... });
test('avec tableau vide', () => { ... });
});
describe('gestion d\'erreurs', () => {
test('erreur si paramètre invalide', () => { ... });
});
});
```
### Isolation des tests
- ⚠️ Chaque test doit être indépendant
- ⚠️ Utilise des mocks/stubs pour les dépendances externes
- ⚠️ Nettoie après chaque test si nécessaire
## Couverture de code
Vise une couverture de **80% minimum** :
- Toutes les fonctions publiques testées
- Tous les chemins d'exécution importants
- Tous les cas d'erreur principaux
## Format de sortie
### 1. En-tête
```javascript
/**
* Tests pour [NomDuFichier]
*
* Couverture :
* - X tests de cas nominaux
* - Y tests de cas limites
* - Z tests de gestion d'erreur
*/
```
### 2. Imports
```javascript
import { functionToTest } from './source-file';
import { jest } from '@jest/globals'; // Si nécessaire pour mocks
```
### 3. Corps des tests
[Tests organisés comme décrit ci-dessus]
### 4. Commentaires explicatifs
Ajoute des commentaires pour les tests complexes :
```javascript
test('cas complexe nécessitant explication', () => {
// Ce test vérifie que... parce que...
// Arrange
...
});
```
## Frameworks supportés
Adapte la syntaxe selon le framework détecté :
- **JavaScript/TypeScript :** Jest, Mocha, Jasmine
- **Python :** pytest, unittest
- **Java :** JUnit, TestNG
- **C# :** NUnit, xUnit
- **Go :** testing package
- **Ruby :** RSpec, Minitest
## Exemple complet de sortie
Pour une fonction simple :
```javascript
// Source: calculator.js
export function add(a, b) {
if (typeof a !== 'number' || typeof b !== 'number') {
throw new Error('Arguments must be numbers');
}
return a + b;
}
```
Tu génères :
```javascript
/**
* Tests pour calculator.js
*
* Couverture :
* - 3 tests de cas nominaux
* - 4 tests de cas limites
* - 2 tests de gestion d'erreur
*/
import { add } from './calculator';
describe('add', () => {
describe('cas nominaux', () => {
test('additionne deux nombres positifs', () => {
expect(add(2, 3)).toBe(5);
});
test('additionne deux nombres négatifs', () => {
expect(add(-2, -3)).toBe(-5);
});
test('additionne un nombre positif et un négatif', () => {
expect(add(5, -3)).toBe(2);
});
});
describe('cas limites', () => {
test('additionne avec zéro', () => {
expect(add(0, 5)).toBe(5);
expect(add(5, 0)).toBe(5);
});
test('additionne deux zéros', () => {
expect(add(0, 0)).toBe(0);
});
test('gère les grands nombres', () => {
expect(add(1000000, 2000000)).toBe(3000000);
});
test('gère les nombres décimaux', () => {
expect(add(0.1, 0.2)).toBeCloseTo(0.3);
});
});
describe('gestion d\'erreurs', () => {
test('lève une erreur si le premier argument n\'est pas un nombre', () => {
expect(() => add('a', 2)).toThrow('Arguments must be numbers');
});
test('lève une erreur si le second argument n\'est pas un nombre', () => {
expect(() => add(2, 'b')).toThrow('Arguments must be numbers');
});
});
});
```
## Instructions finales
1. Génère les tests dans un fichier séparé avec le nom approprié :
- `calculator.js` → `calculator.test.js`
- `utils.py` → `test_utils.py`
- `Service.java` → `ServiceTest.java`
2. Assure-toi que les tests sont exécutables immédiatement
3. Explique brièvement les choix de test importants
4. Suggère des tests additionnels si pertinent
```
---
### 📙 Exemple 3 : Skill interactive avec questions
#### Objectif
Créer une skill qui pose des questions avant d'agir.
#### Contenu de la skill
```markdown
---
name: creer-feature
description: Guide pour créer une nouvelle fonctionnalité avec questions interactives
version: 1.0.0
---
# Assistant de Création de Fonctionnalité
Tu es un guide qui aide à créer de nouvelles fonctionnalités de manière structurée.
## Processus interactif
### Étape 1 : Questionnaire initial
Avant de commencer, pose ces questions à l'utilisateur :
#### Question 1 : Type de fonctionnalité
```
Quel type de fonctionnalité veux-tu créer ?
a) API endpoint (backend)
b) Composant UI (frontend)
c) Service/Utilitaire
d) Feature complète (frontend + backend)
```
#### Question 2 : Complexité
```
Quelle est la complexité estimée ?
a) Simple (quelques heures)
b) Moyenne (1-2 jours)
c) Complexe (plusieurs jours)
```
#### Question 3 : Priorité
```
Quelle est la priorité ?
a) Critique (bloquer)
b) Haute
c) Moyenne
d) Basse
```
#### Question 4 : Tests requis
```
Quels tests sont nécessaires ?
a) Tests unitaires seulement
b) Tests d'intégration seulement
c) Tests unitaires + intégration
d) Tests E2E complets
```
### Étape 2 : Analyse et planification
Basé sur les réponses :
1. **Analyse les fichiers existants**
- Identifie où placer le nouveau code
- Vérifie les patterns existants à suivre
2. **Crée un plan détaillé**
```
## Plan d'implémentation
### Fichiers à créer
- [ ] fichier1.ext - Description
- [ ] fichier2.ext - Description
### Fichiers à modifier
- [ ] fichier3.ext - Modifications à apporter
### Dépendances nécessaires
- [ ] dépendance1
- [ ] dépendance2
### Étapes d'implémentation
1. Étape 1
2. Étape 2
3. Étape 3
### Tests à créer
- [ ] test1
- [ ] test2
```
3. **Demande confirmation**
```
Ce plan te convient-il ?
- Si oui, je commence l'implémentation
- Si non, dis-moi ce qu'il faut ajuster
```
### Étape 3 : Implémentation
Une fois le plan approuvé :
1. Crée les fichiers dans l'ordre logique
2. Implémente le code en suivant les patterns existants
3. Ajoute les tests au fur et à mesure
4. Documente le code
### Étape 4 : Vérification finale
Avant de terminer :
1. **Checklist de qualité**
- [ ] Code écrit et testé
- [ ] Tests créés et qui passent
- [ ] Documentation ajoutée
- [ ] Pas de code dupliqué
- [ ] Conventions respectées
- [ ] Gestion d'erreur appropriée
2. **Proposer les prochaines étapes**
- Tests manuels à faire
- Documentation à mettre à jour
- Revue de code recommandée
## Ton de communication
- 🎯 Guidant et structuré
- ❓ Pose des questions clarifiantes
- 📋 Fournis des checklists
- ✅ Confirme chaque étape majeure
```
---
## 7. Organisation et bonnes pratiques
### 📁 Structure recommandée
#### Pour vos skills globales
```
~/.claude/
skills/
# Skills générales
reviser-code/
SKILL.md
exemples/ # Dossier optionnel pour exemples
exemple1.md
exemple2.md
generer-tests/
SKILL.md
documenter/
SKILL.md
# Organisation par catégorie (optionnel)
backend/
api-review/
SKILL.md
database-query/
SKILL.md
frontend/
component-review/
SKILL.md
accessibility-check/
SKILL.md
```
#### Pour les skills de projet
```
mon-projet/
.claude/
skills/
# Skills spécifiques au projet
deploy-prod/
SKILL.md
run-integration-tests/
SKILL.md
```
### ✅ Bonnes pratiques de nommage
#### Noms de skills
```
✅ BON :
reviser-code
generer-tests
documenter-api
creer-component
❌ MAUVAIS :
rc
test
doc
cc
```
**Règles :**
- Utiliser des tirets (`-`) pas des underscores (`_`)
- Noms descriptifs et clairs
- En minuscules
- Verbes d'action (réviser, générer, créer, etc.)
#### Noms de fichiers
```
✅ Correct :
SKILL.md # Obligatoire, en majuscules
README.md # Optionnel, documentation de la skill
exemples.md # Optionnel
❌ Incorrect :
skill.md
Skill.md
SKILL.txt
```
### 📝 Bonnes pratiques de rédaction
#### 1. Instructions claires et précises
```markdown
✅ BON :
## Processus
1. Lis tous les fichiers fournis
2. Identifie les vulnérabilités selon OWASP Top 10
3. Classe chaque problème par sévérité (Critique/Haute/Moyenne/Basse)
4. Fournis une solution pour chaque problème
❌ VAGUE :
## Processus
- Regarde le code
- Trouve les problèmes
- Dis ce qui ne va pas
```
#### 2. Exemples concrets
```markdown
✅ BON :
## Format de sortie
### Exemple :
**🔴 Sévérité :** Critique
**📍 Fichier :** auth.js:42
**🔍 Problème :** Injection SQL possible
**💡 Solution :** Utiliser des requêtes paramétrées
❌ SANS EXEMPLE :
## Format de sortie
Fournis un rapport avec les problèmes trouvés.
```
#### 3. Ton approprié
```markdown
✅ BON :
Tu es un expert en sécurité. Sois rigoureux dans ton analyse.
❌ TROP CASUAL :
Yo ! Checke le code et dis-moi si c'est clean ou pas
```
### 🔄 Versioning de vos skills
```markdown
---
name: ma-skill
description: Description
version: 1.0.0 # Majeur.Mineur.Patch
changelog: |
1.0.0 - 2026-02-04: Version initiale
1.1.0 - 2026-02-10: Ajout de la vérification de performance
1.1.1 - 2026-02-11: Correction du format de sortie
---
```
**Convention de versioning :**
- **Majeur (1.0.0)** : Changements incompatibles
- **Mineur (1.1.0)** : Nouvelles fonctionnalités compatibles
- **Patch (1.1.1)** : Corrections de bugs
### 📚 Documenter vos skills
Créez un fichier `README.md` dans le dossier de chaque skill :
```markdown
# Skill : Révision de Code
## Description
Cette skill effectue une révision complète du code en vérifiant la sécurité,
la performance, la qualité et la maintenabilité.
## Usage
```bash
/reviser-code
```
Puis fournir le code à réviser soit :
- En collant le code
- En référençant un fichier avec `@./chemin`
## Exemples
### Exemple 1 : Réviser un fichier
```
/reviser-code @./src/auth.js
```
### Exemple 2 : Réviser un extrait
```
/reviser-code
[Collez votre code ici]
```
## Format de sortie
La skill génère un rapport structuré avec :
- Problèmes de sécurité
- Problèmes de performance
- Problèmes de qualité
- Recommandations d'action
## Personnalisation
Vous pouvez modifier les critères de révision dans le fichier `SKILL.md`.
## Version
1.0.0
## Auteur
Votre Nom
## License
MIT
```
---
## 8. Dépannage et erreurs courantes
### ❌ Problème 1 : Ma skill n'apparaît pas dans `/help`
**Causes possibles :**
1. **Le fichier n'est pas nommé `SKILL.md`**
```
❌ skill.md
❌ Skill.md
❌ SKILL.txt
✅ SKILL.md
```
2. **Le dossier n'est pas au bon endroit**
```
✅ ~/.claude/skills/ma-skill/SKILL.md
✅ .claude/skills/ma-skill/SKILL.md
❌ ~/claude/skills/ma-skill/SKILL.md (manque le point)
❌ ~/.claude/ma-skill/SKILL.md (manque /skills/)
```
3. **Le frontmatter est mal formaté**
```markdown
❌ MAUVAIS :
--
name: ma-skill
--
✅ CORRECT :
---
name: ma-skill
---
```
**Solution :**
```bash
# Vérifier l'emplacement
ls -la ~/.claude/skills/ma-skill/SKILL.md
# Si le fichier n'existe pas, le créer
mkdir -p ~/.claude/skills/ma-skill
touch ~/.claude/skills/ma-skill/SKILL.md
```
### ❌ Problème 2 : Claude ne suit pas mes instructions
**Causes possibles :**
1. **Instructions trop vagues**
```markdown
❌ Vague :
Révise le code
✅ Précis :
Révise le code en suivant ces étapes :
1. Vérifie les vulnérabilités OWASP Top 10
2. Identifie les problèmes de performance
3. Fournis des solutions avec exemples de code
```
2. **Manque de structure**
```markdown
❌ Sans structure :
Fais une révision complète vérifie tout donne un rapport
✅ Avec structure :
## Processus
1. Étape 1
2. Étape 2
## Format de sortie
[Format détaillé]
```
3. **Instructions contradictoires**
```markdown
❌ Contradictoire :
Sois très détaillé mais reste concis
✅ Clair :
Fournis un rapport détaillé avec un résumé concis en fin
```
**Solution :**
- Relire la skill et la rendre plus précise
- Ajouter des exemples concrets
- Tester avec des cas simples d'abord
### ❌ Problème 3 : La skill fonctionne différemment selon les fois
**Cause :**
Les LLMs comme Claude ont une certaine variabilité naturelle.
**Solutions :**
1. **Rendre les instructions plus contraignantes**
```markdown
❌ Flexible :
Fournis un rapport
✅ Contraint :
Fournis EXACTEMENT ce format :
### Problème #1
**Sévérité :** [Critique/Haute/Moyenne/Basse]
**Fichier :** [nom:ligne]
**Description :** [texte]
**Solution :** [texte]
```
2. **Utiliser des checklists**
```markdown
À la fin, vérifie que tu as bien :
- [ ] Analysé tous les fichiers
- [ ] Fourni au moins 3 recommandations
- [ ] Inclus des exemples de code
```
3. **Demander validation**
```markdown
Avant de répondre, assure-toi que :
1. Tu as suivi toutes les étapes
2. Le format est correct
3. Tous les critères sont vérifiés
```
### ❌ Problème 4 : Erreur "Skill not found"
**Vérifications :**
```bash
# 1. Vérifier que le dossier existe
ls -la ~/.claude/skills/
# 2. Vérifier que votre skill existe
ls -la ~/.claude/skills/ma-skill/
# 3. Vérifier le contenu du fichier
cat ~/.claude/skills/ma-skill/SKILL.md
# 4. Vérifier les permissions
chmod 644 ~/.claude/skills/ma-skill/SKILL.md
```
### ❌ Problème 5 : La skill est trop lente
**Causes :**
- Instructions trop complexes
- Trop d'étapes
- Trop de contexte à analyser
**Solutions :**
1. **Simplifier la skill**
- Diviser en plusieurs skills plus petites
- Réduire le nombre d'étapes
2. **Utiliser le bon modèle**
- Haiku pour skills simples et rapides
- Sonnet pour usage général
- Opus pour skills complexes
3. **Optimiser les instructions**
```markdown
❌ Lent :
Lis tous les fichiers du projet, analyse chaque ligne, compare avec
50 patterns différents, génère un rapport ultra-détaillé...
✅ Plus rapide :
Analyse le fichier fourni pour les 3 problèmes principaux :
1. Sécurité critique
2. Bugs évidents
3. Performance majeure
```
---
## 9. Idées de Skills à créer
### 💼 Skills professionnelles
#### Développement
- `/reviser-pull-request` - Révise une PR complète
- `/generer-changelog` - Génère un changelog depuis les commits
- `/optimiser-performance` - Analyse et optimise les performances
- `/refactoriser` - Propose un refactoring structuré
- `/detecter-code-mort` - Identifie le code inutilisé
#### Documentation
- `/generer-readme` - Crée un README complet
- `/documenter-api` - Génère la doc d'une API (OpenAPI/Swagger)
- `/expliquer-code` - Explique du code complexe
- `/generer-jsdoc` - Ajoute des commentaires JSDoc
- `/creer-guide-contribution` - Crée CONTRIBUTING.md
#### Tests
- `/generer-tests-e2e` - Crée des tests end-to-end
- `/calculer-couverture` - Analyse la couverture de tests
- `/generer-mocks` - Crée des mocks pour tests
- `/tests-performance` - Génère des tests de performance
#### DevOps
- `/creer-dockerfile` - Génère un Dockerfile optimisé
- `/configurer-ci` - Crée un pipeline CI/CD
- `/generer-helm-chart` - Crée des charts Helm
- `/optimiser-build` - Optimise le temps de build
### 🎨 Skills créatives
#### Frontend
- `/creer-component` - Scaffold un nouveau composant
- `/optimiser-css` - Optimise et organise le CSS
- `/generer-theme` - Crée un système de thème
- `/audit-accessibilite` - Vérifie l'accessibilité (a11y)
#### Backend
- `/creer-endpoint` - Crée un nouvel endpoint API
- `/generer-migration` - Génère une migration de BDD
- `/optimiser-requetes` - Optimise les requêtes SQL
- `/creer-middleware` - Crée un middleware
### 🛠️ Skills utilitaires
#### Organisation
- `/creer-todo` - Extrait des TODOs du code
- `/generer-rapport` - Crée un rapport de projet
- `/analyser-dependencies` - Analyse les dépendances
- `/detecter-vulnerabilities` - Scan de sécurité
#### Conversion
- `/convertir-format` - Convertit entre formats (JSON/YAML/etc.)
- `/migrer-code` - Aide à migrer vers nouvelle version
- `/traduire-code` - Traduit d'un langage à un autre
- `/moderniser` - Modernise du code legacy
### 🎓 Skills d'apprentissage
#### Tutoriels
- `/expliquer-concept` - Explique un concept technique
- `/generer-exercice` - Crée des exercices pratiques
- `/corriger-exercice` - Corrige et explique
- `/creer-quiz` - Génère un quiz sur un sujet
#### Code reviews pédagogiques
- `/revue-debutant` - Revue adaptée aux débutants
- `/expliquer-erreurs` - Explique les erreurs courantes
- `/bonnes-pratiques` - Enseigne les bonnes pratiques
- `/anti-patterns` - Identifie et explique les anti-patterns
### 🎯 Skills par langage
#### JavaScript/TypeScript
- `/migration-typescript` - Migre JS vers TS
- `/optimiser-react` - Optimise composants React
- `/moderniser-js` - Modernise JS (ES6+)
#### Python
- `/pythoniser` - Rend le code plus pythonique
- `/typer-python` - Ajoute type hints
- `/optimiser-pandas` - Optimise code pandas
#### Java
- `/moderniser-java` - Migre vers Java moderne
- `/pattern-java` - Applique design patterns
- `/spring-boot` - Crée du code Spring Boot
---
## 🎓 Exercices pratiques
### Exercice 1 : Skill simple (débutant)
**Objectif :** Créer une skill qui génère des messages de commit Git selon Conventional Commits.
**À faire :**
1. Créer le dossier `~/.claude/skills/commit-message/`
2. Créer `SKILL.md` avec les instructions pour générer des commits :
- Format : `type(scope): description`
- Types : feat, fix, docs, style, refactor, test, chore
- Limite de 50 caractères pour le titre
3. Tester avec `/commit-message`
**Solution :**
```markdown
---
name: commit-message
description: Génère des messages de commit selon Conventional Commits
---
# Générateur de messages de commit
Génère des messages de commit suivant la convention Conventional Commits.
## Format
```
type(scope): description courte
Corps du message (optionnel)
```
## Types disponibles
- `feat`: Nouvelle fonctionnalité
- `fix`: Correction de bug
- `docs`: Documentation
- `style`: Formatage, sans changement de code
- `refactor`: Refactoring
- `test`: Ajout/modification de tests
- `chore`: Maintenance, dépendances
## Règles
1. Titre max 50 caractères
2. Impératif présent ("ajoute" pas "ajouté")
3. Pas de point final au titre
4. Corps optionnel pour plus de détails
## Processus
1. Demande quels fichiers ont été modifiés
2. Demande la nature des changements
3. Génère 3 options de messages
4. Laisse l'utilisateur choisir
```
### Exercice 2 : Skill interactive (intermédiaire)
**Objectif :** Créer une skill qui aide à débugger du code en posant des questions.
**À faire :**
1. Créer une skill `/debug-helper`
2. La skill doit poser des questions :
- Quel est le problème observé ?
- Quel est le comportement attendu ?
- Quelles sont les étapes pour reproduire ?
3. Puis analyser et proposer des solutions
### Exercice 3 : Skill complexe (avancé)
**Objectif :** Créer une skill d'audit de sécurité complète.
**À faire :**
1. Créer `/audit-securite`
2. Vérifier OWASP Top 10
3. Générer un rapport HTML
4. Inclure des scores et métriques
5. Proposer un plan d'action priorisé
---
## 📚 Ressources et références
### Documentation officielle
- [Claude Code Docs](https://code.claude.com/docs)
- [Guide des Skills](https://code.claude.com/docs/en/slash-commands)
### Collections communautaires
- [awesome-claude-code](https://github.com/hesreallyhim/awesome-claude-code)
- [claude-code-skills](https://github.com/wshobson/commands)
- [everything-claude-code](https://github.com/affaan-m/everything-claude-code)
### Inspiration
Consultez ces repos pour des exemples de skills :
- Révision de code
- Génération de tests
- Documentation automatique
- Analyse de sécurité
---
## 🎯 Checklist finale
Avant de considérer votre skill terminée :
- [ ] Le nom est descriptif et suit les conventions
- [ ] Le fichier est nommé `SKILL.md` (majuscules)
- [ ] Le frontmatter est correct avec `name` et `description`
- [ ] Les instructions sont claires et précises
- [ ] Des exemples sont fournis
- [ ] Le format de sortie est spécifié
- [ ] La skill a été testée plusieurs fois
- [ ] Un README.md documente la skill
- [ ] La skill est versionnée
---
## 🎉 Conclusion
Vous savez maintenant :
- ✅ Ce qu'est une skill et pourquoi l'utiliser
- ✅ Comment créer des skills simples et avancées
- ✅ Comment organiser vos skills
- ✅ Comment résoudre les problèmes courants
- ✅ Plein d'idées de skills à créer
**Prochaines étapes :**
1. Créez votre première skill simple
2. Testez-la plusieurs fois
3. Améliorez-la progressivement
4. Créez d'autres skills pour vos besoins
5. Partagez vos meilleures skills avec la communauté !
**Bonne création de skills ! 🚀**
---
*Guide créé le 4 février 2026*
*Pour le guide complet de Claude Code : `~/CLAUDE_STOCK/GUIDE_COMPLET.md`*