Claude-skill-registry golang-idiomatic-go
Idiomatic Go patterns review. Use when checking Go-specific idioms, interface design, or pointer usage. Ensures code follows Go conventions and best practices.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/idiomatic-go" ~/.claude/skills/majiayu000-claude-skill-registry-golang-idiomatic-go && rm -rf "$T"
manifest:
skills/data/idiomatic-go/SKILL.mdsource content
Golang Idiomatic Patterns
Expert-level review for idiomatic Go patterns. Ensures code follows Go conventions, proper interface design, and appropriate pointer usage.
When to Apply
Use this skill when:
- Ensuring code follows Go idioms
- Reviewing interface design patterns
- Checking pointer vs value usage
- Verifying "Accept interfaces, return structs" pattern
- Auditing usecase complexity
- Ensuring small, focused interfaces
Rule Categories by Priority
| Priority | Count | Focus |
|---|---|---|
| High | 1 | Method receivers |
| Medium | 5 | Go idioms and patterns |
Rules Covered (6 total)
High-Impact Patterns (1)
- Use pointer receivers for mutationshigh-pointer-receiver
Medium Improvements (5)
- Keep interfaces small (<5 methods)medium-interface-pollution
- API flexibility patternmedium-accept-interface-return-struct
- Don't overuse pointers for small typesmedium-pointer-overuse
- Move business logic to domain entitiesmedium-usecase-complexity
- Define interfaces where usedmedium-interface-in-implementation
Common Idiomatic Patterns
Accept Interfaces, Return Structs
// ✅ GOOD: Accept interface, return struct func Process(r io.Reader) (*Result, error) { // ... return &Result{}, nil }
Small Interfaces
// ✅ GOOD: Small, focused interface type Reader interface { Read(p []byte) (n int, err error) }
Pointer Receivers for Mutations
// ✅ GOOD: Pointer receiver modifies state func (u *User) UpdateEmail(email string) { u.Email = email }
Trigger Phrases
This skill activates when you say:
- "Is this idiomatic Go?"
- "Review Go style"
- "Check interface design"
- "Verify pointer usage"
- "Review Go conventions"
- "Check for Go anti-patterns"
How to Use
For Idiomatic Review
- Check method receivers (pointer vs value)
- Verify interface sizes and locations
- Review pointer usage appropriateness
- Check "accept interfaces, return structs" pattern
Output Format
## Idiomatic Go Improvements: X ### [Rule Name] (Line Y) **Pattern**: Interface Design / Pointer Usage / Method Receiver **Issue**: Violates Go idiom **Fix**: Suggested correction **Example**: ```go // Idiomatic Go code
Related Skills
- golang-clean-architecture - For interface segregation
- golang-design-patterns - For usecase complexity
Philosophy
Based on "Learning Go" and Effective Go:
- Simplicity over cleverness - Boring code is good code
- Interfaces are satisfied implicitly - Define where used
- Composition over inheritance - Embed types, don't extend
- Clear is better than clever - Readability wins
Notes
- Focus on Go-specific patterns
- Not general programming practices
- Emphasizes Go conventions and idioms
- Based on Effective Go and community standards