smith-principles

Apply DRY, KISS, YAGNI, SOLID, and HHH principles to code reviews and refactoring.

1|Updated Nov 25, 2025
One-click install
npx skills add https://github.com/tianjianjiang/smith --skill smith-principles
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: smith-principles
Source: https://github.com/tianjianjiang/smith/tree/main/smith-principles
Command: npx skills add https://github.com/tianjianjiang/smith --skill smith-principles

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Guidelines that enforce foundational rules (DRY, KISS, YAGNI, SOLID, HHH) to improve software quality, readability, and maintainability across projects.

Core Features & Use Cases

  • Establishes a shared vocabulary for evaluating design decisions.
  • Helps teams start projects with a clear baseline and perform effective code reviews.
  • Supports ongoing maintenance by preventing over-engineering and promoting simplicity.

Quick Start

Review the five core principles and apply them to your current development task.

Frequently Asked Questions about smith-principles

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
What are the foundational coding principles for clean code?▼

Foundational coding principles like DRY, KISS, YAGNI, SOLID, and HHH provide actionable guidelines to improve software quality. They establish a shared vocabulary for evaluating design decisions and preventing over-engineering during development.

How do I apply SOLID and DRY principles during a code review?▼

Apply SOLID and DRY principles during code reviews by using the provided explicit evaluation criteria to assess design decisions. This ensures codebases adhere to a clear baseline for maintainability and prevents over-engineering.

Can I use these coding principles for any programming language?▼

You can use these coding principles across common programming languages and codebases. They are suitable for project initiation, code reviews, and refactoring, providing a language-agnostic baseline for software quality.

When should I use the YAGNI principle to prevent over-engineering?▼

Use the YAGNI principle to prevent over-engineering during project initiation and ongoing maintenance. It promotes simplicity by ensuring you only implement functionality that is actually needed, supporting maintainable codebases.

What is the best way to establish a shared vocabulary for code quality?▼

The best way to establish a shared vocabulary for code quality is to codify foundational rules like DRY, KISS, and SOLID. This gives teams a clear baseline to evaluate design decisions and perform effective code reviews consistently.