Agent skill

golangci-lint

Configure and run golangci-lint

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/golangci-lint

SKILL.md

golangci-lint

Meta-linter that runs multiple linters in parallel.

Install

bash
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

Usage

bash
golangci-lint run
golangci-lint run ./...
golangci-lint run --fix

Basic Configuration

yaml
# .golangci.yml
run:
  timeout: 5m
  tests: true

linters:
  enable:
    - gofmt
    - govet
    - staticcheck
    - errcheck
    - gosimple
    - ineffassign
    - unused

linters-settings:
  errcheck:
    check-blank: true
  govet:
    check-shadowing: true

Recommended Linters

yaml
linters:
  enable:
    - gofmt       # Format check
    - govet       # Built-in analyzer
    - staticcheck # Comprehensive checks
    - errcheck    # Unchecked errors
    - gosimple    # Simplification
    - ineffassign # Ineffective assignments
    - unused      # Unused code
    - revive      # Fast configurable linter
    - gocyclo     # Cyclomatic complexity
    - misspell    # Spelling errors

Exclude Patterns

yaml
issues:
  exclude-rules:
    - path: _test\.go
      linters:
        - errcheck
        - gosec
    - text: "should have comment"
      linters:
        - revive

CI Integration

bash
# GitHub Actions
golangci-lint run --out-format=github-actions

# GitLab CI
golangci-lint run --out-format=code-climate > gl-code-quality-report.json

Common Fixes

errcheck: Unchecked Error

go
// Bad
file.Close()

// Good
defer file.Close()

gosimple: Redundant Code

go
// Bad
for i, _ := range items

// Good
for i := range items

ineffassign: Ineffective Assignment

go
// Bad
result := compute()
result = other()

// Good
result := other()

Performance Tuning

yaml
run:
  concurrency: 4
  deadline: 5m
  skip-dirs:
    - vendor
    - third_party

Didn't find tool you were looking for?

Be as detailed as possible for better results