What problem does it solve? Go developers often struggle to choose the right design pattern for constructors, error flow, resource lifecycle, and application architecture, leading to over-engineered small projects or fragile large services. This Skill provides opinionated, idiomatic Go guidance so pattern choices match project scope and production requirements. ## Core Features & Use Cases - Constructor & Initialization Patterns: Functional options with error-returning validation, avoiding init(), enums starting at 1, compile-time interface checks, and package-level regexp compilation. - Resource & Resilience Patterns: Immediate defer Close(), runtime.AddCleanup over SetFinalizer, bounded channel-based connection pools, graceful shutdown with signal.NotifyContext, timeouts, and context-aware retry logic. - Architecture Guidance: Right-sized architecture selection (flat, layered, clean, hexagonal, DDD) with detailed reference guides, aggregate roots, bounded contexts, and anti-corruption layers. - Use Case: When designing a new Go HTTP service, ask the agent to review your constructor API and shutdown logic; it will recommend functional options, explicit initialization, and signal.NotifyContext-based graceful shutdown. ## Quick Start Ask the agent to design a Go HTTP server constructor with optional timeouts and connection limits using idiomatic patterns.