software-architecture

Define module boundaries, layering, and interfaces using Clean Architecture and DDD.

2|Updated Jan 7, 2026
One-click install
npx skills add https://github.com/ShunmeiCho/dotclaude --skill software-architecture-shunmeicho
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/ShunmeiCho/dotclaude/tree/main/skills/software-architecture
Command: npx skills add https://github.com/ShunmeiCho/dotclaude --skill software-architecture-shunmeicho

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Software teams often struggle to design scalable, maintainable systems. This skill provides a structured framework to reason about architecture, boundaries, and quality attributes, reducing guesswork and rework.

Core Features & Use Cases

  • Clean Architecture guidance: separate concerns into entities, use cases, interfaces, and infrastructure.
  • Domain-Driven Design alignment: promote explicit domain models and bounded contexts.
  • Code quality and governance: naming conventions, modular decomposition, and solution structuring for maintainability.
  • Use Case: when starting a new service, apply the architecture guidelines to define entities, boundaries, and interfaces, then evaluate dependencies for testability and change resilience.

Quick Start

Explain how to apply Clean Architecture to a new payment service, detailing entities, use cases, boundaries, interfaces, and testing strategy.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I structure a new service using clean architecture and DDD?

Clean architecture separates concerns into entities, use cases, interfaces, and infrastructure. Align with DDD by defining explicit domain models and bounded contexts to establish module boundaries, naming conventions, and layering for scalable design.

What is the best way to define module boundaries and naming conventions?

The best way to define module boundaries is applying separation of concerns and domain-driven design principles. Establish explicit bounded contexts and enforce consistent naming conventions to modularize code, ensuring maintainability and reducing guesswork during system structuring.

Can I apply these architecture guidelines to projects of any size and domain?

Yes, you can apply these architecture guidelines to projects of any size and domain. The framework provides structured reasoning for scalable design, guiding layering, interface boundaries, and testability regardless of the specific domain or project scale.

How does separation of concerns improve code quality and testability?

Separation of concerns improves code quality by isolating domain logic from infrastructure. Evaluating dependencies across explicit interface boundaries ensures modules remain independent, directly increasing testability and change resilience while maintaining strict naming conventions and modular decomposition.

When do I need domain-driven design for software architecture?

You need domain-driven design when solving architecture decision fatigue for complex domains. DDD promotes explicit domain models and bounded contexts, providing a structured framework to reason about module boundaries, use-case definition, and quality attributes for maintainable systems.

How do I evaluate dependencies for testability and change resilience?

Evaluate dependencies for testability by checking interface boundaries and separation of concerns. Analyze whether domain models and use cases remain isolated from infrastructure, ensuring the architecture supports change resilience and strict modular decomposition without guesswork.