go

Audit Go projects for formatting, error handling, and concurrency practices.

3|Updated Dec 22, 2025
One-click install
npx skills add https://github.com/JoaquinCampo/Skills --skill go-joaquincampo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: go
Source: https://github.com/JoaquinCampo/Skills/tree/main/go
Command: npx skills add https://github.com/JoaquinCampo/Skills --skill go-joaquincampo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Go engineering best practices and idioms to ensure code is explicit, boring, concrete, testable, and maintainable across Go projects.

Core Features & Use Cases

  • Standard library-first: prefer stdlib and only introduce dependencies when they meaningfully improve correctness or productivity.
  • Formatting & style: enforce gofmt by default; clear code layout; gofumpt optional for stricter formatting.
  • Testing & verification: use go test as the default test runner; encourage table-driven tests; race detection with -race.
  • Boundary validation: use context.Context for cancellation; explicit input validation at boundaries; small interfaces and boundary-scoped dependencies.
  • Error handling & observability: wrap errors with context using %w, use errors.Is / errors.As; structured logging with slog where meaningful.
  • Concurrency discipline: lifecycle-managed goroutines, use errgroup / WaitGroup; bounded concurrency when appropriate.
  • Maintenance & review: emphasize small APIs, explicit contracts, and documented review standards.

Quick Start

Audit your Go project against these guidelines and immediately align formatting, error handling, and concurrency practices.

Frequently Asked Questions about go

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I enforce Go best practices for error handling and concurrency?

Go best practices enforce wrapping errors with %w and using errors.Is / errors.As, while concurrency discipline requires lifecycle-managed goroutines and bounded concurrency using errgroup or WaitGroup.

What is the standard way to format and test Golang code?

The standard way to format Golang code is using gofmt by default, while testing relies on the go test runner with table-driven tests and race detection enabled via the -race flag.

How do I handle boundary validation and context usage in Go projects?

Boundary validation in Go projects uses context.Context for cancellation, demands explicit input validation at boundaries, and requires small interfaces with boundary-scoped dependencies to ensure testability.

Do I need external dependencies for standard Go engineering?

Standard Go engineering uses a standard library-first approach, preferring stdlib and only introducing external dependencies when they meaningfully improve correctness or productivity.

Why use staticcheck for maintaining Go codebases?

Staticcheck helps maintain Go codebases by aligning with review standards that emphasize small APIs, explicit contracts, and observable behavior through structured logging with slog to ensure maintainability.