Provides Go patterns for type-first development with custom types, interfaces, functional options, and error handling. Must use when reading or writing Go files.
83
Quality
76%
Does it follow best practices?
Impact
91%
1.10xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./data/skills-md/0xbigboss/claude-code/go-best-practices/SKILL.mdType-first domain modeling
Custom ID types
100%
100%
iota starts at 1
0%
100%
Enum String() method
100%
100%
Functional options
100%
100%
Constructor sensible defaults
100%
100%
Accept interfaces
0%
0%
Return structs
71%
100%
Embedding for composition
100%
100%
Exhaustive switch default error
100%
100%
Error wrapping with %w
37%
0%
Unimplemented returns error
100%
50%
One concern per file
0%
100%
Without context: $0.4307 · 1m 55s · 23 turns · 30 in / 6,168 out tokens
With context: $0.7812 · 3m 22s · 34 turns · 322 in / 10,568 out tokens
Error handling and context propagation
Error wrapping %w
100%
100%
Error context messages
100%
100%
Switch default error
100%
100%
context.Context parameter
100%
100%
Timeout on external calls
100%
100%
No panic for errors
100%
100%
Unimplemented descriptive error
100%
100%
Avoid package-level mutable vars
100%
100%
Return new values
100%
100%
Value vs pointer receivers
58%
66%
Without context: $0.5066 · 2m 44s · 27 turns · 34 in / 7,868 out tokens
With context: $0.9441 · 4m 9s · 35 turns · 291 in / 14,042 out tokens
Configuration, table-driven tests, and structured logging
Config struct
100%
100%
LoadConfig function
100%
100%
Validation returns error
100%
100%
No scattered os.Getenv
100%
100%
Sensible defaults
87%
100%
slog import
100%
100%
Structured log fields
100%
100%
Table-driven tests
0%
100%
Edge case test coverage
44%
100%
Test file naming
100%
100%
Config passed explicitly
100%
100%
Without context: $0.3102 · 1m 53s · 19 turns · 22 in / 5,802 out tokens
With context: $0.6133 · 2m 10s · 30 turns · 35 in / 7,646 out tokens
5342bca
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.