Back to skills
extension
Category: Development & EngineeringNo API key required

golang

Develop Go (Golang) applications using modern patterns, popular libraries, and idiomatic design. Activate when working with .go files, go.mod, go.sum, or user mentions Go, Golang, goroutines, channels, or Go libraries like gin, cobra, gorm.

personAuthor: jakexiaohubgithub

Golang Development Skill

Activation Triggers

  • Working with .go files, go.mod, go.sum, go.work
  • User mentions Go, Golang, or Go-specific terms
  • Questions about Go libraries, frameworks, or tooling
  • Concurrency patterns (goroutines, channels, context)

Workflow: Research-First Approach

Before implementing, gather context from authoritative sources:

# Context7 docs for repo-specific guidance
context7 docs /gin-gonic/gin "how to set up middleware"
context7 docs /uber-go/zap "structured logging setup"

# gh search code for real-world implementation examples
gh search code "ratelimit.New(" --language=go
gh search code "errgroup.WithContext(" --language=go

# For style/idiom questions
context7 docs /uber-go/guide "style guide patterns and idioms"

Notes

Repository routing table lives in reference.md.

CLI Quick Reference

Module Management

go mod init <module>       # Initialize module
go mod tidy                # Sync dependencies
go get <pkg>@latest        # Add/update dependency
go get <pkg>@v1.2.3        # Specific version
go mod download            # Download dependencies
go mod why <pkg>           # Why is pkg needed
go mod graph               # Dependency graph

Build & Run

go build ./...             # Build all packages
go run .                   # Run current package
go install ./cmd/...       # Install binaries
go generate ./...          # Run go:generate directives

Testing

go test ./...              # Run all tests
go test -v ./...           # Verbose output
go test -race ./...        # Race detector
go test -cover ./...       # Coverage summary
go test -coverprofile=c.out ./... && go tool cover -html=c.out  # Coverage HTML
go test -bench=. ./...     # Run benchmarks
go test -fuzz=FuzzXxx ./...  # Fuzz testing
go test -run=TestName      # Run specific test
go test -count=1           # Disable test caching

Linting (golangci-lint)

golangci-lint run          # Run all linters
golangci-lint run --fix    # Auto-fix issues
golangci-lint linters      # List available linters

Workspaces (multi-module)

go work init ./mod1 ./mod2 # Initialize workspace
go work use ./mod3         # Add module to workspace
go work sync               # Sync workspace

Other Tools

go fmt ./...               # Format code
go vet ./...               # Static analysis
go doc <pkg>               # View documentation
go env                     # Environment variables
go version                 # Go version

Files

  • reference.md - Go 1.24+ features, project layout, Uber style highlights
  • cookbook/testing.md - Table-driven tests, testify, mocking, benchmarks
  • cookbook/concurrency.md - Goroutines, channels, context, errgroup
  • cookbook/patterns.md - Functional options, DI, error handling