What problem does it solve? Codebases accumulate shallow modules whose interfaces are nearly as complex as their implementations, spreading change across callers and making testing painful. This Skill provides a shared vocabulary and principles for designing deep modules so interfaces stay small, behavior stays hidden, and tests cross the same seam as callers. ## Core Features & Use Cases - Deep-module vocabulary: Defines module, interface, implementation, depth, seam, adapter, leverage, and locality with explicit rejected framings so teams and AI agents name things consistently. - 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. - Design It Twice workflow: Spawns parallel sub-agents that each produce a radically different interface for a candidate module, then compares them on depth, locality, and seam placement. - Use Case: When refactoring a cluster of shallow repository classes, use this Skill to merge them into one deep module, define a port at the seam, and write tests only at the new interface. ## Quick Start Ask the AI to review a module's interface using the codebase-design vocabulary and suggest deepening opportunities with a seam and adapter strategy.