Code Quality

Software Design

Reducing complexity through thoughtful software design

Reduce software complexity using John Ousterhout's philosophy of deep modules, information hiding, and strategic programming. This skill helps your AI agent design interfaces that are simple on the outside and powerful on the inside.

A Philosophy of Software Design by John Ousterhout

A Philosophy of Software Design

by John Ousterhout

npx skills add wondelai/skills/software-design-philosophy

What your agent learns

Deep vs Shallow Modules

The best modules have simple interfaces that hide significant implementation complexity — depth matters more than number of modules.

Information Hiding

Each module should encapsulate design decisions that are likely to change, exposing only what callers need to know.

Strategic vs Tactical Programming

Invest time to design clean abstractions upfront (strategic) rather than hacking quick fixes (tactical).

Define Errors Out of Existence

Design interfaces so that error conditions cannot occur, rather than handling them after the fact.

Complexity Signals

Watch for change amplification, cognitive load, and unknown unknowns — the three manifestations of complexity.

John Ousterhout

Stanford professor, creator of Tcl/Tk, ACM Software System Award winner

John Ousterhout is a professor at Stanford University and the creator of Tcl/Tk, the Raft consensus algorithm (co-creator), and the RAMCloud storage system. He has been awarded the ACM Software System Award and the UC Berkeley Distinguished Teaching Award.

View Book →

Try these with the skill installed

Evaluate whether these modules are deep or shallow and suggest improvements using software-design-philosophy skill

Design review

Redesign this API to hide implementation complexity behind a simpler interface using software-design-philosophy skill

API design

Identify complexity signals in this codebase and propose fixes using software-design-philosophy skill

Code review

Refactor this error handling to define errors out of existence using software-design-philosophy skill

Error handling

Install Software Design

Free, open-source, and ready in 30 seconds.

npx skills add wondelai/skills/software-design-philosophy

MIT Licensed · Works with Claude Code, Cursor, Claude Cowork & OpenClaw · No account needed