Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
thebushidocollective avatar

Dialyzer Configuration

  • 1 installs
  • 186 repo stars
  • Updated July 19, 2026
  • thebushidocollective/han

Configure Dialyzer for Erlang/Elixir type checking, including ignore files, PLT settings, and mix.exs configuration.

About

Covers configuring Dialyzer static analysis for Erlang/Elixir with ignore files and mix settings. A developer uses it when setting up Dialyzer in an Elixir project.

  • Ignore-warning file setup
  • mix.exs Dialyzer configuration

Dialyzer Configuration by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #984 of 1,352 Code Review & Quality skills by installs in the Skillselion catalog
  • Data as of Aug 1, 2026 (Skillselion catalog sync)
npx skills add https://github.com/thebushidocollective/han --skill dialyzer-configuration

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
repo stars186
Last updatedJuly 19, 2026
Repositorythebushidocollective/han

What it does

Configure Dialyzer for Erlang/Elixir type checking, including ignore files, PLT settings, and mix.exs configuration.

Files

SKILL.mdMarkdownGitHub ↗

Dialyzer Configuration

Dialyzer is a static analysis tool for Erlang and Elixir that identifies software discrepancies such as type errors, unreachable code, and unnecessary tests.

Configuration Files

dialyzer.ignore-warnings

# Ignore specific warnings
lib/my_module.ex:42:pattern_match_cov

.dialyzer_ignore.exs

[
  {"lib/generated_code.ex", :no_return},
  {~r/lib\/legacy\/.*/, :unknown_function}
]

mix.exs Configuration

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

Common Configuration Options

PLT Management

  • plt_add_apps: Additional applications to include in PLT
  • plt_core_path: Directory for core PLT files
  • plt_file: Custom PLT file location
  • plt_add_deps: Include dependencies (:app_tree, :apps_direct, :transitive)

Analysis Flags

  • :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 functions

Filter Options

  • ignore_warnings: File with warning patterns to ignore
  • list_unused_filters: Show unused ignore patterns

Best Practices

1. Incremental PLT Building: Use project-specific PLTs to speed up analysis 2. Gradual Adoption: Start with subset of checks, expand over time 3. CI Integration: Run Dialyzer in continuous integration 4. Type Specs: Add comprehensive @spec annotations 5. Warning Management: Document intentional ignores

Common Patterns

Conditional Analysis

if Mix.env() in [:dev, :test] do
  {:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false}
end

Custom Check Script

#!/bin/bash
mix dialyzer --format github

GitHub Actions Integration

- name: Run Dialyzer
  run: mix dialyzer --format github

Related skills

Code Review & Qualitybackendtesting

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.