What problem does it solve? Shallow, tightly-coupled modules make codebases hard to test, navigate, and maintain. This Skill explores a codebase the way an AI experiences it, detects architectural friction, and proposes deep-module refactorings grounded in John Ousterhout's "A Philosophy of Software Design". ## Core Features & Use Cases - Friction-Based Exploration: Uses an Explore subagent to find shallow modules, tight coupling, and untestable integration seams without rigid heuristics. - Parallel Interface Design: Launches 3+ subagents that each propose radically different interfaces (minimal, flexible, caller-optimized, ports & adapters), then compares them and gives an opinionated recommendation. - Dependency Classification: Categorizes dependencies as in-process, locally-substitutable, ports & adapters, or external mocks to define the right testing strategy. - GitHub RFC Output: Creates a structured refactoring issue via gh issue create covering the problem, proposed interface, dependency strategy, and test migration plan. - Use Case: A team has dozens of small service modules whose bugs hide in the seams between them. Run this Skill to identify consolidation candidates, pick a deepened interface design, and file an actionable refactoring RFC. ## Quick Start Ask the assistant to explore this codebase and find opportunities to improve its architecture by deepening shallow modules.