01 — Architecture & System Design

Guide software architecture decisions using SOLID, Layered, Hexagonal, Event-Driven, and CQRS patterns.

Updated Feb 15, 2026
One-click install
npx skills add https://github.com/ftnilsson/agent-cli --skill 01-architecture-system-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: 01 — Architecture & System Design
Source: https://github.com/ftnilsson/agent-cli/tree/main/development/skills/01-architecture-and-system-design
Command: npx skills add https://github.com/ftnilsson/agent-cli --skill 01-architecture-system-design

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps developers design software systems that are understandable, changeable, and resilient by managing complexity and applying foundational design principles.

Core Features & Use Cases

  • Complexity Management: Strategies to reduce coupling and cognitive load.
  • Architectural Patterns: Explores Layered, Hexagonal, Event-Driven, and CQRS patterns.
  • Design Principles: Covers SOLID, Composition over Inheritance, and the Dependency Rule.
  • Use Case: When starting a new project, use this Skill to guide decisions on code organization, technology choices, and how to structure components for long-term maintainability.

Quick Start

Guide me in applying the SOLID principles to a new user authentication module.

Frequently Asked Questions about 01 — Architecture & System Design

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

FAQPage Schema
How do I manage complexity in software architecture?

Manage complexity in software architecture by applying strategies to reduce coupling and cognitive load. This Skill provides guidance on foundational design principles to ensure systems remain understandable, changeable, and resilient as they scale.

What is the difference between Hexagonal and Layered architectural patterns?

Hexagonal and Layered architectural patterns both organize code structurally, but Hexagonal isolates business logic through ports and adapters, whereas Layered organizes components into strict hierarchical tiers. This Skill explores both to guide your architectural decisions.

When should I use CQRS and Event-Driven architecture?

Use CQRS and Event-Driven architecture when you need to separate read and write operations or manage asynchronous workflows. This Skill explains these common patterns to help you make informed choices for long-term maintainability.

How do I apply SOLID principles to a new software module?

Apply SOLID principles to a new software module by following this Skill's guidance on foundational design principles. It covers SOLID, Composition over Inheritance, and the Dependency Rule to help structure components for maintainability.

Does Domain-Driven Design help with system design?

Domain-Driven Design (DDD) helps with system design by providing essential concepts to map complex domain logic into software models. This Skill covers DDD to help you make informed architectural decisions and avoid common pitfalls.

What are the limitations of using architectural patterns for system design?

Limitations of using architectural patterns include potential over-engineering and increased initial complexity if misapplied. This Skill focuses on making informed architectural decisions and avoiding common pitfalls when structuring components.