Agent Skills: Credo Checks

Use when understanding and fixing common Credo check issues for Elixir code quality and consistency.

UncategorizedID: TheBushidoCollective/han/credo-checks

Install this agent skill to your local

pnpm dlx add-skill https://github.com/TheBushidoCollective/han/tree/HEAD/plugins/validation/credo/skills/credo-checks

Skill Files

Browse the full folder contents for credo-checks.

Download Skill

Loading file tree…

plugins/validation/credo/skills/credo-checks/SKILL.md

Skill Metadata

Name
credo-checks
Description
Use when understanding and fixing common Credo check issues for Elixir code quality and consistency.

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