improve-architecture

Refactor shallow modules into deep modules with interface designs and RFCs.

Updated Jun 21, 2026
One-click install
npx skills add https://github.com/dallenpyrah/pi --skill improve-architecture-dallenpyrah
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: improve-architecture
Source: https://github.com/dallenpyrah/pi/tree/main/skills/improve-architecture
Command: npx skills add https://github.com/dallenpyrah/pi --skill improve-architecture-dallenpyrah

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve?

This Skill addresses the challenge of improving codebase architecture by identifying and implementing module deepening, making code more testable and AI-navigable.

Core Features & Use Cases

  • Identify Architectural Friction: Surface issues in the codebase where understanding one concept requires bouncing between many files.
  • Deepen Shallow Modules: Refactor modules with complex interfaces into deep modules with a small interface and large implementation.
  • Design and Test Interfaces: Provide multiple interface designs with trade-offs and propose the strongest design.
  • Create RFCs: Generate GitHub issue RFCs with detailed implementation plans for refactoring.

Quick Start

Run the 'improve-architecture' skill to explore architecture improvement opportunities in your codebase.

Frequently Asked Questions about improve-architecture

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What is module deepening in software architecture?

Module deepening is a refactoring technique that transforms shallow modules with complex interfaces into deep modules featuring a small interface and large implementation to improve codebase testability.

How do I refactor a codebase to improve testability?

You refactor a codebase to improve testability by identifying shallow modules, proposing deepening solutions, and designing interface improvements that reduce the need to bounce between many files to understand concepts.

How do I identify architectural friction in my codebase?

You identify architectural friction by surfacing issues where understanding a single code concept requires bouncing between many files, indicating shallow modules that need interface redesign and deepening.

What is the best way to design and test module interfaces during refactoring?

The best way to design and test module interfaces is to generate multiple interface designs with clear trade-offs, select the strongest design, and produce detailed implementation plans for refactoring.

How do I create an RFC for a codebase refactoring plan?

You create an RFC for codebase refactoring by generating a GitHub issue containing a detailed implementation plan that proposes module deepening solutions and interface improvements for shallow modules.

Do I need prior software design knowledge to use automated architecture improvement tools?

Yes, automated architecture improvement requires prerequisite knowledge of software architecture and design principles to effectively evaluate proposed module deepening solutions and interface trade-offs.