design
Software Design
This skill provides guidance on software design principles, emphasizing simplicity, maintainability, and clean architecture.
The Four Rules of Simple Design
These rules, in priority order, guide all design decisions:
- Passes the tests — The code must work correctly
- Reveals intention — The code clearly expresses what it does
- No duplication — Every piece of knowledge has a single representation (DRY)
- Fewest elements — No unnecessary classes, methods, or code
Rules 2 and 3 are closely related and reinforce each other. When they appear to conflict, favor revealing intention — clarity for the reader takes precedence.
The rules are applied in order: never sacrifice correctness for clarity, never sacrifice clarity for DRY, and never add elements just to reduce duplication.
SOLID Principles
More from booch/config_files
sdlc
Software development lifecycle guidance. This skill should be used when planning development work, conducting code reviews, or establishing development workflows. Use proactively when reviewing code, preparing commits, creating pull requests, refactoring, or discussing development process and best practices. (user)
13security
Security guidelines for secure coding and code review. This skill should be used when architecting/designing systems, writing code, or reviewing code. Use proactively when discussing vulnerabilities, OWASP, injection attacks, XSS, CSRF, SQL injection, authentication, authorization, access control, encryption, secrets management, input validation, or secure coding practices. (user)
9skill-creator
Create effective AI skills. This skill should be used when user wants to create a new skill (or update an existing skill) that extends an AI with specialized capabilities, knowledge, workflows, or tool integrations.
7testing
Testing philosophy and practices. This skill should be used when writing tests, designing test strategies, or reviewing test code. Use proactively when discussing TDD, red-green-refactor, test doubles, mocks, stubs, fakes, RSpec, Jest, pytest, unit tests, integration tests, test coverage, or test-first development. (user)
6code-quality
Code quality guidelines including naming, structure, and maintainability. This skill should be used when writing or reviewing code to ensure it meets quality standards. Use proactively when discussing naming conventions, code smells, readability, Sandi Metz rules, method length, class size, comments, refactoring for clarity, or maintainability concerns. (user)
6