Back to Skills

dialyzer-integration

verified

Use when integrating Dialyzer into development workflows and CI/CD pipelines for Erlang/Elixir projects.

View on GitHub

Marketplace

han

TheBushidoCollective/han

Plugin

jutsu-dialyzer

Technique

Repository

TheBushidoCollective/han
60stars

jutsu/jutsu-dialyzer/skills/dialyzer-integration/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-dialyzer/skills/dialyzer-integration/SKILL.md -a claude-code --skill dialyzer-integration

Installation paths:

Claude
.claude/skills/dialyzer-integration/
Powered by add-skill CLI

Instructions

# Dialyzer Integration

Integrating Dialyzer into development workflow and CI/CD pipelines.

## Local Development

### Initial Setup

```bash
# Install dialyxir
mix deps.get

# Build initial PLT (takes time first run)
mix dialyzer --plt

# Run analysis
mix dialyzer
```

### Incremental Analysis

```bash
# Only analyze changed files
mix dialyzer --incremental

# Force rebuild PLT
mix dialyzer --clean
```

## CI/CD Integration

### GitHub Actions

```yaml
name: Dialyzer

on: [push, pull_request]

jobs:
  dialyzer:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3

      - name: Set up Elixir
        uses: erlef/setup-beam@v1
        with:
          elixir-version: '1.15'
          otp-version: '26'

      - name: Restore dependencies cache
        uses: actions/cache@v3
        with:
          path: deps
          key: ${{ runner.os }}-mix-${{ hashFiles('**/mix.lock') }}

      - name: Restore PLT cache
        uses: actions/cache@v3
        id: plt-cache
        with:
          path: priv/plts
          key: ${{ runner.os }}-plt-${{ hashFiles('**/mix.lock') }}

      - name: Install dependencies
        run: mix deps.get

      - name: Create PLTs
        if: steps.plt-cache.outputs.cache-hit != 'true'
        run: mix dialyzer --plt

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

### GitLab CI

```yaml
dialyzer:
  stage: test
  script:
    - mix local.hex --force
    - mix local.rebar --force
    - mix deps.get
    - mix dialyzer
  cache:
    paths:
      - _build/
      - deps/
      - priv/plts/
```

## IDE Integration

### VS Code (ElixirLS)

```json
{
  "elixirLS.dialyzerEnabled": true,
  "elixirLS.dialyzerFormat": "dialyxir_long",
  "elixirLS.dialyzerWarnOpts": [
    "error_handling",
    "underspecs",
    "unmatched_returns"
  ]
}
```

### Vim/Neovim (coc-elixir)

```json
{
  "elixir.dialyzer.enabled": true
}
```

## Pre-commit Hooks

### Using Husky/Lefthook

```yaml
# lefthook.yml
pre-commit:
  commands:
    

Validation Details

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