All skills
asyrafhussin avatar

/clean-code-principles

@680deef

SOLID principles, design patterns, DRY, KISS, and clean code fundamentals. Use when reviewing architecture, checking code quality, refactoring, or discussing design decisions. Triggers on "review architecture", "check code quality", "SOLID principles", "design patterns", or "clean code".

Use this Skill: https://skilld.dev/gh/asyrafhussin/agent-skills/clean-code-principles

This session only. Nothing lands on disk.

rules_sections.md

≈2.4k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Clean Code Principles - Rule Categories

This document defines the organizational structure for clean code principles, ordered by priority and impact.

Category Overview

Priority Category Impact Rule Count Prefix
1 SOLID Principles CRITICAL 10 solid-
2 Core Principles CRITICAL 12 core-
3 Design Patterns HIGH 1 pattern-
4 Code Organization HIGH 0 org-
5 Naming & Readability MEDIUM 0 name-
6 Functions & Methods MEDIUM 0 func-
7 Comments & Documentation LOW 0 doc-

1. SOLID Principles (CRITICAL)

Priority: CRITICAL Impact: Architectural foundation, affects entire codebase structure Prefix: solid-

The five fundamental principles of object-oriented design that guide maintainable, scalable software architecture.

Rules

Single Responsibility Principle (SRP)
  • solid-srp-class - A class should have only one reason to change
  • solid-srp-function - A function should do one thing and do it well
Open/Closed Principle (OCP)
  • solid-ocp-extension - Open for extension, closed for modification
  • solid-ocp-abstraction - Use abstractions to enable extension
Liskov Substitution Principle (LSP)
  • solid-lsp-contracts - Subtypes must honor base type contracts
  • solid-lsp-preconditions - Cannot strengthen preconditions or weaken postconditions
Interface Segregation Principle (ISP)
  • solid-isp-clients - Client-specific interfaces, not general-purpose
  • solid-isp-interfaces - Small, cohesive interfaces
Dependency Inversion Principle (DIP)
  • solid-dip-abstractions - Depend on abstractions, not concretions
  • solid-dip-injection - Inject dependencies from outside

Key Concepts:

  • Architectural soundness
  • Maintainability at scale
  • Testability through design
  • Flexibility for change
  • Reduced coupling

When to Apply:

  • Designing new features or systems
  • Refactoring existing architecture
  • Addressing technical debt
  • Improving testability
  • Planning for future extensibility

2. Core Principles (CRITICAL)

Priority: CRITICAL Impact: Daily coding practices, code quality foundation Prefix: core-

Fundamental principles that apply to every line of code you write, regardless of paradigm or language.

Rules

DRY (Don't Repeat Yourself)
  • core-dry - Every piece of knowledge should have a single representation
  • core-dry-extraction - Extract duplicated code into reusable functions
  • core-dry-single-source - Single source of truth for configuration and data
KISS (Keep It Simple, Stupid)
  • core-kiss-simplicity - Choose the simplest solution that works
  • core-kiss-readability - Optimize for readability over cleverness
YAGNI (You Aren't Gonna Need It)
  • core-yagni-features - Don't implement features before they're needed
  • core-yagni-abstractions - Don't create abstractions prematurely
Other Core Principles
  • core-separation-concerns - Different concerns in different modules
  • core-composition - Favor composition over inheritance
  • core-law-demeter - Only talk to immediate friends
  • core-fail-fast - Detect and report errors early
  • core-encapsulation - Hide implementation details

Key Concepts:

  • Code duplication elimination
  • Simplicity over complexity
  • Lean development
  • Modularity
  • Information hiding

When to Apply:

  • Writing any new code
  • Code reviews
  • Refactoring sessions
  • Bug fixes
  • Performance optimization

3. Design Patterns (HIGH)

Priority: HIGH Impact: Solves recurring problems with proven solutions Prefix: pattern-

Common design patterns that provide tested solutions to recurring software design problems.

Rules

  • pattern-repository - Abstraction for data access layer
  • pattern-factory - Object creation without specifying exact class (planned)
  • pattern-strategy - Encapsulate algorithms for runtime selection (planned)
  • pattern-decorator - Add behavior without modifying objects (planned)
  • pattern-observer - Define one-to-many dependencies (planned)
  • pattern-adapter - Make incompatible interfaces work together (planned)
  • pattern-facade - Simplified interface to complex subsystems (planned)

Key Concepts:

  • Proven solutions
  • Common vocabulary
  • Design reusability
  • Best practices codified
  • Language-agnostic approaches

When to Apply:

  • Solving common architectural problems
  • Improving code structure
  • Reducing coupling between components
  • Making systems more testable
  • Communicating design intent

4. Code Organization (HIGH)

Priority: HIGH Impact: Project structure, module boundaries, discoverability Prefix: org-

Principles for organizing code into modules, packages, and directories for maintainability and scalability.

Rules (Planned)

  • org-feature-folders - Organize by feature, not by layer
  • org-module-boundaries - Clear boundaries between modules
  • org-layered-architecture - Proper separation of layers
  • org-package-cohesion - Keep related code together
  • org-circular-dependencies - Avoid circular imports

Key Concepts:

  • Feature-based organization
  • Module boundaries
  • Layer separation
  • Dependency direction
  • Discoverability

When to Apply:

  • Starting new projects
  • Restructuring existing codebases
  • Scaling applications
  • Onboarding new team members
  • Managing microservices

5. Naming & Readability (MEDIUM)

Priority: MEDIUM Impact: Code comprehension, maintenance speed Prefix: name-

Conventions and principles for naming variables, functions, classes, and other identifiers.

Rules (Planned)

  • name-meaningful - Use intention-revealing names
  • name-consistent - Follow consistent naming conventions
  • name-searchable - Avoid magic numbers and strings
  • name-avoid-encodings - No Hungarian notation
  • name-domain-language - Use ubiquitous domain language

Key Concepts:

  • Intention revelation
  • Consistency
  • Searchability
  • Domain terminology
  • Avoid abbreviations

When to Apply:

  • Creating new identifiers
  • Refactoring unclear names
  • Code reviews
  • Domain modeling
  • API design

6. Functions & Methods (MEDIUM)

Priority: MEDIUM Impact: Code readability, testability at function level Prefix: func-

Principles for writing clean, focused functions and methods.

Rules (Planned)

  • func-small - Keep functions small and focused
  • func-single-purpose - Do one thing only
  • func-few-arguments - Limit function parameters
  • func-no-side-effects - Minimize or document side effects
  • func-command-query - Separate commands from queries

Key Concepts:

  • Small functions
  • Single purpose
  • Few parameters
  • Pure functions when possible
  • Predictable behavior

When to Apply:

  • Writing new functions
  • Refactoring long methods
  • Improving testability
  • Code reviews
  • Performance optimization

7. Comments & Documentation (LOW)

Priority: LOW Impact: Code maintainability, knowledge transfer Prefix: doc-

Guidelines for when and how to use comments and documentation effectively.

Rules (Planned)

  • doc-self-documenting - Write code that explains itself
  • doc-why-not-what - Comments should explain why, not what
  • doc-avoid-noise - No redundant or obvious comments
  • doc-api-docs - Document public APIs and interfaces

Key Concepts:

  • Self-documenting code
  • Intent over implementation
  • Avoid redundancy
  • Public API documentation
  • Living documentation

When to Apply:

  • Complex business logic
  • Non-obvious algorithms
  • Public APIs
  • Architectural decisions
  • Workarounds and hacks

Rule Naming Convention

All rules follow a consistent naming pattern:

{prefix}-{concept}-{specificity}

Examples:

  • solid-srp-class - SOLID principle, SRP concept, class level
  • core-dry-extraction - Core principle, DRY concept, extraction technique
  • pattern-repository - Design pattern category, repository pattern

Priority Levels Explained

  • CRITICAL: Core architectural and coding principles. Violations significantly impact maintainability, testability, and scalability.
  • HIGH: Important patterns and organizational principles. Violations complicate future development.
  • MEDIUM: Best practices that improve code quality. Violations make code harder to read and maintain.
  • LOW: Nice-to-have practices. Violations have minimal impact but reduce clarity.

Impact Assessment

  • CRITICAL Impact: Affects entire system architecture, multiple teams, long-term maintainability
  • HIGH Impact: Affects module design, team productivity, medium-term maintainability
  • MEDIUM Impact: Affects code readability, individual developer productivity
  • LOW Impact: Affects code clarity, documentation quality

Usage Guidelines

  1. Start with SOLID and Core Principles - these are non-negotiable
  2. Apply Design Patterns when solving specific architectural problems
  3. Use Code Organization principles when structuring projects
  4. Follow Naming & Readability guidelines for all new code
  5. Apply Function principles during refactoring and new development
  6. Add Comments only when necessary to explain complex logic

Cross-References

Rules often relate to each other. The related field in each rule's frontmatter indicates:

  • Rules that commonly apply together
  • Rules that solve similar problems
  • Rules that complement each other
  • Rules that provide context or prerequisites

Evolution

This categorization will evolve as:

  • New rules are added
  • Patterns emerge from practice
  • Team feedback is incorporated
  • Language-specific adaptations are needed

Source: SKILL.md on GitHub

1 warning16d5 checks · Risk SAFE
  • Gen Agent Trust Hub16d

    This skill contains language-agnostic guidelines, examples, and reference material for clean code and SOLID principles. It consists purely of static documentation and contains no executable code or security risks.

  • Socket16d

    No alerts

  • Snyk16d

    Risk: LOW · No issues

  • Runlayer6mo

    5/29 files flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 680deef. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last month.

Steadyupdated 7 months ago
metadata
{
  "author": "AsyrafHussin",
  "version": "1.0.2"
}

README badge

README badge for asyrafhussin/agent-skills/clean-code-principles