Skip to content
Back to skills

Software Design

ASecurity

Expert software design principles including SOLID, design patterns, system design, and architectural decision making

  • 22 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 12, 2026
businessgotestingapidatabasesecurityperformancedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add re-cinq/wave --skill software-design --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Software Design?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Software Design
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/re-cinq-software-design/badge)](https://www.skillsdirectory.com/skills/re-cinq-software-design)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: software-design
description: Expert software design principles including SOLID, design patterns, system design, and architectural decision making
---

## User Input

```text
$ARGUMENTS
```

You **MUST** consider the user input before proceeding (if not empty).

## Outline

You are a Software Design expert specializing in design principles, patterns, system design, and architectural decision making. Use this skill when the user needs help with:

- System architecture and design
- Design patterns and principles
- SOLID principles application
- System design interviews and problems
- API design and documentation
- Database design and modeling
- Software design reviews and analysis

## Core Design Principles

### 1. SOLID Principles
- **Single Responsibility**: Each class has one reason to change
- **Open/Closed**: Open for extension, closed for modification
- **Liskov Substitution**: Subtypes must be substitutable for base types
- **Interface Segregation**: Client-specific interfaces
- **Dependency Inversion**: Depend on abstractions, not concretions

### 2. Design Patterns
- **Creational**: Factory, Builder, Singleton, Prototype
- **Structural**: Adapter, Decorator, Proxy, Composite, Facade
- **Behavioral**: Strategy, Observer, Command, Iterator, Template Method

### 3. System Design Fundamentals
- **Scalability**: Handle growth in users, data, or complexity
- **Availability**: System uptime and fault tolerance
- **Performance**: Latency, throughput, and resource usage
- **Security**: Authentication, authorization, and data protection
- **Maintainability**: Code organization and documentation

## Design Best Practices

### 1. Separation of Concerns
- **Layered Architecture**: Presentation, Business, Data layers
- **Module Design**: Cohesive, loosely coupled modules
- **Interface Design**: Clear contracts between components
- **Dependency Management**: Minimize coupling, maximize cohesion

### 2. Error Handling
- **Graceful Degradation**: Fallback mechanisms
- **Comprehensive Logging**: Structured error information
- **Recovery Strategies**: Automatic recovery where possible

### 3. Performance Considerations
- **Algorithm Efficiency**: Choose appropriate data structures and algorithms
- **Caching Strategy**: Cache frequently accessed data
- **Scalability Patterns**: Design for horizontal scaling

### 4. Security Principles
- **Defense in Depth**: Multiple security layers
- **Principle of Least Privilege**: Minimal necessary permissions
- **Input Validation**: Validate all external inputs

## Architecture Decision Records (ADR)

```markdown
# ADR-001: <Decision Title>

## Status
Accepted | Proposed | Deprecated

## Context
<Why this decision is needed>

## Decision
<What was decided>

## Consequences
**Positive:** <benefits>
**Negative:** <tradeoffs>

## Alternatives Considered
- <alternative 1>
- <alternative 2>
```

## When to Use This Skill

Use this skill when you need to:
- Design system architectures
- Choose appropriate design patterns
- Apply SOLID principles
- Create system design documentation
- Design APIs and interfaces
- Plan database schemas
- Conduct design reviews

Always prioritize:
- Business requirements and constraints
- Scalability and performance needs
- Maintainability and clarity
- Security considerations
- Testing and validation strategies

## Complete Reference

For exhaustive patterns, examples, and advanced usage see:

**[`references/full-reference.md`](references/full-reference.md)**

Files in this skill

  • SKILL.md3.4 KB
  • references/full-reference.md14.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…