What problem does it solve? Codebases accumulate shallow, tightly-coupled modules that are hard to test, hard to navigate, and hide bugs in the seams between components. This Skill systematically explores a codebase to surface architectural friction and proposes concrete module-deepening refactors based on John Ousterhout's deep module philosophy. ## Core Features & Use Cases - Organic Codebase Exploration: Uses exploratory agents to find friction points where understanding one concept requires bouncing between many small files, or where modules are too shallow to test at their boundary. - Dependency Classification: Categorizes each candidate's dependencies into four types (in-process, local-substitutable, ports & adapters, true external) to determine the right deepening and testing strategy. - Parallel Interface Design: Spawns multiple sub-agents that each produce radically different interface designs for the deepened module, then compares them and gives an opinionated recommendation. - Use Case: A team has a service layer split across a dozen tiny modules with integration bugs in the seams. Use this Skill to identify the cluster, evaluate three alternative deep interfaces, and produce a refactor proposal with boundary tests replacing shallow unit tests. ## Quick Start Ask the assistant to explore this codebase and find opportunities to deepen shallow modules and improve testability.