From credo
Explains and fixes common Credo issues in Elixir code including module documentation, function complexity, pipe chains, and unused variables for consistency, design, readability, and refactoring.
How this skill is triggered — by the user, by Claude, or both
Slash command
/credo:credo-checksThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Understanding and fixing common Credo issues.
Understanding and fixing common Credo issues.
Ensure consistent code style across the project.
Identify design issues and anti-patterns.
Improve code readability and maintainability.
Highlight refactoring opportunities.
Catch potential bugs and issues.
# Issue: Missing module documentation
defmodule MyModule do
end
# Fixed
@moduledoc """
This module handles user authentication.
"""
defmodule MyModule do
end
# Issue: High cyclomatic complexity
def complex_function(x) do
if x > 10 do
if x < 20 do
if rem(x, 2) == 0 do
:even_mid
else
:odd_mid
end
else
:high
end
else
:low
end
end
# Fixed: Extract to separate functions
def classify_number(x) do
case {x > 10, x < 20, rem(x, 2) == 0} do
{false, _, _} -> :low
{true, false, _} -> :high
{true, true, true} -> :even_mid
{true, true, false} -> :odd_mid
end
end
# Issue: Single pipe
list |> Enum.map(&(&1 * 2))
# Fixed
Enum.map(list, &(&1 * 2))
# Issue
def process({:ok, result}, _context) do
result
end
# Fixed: Prefix with underscore
def process({:ok, result}, _context) do
result
end
npx claudepluginhub thebushidocollective/han --plugin credoCreates custom Credo checks for Elixir projects to enforce project-specific code quality rules, such as detecting hardcoded secrets. Guides configuration in .credo.exs.
Analyzes Elixir/Phoenix technical debt: duplicates, refactoring opportunities, Credo issues. Useful for code quality reviews, cleanup, or improvements.
Detects and refactors Elixir anti-patterns including comment overuse, complex with/else clauses, and messy function heads.