mix tack.quality (pica v0.1.0)

Copy Markdown View Source

The pre-commit quality gate, run as one command — the project's mix quality alias.

mix quality            # locally: every step, formatting the tree first
mix quality --check    # CI: the same steps minus the formatting write

Each step is its own mix subprocess with an explicit MIX_ENV where it needs one, so the env never flips mid-gate (mix test builds in :test, the rest in :dev — separate _build dirs, warmed by the compile steps first). It stops at the first failing step and exits non-zero, so the failing step's output is the last thing printed and a ❌ … FAILED banner is the final line — legible even if the run is (wrongly) piped through tail.

Run it bare — never pipe it through tail, head or grep. A pipe hides the failing step's output and, worse, makes the shell report the pipe's exit status (0), masking the gate's non-zero failure. To iterate on one check, run that single mix task directly.

The steps come from the quality_steps project key in mix.exs; see Tack.Quality for the shape, and the project's CLAUDE.md for what each step is for.