credo-checks
Use when understanding and fixing common Credo check issues for Elixir code quality and consistency.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
Credo Checks
Understanding and fixing common Credo issues.
Check Categories
Consistency Checks
Ensure consistent code style across the project.
Design Checks
Identify design issues and anti-patterns.
Readability Checks
Improve code readability and maintainability.
Refactoring Checks
Highlight refactoring opportunities.
Warning Checks
Catch potential bugs and issues.
Common Issues
Module Documentation
# Issue: Missing module documentation
defmodule MyModule do
end
# Fixed
@moduledoc """
This module handles user authentication.
"""
defmodule MyModule do
end
Function Complexity
# 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
Pipe Chain
# Issue: Single pipe
list |> Enum.map(&(&1 * 2))
# Fixed
Enum.map(list, &(&1 * 2))
Unused Variables
# Issue
def process({:ok, result}, _context) do
result
end
# Fixed: Prefix with underscore
def process({:ok, result}, _context) do
result
end
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-01-20
- Index updated
- 2026-02-04
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!