# 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`*