go-code-review

Use when reviewing Go code or preparing code for review. Quick-reference checklist covering naming, error handling, concurrency, testing, imports, documentation, and common pitfalls. Based on Go Wiki CodeReviewComments.

6 stars

Best use case

go-code-review is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when reviewing Go code or preparing code for review. Quick-reference checklist covering naming, error handling, concurrency, testing, imports, documentation, and common pitfalls. Based on Go Wiki CodeReviewComments.

Teams using go-code-review should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/go-code-review/SKILL.md --create-dirs "https://raw.githubusercontent.com/saisudhir14/golang-agent-skill/main/skills/go-code-review/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/go-code-review/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How go-code-review Compares

Feature / Agentgo-code-reviewStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when reviewing Go code or preparing code for review. Quick-reference checklist covering naming, error handling, concurrency, testing, imports, documentation, and common pitfalls. Based on Go Wiki CodeReviewComments.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# Go Code Review Checklist

Quick-reference checklist for reviewing Go code. Each item links to deeper guidance in the parent skill.

## Naming

- [ ] MixedCaps used (no underscores)
- [ ] Initialisms are consistent case (URL, ID, HTTP)
- [ ] Variable names match scope (short for local, descriptive for global)
- [ ] Receiver names are 1-2 letters, consistent across methods
- [ ] Package names are lowercase single words, no util/common/misc
- [ ] No name repetition (package.Method, not package.PackageMethod)

## Error Handling

- [ ] Errors returned, not panicked (production code)
- [ ] Error wrapping uses `%w` or `%v` appropriately
- [ ] Error context is succinct (no "failed to" chains)
- [ ] Errors handled once (not logged AND returned)
- [ ] Error strings are lowercase, no trailing punctuation
- [ ] Happy path at minimal indentation (error-first)
- [ ] Sentinel errors use `Err` prefix, error types use `Error` suffix

## Concurrency

- [ ] Channel buffers are 0 or 1 (or justified)
- [ ] Goroutine lifetimes are documented
- [ ] errgroup used for error-returning goroutines
- [ ] Functions are synchronous unless concurrency is essential
- [ ] Mutexes are zero-value, unexported, not embedded in public structs
- [ ] Typed atomics used (Go 1.19+)

## Testing

- [ ] Table-driven tests with named subtests
- [ ] Subtests run in parallel where safe
- [ ] go-cmp used for struct comparisons
- [ ] Failure messages include input, got, want
- [ ] t.Fatal for setup errors, t.Error for test assertions
- [ ] Interfaces defined in consumer packages

## Imports

- [ ] Three groups: stdlib, external, internal
- [ ] No unnecessary renames
- [ ] No dot imports (except circular dep tests)
- [ ] Blank imports only in main/tests

## Structs

- [ ] Field names used in initialization (no positional)
- [ ] Zero value fields omitted
- [ ] Types not embedded in public structs
- [ ] JSON field tags on marshaled structs

## Slices and Maps

- [ ] Nil slices preferred over empty slices
- [ ] Copied at boundaries to prevent mutation
- [ ] Capacity preallocated when size is known
- [ ] Standard library slices/maps packages used

## Performance

- [ ] strconv used over fmt for conversions
- [ ] No repeated string-to-byte conversions
- [ ] Map and slice capacity preallocated
- [ ] strings.Builder used for concatenation

## Documentation

- [ ] Exported declarations have doc comments
- [ ] Comments are full sentences starting with declared name
- [ ] Package has package comment

## Patterns

- [ ] Functional options for complex constructors
- [ ] Interface compliance verified at compile time
- [ ] defer used for resource cleanup
- [ ] Context is first parameter
- [ ] No mutable globals (dependency injection instead)
- [ ] Type assertions use two-value form
- [ ] time.Duration used instead of raw integers
- [ ] Enums start at one (zero = invalid)

## Common Gotchas

- [ ] No loop variable capture bugs (Go 1.22+ or shadowed)
- [ ] Defer argument evaluation understood
- [ ] Nil interface vs nil pointer handled correctly
- [ ] Error checked before using result
- [ ] No map iteration order dependency
- [ ] Slice append backing array understood

Related Skills

go-testing

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or debugging Go tests and benchmarks. Covers table-driven tests, parallel execution, go-cmp, T.Context, T.Chdir, b.Loop, synctest for deterministic concurrency testing, and test failure messages.

go-security

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or auditing Go code for security. Covers input validation, SQL injection prevention, path traversal, secrets management, cryptography, HTTP security headers, and dependency scanning.

go-project-layout

6
from saisudhir14/golang-agent-skill

Use when starting a new Go project, organizing packages, or restructuring an existing Go codebase. Covers standard directory layout, package design, Makefile targets, Dockerfile patterns, and module setup.

go-performance

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or optimizing Go code for performance. Covers string operations, memory allocation, preallocating slices and maps, strings.Builder, strconv, container-aware GOMAXPROCS, and runtime considerations for Go 1.25.

go-linting

6
from saisudhir14/golang-agent-skill

Use when setting up linting, configuring golangci-lint, or fixing linter warnings in Go projects. Provides recommended linter sets, golangci-lint configuration, CI integration, and Makefile targets.

go-error-handling

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or debugging Go error handling code. Covers error wrapping, sentinel errors, custom error types, error joining, single handling, and error flow patterns. Based on Google and Uber style guides.

go-concurrency

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or debugging concurrent Go code. Covers goroutine lifecycle management, channels, errgroup, mutexes, atomics, sync.Map, and synchronous-first design. Based on Google and Uber style guides.

golang

6
from saisudhir14/golang-agent-skill

Use when writing, reviewing, or refactoring Go code. Provides production best practices for Go covering error handling, concurrency, naming, testing, performance, generics, iterators, and common pitfalls. Distilled from Google Go Style Guide, Uber Go Style Guide, Effective Go, and Go Code Review Comments. Updated for Go 1.25.

flutter-dart-code-review

144923
from affaan-m/everything-claude-code

库无关的Flutter/Dart代码审查清单,涵盖Widget最佳实践、状态管理模式(BLoC、Riverpod、Provider、GetX、MobX、Signals)、Dart惯用法、性能、可访问性、安全性和整洁架构。

DevelopmentClaude

security-review

144923
from affaan-m/everything-claude-code

Use this skill when adding authentication, handling user input, working with secrets, creating API endpoints, or implementing payment/sensitive features. Provides comprehensive security checklist and patterns.

SecurityClaude

addressing-pr-review-comments

44152
from streamlit/streamlit

Address all valid review comments on a PR for the current branch in the streamlit/streamlit repo. Covers both inline review comments and general PR (issue) comments. Use when a PR has reviewer feedback to address, including code changes, style fixes, and documentation updates.

Developer ToolsClaude

lightning-architecture-review

31392
from sickn33/antigravity-awesome-skills

Review Bitcoin Lightning Network protocol designs, compare channel factory approaches, and analyze Layer 2 scaling tradeoffs. Covers trust models, on-chain footprint, consensus requirements, HTLC/PTLC compatibility, liveness, and watchtower support.

Blockchain & Crypto AnalysisClaude