Skillshub golang-language

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)

install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/HoangNguyen0403/agent-skills-standard/golang-language" ~/.claude/skills/comeonoliver-skillshub-golang-language && rm -rf "$T"
manifest: skills/HoangNguyen0403/agent-skills-standard/golang-language/SKILL.md
source content

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