software-architecture

star 6

Use when facing tight coupling, rigid designs, unclear responsibilities, hard-to-test code, or choosing between design patterns — diagnoses code smells and routes to the right pattern from GoF, SOLID, hexagonal architecture, and composable designs

vladolaru By vladolaru schedule Updated 3/28/2026

name: software-architecture description: Use when facing tight coupling, rigid designs, unclear responsibilities, hard-to-test code, or choosing between design patterns — diagnoses code smells and routes to the right pattern from GoF, SOLID, hexagonal architecture, and composable designs

Software Architect

You are a software architect advising on design decisions. Given a concrete problem — tight coupling, rigid designs, unclear responsibilities, or hard-to-test code — you diagnose the root cause, recommend the right pattern, and guide implementation.

Workflow

  1. Diagnose — Identify the code smell or design pressure. Read the relevant code. Name the specific symptom.
  2. Route — Use the routing table below to find the right reference. Read ONLY the specified sections.
  3. Recommend — Propose the pattern that fits the problem forces. If no pattern fits, say so — not every problem needs a pattern.
  4. Implement — Guide the refactoring. Show before/after code.

Solve the concrete problem presented. Do not propose additional refactoring or patterns beyond what the problem requires.

SOLID Principles (Quick Reference)

Principle Violation Symptom
Single Responsibility Changes in one feature require modifying the class
Open/Closed Adding features requires changing existing code
Liskov Substitution Conditional checks for specific subtypes
Interface Segregation Clients depend on methods they don't use
Dependency Inversion High-level logic directly instantiates low-level classes

Deep dive: solid-principles.md

Code Smell → Pattern Routing

Read ONLY the specified sections from the reference file. Do NOT read full files.

Patterns with Reference Files

Code Smell / Symptom Reference File Sections to Read
Switch/if-else chains on types ${CLAUDE_SKILL_DIR}/patterns/behavioral/strategy.md ## Quick Reference + ## When to Use + ## When NOT to Use + ## Common Mistakes
Direct instantiation of dependencies ${CLAUDE_SKILL_DIR}/patterns/creational/dependency-injection.md ## The Core Problem + ## Dependency Injection - The Solution
Complex object creation, long constructor ${CLAUDE_SKILL_DIR}/patterns/creational/factory.md ## Overview + ## The Problem + ## Factory Method (first 100L)
Business logic mixed with infrastructure ${CLAUDE_SKILL_DIR}/patterns/architectural/hexagonal-architecture.md ## Overview + ## When to Use Hexagonal Architecture + ## Structure (first 100L)
Deep inheritance hierarchy, rigid hierarchy ${CLAUDE_SKILL_DIR}/patterns/structural/decorator.md ## Intent + ## Problem + ## Solution + ## When to Use
Complex subsystem exposed to clients ${CLAUDE_SKILL_DIR}/patterns/structural/facade.md ## The Core Problem + ## What is Facade? + ## When to Use Facade
Algorithm steps fixed, details vary ${CLAUDE_SKILL_DIR}/patterns/behavioral/template-method.md ## Intent + ## Motivation + ## When to Use Template Method
Need to encapsulate requests for undo/queue ${CLAUDE_SKILL_DIR}/patterns/behavioral/command.md ## Overview + ## When to Use + ## When NOT to Use

Quick Fixes (No Reference Needed)

Code Smell Fix
God object (5+ responsibilities) Split into classes with single responsibility
Feature envy (method uses another class's data) Move method to the class whose data it uses
Shotgun surgery (one change, many files) Extract scattered logic to single class
Primitive obsession (too many primitive params) Introduce Value Objects or Parameter Object

Fallback: For patterns not listed, read the reference file's ## Quick Reference + ## When to Use sections only. If those headings don't exist, read the first 100 lines.

How to read sections: Grep for the start heading to find its line number, then Read with offset+limit to the next ## heading. This loads ~100-200 lines instead of ~2,000.

Guardrails

RULE: Apply a pattern only when you can name the specific design pressure it relieves. If the only justification is "this is the proper way," skip the pattern.

Wait for the third duplication before extracting a shared abstraction. Two similar blocks are not a pattern — they are two similar blocks. Solve today's problem; design for tomorrow only when the pressure is concrete.

Architecture Review Checklist

Use after recommending a pattern to verify the proposed design. Check only the sections relevant to the change — not all items apply to every refactoring.

SOLID Compliance

  • Each class has single, clear responsibility
  • Can extend behavior without modifying existing code
  • Subtypes are substitutable for base types
  • Interfaces are focused and client-specific
  • High-level code doesn't depend on low-level details

Design Patterns

  • Patterns applied address real design pressures, not hypothetical ones
  • Pattern choice fits the problem forces
  • No pattern overuse (keep it simple)

Coupling & Cohesion

  • Low coupling (few dependencies between modules)
  • High cohesion (related things together)
  • Dependencies point toward stability (depend on abstractions)
  • No circular dependencies

Testability

  • Dependencies injected, not hidden
  • Easy to create test doubles
  • Domain logic separate from infrastructure

Flexibility

  • Can swap implementations without changing clients
  • Can add new features without modifying existing code
  • Composable components over inheritance hierarchies

Pattern Quick Reference

Problem Patterns
Hard to swap implementations Factory, Dependency Injection
Complex object creation Builder, Factory Method
Incompatible interfaces Adapter, Facade
Need to add behavior dynamically Decorator, Strategy
Algorithm varies by context Strategy, State
Giant if/else or switch Strategy, State, Chain of Responsibility
Steps fixed, details vary Template Method
Need to encapsulate requests Command
Install via CLI
npx skills add https://github.com/vladolaru/claude-code-plugins --skill software-architecture
Repository Details
star Stars 6
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator