This distills John Ousterhout's "A Philosophy of Software Design" into actionable guidance for code reviews and architecture decisions. It's built around managing complexity through deep modules (simple interfaces hiding rich implementations), information hiding, and pulling complexity down into modules rather than pushing it to callers. The most immediately useful parts are the red flags: pass-through methods, information leakage, and shallow modules that do too little behind complex interfaces. Invoke it when debating how to split modules, whether to add configuration parameters, or how to handle errors. The "define errors out of existence" section alone will change how you think about exception handling.
npx -y skills add luoling8192/software-design-philosophy-skill --skill software-design-philosophy --agent claude-codeInstalls to .claude/skills
Select a file.
The1Studio/theone-training-skills
binjuhor/shadcn-lar
leonxlnx/taste-skill