go-clean-architecture
Use when scaffolding or refactoring a Go service into a framework-agnostic clean (hexagonal) architecture: Domain, Usecase,…
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,
Claude Code
$ npx -y skills add muratmirgun/gophers --skill go-code-review --agent claude-code
Codex
$ npx skills add muratmirgun/gophers --skill go-code-review -a codex -y
Cursor
$ npx skills add muratmirgun/gophers --skill go-code-review -a cursor -y
Gemini CLI
$ npx skills add muratmirgun/gophers --skill go-code-review -a gemini-cli -y
GitHub Copilot
$ npx skills add muratmirgun/gophers --skill go-code-review -a github-copilot -y
OpenCode
$ npx skills add muratmirgun/gophers --skill go-code-review -a opencode -y
Windsurf
$ npx skills add muratmirgun/gophers --skill go-code-review -a windsurf -y
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.
Use when scaffolding or refactoring a Go service into a framework-agnostic clean (hexagonal) architecture: Domain, Usecase,…
Use when writing or reviewing Go code for clarity, formatting, control flow, variable declarations, switch usage, and function…
Use when writing or reviewing concurrent Go code — goroutines, channels, select, mutexes, atomics, errgroup, singleflight, worker…
Use when designing, propagating, or debugging context.Context flow in Go — first-parameter placement, deadlines and cancellation,…
Use when writing conditionals, loops, switches, type switches, or blank-identifier patterns in Go. Covers if-with-initialization,…
Use when choosing or operating on Go slices, maps, arrays, strings, or container/* types — including slice internals, capacity…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.