Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and subtest names. Use this skill when writing new Go code, reviewing or refactoring, choosing between naming alternatives (New vs NewTypeName, isConnected vs connected, ErrNotFound vs NotFoundError, StatusReady vs StatusUnknown at iota 0), debating Go package names (utils/helpers anti-patterns), or asking about Go naming best practices. Also trigger when the user mentions MixedCaps vs snake_case, ALL_CAPS constants, Get-prefix on getters, or error string casing. Do NOT use for general Go implementation questions that don't involve naming decisions.
93
92%
Does it follow best practices?
Impact
97%
1.22xAverage score across 3 eval scenarios
Passed
No known issues
Go project directory structure and file naming
Hyphenated dir package name
100%
100%
Hyphenated service package name
50%
50%
cmd/ uses package main
100%
100%
File names lowercase underscores
100%
100%
No Struct/Object/Data suffix
100%
100%
Struct names MixedCaps nouns
100%
100%
Package names lowercase single word
100%
100%
No generic package names
100%
100%
Package names singular
100%
100%
Directory matches package
75%
75%
No stutter in types
62%
100%
layout.txt present
100%
100%
Go test naming conventions
Test function prefix
100%
100%
Subtest names lowercase
60%
100%
Acronyms lowercase in test names
30%
100%
Table fields named input/expected
0%
66%
Test helper must prefix
100%
100%
Subtest method name suffix
100%
100%
Receiver naming consistent
100%
100%
No ALL_CAPS in test names
100%
100%
Test file name convention
100%
100%
Boolean prefixes in test structs
100%
100%
MixedCaps identifiers
100%
100%
No type-in-name variables
100%
100%
Struct, error type, and enum naming
No Struct/Object/Data suffix
100%
100%
Custom error type Error suffix
100%
100%
Sentinel errors Err prefix
100%
100%
Error strings package prefix
0%
100%
Error strings fully lowercase
100%
100%
Enum zero-value sentinel
100%
100%
Enum values type-name prefix
50%
100%
Constants MixedCaps
100%
100%
Constants role not value
100%
100%
Boolean field is/has prefix
0%
100%
Format function f suffix
0%
100%
Getter no Get prefix
100%
100%
Boolean method Is prefix
100%
100%
String method canonical
0%
100%
b88f91d
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.