architecture-design

Apply Ousterhout's design principles to reduce software complexity.

Updated Jun 24, 2026
One-click install
npx skills add https://github.com/rmarquis/agent-plugins --skill architecture-design-rmarquis
Or copy as Structured Prompt for Agentโ–ผ
Please help me install this Agent Skill.
Skill: architecture-design
Source: https://github.com/rmarquis/agent-plugins/tree/main/agent-plugins/software-architecture/skills/architecture-design
Command: npx skills add https://github.com/rmarquis/agent-plugins --skill architecture-design-rmarquis

SYSTEM DOCUMENTATION & REQUIREMENTS

๐Ÿ’ก This Skill includes references (resource) components.

What problem does it solve?

This skill addresses the accumulation of software complexity by providing a structured framework for designing systems that are easy to understand, modify, and maintain.

Core Features & Use Cases

  • Complexity Reduction: Apply John Ousterhout's principles to transform shallow, error-prone modules into deep, robust components.
  • Architecture Review: Utilize a comprehensive checklist to identify red flags like information leakage, pass-through methods, and excessive configuration.
  • Design Decision Support: Implement the "Design It Twice" methodology to evaluate architectural trade-offs before committing to implementation.

Quick Start

Use the architecture-design skill to review my current module interface for complexity and suggest improvements based on Ousterhout's principles.

Frequently Asked Questions about architecture-design

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

FAQPage Schema
How do I reduce software complexity when designing module interfaces?โ–ผ

To reduce software complexity, you design deep modules with simple interfaces that hide implementation details. This skill applies John Ousterhout's principles to transform shallow components into robust, low-complexity systems, maximizing developer productivity and maintainability.

What is a deep module in software architecture?โ–ผ

A deep module in software architecture has a simple interface but complex internal implementation, effectively hiding information. This skill provides architectural guidance to evaluate module decomposition and ensure your abstractions minimize system complexity.

How do I review my API design for information leakage and red flags?โ–ผ

You can review your API design using an architectural checklist to identify red flags like information leakage, pass-through methods, and excessive configuration. This skill evaluates your interface against structured criteria to isolate and eliminate complexity.

What is the best way to evaluate architectural trade-offs before refactoring?โ–ผ

The best way to evaluate architectural trade-offs is the "Design It Twice" methodology, comparing different decomposition approaches before implementation. This skill guides you through structured design decision support to prevent shallow modules.

Can I use this approach for layer abstraction and error-free interface design?โ–ผ

Yes, this approach specifically applies to layer abstraction and error-free interface design tasks. It provides a structured framework based on A Philosophy of Software Design to ensure your system is easy to understand, modify, and maintain.