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.