Que fait skill-stocktake ?
Commande slash (/skill-stocktake) qui audite toutes les compétences et commandes Claude à l'aide d'une liste de contrôle qualité et d'un jugement holistique IA. Prend en charge deux modes : Analyse rapide pour les compétences récemment modifiées, et Inventaire complet pour une revue exhaustive.
Périmètre
La commande cible les chemins suivants relativement au répertoire où elle est invoquée :
| Chemin | Description |
|---|---|
~/.claude/skills/ | Compétences globales (tous les projets) |
{cwd}/.claude/skills/ | Compétences de projet (si le répertoire existe) |
Au début de la Phase 1, la commande liste explicitement les chemins trouvés et scannés.
Cibler un projet spécifique
Pour inclure les compétences de projet, exécutez depuis le répertoire racine de ce projet :
cd ~/chemin/vers/mon-projet
/skill-stocktake
Si le projet n'a pas de répertoire .claude/skills/, seules les compétences et commandes globales sont évaluées.
Modes
| Mode | Déclencheur | Durée |
|---|---|---|
| Analyse rapide | results.json existe (par défaut) | 5 à 10 min |
| Inventaire complet | results.json absent, ou /skill-stocktake full | 20 à 30 min |
Cache des résultats : ~/.claude/skills/skill-stocktake/results.json
Déroulement de l'Analyse rapide
Réévalue uniquement les compétences qui ont changé depuis la dernière exécution (5 à 10 min).
- Lire
~/.claude/skills/skill-stocktake/results.json - Exécuter :
bash ~/.claude/skills/skill-stocktake/scripts/quick-diff.sh \ ~/.claude/skills/skill-stocktake/results.json(Le répertoire du projet est détecté automatiquement à partir de$PWD/.claude/skills; ne le passez explicitement que si nécessaire) - Si la sortie est
[]: signaler « Aucun changement depuis la dernière exécution. » et s'arrêter - Réévaluer uniquement ces fichiers modifiés en utilisant les mêmes critères de la Phase 2
- Reporter les compétences inchangées des résultats précédents
- Afficher uniquement le diff
- Exécuter :
bash ~/.claude/skills/skill-stocktake/scripts/save-results.sh \ ~/.claude/skills/skill-stocktake/results.json <<< "$EVAL_RESULTS"
Déroulement de l'Inventaire complet
Phase 1 — Inventaire
Exécuter : bash ~/.claude/skills/skill-stocktake/scripts/scan.sh
Le script énumère les fichiers de compétences, extrait le frontmatter et collecte les dates de modification UTC.
Le répertoire du projet est détecté automatiquement à partir de $PWD/.claude/skills ; ne le passez explicitement que si nécessaire.
Afficher le résumé du scan et le tableau d'inventaire issus de la sortie du script :
Scan :
✓ ~/.claude/skills/ (17 fichiers)
✗ {cwd}/.claude/skills/ (non trouvé — compétences globales uniquement)
| Compétence | Utilisation 7j | Utilisation 30j | Description |
|---|
Phase 2 — Évaluation qualité
Lancer un sous-agent d'outil Agent (agent généraliste) avec l'inventaire complet et la liste de contrôle :
Agent(
subagent_type="general-purpose",
prompt="
Évaluer l'inventaire de compétences suivant par rapport à la liste de contrôle.
[INVENTAIRE]
[LISTE DE CONTRÔLE]
Retourner du JSON pour chaque compétence :
{ "verdict": "Conserver"|"Améliorer"|"Mettre à jour"|"Retirer"|"Fusionner dans [X]", "raison": "..." }
"
)
Le sous-agent lit chaque compétence, applique la liste de contrôle et retourne du JSON par compétence :
{ "verdict": "Conserver"|"Améliorer"|"Mettre à jour"|"Retirer"|"Fusionner dans [X]", "raison": "..." }
Conseil de segmentation : Traiter environ 20 compétences par invocation de sous-agent pour garder le contexte gérable. Sauvegarder les résultats intermédiaires dans results.json (status: "in_progress") après chaque segment.
Une fois toutes les compétences évaluées : définir status: "completed", passer à la Phase 3.
Détection de reprise : Si status: "in_progress" est trouvé au démarrage, reprendre à partir de la première compétence non évaluée.
Chaque compétence est évaluée selon cette liste de contrôle :
- [ ] Vérifier le chevauchement de contenu avec d'autres compétences
- [ ] Vérifier le chevauchement avec MEMORY.md / CLAUDE.md
- [ ] Vérifier l'actualité des références techniques (utiliser WebSearch si des noms d'outils / indicateurs CLI / API sont présents)
- [ ] Tenir compte de la fréquence d'utilisation
Critères de verdict :
| Verdict | Signification |
|---|---|
| Conserver | Utile et à jour |
| Améliorer | Vaut la peine d'être conservé, mais des améliorations spécifiques sont nécessaires |
| Mettre à jour | La technologie référencée est obsolète (vérifier avec WebSearch) |
| Retirer | Faible qualité, obsolète ou coût asymétrique |
| Fusionner dans [X] | Chevauchement important avec une autre compétence ; nommer la cible de fusion |
L'évaluation est un jugement holistique IA — pas une grille numérique. Dimensions directrices :
- Actionnabilité : exemples de code, commandes ou étapes qui permettent d'agir immédiatement
- Pertinence du périmètre : nom, déclencheur et contenu alignés ; ni trop large ni trop étroit
- Unicité : valeur non remplaçable par MEMORY.md / CLAUDE.md / une autre compétence
- Actualité : les références techniques fonctionnent dans l'environnement actuel
Exigences de qualité de la raison — le champ raison doit être autonome et permettre la décision :
- Ne PAS écrire « inchangé » seul — toujours reformuler la preuve centrale
- Pour Retirer : indiquer (1) quel défaut spécifique a été trouvé, (2) ce qui couvre le même besoin à la place
- Mauvais :
"Remplacé" - Bon :
"disable-model-invocation: true déjà défini ; remplacé par continuous-learning-v2 qui couvre tous les mêmes motifs plus le scoring de confiance. Aucun contenu unique restant."
- Mauvais :
- Pour Fusionner : nommer la cible et décrire le contenu à intégrer
- Mauvais :
"Chevauchement avec X" - Bon :
"Contenu mince de 42 lignes ; l'étape 4 de chatlog-to-article couvre déjà le même workflow. Intégrer l'astuce 'angle d'article' comme note dans cette compétence."
- Mauvais :
- Pour Améliorer : décrire le changement spécifique nécessaire (quelle section, quelle action, taille cible si pertinente)
- Mauvais :
"Trop long" - Bon :
"276 lignes ; la section 'Comparaison de frameworks' (L80–140) duplique ai-era-architecture-principles ; la supprimer pour atteindre environ 150 lignes."
- Mauvais :
- Pour Conserver (changement de date uniquement dans Analyse rapide) : reformuler la justification du verdict original, ne pas écrire « inchangé »
- Mauvais :
"Inchangé" - Bon :
"Date modifiée mais contenu inchangé. Référence Python unique importée explicitement par rules/python/ ; aucun chevauchement trouvé."
- Mauvais :
Phase 3 — Tableau récapitulatif
| Compétence | Utilisation 7j | Verdict | Raison |
|---|
Phase 4 — Consolidation
- Retirer / Fusionner : présenter une justification détaillée par fichier avant de confirmer avec l'utilisateur :
- Quel problème spécifique a été trouvé (chevauchlement, obsolescence, références cassées, etc.)
- Quelle alternative couvre la même fonctionnalité (pour Retirer : quelle compétence/règle existante ; pour Fusionner : le fichier cible et quel contenu intégrer)
- Impact de la suppression (compétences dépendantes, références MEMORY.md ou workflows affectés)
- Améliorer : présenter des suggestions d'amélioration spécifiques avec justification :
- Quoi changer et pourquoi (par exemple, « réduire de 430 à 200 lignes car les sections X/Y dupliquent python-patterns »)
- L'utilisateur décide d'agir ou non
- Mettre à jour : présenter le contenu mis à jour avec les sources vérifiées
- Vérifier le nombre de lignes de MEMORY.md ; proposer une compression si >100 lignes
Schéma du fichier de résultats
~/.claude/skills/skill-stocktake/results.json :
evaluated_at : Doit être défini à l'heure UTC réelle de fin d'évaluation.
Obtenir via Bash : date -u +%Y-%m-%dT%H:%M:%SZ. Ne jamais utiliser une approximation de date uniquement comme T00:00:00Z.
{
"evaluated_at": "2026-02-21T10:00:00Z",
"mode": "full",
"batch_progress": {
"total": 80,
"evaluated": 80,
"status": "completed"
},
"skills": {
"skill-name": {
"path": "~/.claude/skills/skill-name/SKILL.md",
"verdict": "Conserver",
"reason": "Valeur concrète, actionnable et unique pour le workflow X",
"mtime": "2026-01-15T08:30:00Z"
}
}
}
Remarques
- L'évaluation est aveugle : la même liste de contrôle s'applique à toutes les compétences, quelle que soit leur origine (ECC, auto-rédigées, extraites automatiquement)
- Les opérations d'archivage / suppression nécessitent toujours une confirmation explicite de l'utilisateur
- Aucun branchement de verdict par origine de compétence