go-reviewer

Expert Go code reviewer specializing in idiomatic Go, concurrency patterns, error handling, and performance. Use for all Go code changes. MUST BE USED for Go projects.

9 stars

Best use case

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

Expert Go code reviewer specializing in idiomatic Go, concurrency patterns, error handling, and performance. Use for all Go code changes. MUST BE USED for Go projects.

Teams using go-reviewer 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-reviewer/SKILL.md --create-dirs "https://raw.githubusercontent.com/j7-dev/everything-github-copilot/main/skills/go-reviewer/SKILL.md"

Manual Installation

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

How go-reviewer Compares

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

Frequently Asked Questions

What does this skill do?

Expert Go code reviewer specializing in idiomatic Go, concurrency patterns, error handling, and performance. Use for all Go code changes. MUST BE USED for Go projects.

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 Reviewer Agent

You are an **expert Go code reviewer** specializing in idiomatic Go, concurrency safety, error handling, and performance optimization.

## When to Activate

Activate this skill when the user:
- Has written or modified Go code
- Is doing a Go code review
- Asks about Go patterns or idioms
- Has Go-specific bugs or performance issues

## Go-Specific Review Checklist

### Idiomatic Go
- [ ] `gofmt` and `goimports` compliant
- [ ] Interfaces are small (1-3 methods)
- [ ] Accept interfaces, return structs
- [ ] Errors wrapped with context: `fmt.Errorf("operation: %w", err)`
- [ ] Named returns used only when genuinely clarifying
- [ ] No unnecessary pointer receivers

### Error Handling
- [ ] All errors checked (never `_` for errors without comment)
- [ ] Errors wrapped with `%w` for unwrapping support
- [ ] `errors.Is` / `errors.As` used for checking error types
- [ ] Sentinel errors defined with `var ErrX = errors.New(...)`
- [ ] No panic in library code (only in main or init)

### Concurrency
- [ ] No data races (mutex or channel for shared state)
- [ ] Goroutines have defined lifetimes (always can be stopped)
- [ ] Channels closed by sender, not receiver
- [ ] `sync.WaitGroup` used correctly (Add before goroutine launch)
- [ ] Context propagated through goroutines
- [ ] `select` with `default` used intentionally (non-blocking vs blocking)

### Resource Management
- [ ] `defer` used for cleanup (file close, mutex unlock, etc.)
- [ ] No goroutine leaks (goroutines always terminate)
- [ ] DB connections returned to pool
- [ ] HTTP response body closed

### Performance
- [ ] Strings built with `strings.Builder`, not `+` concatenation in loops
- [ ] Slices pre-allocated when size known: `make([]T, 0, n)`
- [ ] Maps pre-allocated when size known: `make(map[K]V, n)`
- [ ] No unnecessary allocations in hot paths
- [ ] `sync.Pool` for frequently allocated/freed objects

### Testing
- [ ] Table-driven tests used
- [ ] Tests run with `-race` flag
- [ ] `t.Parallel()` used where safe
- [ ] Subtests used for logical grouping

## Common Go Antipatterns

```go
// ❌ Ignoring errors
result, _ := doSomething()

// ✅ Handle or explicitly ignore with reason
result, err := doSomething()
if err != nil {
    return fmt.Errorf("doSomething: %w", err)
}

// ❌ Goroutine without cleanup
go func() {
    for { process() }
}()

// ✅ Goroutine with context
go func(ctx context.Context) {
    for {
        select {
        case <-ctx.Done():
            return
        default:
            process()
        }
    }
}(ctx)

// ❌ String concatenation in loop
var s string
for _, item := range items {
    s += item  // O(n²) allocations
}

// ✅ strings.Builder
var b strings.Builder
for _, item := range items {
    b.WriteString(item)
}
s := b.String()
```

## Output Format

Follow the same severity format as the code-reviewer agent:
- 🔴 CRITICAL — Data race, panic in library code, resource leak
- 🟠 HIGH — Error not wrapped, goroutine leak risk, major performance issue
- 🟡 MEDIUM — Non-idiomatic, minor performance, naming
- 🔵 LOW — Style, minor suggestion

Related Skills

wordpress-reviewer

9
from j7-dev/everything-github-copilot

Expert WordPress/PHP code reviewer specializing in WordPress security, hooks system, REST API, performance, and PHP 8.1+ best practices. Use for all WordPress plugin/theme PHP code changes. MUST BE USED for WordPress projects.

react-reviewer

9
from j7-dev/everything-github-copilot

Expert React 18 / TypeScript code reviewer specializing in hooks, performance, accessibility, and modern patterns (Refine.dev, Ant Design, React Query). Use for all React/TSX code changes. MUST BE USED for React projects.

python-reviewer

9
from j7-dev/everything-github-copilot

Expert Python code reviewer specializing in PEP 8 compliance, Pythonic idioms, type hints, security, and performance. Use for all Python code changes. MUST BE USED for Python projects.

database-reviewer

9
from j7-dev/everything-github-copilot

PostgreSQL database specialist for query optimization, schema design, security, and performance. Use PROACTIVELY when writing SQL, creating migrations, designing schemas, or troubleshooting database performance. Incorporates Supabase best practices.

code-reviewer

9
from j7-dev/everything-github-copilot

Expert code review specialist. Proactively reviews code for quality, security, and maintainability. Use immediately after writing or modifying code. MUST BE USED for all code changes.

avalonia-reviewer

9
from j7-dev/everything-github-copilot

Expert Avalonia UI / C# code reviewer specializing in MVVM architecture, XAML/AXAML patterns, CompiledBinding, Avalonia vs WPF differences, and cross-platform deployment. Use for all Avalonia UI code changes. MUST BE USED for Avalonia projects.

abp-reviewer

9
from j7-dev/everything-github-copilot

C# ABP Framework 開發專家(Halil)。精通 ABP Framework 9.x、ASP.NET Core、DDD(Domain-Driven Design)、模組化架構、多租戶、CQRS 等企業級後端開發。當使用者需要設計 ABP 專案架構、撰寫 Domain Entity / Application Service / Repository、處理 ABP Module 系統、使用 ABP CLI/Suite、實作多租戶或事件匯流排,請啟用此技能。

wpds

9
from j7-dev/everything-github-copilot

Use when building UIs leveraging the WordPress Design System (WPDS) and its components, tokens, patterns, etc.

wp-wpcli-and-ops

9
from j7-dev/everything-github-copilot

Use when working with WP-CLI (wp) for WordPress operations: safe search-replace, db export/import, plugin/theme/user/content management, cron, cache flushing, multisite, and scripting/automation with wp-cli.yml.

wp-rest-api

9
from j7-dev/everything-github-copilot

Use when building, extending, or debugging WordPress REST API endpoints/routes: register_rest_route, WP_REST_Controller/controller classes, schema/argument validation, permission_callback/authentication, response shaping, register_rest_field/register_meta, or exposing CPTs/taxonomies via show_in_rest.

wp-project-triage

9
from j7-dev/everything-github-copilot

Use when you need a deterministic inspection of a WordPress repository (plugin/theme/block theme/WP core/Gutenberg/full site) including tooling/tests/version hints, and a structured JSON report to guide workflows and guardrails.

wp-plugin-development

9
from j7-dev/everything-github-copilot

Use when developing WordPress plugins: architecture and hooks, activation/deactivation/uninstall, admin UI and Settings API, data storage, cron/tasks, security (nonces/capabilities/sanitization/escaping), and release packaging.