software-design

Apply SOLID principles, design patterns, and system design fundamentals to software architectures.

20|3|Updated Feb 2, 2026
One-click install
npx skills add https://github.com/re-cinq/wave --skill software-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-design
Source: https://github.com/re-cinq/wave/tree/main/.claude/skills/software-design
Command: npx skills add https://github.com/re-cinq/wave --skill software-design

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Expert software design principles including SOLID, design patterns, system design, and architectural decision making help engineers craft robust, scalable software.

Core Features & Use Cases

  • SOLID principles application and refactoring guidance.
  • Design pattern selection, system design fundamentals, and ADR-focused decision making.
  • API design guidance and documentation templates for maintainable interfaces.

Quick Start

Provide a SOLID-compliant design outline for a new service, including pattern choices, ADR structure, and API design considerations.

Frequently Asked Questions about software-design

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I apply SOLID principles when designing a new software architecture?

Apply SOLID principles by defining scalable, maintainable software architectures through system design reviews and refactoring guidance. This ensures your new service design separates concerns correctly and follows established object-oriented structuring best practices.

What is the best way to document architectural decisions for a complex system?

Document architectural decisions using Architecture Decision Records to capture system design rationale. ADRs provide a structured template for recording context, decisions, and consequences, ensuring robust documentation across complex domains.

How do I select the right design patterns for my software project?

Select design patterns by evaluating system design fundamentals and applying SOLID principles to your specific use case. This approach guides pattern selection to create maintainable interfaces and robust software architectures.

Does this approach work for API design and database modeling?

Yes, this approach works for API design and database modeling by applying system design fundamentals. It provides API design guidance and documentation templates to create maintainable interfaces across complex domains.

When should I not use a specific design pattern in my architecture?

Avoid specific design patterns when they violate SOLID principles or add unnecessary complexity to your software design. Use system design reviews and ADR-focused decision making to evaluate if a pattern fits your domain.