Elixir Development
Use this as the primary skill for existing general/backend Elixir work. Do not also load elixir-web unless the task genuinely spans substantial backend and UI work.
Default routing
- Runtime values, project APIs, dependencies, docs, processes, or typed data →
elixir_eval.
- Elixir code shape, search, or refactoring →
elixir_ast_search / elixir_ast_replace.
- Definitions, references, diagnostics, symbols, or code actions → LSP.
- Exact source reading or small textual edits → host
read / edit.
- Git, external CLIs, and final Mix gates → shell.
Do not shell out to run Elixir snippets, grep for syntax when an AST pattern fits, or web-search before checking docs loaded in the BEAM.
Eval targets: project is the dependencyless default without application startup; application starts the managed app; runtime attaches to PI_ELIXIR_NODE; bridge hosts helpers such as AST, CodeMap, Self, Q, and Docs.
Work in a narrow loop: inspect, make the smallest appropriate edit, verify narrowly, then run project format/test/CI gates. Use AST.diff(changed: true) before large textual diffs and CodeMap.reflect(changed: true) when Reach is available.
Lazy references
Do not preload all references. Read only when the trigger applies:
references/tool-routing.md — tool choice is unclear, or the task involves a broad structural search/refactor.
references/runtime-recipes.md — a concrete docs, OTP, Phoenix, Ecto, QuackDB, reload, or profiling recipe is needed.
references/package-release.md — before publishing/releasing a Hex package or creating package release artifacts.
Before adding test support, inspect and extend the project's existing cases, drivers, assertions, fakes, fixtures, and naming/path conventions rather than creating a parallel hierarchy.
1---2name: elixir3description: Existing Elixir application/library development and debugging. Use for .ex/.exs, Mix, OTP, Ecto, backend Phoenix, dependencies, docs, tests, or BEAM runtime state. Use elixir-web instead when the primary task is UI/LiveView/frontend work, and elixir-new-project instead for creation/bootstrap.4---56# Elixir Development78Use this as the primary skill for existing general/backend Elixir work. Do not also load `elixir-web` unless the task genuinely spans substantial backend and UI work.910## Default routing11121. Runtime values, project APIs, dependencies, docs, processes, or typed data → `elixir_eval`.132. Elixir code shape, search, or refactoring → `elixir_ast_search` / `elixir_ast_replace`.143. Definitions, references, diagnostics, symbols, or code actions → LSP.154. Exact source reading or small textual edits → host `read` / `edit`.165. Git, external CLIs, and final Mix gates → shell.1718Do not shell out to run Elixir snippets, grep for syntax when an AST pattern fits, or web-search before checking docs loaded in the BEAM.1920Eval targets: `project` is the dependencyless default without application startup; `application` starts the managed app; `runtime` attaches to `PI_ELIXIR_NODE`; `bridge` hosts helpers such as `AST`, `CodeMap`, `Self`, `Q`, and `Docs`.2122Work in a narrow loop: inspect, make the smallest appropriate edit, verify narrowly, then run project format/test/CI gates. Use `AST.diff(changed: true)` before large textual diffs and `CodeMap.reflect(changed: true)` when Reach is available.2324## Lazy references2526Do **not** preload all references. Read only when the trigger applies:2728- `references/tool-routing.md` — tool choice is unclear, or the task involves a broad structural search/refactor.29- `references/runtime-recipes.md` — a concrete docs, OTP, Phoenix, Ecto, QuackDB, reload, or profiling recipe is needed.30- `references/package-release.md` — before publishing/releasing a Hex package or creating package release artifacts.3132Before adding test support, inspect and extend the project's existing cases, drivers, assertions, fakes, fixtures, and naming/path conventions rather than creating a parallel hierarchy.