Status: Accepted (2026-07-04)
Date: 2026-07-04
Decision: the cross-repository development-environment convention is outcome-based, not tool-based: (1) the language toolchain is pinned by its native mechanism (go.mod toolchain directive, rust-toolchain.toml, uv, etc.); (2) the shared provenance toolbelt (gitsign/cosign, gh, test runners, linters) is declared in a committed environment config; (3) activation is documented in each repo’s CONTRIBUTING. Maintainer-driven repositories currently satisfy this with devbox + direnv (+ Taskfile for tasks). This is a project-operations convention, not normative for third-party implementations.
Rationale: the Go-specific friction that prompted evaluating mise dissolved on inspection (the install-failure bug was patched upstream; tool-reinstallation churn is resolved by the tools/go.mod + go tool pattern, which ADR-015 wants regardless). The surviving trade-off: mise minimizes external-contributor friction (single static binary, native Windows support where Nix is WSL-only, 2026 ubiquity, uniform CI action) and its case strengthens with each additional implementation repo; devbox maximizes current maintainer velocity (existing fluency and the devbox/direnv/Taskfile trio) and closure-level reproducibility — whose scheme-criticality ADR-015 deliberately removed. With zero external contributors and one pre-code repo, maintainer velocity dominates; ADR-015 makes the eventual switch an afternoon’s change rather than an architecture event.
Rejected: migrating to mise now (buys uniformity for an audience that does not yet exist, at the cost of velocity during the phase where maintainer speed is the project); hard-coding devbox as the permanent public convention (contradicts the contributor-friction priority implied by ADR-014’s obscurity-risk analysis); adopting mise’s task runner (collides with the established Taskfile convention).
Revisit trigger (explicit): the first external implementation repository, or the first contributor-reported environment-setup friction — at which point mise becomes the documented public convention without sentimentality.