Skill Idea Miner
Extrayez automatiquement des candidats d'idées de compétences à partir des journaux de sessions Claude Code, notez-les selon leur nouveauté, faisabilité et valeur d'échange, et maintenez un backlog priorisé pour la génération ultérieure de compétences.
Quand l'utiliser
- Exécution automatisée hebdomadaire du pipeline (samedi à 06:00 via launchd)
- Rafraîchissement manuel du backlog :
python3 scripts/run_skill_generation_pipeline.py --mode weekly - Simulation pour prévisualiser les candidats sans notation LLM
Prérequis
- Python 3.10+ avec le paquet
pyyaml - CLI Claude installé et authentifié (
claude --versionpour vérifier) - Journaux de sessions dans
~/.claude/projects/<projet>/(créés automatiquement par Claude Code) - Aucune clé API requise (utilise le CLI Claude pour les appels LLM)
Flux de travail
Démarrage rapide
# Simulation : prévisualiser les candidats minés sans notation LLM
python3 scripts/mine_session_logs.py --dry-run --output-dir reports/
# Minage complet avec notation (nécessite le CLI Claude)
python3 scripts/mine_session_logs.py --output-dir reports/
# Noter les candidats existants
python3 scripts/score_ideas.py \
--candidates reports/raw_candidates.yaml \
--output-dir logs/
Étape 1 : Minage des journaux de sessions
- Énumérer les journaux de sessions des projets autorisés dans
~/.claude/projects/ - Filtrer pour les 7 derniers jours par mtime du fichier, confirmer avec le champ
timestamp - Extraire les messages utilisateur (
type: "user",userType: "external") - Extraire les schémas d'utilisation d'outils à partir des messages de l'assistant
- Exécuter la détection de signaux déterministes :
- Fréquence d'utilisation des compétences (références
skills/*/dans les chemins) - Schémas d'erreur (codes de sortie non nuls, indicateurs
is_error, mots-clés d'exception) - Séquences d'outils répétitives (3+ outils répétés 3+ fois)
- Mots-clés de demande d'automatisation (anglais et japonais)
- Requêtes non résolues (intervalle de 5+ minutes après un message utilisateur)
- Fréquence d'utilisation des compétences (références
- Invoquer le CLI Claude en mode sans tête pour l'abstraction des idées
- Générer
raw_candidates.yaml
Étape 2 : Notation et déduplication
- Charger les compétences existantes depuis les métadonnées de
skills/*/SKILL.md - Dédupliquer via la similarité de Jaccard (seuil > 0.5) par rapport à :
- Noms et descriptions des compétences existantes
- Idées existantes dans le backlog
- Noter les candidats non dupliqués avec le CLI Claude :
- Nouveauté (0-100) : différenciation par rapport aux compétences existantes
- Faisabilité (0-100) : implémentabilité technique
- Valeur d'échange (0-100) : valeur pratique pour les investisseurs/traders
- Composite = 0,3 * Nouveauté + 0,3 * Faisabilité + 0,4 * Valeur d'échange
- Fusionner les candidats notés dans
logs/.skill_generation_backlog.yaml
Format de sortie
raw_candidates.yaml
generated_at_utc: "2026-03-08T06:00:00Z"
period: {from: "2026-03-01", to: "2026-03-07"}
projects_scanned: ["claude-trading-skills"]
sessions_scanned: 12
candidates:
- id: "raw_2026w10_001"
title: "Earnings Whispers Image Parser"
source_project: "claude-trading-skills"
evidence:
user_requests: ["Extract earnings dates from screenshot"]
pain_points: ["Manual image reading"]
frequency: 3
raw_description: "Parse Earnings Whispers screenshots to extract dates."
category: "data-extraction"
Backlog (logs/.skill_generation_backlog.yaml)
updated_at_utc: "2026-03-08T06:15:00Z"
ideas:
- id: "idea_2026w10_001"
title: "Earnings Whispers Image Parser"
description: "Skill that parses Earnings Whispers screenshots..."
category: "data-extraction"
scores: {novelty: 75, feasibility: 60, trading_value: 80, composite: 73}
status: "pending"
Ressources
references/idea_extraction_rubric.md— Critères de détection des signaux et grille de notationscripts/mine_session_logs.py— Analyseur de journaux de sessionsscripts/score_ideas.py— Noteur et déduplicateur