Skip to main content

Toolchain Consistency

Off by default (modules.toolchain = true to enable). Detects tools invoked in CI workflows, Makefiles, or shell scripts that are not declared in any reproducible manifest — the root cause of "works on my machine" CI failures. Prefix: TOOL-

What it scans

Invocation sources (read from repo root):

  • .github/workflows/*.yml / *.yaml
  • .gitlab-ci.yml
  • Makefile / GNUmakefile
  • Shell scripts (*.sh) at repo root

Declaration sources:

  • rust-toolchain.toml[toolchain] components
  • package.jsondevDependencies / dependencies
  • requirements-dev.txt, requirements.txt
  • pyproject.toml
  • tools.go, go.mod

Tracked tools

ToolEcosystemDeclare in
rustfmtRustrust-toolchain.toml components
clippyRustrust-toolchain.toml components
rust-analyzerRustrust-toolchain.toml components
cargo-auditRustpinned install step
eslintNode.jspackage.json devDependencies
prettierNode.jspackage.json devDependencies
tsc (TypeScript)Node.jspackage.json devDependencies
jestNode.jspackage.json devDependencies
vitestNode.jspackage.json devDependencies
ruffPythonrequirements-dev.txt or pyproject.toml
mypyPythonrequirements-dev.txt or pyproject.toml
blackPythonrequirements-dev.txt or pyproject.toml
pytestPythonrequirements-dev.txt or pyproject.toml
flake8Pythonrequirements-dev.txt or pyproject.toml
golangci-lintGotools.go
mockgenGotools.go

Example

# .github/workflows/ci.yml
- run: cargo clippy -- -D warnings # ← TOOL-001 if clippy not in rust-toolchain.toml
# rust-toolchain.toml — fix
[toolchain]
channel = "stable"
components = ["clippy", "rustfmt"]