What problem does it solve? Go developers often create oversized interfaces, return interfaces from constructors, panic on bare type assertions, or mix pointer and value receivers inconsistently. This Skill encodes idiomatic Go type-system rules so an AI coding agent produces correct, testable struct and interface designs on the first pass. ## Core Features & Use Cases - Interface Design Rules: Enforces small 1-3 method interfaces defined at the consumer, the accept-interfaces-return-structs principle, and avoiding premature interfaces with a single implementation. - Type Safety Patterns: Covers comma-ok type assertions, type switches, compile-time interface checks with var _ Interface = (*Type)(nil), generics over any, and the noCopy sentinel for uncopyable structs. - Struct Mechanics: Guides struct vs interface embedding, struct field tags for JSON/YAML/DB serialization, pointer vs value receiver selection, and useful zero values via lazy initialization. - Use Case: When asked to design a notification service depending on an email client, the agent defines a minimal Sender interface in the consumer package, returns a concrete struct from the constructor, and adds a compile-time interface check. ## Quick Start Ask the agent to review your Go package's interfaces and struct designs, for example by requesting it to check whether your constructors return concrete types and your interfaces are defined where consumed.