go-practices

Go conventions for hexagonal architecture, project structure, error handling, testing, and observability. Use when writing Go services.

$ Installer

git clone https://github.com/eser/stack /tmp/stack && cp -r /tmp/stack/.claude/skills/go-practices ~/.claude/skills/stack

// tip: Run this command in your terminal to install the skill


name: go-practices description: Go conventions for hexagonal architecture, project structure, error handling, testing, and observability. Use when writing Go services.

go-practices

Quick Start

  1. Follow hexagonal architecture: business logic in pkg/api/business/, adapters in pkg/api/adapters/
  2. Use snake_case for all Go files
  3. Wrap errors: fmt.Errorf("%w: %w", ErrSentinelError, err)
  4. Run tests with race detection: go test -race ./...

Key Principles

  • Business logic has NO external dependencies
  • All external interactions through interfaces
  • Composition via AppContext (composition root)
  • Table-driven tests with t.Parallel()
  • OpenTelemetry for observability

References

See rules.md for complete conventions.