Use when a Go change affects caller-visible error identity, context lifetime, nil or zero behavior, aliasing, method sets, or resource ownership.
Pro scans all 6 files and shows the line behind each finding
Scanned 9/24/2026
npx -y skills add Dankosik/go-service-template-rest --skill go-idiomatic --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Go Idiomatic?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dankosik-go-idiomatic)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: go-idiomatic
description: "Use when a Go change affects caller-visible error identity, context lifetime, nil or zero behavior, aliasing, method sets, or resource ownership."
metadata:
invocation: model
kind: method
---
# Go Idiomatic
Go correctness follows **semantic ownership**: who owns error identity, work
lifetime, mutable backing storage, release, and the admissible zero state.
For a delegated Decision or Review, or when the active artifact requires its
result interface, load the
[shared specialist contract](../../contracts/specialist-contract.md).
For every changed boundary, build one ownership story from producer through
caller-visible observation. Name who may inspect the error, cancel the work,
mutate aliased state, release the resource, construct a non-zero value, and
reach each method through the stored type.
Configured linters prove mechanical shape, not that `%w` exposes the right
cause, `Close` occurs in the owning scope, a clone has sufficient depth, or a
typed nil is absent to its caller. A Decision assigns each obligation to one
owner and observable contract. A Review tries the plausible wrong default at
the actual caller boundary.
Complete when every changed semantic boundary has one owner, preserved
caller-visible behavior, and focused proof or a named gap. Load the [reference
selector](references/index.md) only when its stated pressure is observable in
changed symbols or callers.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!