smith-principles
Fundamental coding principles (DRY, KISS, YAGNI, SOLID, HHH). Use when starting any development task, evaluating implementation approaches, or reviewing code quality. Always active as foundation for all development decisions.
When & Why to Use This Skill
This Claude skill integrates industry-standard software engineering principles—including DRY, KISS, YAGNI, and SOLID—into the AI's core decision-making process. It serves as a foundational framework for designing scalable, maintainable, and efficient codebases while ensuring AI behavior remains helpful, honest, and harmless (HHH). By enforcing these principles, the skill helps developers minimize technical debt and optimize software architecture from the start.
Use Cases
- Architectural Planning: Use as a mandatory checklist when starting new development tasks to ensure the proposed structure follows SOLID and DRY principles.
- Code Quality Reviews: Evaluate implementation approaches and existing code to identify violations of Single Responsibility or unnecessary complexity (KISS).
- Refactoring Guidance: Provide a systematic framework for simplifying legacy code and removing redundant abstractions using Occam's Razor and YAGNI.
- AI-Driven Development Guardrails: Ensure that generated code is not only functional but also adheres to professional-grade architectural standards and ethical AI behavior.
| name | smith-principles |
|---|---|
| description | Fundamental coding principles (DRY, KISS, YAGNI, SOLID, HHH). Use when starting any development task, evaluating implementation approaches, or reviewing code quality. Always active as foundation for all development decisions. |
Fundamental Coding Principles
- Load if: Always active (foundation for all development)
- Prerequisites: None
CRITICAL (Primacy Zone)
- MUST apply DRY before adding features
- MUST apply KISS to choose simplest solution
- MUST apply YAGNI to defer unneeded implementation
- Violating Single Responsibility (one reason to change)
- Creating tight coupling (depend on abstractions instead)
- Duplicating code that could be abstracted
Core Principles
- DRY (Don't Repeat Yourself): Single source of truth
- KISS (Keep It Simple, Stupid): Simplest solution that works
- YAGNI (You Aren't Gonna Need It): Don't implement until needed
- SINE (Simple Is Not Easy): Simplicity requires deliberate effort
- MECE (Mutually Exclusive, Collectively Exhaustive): Complete coverage without overlap
- Occam's Razor: Prefer solutions with fewest assumptions
SOLID Principles
- S (Single Responsibility): One reason to change per class/module
- O (Open/Closed): Open for extension, closed for modification
- L (Liskov Substitution): Subtypes substitutable for base types
- I (Interface Segregation): Many specific interfaces over one general
- D (Dependency Inversion): Depend on abstractions, not concretions
HHH (AI Behavior)
- H (Helpful): Provide useful, actionable assistance
- H (Honest): Be truthful, acknowledge uncertainty
- H (Harmless): Avoid destructive operations without confirmation
- @smith-standards/SKILL.md - Universal coding standards
- @smith-guidance/SKILL.md - AI agent behavior (HHH framework)
ACTION (Recency Zone)
Before implementing:
- Check for existing abstractions (DRY)
- Choose simplest approach (KISS)
- Confirm feature is needed now (YAGNI)
- Verify single responsibility (SOLID-S)