Skip to main content

go-development

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.

소스 정보

저장소
netresearch/go-development-skill
최근 소스 활동
2026년 10월 23일 10:45
감지된 SKILL.md 언어
영어
스타
13
포크
2

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
24 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
go-development
description
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.
license
(MIT AND CC-BY-SA-4.0). See LICENSE-MIT and LICENSE-CC-BY-SA-4.0
compatibility
Requires go 1.21+, golangci-lint, docker.
metadata
{"author":"Netresearch DTT GmbH","version":"1.16.2","repository":"https://github.com/netresearch/go-development-skill"}
allowed-tools
Bash(go:*) Bash(make:*) Bash(docker:*) Bash(golangci-lint:*) Read Write Glob Grep
# Go Development Patterns ## Core Principles ### Type Safety - **Avoid:** `interface{}` (use `any`), `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/slog` directly -- 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 | | `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 gotchas | | `references/linting.md` | golangci-lint v2, staticcheck | | `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 fix` modernizers and their build-tag trap, `errors.AsType[T]`, `b.Loop` | | `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/branch-protection.md` | Ruleset watermark: three-ruleset gate, bypass modes | | `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, name collisions | ## Quality Gates Run before completing any review: ```bash 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
GitHub에서 보기