| name | go-development |
| description | Production-grade Go development patterns for building resilient services. Use when developing Go applications, implementing job schedulers, Docker integrations, LDAP clients, or needing patterns for resilience, testing, and performance optimization. By Netresearch. |
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:
- Security audit - Invoke
/netresearch-skills-bundle:security-auditfor OWASP analysis, vulnerability assessment, and security patterns - Enterprise readiness - Invoke
/netresearch-skills-bundle:enterprise-readinessfor OpenSSF Scorecard, SLSA compliance, supply chain security - GitHub project setup - Invoke
/netresearch-skills-bundle:github-projectfor 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{},sync.Map, scattered type assertions, reflection - Prefer: Generics
[T any], concrete types, compile-time verification
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/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 |
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
Contributing: Submit improvements to https://github.com/netresearch/go-development-skill