Installing and running unpinned latest tools creates mutable supply-chain execution risk
Source references: 4The installation metadata and project-tool examples use `@latest`, then instruct the agent to execute the downloaded programs through `go tool` or PATH. The same command can retrieve different code over time and cannot be predicted from a reviewed fixed version.
If an upstream release, account, or module delivery path is compromised or defective at installation time, code may run with the agent's file and environment access.
The skill actively installs `govulncheck@latest` and permits the agent to execute it. Its tool-pinning flow likewise resolves `@latest` before running the result with `go tool`. The initially selected code can therefore change over time and may be downloaded and executed before the user reviews a concrete version. Users can require an explicit version and review its source plus go.mod/go.sum changes before execution.
- govulncheck install: - kind: go package: golang.org/x/vuln/cmd/govulncheck@latest bins: [govulncheck]allowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(govulncheck:*) AskUserQuestionShow 3 other places
```bash# Add tools to the current module.go get -tool github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latestgo get -tool golang.org/x/vuln/cmd/govulncheck@latestgo get -tool golang.org/x/perf/cmd/benchstat@latest# Run pinned tools reproducibly.go tool golangci-lint run ./...go tool govulncheck ./...go tool benchstat old.txt new.txt bins: [govulncheck]allowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*) Bash(git:*) Agent Bash(govulncheck:*) AskUserQuestion---```bash# Add tools to the current module.go get -tool github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latestgo get -tool golang.org/x/vuln/cmd/govulncheck@latestgo get -tool golang.org/x/perf/cmd/benchstat@latest# Run pinned tools reproducibly.go tool golangci-lint run ./...go tool govulncheck ./...go tool benchstat old.txt new.txt