What problem does it solve?
It prevents common Go mistakes that lead to panics, silent data corruption, and subtle runtime bugs by enforcing defensive patterns around nil handling, slice/map safety, numeric conversion, and resource lifecycles.
Core Features & Use Cases
- Nil-safety for interfaces, pointers, maps, and funcs: Avoids the typed-nil-in-interface trap, nil function panics, and nil map/slice writes.
- Slice/map correctness under real constraints: Prevents append aliasing, concurrent map access hazards, subslice backing-array retention, and non-deterministic map iteration when order matters.
- Numeric and resource lifecycle guardrails: Adds bounds checks for narrowing conversions, uses epsilon comparisons for float equality, and ensures
defer is not incorrectly used inside loops.
Use cases:
- Code review for a Go service that crashes due to nil pointer dereferences or typed-nil error returns.
- Refactoring exported APIs to avoid leaking internal slices/maps that callers can mutate.
- Fixing production issues caused by append aliasing, GC retention from subslices, or incorrect float comparisons.
Quick Start
Ask an AI coding agent to review your Go code and refactor any nil-safety, slice/map aliasing, numeric conversion, and loop-defer patterns using the golang-safety skill guidance.