What problem does it solve?
Provide clear, opinionated guidance for designing idiomatic Go APIs, structuring applications, and hardening services for production to avoid common pitfalls like implicit globals, unbounded resources, and premature abstraction.
Core Features & Use Cases
- Constructor & API Design: Prefer functional options with validation, sensible defaults, and explicit constructors rather than init() or global state.
- Resource Management & Resilience: Patterns for defer-based cleanup, bounded pools, timeout-aware external calls, retry semantics that honor context cancellation, and graceful shutdown.
- Architecture & Review: Advice on right-sized architecture (flat vs layered), hexagonal/clean patterns when appropriate, and review checklists for init() abuse, implicit globals, and missing timeouts.
- Use Case: Use when designing a new Go server, reviewing existing service code for production readiness, or choosing between competing patterns for APIs and dependency wiring.
Quick Start
Ask the skill to review your Go package and recommend idiomatic constructor patterns, resource limits, error handling, and graceful shutdown improvements.