---
name: skill-master
description: Découvrir les modèles de codebase et générer automatiquement des fichiers SKILL pour .claude/skills/. À utiliser lors de l'analyse d'un projet pour détecter les compétences manquantes, de la création de nouvelles compétences à partir des modèles de codebase, ou de la synchronisation des compétences avec la structure du projet.
version: 1.0.0
---
# Skill Master
## Vue d'ensemble
Analyser la codebase pour découvrir les modèles et générer/mettre à jour les fichiers SKILL dans `.claude/skills/`. Prend en charge les projets multi-plateformes avec détection de modèles spécifiques à la pile.
**Capacités :**
- Scanner la codebase pour les modèles architecturaux (ViewModel, Repository, Room, etc.)
- Comparer les modèles détectés avec les compétences existantes
- Générer automatiquement des fichiers SKILL avec des exemples de code réels
- Suivi de version et mises à jour intelligentes
## Comment l'IA découvre et utilise cette compétence
Cette compétence se déclenche lorsque l'utilisateur :
- Demande d'analyser le projet pour détecter les compétences manquantes
- Demande la génération de compétences à partir des modèles de codebase
- Souhaite synchroniser ou mettre à jour les compétences existantes
- Mentionne "découverte de compétences", "générer des compétences" ou "synchronisation de compétences"
**Signaux de détection :**
- Présence du répertoire `.claude/skills/`
- Structure du projet correspondant à des modèles connus
- Fichiers de build/config indiquant la plateforme (voir références)
## Modes
### Mode Découverte
Analyser la codebase et signaler les compétences manquantes.
**Étapes :**
1. Détecter la plateforme via les fichiers de build/config (voir références)
2. Scanner les racines sources pour les indicateurs de modèles
3. Comparer les modèles détectés avec `.claude/skills/` existant
4. Générer un rapport d'analyse des écarts
**Format de sortie :**
```
Modèles détectés : {count}
| Modèle | Fichiers trouvés | Emplacement d'exemple |
|--------|------------------|-----------------------|
| {nom} | {count} | {chemin} |
Compétences existantes : {count}
Compétences manquantes : {count}
- {nom-compétence} : {modèle}, {count} fichiers trouvés
```
### Mode Génération
Créer des fichiers SKILL à partir des modèles détectés.
**Étapes :**
1. Exécuter la découverte pour identifier les compétences manquantes
2. Pour chaque compétence manquante :
- Trouver 2-3 fichiers sources représentatifs
- Extraire : imports, annotations, structure de classe, conventions
- Extraire les règles de `.ruler/*.md` si présentes
3. Générer SKILL.md en utilisant la structure de modèle
4. Ajouter la version et le marqueur de source
**Structure SKILL générée :**
```yaml
---
name: {nom-modèle}
description: {Description générée avec mots-clés de déclenchement}
version: 1.0.0
---
# {Titre}
## Vue d'ensemble
{Bref description issue de l'analyse des modèles}
## Structure des fichiers
{Extraite de la codebase}
## Modèle d'implémentation
{Exemples de code réels - anonymisés}
## Règles
### À faire
{Depuis .ruler/*.md + conventions de la codebase}
### À ne pas faire
{Anti-modèles trouvés}
## Emplacement des fichiers
{Chemin réels issus de la codebase}
```
## Stratégie de création
Lorsque le fichier SKILL cible n'existe pas :
1. Générer un nouveau fichier en utilisant le modèle
2. Définir `version: 1.0.0` dans le frontmatter
3. Inclure toutes les sections obligatoires
4. Ajouter le marqueur de source à la fin (voir Format du marqueur)
## Stratégie de mise à jour
**Vérification du marqueur :** Rechercher `<!-- Generated by skill-master command` à la fin du fichier.
**Si le marqueur est présent (exécution ultérieure) :**
- Fusion intelligente : préserver le contenu personnalisé, ajouter les sections manquantes
- Incrémenter la version : majeure (rupture) / mineure (fonctionnalité) / correctif (correction)
- Mettre à jour la liste des sources dans le marqueur
**Si le marqueur est absent (première exécution sur un fichier existant) :**
- Sauvegarde : `SKILL.md` → `SKILL.md.bak`
- Utiliser la sauvegarde comme source, extraire le contenu pertinent
- Générer un nouveau fichier avec le marqueur
- Définir `version: 1.0.0`
## Format du marqueur
Placer à la FIN du SKILL.md généré :
```html
<!-- Generated by skill-master command
Version : {version}
Sources :
- chemin/vers/source1.kt
- chemin/vers/source2.md
- .ruler/fichier-regles.md
Dernière mise à jour : {AAAA-MM-JJ}
-->
```
## Références de plateformes
Lire la référence pertinente lorsque la plateforme est détectée :
| Plateforme | Fichiers de détection | Référence |
|------------|-----------------------|-----------|
| Android/Gradle | `build.gradle`, `settings.gradle` | `references/android.md` |
| iOS/Xcode | `*.xcodeproj`, `Package.swift` | `references/ios.md` |
| React (web) | `package.json` + react | `references/react-web.md` |
| React Native | `package.json` + react-native | `references/react-native.md` |
| Flutter/Dart | `pubspec.yaml` | `references/flutter.md` |
| Node.js | `package.json` | `references/node.md` |
| Python | `pyproject.toml`, `requirements.txt` | `references/python.md` |
| Java/JVM | `pom.xml`, `build.gradle` | `references/java.md` |
| .NET/C# | `*.csproj`, `*.sln` | `references/dotnet.md` |
| Go | `go.mod` | `references/go.md` |
| Rust | `Cargo.toml` | `references/rust.md` |
| PHP | `composer.json` | `references/php.md` |
| Ruby | `Gemfile` | `references/ruby.md` |
| Elixir | `mix.exs` | `references/elixir.md` |
| C/C++ | `CMakeLists.txt`, `Makefile` | `references/cpp.md` |
| Inconnue | - | `references/generic.md` |
Si plusieurs plateformes sont détectées, lire plusieurs références.
## Règles
### À faire
- Extraire uniquement les modèles vérifiés dans la codebase
- Utiliser des exemples de code réels (anonymiser la logique métier)
- Inclure les mots-clés de déclenchement dans la description
- Garder SKILL.md sous 500 lignes
- Référencer des fichiers externes pour le contenu détaillé
- Préserver les sections personnalisées lors des mises à jour
- Toujours sauvegarder avant la première modification
### À ne pas faire
- Inclure des secrets, jetons ou identifiants
- Inclure des détails de logique métier spécifiques
- Générer des espaces réservés sans contenu réel
- Écraser les personnalisations utilisateur sans sauvegarde
- Créer des chaînes de référence profondes (max 1 niveau)
- Écrire en dehors de `.claude/skills/`
## Règles d'extraction de contenu
**Depuis la codebase :**
- Extraire : structures de classe, annotations, modèles d'import, emplacements de fichiers, conventions de nommage
- Jamais : valeurs codées en dur, secrets, clés API, PII
**Depuis .ruler/*.md (si présent) :**
- Extraire : règles À faire/À ne pas faire, contraintes architecturales, règles de dépendances
## Rapport de sortie
Après la génération, imprimer :
```
RAPPORT DE GÉNÉRATION DE COMPÉTENCES
Compétences générées : {count}
{nom-compétence} [CRÉÉE | MIS À JOUR | SAUVEGARDÉE+CRÉÉE]
├── Analysé : {count} fichiers sources
├── Sources : {liste des fichiers sources}
├── Règles de : {fichiers .ruler si présents}
└── Sortie : .claude/skills/{nom-compétence}/SKILL.md ({count} lignes)
Validation :
✓ Frontmatter YAML valide
✓ La description inclut les mots-clés de déclenchement
✓ Contenu sous 500 lignes
✓ A les sections requises
```
## Contraintes de sécurité
- Ne jamais écrire en dehors de `.claude/skills/`
- Ne jamais supprimer de contenu sans sauvegarde
- Toujours sauvegarder avant la première modification
- Préserver les personnalisations utilisateur
- Déterministe : même entrée → même sortie
Discussion
0 commentaires