software-architecture

Guide software architecture design using Clean Architecture and Domain-Driven Design principles.

7|3|Updated Jan 15, 2026
One-click install
npx skills add https://github.com/Zpankz/mcp-skillset --skill software-architecture-zpankz
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/Zpankz/mcp-skillset/tree/main/software-architecture
Command: npx skills add https://github.com/Zpankz/mcp-skillset --skill software-architecture-zpankz

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This guide provides structured, quality-focused guidance for designing and evolving software architectures aligned with Clean Architecture and Domain Driven Design principles, reducing confusion and maintenance costs across teams.

Core Features & Use Cases

  • Architecture guidance: Emphasizes Clean Architecture and DDD to keep business rules in domain layers and separate from infrastructure concerns.
  • Naming & boundaries: Encourages domain-driven naming and bounded contexts with clear module boundaries.
  • Separation of concerns: Keeps business logic independent from UI and data access, and promotes modular, testable components.
  • Anti-patterns to avoid: Warns against NIH syndrome, mixing concerns, and generic, overgrown utility modules.
  • Code quality & maintainability: Advocates for structured, well-scoped files, clear interfaces, and maintainable code.

Quick Start

Apply Clean Architecture and DDD principles to start designing modular, testable, and scalable software systems.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
What is the best way to define bounded contexts for domain-driven design?

Clean architecture separates business rules into domain layers, keeping them independent from UI and data access concerns to ensure modular, testable software components.

Does domain-driven design work for small software projects?

Common architecture anti-patterns include NIH syndrome, mixing concerns across layers, and creating generic, overgrown utility modules that degrade code quality and maintainability.

How do I organize code to improve maintainability and testability?

Improve maintainability by structuring well-scoped files, defining clear interfaces, and enforcing domain boundaries to keep components modular and testable.

When should I not use domain-driven design for system decomposition?

Avoid domain-driven design when project requirements do not justify bounded contexts, as forcing it adds unnecessary complexity without improving maintainability or testability.