Install any skill in seconds. Free to start, no credit card required.
Get Started Free →wondelai/software-design-philosophy
Manage software complexity through deep modules, information hiding, and strategic programming.
Passed 21 of 22 test cases with the skill, and 13 of 22 without it.
and 6 more in the full report
8 fixed13 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
When modifying a billing calculation rule, developers frequently break invoice generation in unrelated UI views because implicit string format conventions are shared without compiler or type checks. Which complexity symptom is present?
| Checked | Without skill | With skill |
|---|---|---|
| The analysis identifies 'unknown unknowns' as the primary complexity symptom present in the codebase. | Passed | Passed |
| The response recommends making hidden dependencies explicit through formal interfaces, type systems, or centralized modules. | Missed | Passed |
The instructions your model reads when the skill loads.
A practical framework for managing the fundamental challenge of software engineering: complexity. Apply these principles when designing modules, reviewing APIs, refactoring code, or advising on architecture decisions.
The greatest limitation in writing software is our ability to understand the systems we are creating. Complexity is the enemy: it makes systems hard to understand, hard to modify, and a source of bugs. Evaluate every design decision by asking "Does this increase or decrease the overall complexity of the system?" — the goal is not zero complexity, but minimizing unnecessary complexity and concentrating the necessary kind where it can be managed.
Goal: 10/10. When reviewing or creating a design, score it by counting how many of the eight Quick Diagnostic rows it satisfies (≈1.25 points each), then sanity-check against the bands:
Always state the current score, the diagnostic rows that failed, and the specific change each one needs to reach 10/10.
Six principles for managing complexity and producing systems that are easy to understand and modify:
Core concept: Complexity is anything about a system's structure that makes it hard to understand and modify. It shows three symptoms — change amplification, cognitive load, and unknown unknowns — and has two causes: dependencies and obscurity.
Key insights:
Code applications:
| Context | Pattern | Example |
|---|---|---|
| Change amplification | Centralize shared knowledge | Extract color constants instead of hardcoding #ff0000 in 20 files |
| Cognitive load | Reduce what developers must know | open(path) instead of requiring buffer size, encoding, lock mode |
| Unknown unknowns | Make dependencies explicit | Type systems and interfaces surface what a change affects |
test cases passed, vs 13 / 22 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.