software-architecture

Apply Clean Architecture and SOLID principles to design modular software systems.

27|9|Updated Jan 20, 2026
One-click install
npx skills add https://github.com/sabahattink/antigravity-fullstack-hq --skill software-architecture-sabahattink
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: software-architecture
Source: https://github.com/sabahattink/antigravity-fullstack-hq/tree/main/skills/software-architecture
Command: npx skills add https://github.com/sabahattink/antigravity-fullstack-hq --skill software-architecture-sabahattink

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Design and evaluate software systems with a strong architecture backbone, enabling maintainability, scalability, and clear boundaries that reduce technical debt over time.

Core Features & Use Cases

  • Clear layering and separation of concerns (Domain, Application, Interface/Infrastructure) guided by Clean Architecture.
  • Domain-driven design concepts including Entities, Value Objects, and Domain Events, with a focus on SOLID principles and Dependency Inversion.
  • Practical guidance for ADRs, modularization, and architectural decisions to support refactoring and evolution.
  • Use Case: transform a tangled monolith into well-scoped modules with explicit interfaces and testable boundaries.

Quick Start

Describe your current system architecture and request a modular, maintainable architecture design following Clean Architecture and SOLID principles.

Frequently Asked Questions about software-architecture

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

FAQPage Schema
How do I apply Clean Architecture to separate domain logic from infrastructure?

Apply Clean Architecture by enforcing strict layering across Domain, Application, and Interface layers to achieve separation of concerns. This prevents infrastructure leakage into your domain logic, ensuring your system remains modular, testable, and maintainable.

How do I refactor a tangled monolith into modular, testable boundaries?

Refactor a tangled monolith by establishing explicit interfaces and well-scoped modules guided by SOLID principles. This transformation creates testable boundaries and clear separation of concerns, reducing technical debt and improving overall system evolvability.

What is the best way to document architectural decisions for enterprise software?

Document architectural decisions using ADR-style records to capture modularization choices and design rationale. This practice supports system refactoring and evolution by providing clear, historical context for architectural boundaries and domain modeling decisions.

When do I need Domain-Driven Design concepts like Value Objects and Domain Events?

Use Domain-Driven Design concepts like Entities, Value Objects, and Domain Events when modeling complex enterprise projects requiring clear boundaries. This approach supports scalability and evolvability by keeping domain logic isolated and structurally sound.

Does Dependency Inversion help prevent technical debt in scalable systems?

Dependency Inversion prevents technical debt by ensuring high-level domain modules do not depend on low-level infrastructure modules. Applying this SOLID principle creates modular, maintainable software with clear boundaries that support long-term system scalability.

Why does infrastructure logic leak into my domain models despite layering?

Infrastructure logic leaks into domain models when Clean Architecture boundaries are not strictly enforced through Dependency Inversion. Establishing clear layering and separation of concerns prevents this leakage, keeping your domain logic pure and maintainable.