# A Philosophy Of Software Design

> Apply John Ousterhout-inspired software design rules when reducing complexity, designing module boundaries, or reviewing APIs and abstractions.

- Skill: `ciembor/a-philosophy-of-software-design` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add ciembor/a-philosophy-of-software-design`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ciembor/a-philosophy-of-software-design/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: ciembor (https://skillmd.com/u/ciembor)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ciembor/a-philosophy-of-software-design

---


# 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.

