software-architecture

Guide software teams in designing quality-focused architectures with Clean Architecture and Domain-Driven Design.

Updated Dec 18, 2025
One-click install
npx skills add https://github.com/RichardMcSorley/route-roo-app --skill software-architecture-richardmcsorley
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/RichardMcSorley/route-roo-app/tree/main/.claude/skills/software-architecture
Command: npx skills add https://github.com/RichardMcSorley/route-roo-app --skill software-architecture-richardmcsorley

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides guidance for quality-focused software development and architecture, emphasizing Clean Architecture and Domain-Driven Design principles to improve maintainability and reduce complexity.

Core Features & Use Cases

  • Library-first approach: Encourage using established libraries before building custom solutions.
  • Architecture & Design: Clear boundaries, bounded contexts, separation of concerns, and testable components.
  • Code Quality: Rules for error handling, decomposition, naming, and maintainability.

Quick Start

Describe the architecture you want to create, paste a code snippet, or outline a system, and ask for critique, boundaries, and a phased plan to implement it.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I design clean, scalable software architecture for my project?

Clean architecture emphasizes strict separation of concerns, testable components, and clear boundaries between layers. Start by defining your domain boundaries, decomposing large components into focused units, and ensuring each part has a single responsibility. This approach reduces complexity and improves maintainability across your codebase.

What's the difference between Domain-Driven Design and Clean Architecture?

Domain-Driven Design focuses on modeling business logic through bounded contexts and ubiquitous language, while Clean Architecture provides structural rules for organizing code layers and dependencies. Both complement each other: DDD shapes *what* you build, Clean Architecture shapes *how* you organize it. Use them together to align architecture with domain requirements.

How do I refactor large components into smaller, maintainable pieces?

Refactoring starts with identifying responsibilities and extracting them into separate, focused components. Apply early returns to reduce nesting, eliminate duplication through decomposition, and enforce strict separation of concerns. Each component should have one reason to change, making your code easier to test and modify.

Should I build a custom solution or use an established library?

Adopt a library-first approach: use established libraries before building custom solutions. This reduces duplication, leverages tested implementations, and lowers maintenance burden. Only build custom solutions when libraries don't meet specific domain requirements or create unnecessary coupling.

How do I ensure code quality while designing system architecture?

Enforce code quality through consistent naming, robust error handling, and adherence to design principles like SOLID and Clean Architecture. Implement decomposition rules that prevent large functions, maintain clear boundaries between components, and structure code to be testable from the ground up.

Can I apply these architecture principles to TypeScript projects?

Yes, Clean Architecture and Domain-Driven Design principles apply across languages including TypeScript. TypeScript's type system and module structure naturally support these patterns, enabling you to implement strict separation of concerns, clear boundaries, and testable component design effectively.