From credo
Creates custom Credo checks for Elixir projects to enforce project-specific code quality rules, such as detecting hardcoded secrets. Guides configuration in .credo.exs.
How this skill is triggered — by the user, by Claude, or both
Slash command
/credo:credo-custom-checksThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Creating custom Credo checks for project-specific rules.
Creating custom Credo checks for project-specific rules.
defmodule MyApp.Credo.Check.NoHardcodedSecrets do
use Credo.Check,
category: :warning,
base_priority: :high,
explanations: [
check: """
Detects hardcoded secrets in code.
"""
]
@impl true
def run(%SourceFile{} = source_file, params) do
issue_meta = IssueMeta.for(source_file, params)
Credo.Code.prewalk(source_file, &traverse(&1, &2, issue_meta))
end
defp traverse(
{:@, _, [{:secret_key, _, [value]}]} = ast,
issues,
issue_meta
)
when is_binary(value) do
new_issue = issue_for(issue_meta, value)
{ast, [new_issue | issues]}
end
defp traverse(ast, issues, _issue_meta) do
{ast, issues}
end
defp issue_for(issue_meta, value) do
format_issue(
issue_meta,
message: "Hardcoded secret found: #{String.slice(value, 0..5)}...",
trigger: value
)
end
end
# .credo.exs
%{
configs: [
%{
name: "default",
requires: ["./lib/my_app/credo/check/*.ex"],
checks: %{
enabled: [
{MyApp.Credo.Check.NoHardcodedSecrets, []}
]
}
}
]
}
npx claudepluginhub thebushidocollective/han --plugin credoExplains and fixes common Credo issues in Elixir code including module documentation, function complexity, pipe chains, and unused variables for consistency, design, readability, and refactoring.
Analyzes Elixir/Phoenix technical debt: duplicates, refactoring opportunities, Credo issues. Useful for code quality reviews, cleanup, or improvements.
Provides a structured code review checklist covering correctness, security, performance, and maintainability. Activates when reviewing pull requests, code audits, or identifying vulnerabilities.