Skip to main content
skill CX Codex

deep-module-refactor — Claude Code skill: what it does, how to install

Inspects your codebase for shallow modules, drafts deeper alternative interfaces with sub-agents, and files a refactor RFC directly to GitHub Issues.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-code
Open on GitHub

What deep-module-refactor does

The skill navigates your repository with an exploration sub-agent to detect architectural friction. It flags tightly coupled files and shallow functions extracted solely for unit tests. The approach follows John Ousterhout's philosophy from A Philosophy of Software Design: a deep module hides complex implementation behind a compact interface. This shifts testing to module boundaries.

After you pick a candidate, the skill defines constraints and spawns at least three sub-agents in parallel. Each sub-agent builds a distinct architecture. One minimizes entry points to three, while another optimizes for caller flexibility. The skill compares trade-offs and suggests a hybrid or preferred approach.

Publishing the final RFC requires the GitHub CLI (gh). Without an authenticated gh installation, the process cannot open the issue.

What it helps with

  • locate shallow, tightly coupled modules across a repository
  • design compact interfaces to replace fragmented logic
  • shift testing from implementation details to module boundaries
  • publish an architectural refactoring RFC to GitHub Issues

Example prompts for the agent

  • Explore the codebase to find shallow modules and suggest refactoring options
  • Find architectural friction and testability issues in our modules
  • Propose deep module refactoring candidates for this repository

How to install deep-module-refactor

1Skills CLI (Vercel)

npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-code

2Manually: put the files in place

~/.claude/skills/deep-module-refactor/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/deep-module-refactor/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about deep-module-refactor

How to install deep-module-refactor in Claude Code?

Run npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-code in your terminal. The skill file is placed in ~/.claude/skills/deep-module-refactor/SKILL.md.

What does deep-module-refactor do?

It explores code architecture to spot shallow modules, designs competing interfaces via parallel sub-agents, and files an RFC issue on GitHub.

What external tooling is required for this skill?

Your agent environment must support sub-agent execution through the Agent tool, and you need an authenticated gh CLI command to create the RFC issue.

Source text

SKILL.md · MIT
---
name: deep-module-refactor
description: Explore a codebase to find opportunities for architectural improvement, focusing on making the codebase more testable by deepening shallow modules. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more AI-navigable.
---

# Improve Codebase Architecture

Explore a codebase like an AI would, surface architectural friction, discover opportunities for improving testability, and propose module-deepening refactors as GitHub issue RFCs.

A **deep module** (John Ousterhout, "A Philosophy of Software Design") has a small interface hiding a large implementation. Deep modules are more testable, more AI-navigable, and let you test at the boundary instead of inside.

## Process

### 1. Explore the codebase

Use the Agent tool with subagent_type=Explore to navigate the codebase naturally. Do NOT follow rigid heuristics — explore organically and note where you experience friction:

- Where does understanding one concept require bouncing between many small files?
- Where are modules so shallow that the interface is nearly as complex as the implementation?
- Where have pure functions been extracted just for testability, but the real bugs hide in how they're called?
- Where do tightly-coupled modules create integration risk in the seams between them?
- Which parts of the codebase are untested, or hard to test?

The friction you encounter IS the signal.

### 2. Present candidates

Present a numbered list of deepening opportunities. For each candidate, show:

- **Cluster**: Which modules/concepts are involved
- **Why they're coupled**: Shared types, call patterns, co-ownership of a concept
- **Dependency category**: See [REFERENCE.md](REFERENCE.md) for the four categories
- **Test impact**: What existing tests would be replaced by boundary tests

Do NOT propose interfaces yet. Ask the user: "Which of these would you like to explore?"

### 3. User picks a candidate

### 4. Frame the problem space

Before spawning sub-agents, write a user-facing explanation of the problem space for the chosen candidate:

- The constraints any new interface would need to satisfy
- The dependencies it would need to rely on
- A rough illustrative code sketch to make the constraints concrete — this is not a proposal, just a way to ground the constraints

Show this to the user, then immediately proceed to Step 5. The user reads and thinks about the problem while the sub-agents work in parallel.

### 5. Design multiple interfaces

Spawn 3+ sub-agents in parallel using the Agent tool. Each must produce a **radically different** interface for the deepened module.

Prompt each sub-agent with a separate technical brief (file paths, coupling details, dependency category, what's being hidden). This brief is independent of the user-facing explanation in Step 4. Give each agent a different design constraint:

- Agent 1: "Minimize the interface — aim for 1-3 entry points max"
- Agent 2: "Maximize flexibility — support many use cases and extension"
- Agent 3: "Optimize for the most common caller — make the default case trivial"
- Agent 4 (if applicable): "Design around the ports & adapters pattern for cross-boundary dependencies"

Each sub-agent outputs:

1. Interface signature (types, methods, params)
2. Usage example showing how callers use it
3. What complexity it hides internally
4. Dependency strategy (how deps are handled — see [REFERENCE.md](REFERENCE.md))
5. Trade-offs

Present designs sequentially, then compare them in prose.

After comparing, give your own recommendation: which design you think is strongest and why. If elements from different designs would combine well, propose a hybrid. Be opinionated — the user wants a strong read, not just a menu.

### 6. User picks an interface (or accepts recommendation)

### 7. Create GitHub issue

Create a refactor RFC as a GitHub issue using `gh issue create`. Use the template in [REFERENCE.md](REFERENCE.md). Do NOT ask the user to review before creating — just create it and share the URL.

© zebbern · MIT · zebbern/claude-code-guide

Similar skills

All skills for Code review and refactoring →

From the same set40

linux-shell-scripting A skill that hands your agent ready bash templates for backups, resource monitoring, user management and log parsing. Useful when you want a working script, not a sketch. CX Codex +1 ★ 4,679repo stars http-load-profiler Runs stepped HTTP load tests using wrk or ab, captures p50/p90/p99 latencies, and identifies system inflection points. CX Codex +1 ★ 4,679repo stars file-path-traversal This skill guides directory traversal and LFI checks in web apps. Use it when a request may expose files beyond the intended web root. CX Codex +1 ★ 4,679repo stars dev-guide-generator Turns a technical topic into a full tutorial: prerequisites, environment setup, core steps, error troubleshooting and a closing cheatsheet. CX Codex +1 ★ 4,679repo stars dataset-quality-audit Audit tabular files for missing values, duplicates, outliers, and format problems. Use it to assess a dataset before analysis or reuse. CX Codex +1 ★ 4,679repo stars database-scout A read-only skill for SQLite and PostgreSQL: lists tables, inspects schemas, previews rows and renders Mermaid ER diagrams. Queries stay read-only. CX Codex +1 ★ 4,679repo stars database-optimizer Analyzes query execution plans, tunes PostgreSQL and MySQL configurations, and designs indexes to help high-traffic databases achieve sub-100ms query latency. CX Codex +1 ★ 4,679repo stars data-viz-renderer Turn JSON data into standalone HTML/SVG infographics, from metric cards to process diagrams. Use it to build report visuals or combine metrics and charts in a dashboard. CX Codex +1 ★ 4,679repo stars

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor