
de han148
Guide les développeurs Gleam pour appeler des bibliothèques Erlang, déclarer des fonctions externes, gérer les types Erlang et s'intégrer à OTP, aux NIF et aux ports.
Cette compétence documente les modèles et les exemples pour permettre à Gleam d'interopérer en toute sécurité avec l'écosystème Erlang/BEAM. Elle explique comment déclarer des fonctions externes, décoder des types Erlang dynamiques, utiliser les bibliothèques standard Erlang (crypto, httpc, ets), les NIF et les ports, et s'intégrer aux superviseurs OTP et gen_server. Des extraits de code concrets montrent comment encapsuler les appels Erlang dans des fonctions Gleam typées et gérer les erreurs à la frontière.
Utilisez cette compétence lorsque votre code Gleam doit appeler des bibliothèques Erlang existantes ou des fonctionnalités de l'environnement d'exécution (timers, ETS, gen_server), lors de l'écriture de NIF ou de ports pour la performance ou des processus externes, ou lors du décodage/validation de termes Erlang dynamiques reçus d'autres services BEAM. Elle s'adresse aux développeurs Gleam créant des applications BEAM de production nécessitant une interopérabilité typée.
Probablement utile pour les assistants de codage et les agents de rédaction de code supportant la navigation dans les dépôts et l'édition sensible au langage (par exemple, Claude Code, Copilot/GitHub Copilot, agents de style Codex).
This is a knowledge/reference skill for Gleam-Erlang interoperability, covering external function declarations, Erlang stdlib usage, Dynamic type decoding, NIFs/ports, and OTP integration. No scripts were bundled — all content is inline code examples in the SKILL.md. The skill is well-written with comprehensive coverage and good error handling patterns, but is monolithic (no references/ or scripts/ directories) and targets a niche audience (Gleam developers needing Erlang interop).
Purely a reference/knowledge skill with no executable scripts. The os.cmd and httpc patterns are standard Erlang interop but represent risk vectors if adopted naively. Would benefit from splitting long content into references/ files and adding concrete runnable examples in scripts/.