Go development
Skill netresearch/go-development-skill/skills/go-development
Agent Skill: Enterprise Go development patterns - resilient services, testing | Claude Code compatible
npx -y skills add netresearch/go-development-skill --skill go-developmentAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when developing Go applications, implementing job schedulers or cron (netresearch/go-cron, ofelia), Docker API integrations, LDAP/AD clients, building resilient services with retry logic, setting up Go test suites (unit/integration/fuzz/mutation), or running golangci-lint.
The file declares its own license as (MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.1 KB, 865 tokens by cl100k_base, as published. Nobody here has run it
Go Development Patterns
Required Workflow
For reviews, invoke related skills: security-audit (OWASP), enterprise-readiness (OpenSSF/SLSA), github-project (branch protection).
Core Principles
Type Safety
- Avoid:
interface{}(useany),sync.Map, scattered type assertions, reflection - Prefer: Generics
[T any],errors.AsType[T](Go 1.26), concrete types - Run
go fix ./...after upgrades
Consistency
- One pattern per problem domain
- Match existing codebase patterns
- Refactor holistically or not at all
- Config precedence: defaults < config file < env vars < flags
Testing
- Build tags isolate test tiers: unit (default),
integration,e2e - Always use
t.Parallel(),t.Helper(), table-driven subtests - Use
log/slogdirectly -- never wrap it in custom Logger interfaces
Conventions
- Naming: ID, URL, HTTP (not Id, Url, Http) — not tool-enforced (ST1003 is off by default)
- Error wrapping:
fmt.Errorf("failed to process: %w", err)
References
Git hooks: ls lefthook.yml 2>/dev/null && lefthook install || echo "Add lefthook — see references/lefthook-template.md"
Load as needed:
| Reference | Purpose |
|---|---|
references/architecture.md | Package structure, state mutation completeness |
references/logging.md | Structured logging with log/slog, migration from logrus |
references/cron-scheduling.md | go-cron patterns: named jobs, runtime updates, resilience, bitmask parser options |
references/resilience.md | Pointer to go-cron's built-in retry/circuit-breaker/timeout wrappers |
references/docker.md | Docker client patterns, buffer pooling |
references/ldap.md | LDAP/Active Directory integration |
references/testing.md | Build tags, resource isolation, race and Fiber v2 gotchas |
references/linting.md | golangci-lint v2, staticcheck, code quality |
references/api-design.md | Enum/status defensive handling |
references/fuzz-testing.md | Go fuzzing patterns, security seeds |
references/contracts-and-invariants.md | Contracts, invariants, property tests |
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() |
references/dependencies.md | Upgrades: go get -u all, majors, build-set scoping |
references/lefthook-template.md | Ready-to-use lefthook.yml for Go project git hooks |
references/reusable-workflows.md | Reusable Actions workflow callers, permission propagation, release-gate outputs |
references/single-build-release.md | Single-build release: cross-compile once, reuse for release+container |
references/awesome-go-submission.md | awesome-go submission: CI-parsed PR body, entry format, name collisions |
Quality Gates
Run 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.
Contributing: Submit improvements to https://github.com/netresearch/go-development-skill
What ships with it: 22 files
154.9 KB alongside SKILL.md, 1 of them executable
evals/
- evals.json8.2 KB
references/
- api-design.md2.0 KB
- architecture.md1.8 KB
- awesome-go-submission.md7.2 KB
- contracts-and-invariants.md6.1 KB
- cron-scheduling.md10.2 KB
- dependencies.md3.4 KB
- docker.md11.1 KB
- fuzz-testing.md4.0 KB
- ldap.md19.1 KB
- lefthook-template.md2.3 KB
- linting.md14.2 KB
- logging.md10.1 KB
- makefile.md4.6 KB
- modernization.md7.1 KB
- mutation-testing.md6.6 KB
- resilience.md751 B
- reusable-workflows.md5.7 KB
- single-build-release.md13.2 KB
- testing.md8.7 KB
scripts/
- verify-go-project.shruns2.3 KB
- checkpoints.yaml6.2 KB