Squidie uses the standard mix precommit gate for required local verification.
The structural quality tools below are part of that gate and also run in CI.
Commands
Run both checks:
mix quality_gates
Run an individual check:
mix quality.ex_dna
mix quality.reach
mix quality.ex_dna runs ExDNA with a zero-clone budget over the default
project source scope:
mix ex_dna --min-mass 40 --max-clones 0 --format console
mix quality.reach runs Reach smell checks in strict mode:
mix reach.check --smells --strict
Tooling Baseline
The current package metadata was verified from Hex before adding these dependencies:
ex_dna,~> 1.5, dev/test only,runtime: falsereach,~> 2.7, dev/test only,runtime: false
Both tools are configured as strict gates. Keep generated HTML, JSON, SARIF, and cache output out of the repository unless a report is stable enough to review.
Rollout Policy
mix quality_gates must stay green. If either tool reports findings, fix the
cleanup in the same change that introduces or trips the gate, or split the
cleanup into a separate prerequisite PR before tightening the gate.
Use ExDNA suppression comments only for intentional duplication:
# ex_dna:disable-for-next-lineReach smell findings are strict failures in this repository. Keep fixes small and behavior-preserving, with focused tests when a cleanup changes runtime logic rather than expression shape.