Que fait skill-stocktake (inventaire des compétences) ?
Commande slash (/skill-stocktake) qui audite toutes les compétences et commandes Claude à l'aide d'une checklist de qualité et d'un jugement holistique par 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 au niveau du projet (si le répertoire existe) |
Au début de la Phase 1, la commande liste explicitement les chemins trouvés et analysés.
Cibler un projet spécifique
Pour inclure les compétences du 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
Flux 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 depuis$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 arrêter - Réévaluer uniquement ces fichiers modifiés en utilisant les mêmes critères de la Phase 2
- Conserver 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"
Flux 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 depuis $PWD/.claude/skills ; ne le passez explicitement que si nécessaire.
Afficher le résumé de l'analyse et le tableau d'inventaire à partir de la sortie du script :
Analyse :
✓ ~/.claude/skills/ (17 fichiers)
✗ {cwd}/.claude/skills/ (non trouvé — compétences globales uniquement)
| Compétence | Utilisation 7j | Utilisation 30j | Description |
|---|
Phase 2 — Évaluation de la qualité
Lancer un sous-agent de l'outil Agent (agent à usage général) avec l'inventaire complet et la checklist :
Agent(
subagent_type="general-purpose",
prompt="
Évaluez l'inventaire de compétences suivant par rapport à la checklist.
[INVENTAIRE]
[CHECKLIST]
Retournez du JSON pour chaque compétence :
{ "verdict": "Conserver"|"Améliorer"|"Mettre à jour"|"Retirer"|"Fusionner dans [X]", "reason": "..." }
"
)
Le sous-agent lit chaque compétence, applique la checklist et retourne du JSON par compétence :
{ "verdict": "Conserver"|"Améliorer"|"Mettre à jour"|"Retirer"|"Fusionner dans [X]", "reason": "..." }
Recommandation de découpage : Traiter ~20 compétences par invocation de sous-agent pour garder le contexte gérable. Enregistrer les résultats intermédiaires dans results.json (status: "in_progress") après chaque lot.
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 checklist :
- [ ] Chevauchement de contenu avec d'autres compétences vérifié
- [ ] Chevauchement avec MEMORY.md / CLAUDE.md vérifié
- [ ] Fraîcheur des références techniques vérifiée (utiliser WebSearch si des noms d'outils / indicateurs CLI / API sont présents)
- [ ] Fréquence d'utilisation prise en compte
Critères de verdict :
| Verdict | Signification |
|---|---|
| Conserver | Utile et à jour |
| Améliorer | Mérite 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 de l'IA — pas une grille numérique. Dimensions directrices :
- Actionnabilité : exemples de code, commandes ou étapes qui permettent d'agir immédiatement
- Adéquation du périmètre : nom, déclencheur et contenu sont alignés ; pas trop large ou 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é du champ reason — le champ reason doit être autonome et permettre la prise de décision :
- Ne PAS écrire "inchangé" seul — toujours reformuler la preuve principale
- 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 schémas plus le scoring de confiance. Aucun contenu unique ne subsiste."
- Mauvais :
- Pour Fusionner : nommer la cible et décrire le contenu à intégrer
- Mauvais :
"Chevauchement avec X" - Bon :
"Contenu fin de 42 lignes ; l'étape 4 de chatlog-to-article couvre déjà le même workflow. Intégrer le conseil 'angle d'article' comme une note dans cette compétence."
- Mauvais :
- Pour Améliorer : décrire le changement spécifique nécessaire (quelle section, quelle action, taille cible si pertinent)
- Mauvais :
"Trop long" - Bon :
"276 lignes ; la section 'Comparaison de frameworks' (L80–140) duplique ai-era-architecture-principles ; la supprimer pour atteindre ~150 lignes."
- Mauvais :
- Pour Conserver (changement de date uniquement dans l'Analyse rapide) : reformuler la justification du verdict original, ne pas écrire "inchangé"
- Mauvais :
"Inchangé" - Bon :
"Date de modification mise à jour 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é (chevauchement, 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 le contenu à intégrer)
- Impact de la suppression (éventuelles compétences dépendantes, références dans MEMORY.md, ou workflows affectés)
- Améliorer : présenter des suggestions d'amélioration spécifiques avec leur justification :
- Quoi changer et pourquoi (par exemple, "réduire 430→200 lignes car les sections X/Y dupliquent python-patterns")
- L'utilisateur décide s'il agit
- 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 la fin de l'évaluation.
Obtenez-la via Bash : date -u +%Y-%m-%dT%H:%M:%SZ. N'utilisez jamais d'approximation uniquement de date 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 checklist s'applique à toutes les compétences, quelle que soit leur origine (ECC, auto-rédigée, extraite automatiquement)
- Les opérations d'archivage / suppression exigent toujours une confirmation explicite de l'utilisateur
- Pas de bifurcation de verdict selon l'origine de la compétence