| api-design | Export permanence, signature immutability, parameter objects, result objects | | errors | Handle-once, sentinel/structured/opaque strategy, wrapping, naming | | interfaces | Small interfaces, compile-time checks, consumer-side, upcasting, driver pattern |
| concurrency | Mutex placement, channel sizing, goroutine lifecycle, context cancellation | | worker-pools | Channel-based pools, context cancellation, WaitGroup shutdown | | safety | Defer cleanup, type assertions, no panic, copy at boundaries | | performance | strconv over fmt, pre-allocation, strings.Builder |
| naming | Package naming, unexported global prefix, import aliases, receiver names | | declarations | Short declarations, nil slices, zero-value structs, field names | | organization | Import grouping, function ordering, early returns, line length | | testing | Table-driven tests, subtests, testify, go.uber.org/goleak |