ADR-0006 — Mill 1.1.7 rather than the 0.12.x named in the style guide

Context

SCALA_CODE_STYLE.md §Tooling pins Mill at 0.12.x. CLAUDE.md §Toolchain lists the commands the project actually uses:

mill mill.scalalib.scalafmt/
mill mill.scalalib.scalafmt/checkFormatAll
mill __.fix

Both of those forms belong to the Mill 1.x line: the external.module/task slash syntax and the built-in fix (Scalafix) task do not exist in 0.12, where formatting is mill.scalalib.scalafmt.ScalafmtModule/… and Scalafix requires the third-party joan38/mill-scalafix plugin.

The two documents cannot both be satisfied, and the commands are the more load-bearing statement — they are what every contributor and CI job will run.

Decision

Pin Mill 1.1.7 in .mill-version, with the official bootstrap script committed as ./mill so the version is reproducible without a global install.

Consequences

Note on .scalafmt.conf

project.git = true means Scalafmt only formats files Git already tracks. New files must be git add-ed before mill mill.scalalib.scalafmt/ will touch them, otherwise it fails with NoMatchingFiles. mill modules.__.reformat formats module sources regardless. This surprises everyone once.