Agent Skills: Golang Language Standards

Core idioms, style guides, and best practices for writing idiomatic Go code. Use when writing Go code following official style guides and idiomatic patterns. (triggers: go.mod, golang, go code, idiomatic, gofmt, goimports, iota, golang style)

UncategorizedID: hoangnguyen0403/agent-skills-standard/golang-language

Install this agent skill to your local

pnpm dlx add-skill https://github.com/HoangNguyen0403/agent-skills-standard/tree/HEAD/skills/golang/golang-language

Skill Files

Browse the full folder contents for golang-language.

Download Skill

Loading file tree…

skills/golang/golang-language/SKILL.md

Skill Metadata

Name
golang-language
Description
'Core idioms, style guides, and best practices for writing idiomatic Go code. Use when writing Go code following official style guides and idiomatic patterns. (triggers: go.mod, golang, go code, idiomatic, gofmt, goimports, iota, golang style)'

Golang Language Standards

Priority: P0 (CRITICAL)

Guidelines

  • Formatting: Run gofmt or goimports on save. Use gopls for LSP features.
  • Naming: Use camelCase for internal (unexported) and PascalCase for public (exported) symbols.
  • Packages: Use short, lowercase, singular names (e.g., http, user). Avoid _ or camelCase in package names.
  • Interfaces: Small interfaces — 1-2 methods max. Define where used (consumer side), not where implemented.
  • Errors: Return error as the last return value. Handle errors immediately at the call-site.
  • Slices: Use make(slice, len, cap) to pre-allocate capacity and avoid redundant re-allocations.
  • Enums: Use a const block with iota for type-safe enumerations.
  • Zero Values: Leverage zero-value initialization over explicit nil checks where possible.

Anti-Patterns

  • No init: Use constructors (NewService()), not init(). (not init() — it runs implicitly and makes testing harder)
  • No Globals: Use DI, not global mutable state.
  • No panic: Return errors, don't panic.
  • No _ ignored errors: Always check and handle errors.
  • No stutter: log.Error, not log.LogError.

Verification Workflow (Mandatory)

After writing or modifying Go code:

  1. mcp__ide__getDiagnostics — catch compile errors and gopls type diagnostics immediately
  2. go vet ./... — catch common mistakes (printf mismatches, unreachable code, shadowed vars)
  3. goimports -w . — fix imports and formatting in one pass

References