Dec software principles
Skill jpoindexter/design-engineering-canon/skills/dec-software-principles
Core software engineering principles for the engineering half of design engineering — SOLID, DRY/KISS/YAGNI, Conway's Law, Principle of Least Astonishment. Use when structuring code, reviewing architecture, naming/shaping components, resisting over-abstraction, or explaining why a component should behave as its name implies.From its SKILL.md
npx -y skills add jpoindexter/design-engineering-canon --skill dec-software-principlesAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
1.8 KB, 331 tokens by cl100k_base, as published. Nobody here has run it
Software Principles
The engineering half of design engineering — how code stays maintainable.
- SOLID:
- Single responsibility — one reason to change per unit.
- Open/closed — open to extension, closed to modification.
- Liskov substitution — subtypes must be usable wherever the base type is.
- Interface segregation — many small interfaces over one fat one.
- Dependency inversion — depend on abstractions, not concretions.
- DRY / KISS / YAGNI: Don't repeat yourself; keep it simple; you aren't gonna need it. YAGNI is the antidote to speculative abstraction — don't generalize until you have concrete uses.
- Conway's Law: Systems mirror the communication structure of the org that builds them — team topology is an architecture decision.
- Principle of Least Astonishment: Components should behave the way their name and appearance imply. Surprise is a defect.
How to apply
- YAGNI before DRY: don't abstract until you have ~3 concrete uses; premature DRY couples unrelated things.
- Single-responsibility is the most useful SOLID letter day-to-day — if a unit needs "and" to describe it, split it.
- Name components for what they do; if behavior surprises a reader of the name, rename or fix the behavior (Least Astonishment).
- When a system's structure feels wrong, check Conway's Law — it may mirror a team boundary, not a technical one.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.