gate: run the formatter and Go linters behind golangci-lint #768

Open
opened 2026-10-14 20:14:10 +00:00 by hexajon · 0 comments
Owner

What to build

  • gofmt and the Go linters the gate runs (vet, staticcheck, gosec, modernize)
    move behind golangci-lint, configured in one .golangci.yml. The config
    names every linter and its settings, so the config is the description.
  • Exclusions live in the config with a reason, never inline in the code
    (the ADR 0053 model holds).
  • The staticcheck export-data gap (#741) is resolved: either the bundled
    staticcheck decodes the current toolchain, or staticcheck stays a pinned step
    beside the config, and the config does not duplicate it.

Scope

  • Only the formatter and the Go linters move. govulncheck, osv-scanner, and the
    madtea-specific checks (docs-verify, adr-check, forge, conformance) stay as
    they are.

Acceptance

  • One .golangci.yml holds the formatter and linter set, and golangci-lint run passes clean on the tree.
  • No formatter or Go linter runs as its own ad-hoc gate step, except a kept
    staticcheck if the gap forces it, and that exception is recorded.
  • The gate output names golangci-lint and its result.

Part of #767. Relates to #741, #759.

## What to build - gofmt and the Go linters the gate runs (vet, staticcheck, gosec, modernize) move behind golangci-lint, configured in one `.golangci.yml`. The config names every linter and its settings, so the config is the description. - Exclusions live in the config with a reason, never inline in the code (the ADR 0053 model holds). - The staticcheck export-data gap (#741) is resolved: either the bundled staticcheck decodes the current toolchain, or staticcheck stays a pinned step beside the config, and the config does not duplicate it. ## Scope - Only the formatter and the Go linters move. govulncheck, osv-scanner, and the madtea-specific checks (docs-verify, adr-check, forge, conformance) stay as they are. ## Acceptance - One `.golangci.yml` holds the formatter and linter set, and `golangci-lint run` passes clean on the tree. - No formatter or Go linter runs as its own ad-hoc gate step, except a kept staticcheck if the gap forces it, and that exception is recorded. - The gate output names golangci-lint and its result. Part of #767. Relates to #741, #759.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
sixfold-space/madtea#768
No description provided.