Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .quality.exs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
warnings_as_errors: true
],

# Check-mode, not reformat-mode (sui-b5y, fleet-wide decision 2026-08-22):
# a gate that rewrites drifting files cannot report drift as a finding, so
# in CI unformatted code would pass instead of going red. Drift fails the
# stage; run `mix format` yourself before committing.
format: [
check: true
],

credo: [
strict: true
],
Expand Down
7 changes: 4 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,9 +128,10 @@ mix test # tests only
```

Run `mix quality --profile loop` between edits; full `mix quality` must be green
before any commit. The gate formats your code for you - do not run `mix format`
as a separate step. See the ExQuality section at the end of this file for the
rules the gate expects you to follow.
before any commit. The format stage runs in check mode (`format: [check: true]`
in `.quality.exs`, sui-b5y): drift fails the gate and nothing is rewritten, so
run `mix format` yourself before committing. See the ExQuality section at the
end of this file for the rules the gate expects you to follow.

Toolchain lives in `mise.toml`, and it is deliberately thin: no JRE (the Saxon
corpus transform is statifier-ex's), no Node (the JavaScript ships as source and
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ defmodule StatifierUI.MixProject do
{:phoenix_live_view, "~> 1.0", optional: true},

# Dev / test
{:ex_quality, "~> 0.13", only: :dev, runtime: false},
{:ex_quality, "~> 0.14", only: :dev, runtime: false},
{:credo, "~> 1.7", only: [:dev, :test], runtime: false},
{:dialyxir, "~> 1.4", only: [:dev, :test], runtime: false},
{:excoveralls, "~> 0.18", only: :test},
Expand Down
2 changes: 1 addition & 1 deletion mix.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"earmark_parser": {:hex, :earmark_parser, "1.4.46", "67607a0532e810c6f630a515c548d0b24949643f168cc556303bee4cf96105c7", [:mix], [], "hexpm", "9c44636e8a1c68c62f526b2dcd85d941dbbcee7ab82cf64ba06ce28bef8e89f5"},
"erlex": {:hex, :erlex, "0.2.9", "7debbbaa9f4f368b8cd648983e0f1d7963028508e9c59e9d4ed504e94ef52a55", [:mix], [], "hexpm", "8cfffc0ec7159e6d73de2ab28a588064de80f88b2798d5cbe4482cbbc200178b"},
"ex_doc": {:hex, :ex_doc, "0.40.3", "4a972ffe64bc07dc605af487e98fc19b72a4185f55ca031b94c0552d6071c1d9", [:mix], [{:earmark_parser, "~> 1.4.44", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_c, ">= 0.1.0", [hex: :makeup_c, repo: "hexpm", optional: true]}, {:makeup_elixir, "~> 0.14 or ~> 1.0", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1 or ~> 1.0", [hex: :makeup_erlang, repo: "hexpm", optional: false]}, {:makeup_html, ">= 0.1.0", [hex: :makeup_html, repo: "hexpm", optional: true]}], "hexpm", "2756e357742fecd9749b489b85d67c9ce99c465f2e75728d9e6dc8d704b973de"},
"ex_quality": {:hex, :ex_quality, "0.13.0", "dbe2dc02d40d7c6007d1808e677fbef34db1d1370f4814d10c6b8e46bae4cc43", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "8dfc1df8b2fe5dcfff6073cd60303a09a2745a47e6b91143db32e72949dab0d2"},
"ex_quality": {:hex, :ex_quality, "0.14.0", "702ed122c85c1d1f1dca2efab60871884e9ba6aefc492f334da51a8175543cc6", [:mix], [{:jason, "~> 1.4", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "ac8553e6b7a6a35ada03ef748530db2c5871d69427d74a634fd37afdeabf7e24"},
"excoveralls": {:hex, :excoveralls, "0.18.5", "e229d0a65982613332ec30f07940038fe451a2e5b29bce2a5022165f0c9b157e", [:mix], [{:castore, "~> 1.0", [hex: :castore, repo: "hexpm", optional: true]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "523fe8a15603f86d64852aab2abe8ddbd78e68579c8525ae765facc5eae01562"},
"file_system": {:hex, :file_system, "1.1.1", "31864f4685b0148f25bd3fbef2b1228457c0c89024ad67f7a81a3ffbc0bbad3a", [:mix], [], "hexpm", "7a15ff97dfe526aeefb090a7a9d3d03aa907e100e262a0f8f7746b78f8f87a5d"},
"jason": {:hex, :jason, "1.4.5", "2e3a008590b0b8d7388c20293e9dcc9cf3e5d642fd2a114e4cbbb52e595d940a", [:mix], [{:decimal, "~> 1.0 or ~> 2.0 or ~> 3.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "b0c823996102bcd0239b3c2444eb00409b72f6a140c1950bc8b457d836b30684"},
Expand Down
Loading