using-elixir-skills
THIS IS NOT OPTIONAL. Skills tell you HOW to explore and WHAT to look for. You cannot rationalize your way out of this.
The Rule
Elixir/Phoenix/OTP task → Invoke skill FIRST → Then explore/research → Then write code
Skills come before exploration. The skills tell you what patterns to look for, what questions to ask, and what anti-patterns to avoid. Exploring without the skill means you don't know what you're looking for.
Skill Triggers
| Trigger Phrases | Skill to Invoke |
|---|---|
| code, implement, write, design, architecture, structure, pattern | elixir-thinking |
| LiveView, Plug, PubSub, mount, channel, socket, component | phoenix-thinking |
| context, schema, Ecto, changeset, preload, Repo, migration | ecto-thinking |
| GenServer, supervisor, Task, ETS, bottleneck, Broadway | otp-thinking |
| Oban, workflow, job queue, cascade, graft, background job, async job | oban-thinking |
Red Flags
These thoughts mean STOP—invoke the skill:
| Thought | Reality |
|---|---|
| "Let me explore the codebase first" | Skills tell you WHAT to look for. Invoke first. |
| "Let me understand the code first" | Skills guide understanding. Invoke first. |
| "But first, let me..." | No. Skills come first. Always. |
| "I'll add a process to organize this" | Processes are for runtime, not organization. |
| "GenServer is the Elixir way" | GenServer is a bottleneck by design. |
| "I'll query in mount" | mount is called twice. |
| "Task.async is simpler" | Use Task.Supervisor in production. |
| "I know Elixir well enough" | These skills contain paradigm shifts. Invoke them. |
More from georgeguimaraes/claude-code-elixir
elixir-thinking
This skill should be used when the user asks to "implement a feature in Elixir", "refactor this module", "should I use a GenServer here?", "how should I structure this?", "use the pipe operator", "add error handling", "make this concurrent", or mentions protocols, behaviours, pattern matching, with statements, comprehensions, structs, or coming from an OOP background. Contains paradigm-shifting insights.
21otp-thinking
This skill should be used when the user asks to "add background processing", "cache this data", "run this async", "handle concurrent requests", "manage state across requests", "process jobs from a queue", "this GenServer is slow", or mentions GenServer, Supervisor, Agent, Task, Registry, DynamicSupervisor, handle_call, handle_cast, supervision trees, fault tolerance, "let it crash", or choosing between Broadway and Oban.
16phoenix-thinking
This skill should be used when the user asks to "add a LiveView page", "create a form", "handle real-time updates", "broadcast changes to users", "add a new route", "create an API endpoint", "fix this LiveView bug", "why is mount called twice?", or mentions handle_event, handle_info, handle_params, mount, channels, controllers, components, assigns, sockets, or PubSub. Essential for avoiding duplicate queries in mount.
16oban-thinking
This skill should be used when the user asks to "add a background job", "process async", "schedule a task", "retry failed jobs", "add email sending", "run this later", "add a cron job", "unique jobs", "batch process", or mentions Oban, Oban Pro, workflows, job queues, cascades, grafting, recorded values, job args, or troubleshooting job failures.
15ecto-thinking
This skill should be used when the user asks to "add a database table", "create a new context", "query the database", "add a field to a schema", "validate form input", "fix N+1 queries", "preload this association", "separate these concerns", or mentions Repo, changesets, migrations, Ecto.Multi, has_many, belongs_to, transactions, query composition, or how contexts should talk to each other.
15