What problem does it solve? Go has no native enum keyword, so teams often end up with inconsistent string constants, untyped fields, and invalid values leaking into the domain. This Skill standardizes how closed vocabularies like JobStatus or MessageType are declared, validated, and consumed across entities, repositories, and controllers. ## Core Features & Use Cases - Idiomatic enum scaffolding: Generates a named string type, a typed const block with SCREAMING_SNAKE_CASE wire values, and a // Values: doc-comment consumed by OpenAPI tooling. - Runtime validation: Adds an IsValid() helper and Values() member list so controllers and repositories can guard enum values arriving from HTTP bodies, query params, or DB columns. - Convention enforcement: Encodes rules like one enum per file, typed struct fields instead of plain strings, and status transitions as guard conditions in entity behavior methods. - Use Case: When adding a new ChannelStatus to a Go bounded context, use this Skill to produce the enum file, wire it into the entity, and validate external input before constructing domain objects. ## Quick Start Create a Go domain enum for message delivery status with PENDING, SENT, and FAILED values, including an IsValid helper.