version: "2" # Config schema uses the golangci-lint v2 layout (settings live under # linters.settings, not top-level linters-settings) so that the # thresholds below are actually applied by golangci-lint >= v2. run: timeout: 5m modules-download-mode: readonly linters: default: all disable: # Genuinely incompatible with project patterns - exhaustruct # Requires all struct fields - depguard # Dependency allow/block lists - godot # Requires comments to end with periods - wsl # Deprecated, replaced by wsl_v5 - wrapcheck # Too verbose for internal packages - varnamelen # Short names like db, id are idiomatic Go settings: lll: line-length: 88 funlen: lines: 80 statements: 50 cyclop: max-complexity: 15 dupl: threshold: 100 issues: max-issues-per-linter: 0 max-same-issues: 0