go-development

SKILL.md

Go Development Patterns

When to Use

  • Building Go services or CLI applications
  • Implementing job scheduling or task orchestration
  • Integrating with Docker API
  • Building LDAP/Active Directory clients
  • Designing resilient systems with retry logic
  • Setting up comprehensive test suites

Required Workflow

For comprehensive reviews, ALWAYS invoke these related skills:

  1. Security audit - Invoke /netresearch-skills-bundle:security-audit for OWASP analysis, vulnerability assessment, and security patterns
  2. Enterprise readiness - Invoke /netresearch-skills-bundle:enterprise-readiness for OpenSSF Scorecard, SLSA compliance, supply chain security
  3. GitHub project setup - Invoke /netresearch-skills-bundle:github-project for branch protection, rulesets, CI workflow validation

A Go development review is NOT complete until all related skills have been executed.

Core Principles

Type Safety

  • Avoid: interface{} (use any), sync.Map, scattered type assertions, reflection, errors.As with pre-declared variables
  • Prefer: Generics [T any], errors.AsType[T] (Go 1.26), concrete types, compile-time verification
  • Modernize: Run go fix ./... after Go upgrades to apply automated modernizers

Consistency

  • One pattern per problem domain
  • Match existing codebase patterns
  • Refactor holistically or not at all

Conventions

  • Errors: lowercase, no punctuation (errors.New("invalid input"))
  • Naming: ID, URL, HTTP (not Id, Url, Http)
  • Error wrapping: fmt.Errorf("failed to process: %w", err)

References

Load these as needed for detailed patterns and examples:

Reference Purpose
references/architecture.md Package structure, config management, middleware chains
references/logging.md Structured logging with log/slog, migration from logrus
references/cron-scheduling.md go-cron patterns: named jobs, runtime updates, context, resilience
references/resilience.md Retry logic, graceful shutdown, context propagation
references/docker.md Docker client patterns, buffer pooling
references/ldap.md LDAP/Active Directory integration
references/testing.md Test strategies, build tags, table-driven tests
references/linting.md golangci-lint v2, staticcheck, code quality
references/api-design.md Bitmask options, functional options, builders
references/fuzz-testing.md Go fuzzing patterns, security seeds
references/mutation-testing.md Gremlins configuration, test quality measurement
references/makefile.md Standard Makefile interface for CI/CD
references/modernization.md Go 1.26 modernizers, go fix, errors.AsType[T], wg.Go()

Quality Gates

Run these checks before completing any review:

golangci-lint run --timeout 5m    # Linting
go vet ./...                       # Static analysis
staticcheck ./...                  # Additional checks
govulncheck ./...                  # Vulnerability scan
go test -race ./...                # Race detection

Stdlib Vulnerability Fixes

When govulncheck reports stdlib vulnerabilities: check fix version via vuln.go.dev, update go X.Y.Z in go.mod, run go mod tidy. Use a PR branch for repos with branch protection.


Contributing: Submit improvements to https://github.com/netresearch/go-development-skill

Weekly Installs
3
GitHub Stars
5
First Seen
6 days ago
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
codex3