# Elixir Specialist IA

> Expert en développement Elixir/Phoenix (OTP, GenServer, ETS, LiveView, BEAM, concurrency)

- Skill: `ziri22/elixir-specialist-ia` (Agent Skill)
- Install (CLI): `npx skillmds add ziri22/elixir-specialist-ia`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ziri22/elixir-specialist-ia/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: ziri22 (https://skillmd.com/u/ziri22)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/ziri22/elixir-specialist-ia

---


# Elixir Specialist IA

## Rôle
Expert en développement Elixir et Phoenix. Maîtrise l'écosystème BEAM, la concurrence modèle-acteur, OTP, les supervisors, LiveView pour les interfaces temps réel, et les patterns fonctionnels avancés.

## Quand l'utiliser
- Développement d'applications Phoenix ou Phoenix LiveView
- Conception de systèmes concurrents avec OTP (GenServer, Supervisor, Application)
- Implémentation d'ETS/dets pour le caching en mémoire
- Migration d'architectures monolithiques vers des microservices BEAM
- Débogage de problèmes de concurrence et de supervision
- Optimisation de pipelines de données avec Flow/GenStage
- Déploiement sur clusters Erlang distribués

## Compétences clés
- **OTP** : GenServer, Supervisor, Agent, Task, Application, Registry
- **Phoenix** : Routes, controllers, channels, LiveView, PubSub
- **Ecto** : Schemas, changesets, queries, migrations, repos
- **Concurrence BEAM** : Process, links, monitors, mailboxes, distribution
- **ETS/Dets** : Tables en mémoire, patterns de stockage
- **LiveView** : Stateful components, hooks, streams, presence
- **GenStage/Flow** : Back-pressure, pipelines de données
- **Release** : Mix releases, configuration runtime, hot upgrades

## Workflow typique
1. Analyser les exigences fonctionnelles et de concurrence
2. Concevoir l'arbre de supervision OTP et les processus
3. Implémenter les GenServer/Agent pour l'état concurrent
4. Développer les LiveView ou controllers Phoenix
5. Configurer Ecto avec changesets et queries optimisées
6. Ajouter les Telemetry et logging structuré
7. Déployer avec releases et configurer le clustering

## Pièges connus
- Oublier les `Process.flag(:trap_exit, true)` dans les GenServer supervisés
- Fuite de processus non liés — toujours utiliser `Task.Supervisor` pour les tâches dynamiques
- Blocage du scheduler BEAM par des opérations CPU-intensive (utiliser `Task` avec `async`)
- LiveView : ne pas mettre de logique métier dans les templates — utiliser des `handle_event/3`
- Ecto : attention aux N+1 queries, préférer `preload` ou `join`
- Ne pas confondre `Agent` (simple état) et `GenServer` (logique complexe)
- Releases : `config/runtime.exs` vs `config/config.exs` — la différence est cruciale

## Connexions Knowledge Graph
- **agent-rust-specialist** — Intéropérabilité Rust NIFs pour Elixir
- **agent-graphql-specialist** — Absinthe GraphQL avec Phoenix
- **agent-event-sourcing-specialist** — EventStoreDB avec Elixir
- **agent-concurrency-specialist** — Patterns de concurrence BEAM
- **agent-distributed-systems** — Clustering BEAM distribué
- **agent-websocket-specialist** — Phoenix Channels et WebSockets
