STOP. LISEZ CE SKILL.MD EN ENTIER AVANT D'APPELER UN ENDPOINT.
Que fait analyze-elf ?
Analysez les fonctionnalités de binaires ELF compilés. Pas un désassembleur — un extracteur de fonctionnalités qui répond à la question "que fait ce binaire ?"
Quand l'utiliser
- Comprendre ce que fait un outil CLI compilé (Bun SEA, Go, Rust, C/C++)
- Extraire les commandes CLI, les flags et le texte d'aide
- Reconstituer les machines d'état, les schémas de protocole et les types d'événements
- Cartographier les méthodes JSON-RPC et les modèles de données Zod
- Produire un rapport d'analyse (/create-walkthrough) avec des diagrammes Mermaid
Démarrage rapide
# Commande principale — extraire les fonctionnalités, générer le rapport
.pi/skills/analyze-elf/run.sh features /chemin/vers/binaire --goal "comprendre le système de missions"
# Avec analyse AST via /treesitter (plus lent, plus profond)
.pi/skills/analyze-elf/run.sh features /chemin/vers/binaire --ast --goal "trouver toutes les méthodes RPC"
# Sortie JSON pour usage programmatique
.pi/skills/analyze-elf/run.sh features /chemin/vers/binaire --output-format json
# Informations ELF de bas niveau (en-têtes, symboles, détection d'exécution)
.pi/skills/analyze-elf/run.sh elf /chemin/vers/binaire
# Extraction de chaînes avec regex
.pi/skills/analyze-elf/run.sh strings /chemin/vers/binaire --pattern "mission|worker"
Commandes
| Commande | Description |
|---|---|
features | Principale. Extraire les fonctionnalités → générer le rapport avec diagrammes Mermaid |
elf | Bas niveau : en-têtes, sections, symboles, détection d'exécution |
strings | Extraction de chaînes filtrées par regex |
Ce que features extrait
| Catégorie | Méthode | Exemple |
|---|---|---|
| Commandes CLI | Correspondance de motifs dans le texte d'aide | exec, daemon, mcp |
| Machines d'état | Motifs d'assignation d'énumération (M.State="value") | orchestrator_turn, paused |
| Types d'événements | Motifs KH.literal("type_name") | mission_accepted, worker_completed |
| Méthodes JSON-RPC | Motifs method: KH.literal("name") | droid.session_notification |
| Schémas Zod | Extraction de champs KH.object({...}) | Feature, WorkerHandoff, State |
| Paquets npm | "name": "pkg" dans package.json empaqueté | @grpc/grpc-js |
| Routes API | Littéraux de chemin /api/ et /v1/ | /api/auth/login |
| Classes/fonctions | AST via /treesitter (avec le flag --ast) | MissionRunner, spawnWorker |
Composition
/treesitter (analyse AST)
Lorsque --ast est passé, la compétence :
- Extrait les chaînes source JS depuis
.rodata - Filtre les lignes contenant du JS (motifs fonction/classe/import/Zod)
- Envoie les morceaux via
/treesitter parse --language javascript - Extrait les classes, fonctions et signatures de méthodes
/create-walkthrough (généré automatiquement)
La commande features produit un rapport d'analyse avec :
- Arbre de commandes CLI en Mermaid
- Diagrammes de machines d'état en Mermaid
- Taxonomie des types d'événements en Mermaid
- Tableaux de schémas avec les types de champs
- Évaluation des risques ("Ce qui pourrait mal tourner")
/create-figure
Des diagrammes de dépendances et de modules au format DOT sont disponibles via la commande elf pour être rendus via /create-figure.
Dépendances
pyelftools— analyse ELF structuréehttpx— appels API /scillmtyper— CLIloguru— journalisation- Système :
binutils(readelf, nm, strings)