Claude Code Plugins

Community-maintained marketplace

Feedback

Expert in modern code design standards including SOLID principles, Clean Code patterns (KISS, YAGNI, DRY, TDA), design patterns, and pragmatic software design. **ALWAYS use when designing ANY classes/modules, implementing features, fixing bugs, refactoring code, or writing functions. ** Use proactively to ensure proper design, separation of concerns, simplicity, and maintainability. Triggers - "create class", "design module", "implement feature", "refactor code", "fix bug", "is this too complex", "apply SOLID", "keep it simple", "avoid over-engineering", writing any code.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name coding-standard
description Expert in modern code design standards including SOLID principles, Clean Code patterns (KISS, YAGNI, DRY, TDA), design patterns, and pragmatic software design. **ALWAYS use when designing ANY classes/modules, implementing features, fixing bugs, refactoring code, or writing functions. ** Use proactively to ensure proper design, separation of concerns, simplicity, and maintainability. Triggers - "create class", "design module", "implement feature", "refactor code", "fix bug", "is this too complex", "apply SOLID", "keep it simple", "avoid over-engineering", writing any code.

Coding Standard

Expert guidance for writing well-designed, simple, maintainable code following modern software engineering practices. All rules are mandatory when there is valid context for their application.

Core Philosophy

  1. "Duplication Over Coupling" - Prefer duplicating code between contexts over creating shared abstractions
  2. "Start Ugly, Refactor Later" - Don't create abstractions until you have 2 or more real use cases
  3. KISS Over DRY - Simplicity beats premature abstraction every time
  4. YAGNI Always - Never add features or abstractions "just in case"

When to Engage

Proactively assist when:

  • Designing new classes or modules
  • Implementing features without over-abstraction
  • Refactoring to remove unnecessary complexity
  • Fixing bugs
  • Code reviews focusing on simplicity
  • Detecting and preventing over-engineering
  • Choosing duplication over coupling

Rule Categories

SOLID Principles (Object-Oriented Design)

  1. Single Responsibility Principle (SRP) - One reason to change per class/module

  2. Open/Closed Principle (OCP) - Open for extension, closed for modification

  3. Liskov Substitution Principle (LSP) - Subtypes must be substitutable for base types

  4. Interface Segregation Principle (ISP) - Small, focused interfaces over large ones

  5. Dependency Inversion Principle (DIP) - Depend on abstractions, not concretions

Clean Code Principles (Simplicity & Pragmatism)

  1. KISS - Keep It Simple, Stupid - Simplicity is the ultimate sophistication

  2. YAGNI - You Aren't Gonna Need It - Build only what you need right now

  3. DRY - Don't Repeat Yourself - Apply abstraction after Rule of Three

  4. TDA - Tell, Don't Ask - Tell objects what to do, don't ask for data

Design Patterns

  1. Singleton Pattern - Ensure a class has only one instance

  2. Factory Pattern - Create objects without specifying exact classes

  3. Observer Pattern - Define one-to-many dependency for event notification

  4. Strategy Pattern - Define family of algorithms, make them interchangeable

  5. Decorator Pattern - Add responsibilities to objects dynamically

  6. Repository Pattern - Abstract data access logic

  7. Dependency Injection - Invert control by injecting dependencies

Function & Code Design Practices

  1. Pure Functions - Prefer pure (stateless) functions

  2. Immutability - Prefer immutable data structures

  3. Single Responsibility Functions - Keep functions short and focused

  4. Early Returns - Use early returns to reduce nesting

  5. Composition Over Inheritance - Prefer composition

  6. Loop Control Flow - Use appropriate loops with break/continue

  7. Avoid Global Variables - Minimize global state

  8. Class Design - Separate data and methods appropriately

  9. Avoid Side Effects - Minimize side effects in functions

  10. Avoid Getters/Setters - Prefer direct access or immutability

  11. Avoid Module-Level Side Effects - Wrap in lazy initialization

  12. Keep Functions Small - Target < 20 lines per function

  13. Meaningful Names - Use self-documenting names over comments

  14. Single Level of Abstraction - Keep functions at one abstraction level

Quick Reference

When principles conflict:

  • KISS vs DRY: Prefer KISS, apply DRY only after Rule of Three
  • YAGNI vs Future-Proofing: Start with YAGNI, refactor when needed
  • SOLID vs KISS: Apply SOLID when complexity is justified
  • TDA vs Simple Data: Use TDA for business logic, simple structs for DTOs

Apply principles when:

  • Complex business logic that will evolve
  • Multiple implementations needed
  • Team projects requiring clear boundaries
  • Testability is critical
  • Long-term maintainability is a priority

Don't over-apply when:

  • Simple CRUD operations with stable requirements
  • Small utilities (< 100 lines)
  • Prototypes or POCs
  • Performance-critical code where abstraction adds overhead
  • When it adds complexity without clear benefit

Usage Instructions for Agentic Tools

IMPORTANT - Context and Token Management:

This SKILL.md file contains summary information for all 30 coding standards. Use this summary to:

  • Understand which rules apply to your current task
  • Know when to apply each rule
  • Get quick guidance without reading detailed references

Do NOT preemptively load references. Only read detailed rule files and examples when:

  1. Actively implementing a specific pattern or rule
  2. Need clarification on how to apply a rule
  3. Reviewing/debugging code that uses a specific pattern

Example workflow:

  • ✅ GOOD: "I'm implementing a notification system" → Check SKILL.md → See Observer Pattern applies → Read observer-pattern-rule.md → Implement
  • ❌ BAD: "I'm implementing a notification system" → Load all 7 design pattern rules "just in case"

When to read what:

  • SKILL.md only: General guidance, rule selection, understanding when to apply
  • references/rules/{rule}.md: Detailed implementation guidance for a specific rule you're applying
  • references/pseudo-examples/{rule}-example.md: Pseudo-code examples when you need to see concrete implementation

Token efficiency: The summary in SKILL.md is designed to be sufficient for most decisions. Only load references when you actually need implementation details.


Quick Usage Steps

When implementing any code:

  1. Review relevant rule categories in SKILL.md based on the task
  2. Identify which specific rules apply to your current implementation
  3. Only then read specific rule files from references/rules/ for those rules
  4. Only if needed consult examples from references/examples/ for clarification
  5. Apply rules as mandatory requirements with valid context
  6. Balance principles - don't over-engineer simple solutions