What problem does it solve? Go developers often face inconsistent design decisions across a codebase: constructors that break as APIs evolve, init() functions hiding dependencies, unbounded resource pools, and architectures that are either over-engineered or under-structured. This Skill provides a curated set of idiomatic Go patterns with clear rules for when each applies, so design and review decisions stay consistent and grounded in Go conventions. ## Core Features & Use Cases - Constructor and initialization patterns: Functional options with error-returning validation, avoiding init(), enums starting at 1, compile-time interface checks, and package-level regexp compilation. - Resource and resilience patterns: Immediate defer Close(), runtime.AddCleanup over SetFinalizer, bounded channel-based pools, timeouts on external calls, context-aware retries, and graceful shutdown via signal.NotifyContext. - Architecture guidance: Right-sized architecture selection by project scope, with detailed references for clean architecture, hexagonal (ports and adapters), and DDD including aggregates, value objects, and bounded contexts. - Use Case: When designing a new Go HTTP service, ask the agent to review your constructor API and shutdown logic; it will apply functional options, signal.NotifyContext-based graceful shutdown, and recommend an architecture matched to your project size. ## Quick Start Ask the agent to design a Go HTTP server constructor with configurable timeouts and connection limits using idiomatic patterns.