deep-module-refactor — скилл для Claude Code: обзор и установка
Ищет неглубокие модули в проекте, проектирует через субагентов более плотные интерфейсы и оформляет RFC в тикетах GitHub. Помогает упростить тестирование на границах кода.
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-codeЧто делает deep-module-refactor
Скилл анализирует репозиторий через субагента, фиксируя точки трения в архитектуре. Внимание направлено на разрозненные мелкие файлы и функции, созданные исключительно ради юнит-тестов. Логика опирается на книгу Джона Оустерхаута «Философия проектирования программного обеспечения»: глубокий модуль скрывает сложную внутреннюю структуру за лаконичным интерфейсом. Это переносит проверки на внешние границы.
После выбора проблемного модуля скилл формулирует ограничения задачи и параллельно запускает от трёх субагентов. Каждый агент готовит контрастный вариант архитектуры. Один агент минимизирует число точек входа, другой делает упор на гибкость под разные сценарии. Скилл сопоставляет предложенные интерфейсы и даёт аргументированную рекомендацию.
Финальный этап сразу публикует RFC в репозитории через команду gh issue create. Для этого в системе нужна авторизованная утилита GitHub CLI.
Какие задачи решает
- найти тесно связанные неглубокие модули в репозитории
- спроектировать компактный интерфейс взамен цепочки мелких вызовов
- перенести проверки с деталей реализации на границы модулей
- опубликовать готовый RFC по рефакторингу в GitHub Issues
Примеры запросов агенту
- Найди в проекте неглубокие модули и предложи варианты рефакторинга
- Исследуй кодовую базу и найди архитектурные проблемы с тестируемостью
- Сделай архитектурный анализ репозитория по концепции deep modules
Как установить deep-module-refactor
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-code2Вручную: положить файлы
~/.claude/skills/deep-module-refactor/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/deep-module-refactor/
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a codex2Вручную: положить файлы
.agents/skills/deep-module-refactor/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a cursor2Вручную: положить файлы
.cursor/skills/deep-module-refactor/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install zebbern/claude-code-guide deep-module-refactor2Вручную: положить файлы
.github/skills/deep-module-refactor/SKILL.md1Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a gemini-cli2Командой платформы
gemini skills install https://github.com/zebbern/claude-code-guide --path skills/deep-module-refactorВручную: положить файлы
.devin/skills/deep-module-refactor/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о deep-module-refactor
Как установить deep-module-refactor в Claude Code?
Выполните в терминале команду npx skills add zebbern/claude-code-guide --skill deep-module-refactor -a claude-code. Файл навыка запишется по пути ~/.claude/skills/deep-module-refactor/SKILL.md.
Что делает скилл deep-module-refactor?
Он выявляет поверхностные модули, запускает параллельных субагентов для проектирования глубоких интерфейсов и создаёт тикет с предложением по рефакторингу.
Какие требования нужны для создания RFC через этот скилл?
В системе должна быть установлена и авторизована консольная утилита gh, потому что публикация тикета выполняется без предварительного подтверждения.
Исходный текст
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