From dialyzer
Guides Dialyzer setup for Erlang/Elixir static analysis, including mix.exs config, PLTs, flags, ignore warnings, best practices, and GitHub Actions integration.
npx claudepluginhub thebushidocollective/han --plugin dialyzerThis skill cannot use any tools. It operates in read-only mode without the ability to modify files or execute commands.
Dialyzer is a static analysis tool for Erlang and Elixir that identifies software discrepancies such as type errors, unreachable code, and unnecessary tests.
Guides Dialyzer integration for Elixir projects: local/incremental analysis, CI/CD (GitHub Actions/GitLab), IDEs (VS Code/Vim), pre-commit hooks, shared PLTs.
Creates custom Credo checks for Elixir projects to enforce project-specific code quality rules, such as detecting hardcoded secrets. Guides configuration in .credo.exs.
Reviews Elixir .ex/.exs code for idiomatic style, pattern matching, OTP (GenServer/Supervisors), documentation (@doc/@spec), and security issues.
Share bugs, ideas, or general feedback.
Dialyzer is a static analysis tool for Erlang and Elixir that identifies software discrepancies such as type errors, unreachable code, and unnecessary tests.
# Ignore specific warnings
lib/my_module.ex:42:pattern_match_cov
[
{"lib/generated_code.ex", :no_return},
{~r/lib\/legacy\/.*/, :unknown_function}
]
def project do
[
app: :my_app,
dialyzer: [
plt_add_apps: [:mix, :ex_unit],
plt_core_path: "priv/plts",
plt_file: {:no_warn, "priv/plts/dialyzer.plt"},
flags: [:error_handling, :underspecs, :unmatched_returns],
ignore_warnings: ".dialyzer_ignore.exs",
list_unused_filters: true
]
]
end
plt_add_apps: Additional applications to include in PLTplt_core_path: Directory for core PLT filesplt_file: Custom PLT file locationplt_add_deps: Include dependencies (:app_tree, :apps_direct, :transitive):error_handling - Check error handling:underspecs - Warn on under-specified functions:unmatched_returns - Warn on unmatched return values:unknown - Warn on unknown functions/types:overspecs - Warn on over-specified functionsignore_warnings: File with warning patterns to ignorelist_unused_filters: Show unused ignore patternsif Mix.env() in [:dev, :test] do
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
end
#!/bin/bash
mix dialyzer --format github
- name: Run Dialyzer
run: mix dialyzer --format github