See README.md for what this project is.
Prerequisites match .github/workflows/ci.yml —
currently OTP 29.0.2 / Elixir 1.20.2:
mix deps.get
mix test # fast suite; add --include integration for everythingCI runs these; they must be green:
mix ci # compile -Werror, format, credo --strict (ex_slop), audits, ex_dna, reach arch policy
mix dialyzer # type analysis (own CI job)mix precommit is the mutating convenience variant (formats instead of
checking format) for local use before committing.
- Branch off
main. - Keep changes focused; update
README.md(and other docs) in the same change when behavior/commands/structure move. - Get
mix ci+mix dialyzer+ tests green locally. - Open a PR against
mainwith a clear what/why.
Releases are automatic: a merged bump of version: in mix.exs creates the
matching v<version> GitHub release (see
.github/workflows/release.yml).
CI gates against low-quality (especially AI-generated) code; see
AGENTS.md for the full tooling guide. In short:
credo --strictwith the ex_slop plugin (LLM-pattern checks: blanket rescues, narrator comments, anti-idiomaticEnum, N+1)ex_dnaduplication ratchet — new clones fail CIreach.check --arch— the architecture policy in.reach.exs;--smells --strictfails on new structural smells vs the committed baseline- No explanatory comments — docs live in
@moduledoc/@doc/@spec
Don't disable a gate to get green; fix the code.