diff --git a/prompts/CODE_STYLEGUIDE_GO.md b/prompts/CODE_STYLEGUIDE_GO.md index f859589..60a725c 100644 --- a/prompts/CODE_STYLEGUIDE_GO.md +++ b/prompts/CODE_STYLEGUIDE_GO.md @@ -229,6 +229,15 @@ last_modified: 2026-02-22 1. Define your struct types near their constructors. +1. Do not create packages whose sole purpose is to hold type definitions. + Packages named `types`, `domain`, or `models` that contain only structs and + interfaces (with no behavior) are a code smell. Define types alongside the + code that uses them. Type-only packages force consuming packages into alias + imports and circular-dependency gymnastics, and indicate that the package + boundaries were drawn around nouns instead of responsibilities. If multiple + packages need the same type, put it in the package that owns the behavior, + or in a small, focused interface package — not in a grab-bag types package. + 1. Define your interface types near the functions that use them, or if you have multiple conformant types, put the interface(s) in their own file.