Lint go.mod
The Go versions in go.mod and in hack/tools/go.mod should be kept in sync. Once v1alpha2 is merged, this will also apply to the version of golangci-lint in hack/tools/go.mod and .github/workflows/lint.yml. When the versions diverge, we occasionally get weird failures with somewhat cryptic error messages.
This should be a job in the lint action that runs before the golangci job. It should also run in the lint make target. The job should run on all PRs and must run on dependabot PRs.
What about just using go get -tool ..... and have go maintain a tool section in the main go.mod file, instead of keeping hack/tools/go.mod around? I think that might be a bit more modern.