go-clean-architecture
Use when scaffolding or refactoring a Go service into a framework-agnostic clean (hexagonal) architecture: Domain, Usecase, Repository, Delivery layers, inward…
Invoke this skill to systematically review a Go change against community style standards before merging. Walks the diff topic by topic — formatting, errors, naming, concurrency, interfaces, data structures, security, declarations, functions, style, logging, imports, generics,
$ npx -y skills add muratmirgun/gophers --skill go-code-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/go-code-reviewContext preview
The summary Claude sees to decide when to auto-load this skill.
Invoke this skill to systematically review a Go change against community style standards before merging. Walks the diff topic by topic — formatting, errors, naming, concurrency, interfaces, data structures, security, declarations, functions, style, logging, imports, generics,
name: go-code-review description: "Invoke this skill to systematically review a Go change against community style standards before merging. Walks the diff topic by topic — formatting, errors, naming, concurrency, interfaces, data structures, security, declarations, functions, style, logging, imports, generics, testing — flagging issues with line references and severity (must-fix / should-fix / nit). Apply proactively before any Go PR ships." license: MIT compatibility: "Designed for Claude Code or similar AI coding agents. Examples assume Go 1.21+ for log/slog references." allowed-tools: Read Edit Write Glob Grep Bash(go:*) Bash(golangci-lint:*)
A repeatable, opinionated review pass for Go code. Read the diff file by file, walk each topic in order, flag findings with file:line references, then group by severity.
1. **Mechanical checks first.** Never start a human review until `gofmt`, `go vet`, and `golangci-lint` are clean. They free your attention for what tools cannot catch. 2. **One file at a time, topic by topic.** Walk the diff in order and apply each topic checklist below. Switching topics mid-file loses the thread. 3. **Every finding cites a rule.** `file:line` plus the rule name (`go-naming: initialisms`) — never a bare opinion. 4. **Severity is non-negotiable.** Must-Fix (correctness/security/data-loss/broken contract) blocks merge; Should-Fix (significant design or style issue); Nit (small preference, flag once). 5. **Drop what you cannot defend.** After flagging, re-read and remove any finding you would not stand behind in a thread. 6. **Praise non-trivial improvements.** A review without acknowledgement teaches only avoidance.
1. Run mechanical checks: `gofmt -d ./...`, `go vet ./...`, `golangci-lint run ./...`, `go test ./... -race -short`. 2. Read the diff one file at a time. For each file, walk the topic checklists below in order. 3. Flag every issue with `file:line` and the rule name that justifies it. 4. After all files are reviewed, re-read flagged items and drop any you cannot justify. 5. Group findings by **Must Fix / Should Fix / Nit** using the rubric below.
> Use [references/review-template.md](references/review-template.md) when writing up the review for consistent severity grouping and tone.
gofmt -l ./... && go vet ./... && golangci-lint run ./... && go test ./... -race -short
Fix anything the tools find before continuing. See [go-linting](../go-linting/SKILL.md) for setup.
See [go-documentation](../go-documentation/SKILL.md).
See [go-error-handling](../go-error-handling/SKILL.md).
See [go-naming](../go-naming/SKILL.md) and [go-packages](../go-packages/SKILL.md).
See [go-declarations](../go-declarations/SKILL.md).
See [go-control-flow](../go-control-flow/SKILL.md).
See [go-functions](../go-functions/SKILL.md).
See [go-interfaces](../go-interfaces/SKILL.md).
Example to flag (`pkg/worker/worker.go:42`):
go s.process(req) // ✗ no ctx, no done signal — leak on shutdown
vs. acceptable:
s.wg.Add(1)
go func() { defer s.wg.Done(); s.process(ctx, req) }()See [go-concurrency](../go-concurrency/SKILL.md).
26 production-grade Go skills for Claude Code, Gemini CLI, and opencode. Battle-tested patterns from the Go community — codified as triggerable AI skills.
Repo: muratmirgun/gophers
Use when scaffolding or refactoring a Go service into a framework-agnostic clean (hexagonal) architecture: Domain, Usecase, Repository, Delivery layers, inward…
Use when writing or reviewing Go code for clarity, formatting, control flow, variable declarations, switch usage, and function design. Covers the priority…
Use when writing or reviewing concurrent Go code — goroutines, channels, select, mutexes, atomics, errgroup, singleflight, worker pools, or fan-out/fan-in…
Use when designing, propagating, or debugging context.Context flow in Go — first-parameter placement, deadlines and cancellation, request-scoped values,…
Use when writing conditionals, loops, switches, type switches, or blank-identifier patterns in Go. Covers if-with-initialization, guard clauses, early returns,…
Use when choosing or operating on Go slices, maps, arrays, strings, or container/* types — including slice internals, capacity growth, preallocation, map…