elixir-conventions
Elixir code conventions covering Elixir 1.14+/OTP 25+, pattern matching, mix format, Credo/Dialyzer, ExUnit, ExDoc, OTP process patterns, and dependency security. Load when writing or reviewing Elixir
SKILL.mdinternal/builtins/languages/elixir/skills/elixir-conventions/SKILL.md
GitHub- Elixir 1.14+ OTP 25+, pattern matching extensively,
mix formatnon-negotiable. - Configure
.formatter.exswith:inputsand:import_depsfor consistent formatting across team. - Linting: a linter (e.g., Credo
--strict), type checking: Dialyzer (viadialyxir). - Security:
mix_auditfor dependency CVE scanning, a SAST tool (e.g., Sobelow) for static analysis. Run both in CI. - Testing: ExUnit with
describeblocks,doctestfor examples, a coverage tool (e.g., excoveralls) at 80%+. - Documentation: ExDoc for generation,
@moduledocon all modules,@doc+@specon public functions. {:ok, value}/{:error, reason}tuples — never raise for expected errors.withfor multi-step ops, guard clauses for function overloading.- OTP: GenServer for state, Supervisor for fault tolerance,
|>pipe for transforms. - Dependencies: commit
mix.lock,hexwith~>constraints. - Anti-patterns: mutable state outside processes, long-running NIFs,
String.to_atomwith user input.