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:
- 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{}(useany),sync.Map, scattered type assertions, reflection,errors.Aswith 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
Repository
netresearch/go-…nt-skillGitHub Stars
5
First Seen
6 days ago
Security Audits
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
codex3