go-google-style-decisions/SKILL.md
Expertise in Go programming decisions according to the Google Go Style Guide. Focuses on specific choices for naming, error handling, and language usage.
npx skillsauth add metalagman/agent-skills go-google-style-decisionsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill provides expert guidance on the "Decisions" portion of the Google Go Style Guide. It focuses on the specific choices and trade-offs made to ensure consistency, readability, and maintainability across large Go codebases.
golangci-lint or go vet to catch common style violations._test.go files for public APIs.For the complete guide, consult references/decisions.md.
pkg_name or var_name).
_test.go files, generated code, and low-level interop.util or common.user as a package name if user is a common variable).c for Client).MixedCaps (e.g., ExportedConst, internalConst).ALL_CAPS or kPrefix.HTTPClient, urlPath, XMLParser).Get prefix (e.g., use obj.Field() instead of obj.GetField()).Get only if the method is truly "getting" something that isn't a simple field (e.g., GetURL).i in a loop), more descriptive names for larger scopes.users instead of userSlice).ExampleXxx functions in test files to document public APIs.error as the final value.nil for the error value on success.error interface, not a concrete type.-1) to signal errors. Use (value, error) or (value, ok).var s []int (nil slice) over s := []int{} (empty slice).
if err != nil { ... } else { ... } is fine, but don't over-compact).panic for normal error handling.panic only for truly unrecoverable states (e.g., internal invariant failure).log.Exit or log.Fatal (which calls os.Exit) only in main or init functions.Must (e.g., template.Must).sync.Mutex or other synchronization primitives.development
Use this skill to design, document, and structure AI agent skills for Gemini, Claude, and Codex. It provides architectural rules, directory standards, and writing best practices.
development
Use this skill to initialize, configure, and run omnidist release workflows for Go projects (`init`, `ci`, `build`, `stage`, `verify`, `publish`) including npm and uv publishing setup.
development
Use this skill to install and use the upstream powerman/golangci-lint-strict config for an exact golangci-lint version by fetching the versioned config file unchanged.
development
Use this skill to write, refactor, or review Go code according to the Uber Go Style Guide. It ensures strict adherence to correctness, safety, and idiomatic patterns.