ExHarness

One-command installer for an opinionated Elixir/Phoenix static-analysis suite, plus a mix harness.init whole-codebase audit (dialyzer + reach).

Installation

mix igniter.install ex_harness
mix harness.install
mix deps.get

Skip individual tools with --skip:

mix harness.install --skip makeup,makeup_elixir

Whole-codebase audit

mix harness.init               # dialyzer + reach, output to .harness/
mix harness.init --skip dialyzer
mix harness.init --quick       # reuse existing PLT

The audit writes .harness/audit-<timestamp>.md (and a latest.md copy) summarising dialyzer findings, reach taints, and dead code.

What gets installed

Library Role
credo Style / complexity / design lints
dialyxir Success-typing analysis
ex_dna Duplicate code detection
ex_slop File naming / docstring lints
boundary Compile-time module boundary enforcement
reach Program Dependence Graph (taint / dead code)
makeup + makeup_elixir Syntax highlighting for reach reports

mix harness.install also:

After installing

  1. mix deps.get
  2. mix dialyzer --plt (one-time PLT build, 30–60s)
  3. Add use Boundary to each top-level context — see the boundary docs.
  4. mix harness.init for the first audit.

License

MIT