Back to Skills

credo-checks

verified

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

View on GitHub

Marketplace

han

TheBushidoCollective/han

Plugin

jutsu-credo

Technique

Repository

TheBushidoCollective/han
60stars

jutsu/jutsu-credo/skills/credo-checks/SKILL.md

Last Verified

January 24, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/TheBushidoCollective/han/blob/main/jutsu/jutsu-credo/skills/credo-checks/SKILL.md -a claude-code --skill credo-checks

Installation paths:

Claude
.claude/skills/credo-checks/
Powered by add-skill CLI

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

```elixir
# Issue: Missing module documentation
defmodule MyModule do
end

# Fixed
@moduledoc """
This module handles user authentication.
"""
defmodule MyModule do
end
```

### Function Complexity

```elixir
# 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

```elixir
# Issue: Single pipe
list |> Enum.map(&(&1 * 2))

# Fixed
Enum.map(list, &(&1 * 2))
```

### Unused Variables

```elixir
# Issue
def process({:ok, result}, _context) do
  result
end

# Fixed: Prefix with underscore
def process({:ok, result}, _context) do
  result
end
```

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
1331 chars