What problem does it solve? Codebases accumulate shallow modules whose interfaces are nearly as complex as their implementations, making code hard to test, navigate, and change. This Skill provides a shared vocabulary and decision framework for designing deep modules so interfaces stay small while behaviour concentrates behind clean seams. ## Core Features & Use Cases - Deep-module vocabulary: Precise definitions of module, interface, seam, adapter, depth, leverage, and locality, with rejected framings explicitly called out so teams and AI agents use consistent language. - Dependency-aware deepening: Classifies dependencies as in-process, local-substitutable, remote-but-owned, or true external, and prescribes ports-and-adapters or mock strategies per category (see DEEPENING.md). - Parallel interface exploration: Spawns multiple sub-agents to design radically different interfaces for a candidate module, then compares them on depth, locality, and seam placement (see DESIGN-IT-TWICE.md). - Use Case: When refactoring a cluster of shallow service classes, use this Skill to identify the right seam, merge the cluster into one deep module, and rewrite tests against the new interface instead of the old internals. ## Quick Start Ask the assistant to review a module or package in your repo and propose a deeper interface using the codebase-design vocabulary.