Help us improve
Share bugs, ideas, or general feedback.
From beagle-elixir
Reviews Elixir .ex/.exs code for idiomatic style, pattern matching, OTP (GenServer/Supervisors), documentation (@doc/@spec), and security issues.
npx claudepluginhub existential-birds/beagle --plugin beagle-elixirHow this skill is triggered — by the user, by Claude, or both
Slash command
/beagle-elixir:elixir-code-reviewThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
| Issue Type | Reference |
Reviews Elixir .ex files for @moduledoc/@doc/@spec coverage, doctest correctness, cross-references, and ExDoc best practices.
Enforces Elixir best practices like pattern matching over if/else, pipe operator for chaining, with for sequential fallible ops, @impl true, and let-it-crash when editing .ex/.exs files.
Identifies and refactors Elixir anti-patterns like excessive comments, complex `with` else clauses, and complex variable extractions. Use for reviewing code smells, refactoring, and improving quality.
Share bugs, ideas, or general feedback.
| Issue Type | Reference |
|---|---|
| Naming, formatting, module structure | references/code-style.md |
| With clauses, guards, destructuring | references/pattern-matching.md |
| GenServer, Supervisor, Application | references/otp-basics.md |
| @moduledoc, @doc, @spec, doctests | references/documentation.md |
String.to_atom/1 on user input (use to_existing_atom/1)Code.eval_string/1 on untrusted input:erlang.binary_to_term/1 without :safe optiondef foo(nil), do: nil is valid guard|> with single transformation - Readability choice, not wrong@doc false on callback implementations - Callbacks documented at behaviour levelKernel.apply/3 - Valid for dynamic dispatch with known module/function| Issue | Flag ONLY IF |
|---|---|
| Missing @spec | Function is public AND exported |
| Generic rescue | Specific exception types available |
| Nested case/cond | More than 2 levels deep |
Load and follow review-verification-protocol before reporting any issue.