# Go Practices

> Go conventions for hexagonal architecture, project structure, error handling, testing, and observability. Use when writing Go services. Use when this capability is needed.

- Skill: `tomevault-io/go-practices` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add tomevault-io/go-practices`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomevault-io/go-practices/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomevault-io (https://skillmd.com/u/tomevault-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomevault-io/go-practices

---


# 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](references/rules.md) for complete conventions.

---
> Converted and distributed by [TomeVault](https://tomevault.io/claim/eser) — claim your Tome and manage your conversions.
<!-- tomevault:4.0:skill_md:2026-04-11 -->

