{"id":"7b97412e-3388-4048-82e5-dbb2cce3bdae","shortId":"ctWfWF","kind":"skill","title":"go-development","tagline":"Use when developing Go applications, implementing job schedulers or cron, Docker API integrations, LDAP/AD clients, building resilient services with retry logic, setting up Go test suites (unit/integration/fuzz/mutation), running golangci-lint, or optimizing Go performance.","description":"# Go Development Patterns\n\n## When to Use\n\nGo services/CLIs, job scheduling, Docker API, LDAP/AD clients, resilience patterns, test suites.\n\n## Required Workflow\n\n**For reviews, invoke related skills:** security-audit (OWASP), enterprise-readiness (OpenSSF/SLSA), github-project (branch protection). A review is NOT complete until all are executed.\n\n## Core Principles\n\n### Type Safety\n\n- **Avoid:** `interface{}` (use `any`), `sync.Map`, scattered type assertions, reflection\n- **Prefer:** Generics `[T any]`, `errors.AsType[T]` (Go 1.26), concrete types\n- Run `go fix ./...` after upgrades\n\n### Consistency\n\n- One pattern per problem domain\n- Match existing codebase patterns\n- Refactor holistically or not at all\n- Config precedence: defaults < config file < env vars < flags\n\n### Testing\n\n- Build tags isolate test tiers: unit (default), `integration`, `e2e`\n- Always use `t.Parallel()`, `t.Helper()`, table-driven subtests\n- Use `log/slog` directly -- never wrap it in custom Logger interfaces\n\n### Conventions\n\n- Errors: lowercase, no punctuation (`errors.New(\"invalid input\")`)\n- Naming: ID, URL, HTTP (not Id, Url, Http)\n- Error wrapping: `fmt.Errorf(\"failed to process: %w\", err)`\n\n## References\n\nGit hooks: `ls lefthook.yml 2>/dev/null && lefthook install || echo \"Add lefthook — see references/lefthook-template.md\"`\n\nLoad as needed:\n\n| Reference | Purpose |\n|-----------|---------|\n| `references/architecture.md` | Package structure, config management, middleware chains |\n| `references/logging.md` | Structured logging with log/slog, migration from logrus |\n| `references/cron-scheduling.md` | go-cron patterns: named jobs, runtime updates, context, resilience |\n| `references/resilience.md` | Retry logic, graceful shutdown, context propagation |\n| `references/docker.md` | Docker client patterns, buffer pooling |\n| `references/ldap.md` | LDAP/Active Directory integration |\n| `references/testing.md` | Test strategies, build tags, table-driven tests |\n| `references/linting.md` | golangci-lint v2, staticcheck, code quality |\n| `references/api-design.md` | Bitmask options, functional options, builders |\n| `references/fuzz-testing.md` | Go fuzzing patterns, security seeds |\n| `references/mutation-testing.md` | Gremlins configuration, test quality measurement |\n| `references/makefile.md` | Standard Makefile interface for CI/CD |\n| `references/modernization.md` | Go 1.26 modernizers, `go fix`, `errors.AsType[T]`, `wg.Go()` |\n| `references/lefthook-template.md` | Ready-to-use lefthook.yml for Go project git hooks |\n| `references/reusable-workflows.md` | Reusable Actions workflow callers, permission propagation, release-gate outputs |\n| `references/single-build-release.md` | Single-build release: cross-compile once, reuse for release+container |\n\n## Quality Gates\n\nRun before completing any review:\n\n```bash\ngolangci-lint run --timeout 5m    # Linting\ngo vet ./...                       # Static analysis\nstaticcheck ./...                  # Additional checks\ngovulncheck ./...                  # Vulnerability scan\ngo test -race ./...                # Race detection\n```\n\n## Stdlib Vulnerability Fixes\n\nWhen `govulncheck` reports stdlib vulnerabilities: check fix version via `vuln.go.dev`, update `go X.Y.Z` in `go.mod`, run `go mod tidy`. Use PR branches for repos with branch protection.\n\n---\n\n> **Contributing:** Submit improvements to https://github.com/netresearch/go-development-skill","tags":["development","skill","netresearch","agent-skills","ai-agent","open-standard"],"capabilities":["skill","source-netresearch","skill-go-development","topic-agent-skills","topic-ai-agent","topic-open-standard"],"categories":["go-development-skill"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/netresearch/go-development-skill/go-development","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add netresearch/go-development-skill","source_repo":"https://github.com/netresearch/go-development-skill","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 6 github stars · SKILL.md body (3,417 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:14:23.738Z","embedding":null,"createdAt":"2026-05-18T13:22:00.724Z","updatedAt":"2026-05-18T19:14:23.738Z","lastSeenAt":"2026-05-18T19:14:23.738Z","tsv":"'/dev/null':196 '/netresearch/go-development-skill':403 '1.26':106,295 '2':195 '5m':350 'action':315 'add':200 'addit':357 'alway':148 'analysi':355 'api':15,50 'applic':8 'assert':97 'audit':66 'avoid':90 'bash':344 'bitmask':270 'branch':75,391,395 'buffer':246 'build':19,139,255,327 'builder':274 'caller':317 'chain':215 'check':358,375 'ci/cd':292 'client':18,52,244 'code':267 'codebas':122 'compil':331 'complet':81,341 'concret':107 'config':130,133,212 'configur':283 'consist':114 'contain':336 'context':233,240 'contribut':397 'convent':166 'core':86 'cron':13,227 'cross':330 'cross-compil':329 'custom':163 'default':132,145 'detect':366 'develop':3,6,40 'direct':158 'directori':250 'docker':14,49,243 'domain':119 'driven':154,259 'e2e':147 'echo':199 'enterpris':69 'enterprise-readi':68 'env':135 'err':189 'error':167,182 'errors.astype':103,299 'errors.new':171 'execut':85 'exist':121 'fail':185 'file':134 'fix':111,298,369,376 'flag':137 'fmt.errorf':184 'function':272 'fuzz':277 'gate':322,338 'generic':100 'git':191,311 'github':73 'github-project':72 'github.com':402 'github.com/netresearch/go-development-skill':401 'go':2,7,27,37,39,45,105,110,226,276,294,297,309,352,362,381,386 'go-cron':225 'go-develop':1 'go.mod':384 'golangci':33,263,346 'golangci-lint':32,262,345 'govulncheck':359,371 'grace':238 'gremlin':282 'holist':125 'hook':192,312 'http':177,181 'id':175,179 'implement':9 'improv':399 'input':173 'instal':198 'integr':16,146,251 'interfac':91,165,290 'invalid':172 'invok':61 'isol':141 'job':10,47,230 'ldap/active':249 'ldap/ad':17,51 'lefthook':197,201 'lefthook.yml':194,307 'lint':34,264,347,351 'load':204 'log':218 'log/slog':157,220 'logger':164 'logic':24,237 'logrus':223 'lowercas':168 'ls':193 'makefil':289 'manag':213 'match':120 'measur':286 'middlewar':214 'migrat':221 'mod':387 'modern':296 'name':174,229 'need':206 'never':159 'one':115 'openssf/slsa':71 'optim':36 'option':271,273 'output':323 'owasp':67 'packag':210 'pattern':41,54,116,123,228,245,278 'per':117 'perform':38 'permiss':318 'pool':247 'pr':390 'preced':131 'prefer':99 'principl':87 'problem':118 'process':187 'project':74,310 'propag':241,319 'protect':76,396 'punctuat':170 'purpos':208 'qualiti':268,285,337 'race':364,365 'readi':70,304 'ready-to-us':303 'refactor':124 'refer':190,207 'references/api-design.md':269 'references/architecture.md':209 'references/cron-scheduling.md':224 'references/docker.md':242 'references/fuzz-testing.md':275 'references/ldap.md':248 'references/lefthook-template.md':203,302 'references/linting.md':261 'references/logging.md':216 'references/makefile.md':287 'references/modernization.md':293 'references/mutation-testing.md':281 'references/resilience.md':235 'references/reusable-workflows.md':313 'references/single-build-release.md':324 'references/testing.md':252 'reflect':98 'relat':62 'releas':321,328,335 'release-g':320 'repo':393 'report':372 'requir':57 'resili':20,53,234 'retri':23,236 'reus':333 'reusabl':314 'review':60,78,343 'run':31,109,339,348,385 'runtim':231 'safeti':89 'scan':361 'scatter':95 'schedul':11,48 'secur':65,279 'security-audit':64 'see':202 'seed':280 'servic':21 'services/clis':46 'set':25 'shutdown':239 'singl':326 'single-build':325 'skill':63 'skill-go-development' 'source-netresearch' 'standard':288 'static':354 'staticcheck':266,356 'stdlib':367,373 'strategi':254 'structur':211,217 'submit':398 'subtest':155 'suit':29,56 'sync.map':94 't.helper':151 't.parallel':150 'tabl':153,258 'table-driven':152,257 'tag':140,256 'test':28,55,138,142,253,260,284,363 'tidi':388 'tier':143 'timeout':349 'topic-agent-skills' 'topic-ai-agent' 'topic-open-standard' 'type':88,96,108 'unit':144 'unit/integration/fuzz/mutation':30 'updat':232,380 'upgrad':113 'url':176,180 'use':4,44,92,149,156,306,389 'v2':265 'var':136 'version':377 'vet':353 'via':378 'vuln.go.dev':379 'vulner':360,368,374 'w':188 'wg.go':301 'workflow':58,316 'wrap':160,183 'x.y.z':382","prices":[{"id":"8f770f0e-6c8b-4d65-a51e-e5f495c1331b","listingId":"7b97412e-3388-4048-82e5-dbb2cce3bdae","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"netresearch","category":"go-development-skill","install_from":"skills.sh"},"createdAt":"2026-05-18T13:22:00.724Z"}],"sources":[{"listingId":"7b97412e-3388-4048-82e5-dbb2cce3bdae","source":"github","sourceId":"netresearch/go-development-skill/go-development","sourceUrl":"https://github.com/netresearch/go-development-skill/tree/main/skills/go-development","isPrimary":false,"firstSeenAt":"2026-05-18T13:22:00.724Z","lastSeenAt":"2026-05-18T19:14:23.738Z"}],"details":{"listingId":"7b97412e-3388-4048-82e5-dbb2cce3bdae","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"netresearch","slug":"go-development","github":{"repo":"netresearch/go-development-skill","stars":6,"topics":["agent-skills","ai-agent","open-standard"],"license":"other","html_url":"https://github.com/netresearch/go-development-skill","pushed_at":"2026-05-15T11:50:14Z","description":"Agent Skill: Enterprise Go development patterns - resilient services, testing | Claude Code compatible","skill_md_sha":"34c3718dc4fa134cfc2b292b8b1dd82b0c8e923c","skill_md_path":"skills/go-development/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/netresearch/go-development-skill/tree/main/skills/go-development"},"layout":"multi","source":"github","category":"go-development-skill","frontmatter":{"name":"go-development","license":"(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0","description":"Use when developing Go applications, implementing job schedulers or cron, Docker API integrations, LDAP/AD clients, building resilient services with retry logic, setting up Go test suites (unit/integration/fuzz/mutation), running golangci-lint, or optimizing Go performance.","compatibility":"Requires go 1.21+, golangci-lint, docker."},"skills_sh_url":"https://skills.sh/netresearch/go-development-skill/go-development"},"updatedAt":"2026-05-18T19:14:23.738Z"}}