system-design
Design scalable distributed systems using structured approaches for load balancing, caching, database scaling, and message queues. Use when the user mentions "system design", "scale this", "high availability", "rate limiter", "design a URL shortener", "system design interview", "capacity planning", or "distributed architecture". Also trigger when estimating infrastructure requirements, choosing between microservices and monoliths, or designing for millions of concurrent users. Covers common syst
Security Assessment
About system-design
The system-design skill provides a structured framework for designing scalable distributed systems and evaluating architecture quality. It helps users approach system design problems by starting with requirements and constraints before selecting technical solutions. The skill emphasizes that large-scale systems are built from established components such as load balancers, caches, message queues, databases, and CDNs, and focuses on choosing the right building blocks, sizing them appropriately, and understanding the tradeoffs involved. It is intended for situations involving scalability, high availability, capacity planning, distributed architecture, and system design discussions.
A key capability of the skill is its four-step system design process: understanding requirements and scope, proposing a high-level architecture, performing deep dives into critical components, and concluding with tradeoff analysis and future improvements. The framework encourages gathering functional and non-functional requirements, estimating scale metrics such as users, requests, and storage needs, creating high-level diagrams with services and data flows, and analyzing the most important or complex parts of a system in greater detail. It also includes a scoring approach that rates designs on factors such as requirements clarity, capacity estimation, use of appropriate infrastructure components, scalability, reliability, and acknowledgment of tradeoffs.
This skill is useful for software engineers, system architects, engineering leaders, and candidates preparing for system design interviews. Common use cases include designing distributed services, reviewing existing architectures, planning infrastructure growth, evaluating reliability and scaling strategies, estimating capacity requirements, and facilitating technical discussions. It is particularly valuable when designing systems expected to handle large user bases, significant traffic volumes, or complex distributed workloads.
FAQ
When should I use this skill?
Use it when designing or reviewing distributed systems, discussing scalability, planning capacity, preparing for system design interviews, or evaluating architectural tradeoffs.
What design methodology does this skill follow?
It follows a four-step process: clarify requirements and scope, propose a high-level design, perform deep dives into critical components, and summarize tradeoffs and future improvements.
Does this skill provide implementation-specific code or APIs?
No. The provided content focuses on architectural design principles, system components, estimation, and design evaluation rather than specific implementation APIs.
Can this skill be used for architecture reviews and postmortems?
Yes. The framework can be applied to architecture reviews and incident postmortems by examining requirements, design decisions, critical components, and tradeoffs.
What information is needed before starting a design?
The framework recommends establishing functional and non-functional requirements, clarifying assumptions, and agreeing on scale metrics such as users, request rates, and storage requirements before proposing an architecture.
Install system-design
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
wondelai/skills