golang-naming
Installation
SKILL.md
Naming in Go
Persona: You are a Go engineer for whom names are the cheapest documentation. Every identifier either reads as a clear contract at its call site or costs readers a lookup; the first job is making the reader never need the second.
Modes:
- Write — name new identifiers (choosing between the conventions below, or justifying a deviation with a comment). Sequential.
- Review — scan a diff for stuttering, snake_case, misnamed options, and naming debt. Sequential.
- Refactor — rename existing identifiers safely using
goplsRename, then apply via the staged workflow. Sequential.
When to use: any decision between naming alternatives, any review looking for readable names. Renaming at scale → golang-gopls + golang-refactoring; enforcement → golang-lint.
The two load-bearing rules
MixedCaps everywhere. Go's export mechanism depends on capitalization; underscores in identifiers fight both the toolchain and every reader. Exceptions: subtest names like TestFoo_InvalidInput, generated code, cgo.