What problem does it solve? Adding a new package or module to a multi-module Go monorepo involves error-prone decisions: root module vs sub-module placement, layer dependency rules, go.mod replace directives, workspace registration, and domain mapping. This Skill walks through the canonical gokit procedure so new code lands in the right place without layering violations or pseudo-version breakage. ## Core Features & Use Cases - Placement Decision: Decides between a root-module package and a standalone sub-module based on whether heavy third-party dependencies are involved. - Layer Enforcement: Confirms the new package respects gokit's downward-only dependency direction enforced by depguard, using domains.toml as the domain map. - Sub-module Wiring: Covers go mod init, replace directives back to the root, registration in core.go.work or contrib.go.work, and domains.toml updates. - Use Case: When adding a new Redis cache adapter to gokit, use this Skill to create the sub-module with its own go.mod, wire the replace directive, register it in contrib.go.work and domains.toml, then validate with build, lint, test, and tidy. ## Quick Start Ask the assistant to scaffold a new gokit module for your capability, for example a Kafka messaging adapter, and have it follow the placement, wiring, and validation steps.