arch-design

Guides architecture selection and design using DDD, C4 diagrams, and ADR records.

Updated Aug 31, 2026
One-click install
npx skills add https://github.com/DreamMacer/jiuwenswarm --skill arch-design-dreammacer
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: arch-design
Source: https://github.com/DreamMacer/jiuwenswarm/tree/main/resources/agent/workspace/plugins/agent_templates/system-architect/skills/arch-design
Command: npx skills add https://github.com/DreamMacer/jiuwenswarm --skill arch-design-dreammacer

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Choosing the right architecture pattern and documenting design decisions is error-prone without a structured framework, often leading to over-engineered systems or undocumented trade-offs that haunt teams later. ## Core Features & Use Cases - Architecture Pattern Selection: Compares 7 patterns (modular monolith, microservices, event-driven, CQRS, layered, hexagonal, onion) with a decision matrix based on team size, domain clarity, and operational capacity. - Domain-Driven Design Guidance: Event storming, bounded context mapping, aggregate design, and context mapping with clear rules on when DDD is and is not appropriate. - C4 Model Diagrams: Mermaid and PlantUML templates for Context, Container, and Component layers, including naming conventions and red-flag annotation for architectural smells. - ADR and Design Documents: Architecture Decision Record templates with numbering and status lifecycle, plus a 12-section architecture specification template. - Use Case: When starting a new system, use this Skill to run event storming, select between modular monolith and microservices with a trade-off matrix, draw C4 diagrams, and record key decisions as ADRs. ## Quick Start Help me choose between a modular monolith and microservices for a 6-person team building an MVP, and produce an ADR plus a C4 container diagram for the decision.

Frequently Asked Questions about arch-design

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

FAQPage Schema
How do I choose between microservices and a monolith architecture?▼

Choose a modular monolith for small teams (2-15 people) with unclear domain boundaries and limited operations capacity. Choose microservices when domain boundaries are confirmed via event storming, multiple teams need autonomy, and independent scaling is required.

How to write an architecture decision record (ADR)?▼

An ADR captures Context (the problem and constraints), Decision (what was chosen and alternatives considered), and Consequences (what becomes easier or harder). Use sequential numbering, keep it to one page, and record it immediately when the decision is made.

What is the C4 model for architecture diagrams?▼

C4 is a four-layer abstraction: Context for business stakeholders, Container for deployable units and tech stacks, Component for internal modules, and Code for rare detailed cases. Each layer serves a different audience and should never be mixed in one diagram.

When should I use CQRS in my system design?▼

Use CQRS when read and write loads are severely asymmetric, queries are complex with multi-dimensional aggregation, and writes need strict transactional consistency. Avoid it for simple CRUD domains or when the team cannot accept eventual consistency between read and write models.

When should I not use domain-driven design?▼

Skip DDD when the system is mostly data entry, reporting, or simple CRUD with little domain behavior, or when no domain experts are available for modeling. A simpler layered design is easier to maintain in those cases.

How do I migrate from a monolith to microservices?▼

Use the strangler fig pattern: gradually replace monolith modules with new services behind an API gateway, split the database schema first, and start with the least-coupled modules. Keep old and new systems running in parallel during the transition.