skills/go-development/SKILL.md
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.
npx skillsauth add netresearch/go-development-skill go-developmentInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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.
interface{} (use any), sync.Map, scattered type assertions, reflection[T any], errors.AsType[T] (Go 1.26), concrete typesgo fix ./... after upgradesintegration, e2et.Parallel(), t.Helper(), table-driven subtestslog/slog directly -- never wrap it in custom Logger interfaceserrors.New("invalid input"))fmt.Errorf("failed to process: %w", err)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, 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/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/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 |
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
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 PR branches for repos with branch protection.
Contributing: Submit improvements to https://github.com/netresearch/go-development-skill
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.