What problem does it solve? Codebases accumulate shallow modules whose interfaces are nearly as complex as their implementations, making code hard to test, change, and reason about. This Skill provides a shared vocabulary and decision framework for designing deep modules that hide complexity behind small interfaces. ## Core Features & Use Cases - Deep-module vocabulary: Defines precise terms (module, interface, seam, adapter, depth, leverage, locality) so teams discuss architecture consistently instead of mixing overloaded words like "component" or "boundary". - Dependency-aware deepening: Classifies dependencies into four categories (in-process, local-substitutable, remote but owned, true external) and prescribes the right seam and adapter strategy for each. - Design It Twice: Spawns parallel sub-agents that each produce a radically different interface for a candidate module, then compares them on depth, locality, and seam placement with an opinionated recommendation. - Use Case: When refactoring a cluster of shallow service classes, use this Skill to decide where the seam belongs, whether a port-and-adapter pair is justified, and how to replace old unit tests with tests at the new interface. ## Quick Start Ask the assistant to review a module's interface using the codebase-design vocabulary and suggest how to deepen it.