software-design-complexity

Audit software architecture for complexity hotspots using module depth and information hiding criteria.

3|2|Updated Mar 23, 2026
One-click install
npx skills add https://github.com/wesleyegberto/software-engineering-skills --skill software-design-complexity
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-design-complexity
Source: https://github.com/wesleyegberto/software-engineering-skills/tree/main/plugins/programming-skills/skills/software-design-complexity
Command: npx skills add https://github.com/wesleyegberto/software-engineering-skills --skill software-design-complexity

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Software systems suffer from escalating complexity due to deep vs shallow modules, information leakage, and inconsistent architecture decisions. This Skill provides a practical framework to assess, discuss, and reduce complexity by emphasizing depth, information hiding, and strategic design choices.

Core Features & Use Cases

  • Deep vs shallow module evaluation
  • Information hiding and leakage detection
  • Strategy-based vs tactical programming guidance
  • Use-case oriented design audits and refactoring prompts
  • Guidance for creating meaningful interface comments and documentation Example: When reviewing a module boundary, apply the depth ratio to decide whether to merge or split the module.

Quick Start

Perform an architectural review to identify depth, leakage, and refactoring opportunities, then apply the guidance to consolidate responsibilities.

Frequently Asked Questions about software-design-complexity

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

FAQPage Schema
How do I evaluate deep vs shallow modules during a software architecture review?

To evaluate deep vs shallow modules during a software architecture review, apply the depth ratio metric to assess whether a module's interface complexity is justified by its hidden implementation functionality, then decide whether to merge or split module boundaries.

What is information leakage in software design and how do I detect it?

Information leakage in software design occurs when implementation details escape through a module's interface. Detect it during refactoring audits by analyzing module boundaries to identify where internal complexities are exposed to external callers, violating information hiding principles.

How do I reduce software complexity when refactoring existing modules?

Reduce software complexity when refactoring by auditing module boundaries to identify leakage and depth issues, then consolidating responsibilities. Apply strategic design choices that prioritize deep modules and strict information hiding over tactical programming adjustments.

What is the difference between strategy-based and tactical programming for managing complexity?

The difference between strategy-based and tactical programming is that strategic design focuses on minimizing complexity through deep modules and information hiding, while tactical programming addresses immediate problems without considering long-term architectural complexity, often increasing technical debt.

When should I use a depth-first design approach for software architecture?

Use a depth-first design approach for software architecture during architecture reviews, refactoring sessions, and design discussions. It is applied when you need to identify complexity hotspots, enforce module depth criteria, and prevent information leakage across system boundaries.