---
name: ciembor-a-philosophy-of-software-design
description: "Apply John Ousterhout-inspired software design rules when reducing complexity, designing module boundaries, or reviewing APIs and abstractions."
license: "MIT"
metadata:
  decimalai-skill-id: "8cc2f996-631c-4e1e-8dff-430987e3577f"
  decimalai-version-id: "ab03fbc6-8bf7-40f1-8aab-ec82ccf03464"
  decimalai-version: "1"
  decimalai-body-sha256: "33d161e266fbd5ccb1672fcedd44fffc7a66165d098a27b8628ca45dd77af660"
  decimalai-name: "ciembor/a-philosophy-of-software-design"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "coding"
  decimalai-source: "https://app.decimal.ai/s/ciembor-a-philosophy-of-software-design@1/SKILL.md"
---
# A Philosophy of Software Design Skill

Use this skill when a task involves module design, API design, information hiding, abstraction depth, cognitive load, or refactoring shallow interfaces.

Before making design or code decisions, read and apply [a-philosophy-of-software-design.mini.md](a-philosophy-of-software-design.mini.md). Use [a-philosophy-of-software-design.md](a-philosophy-of-software-design.md) only as a deeper reference when the mini rules are not enough for the current design tradeoff.
