system-design

Design system architectures with component diagrams, data flows, and trade-offs.

1|Updated Mar 9, 2026
One-click install
npx skills add https://github.com/kiryteo/opencode-setup --skill system-design-kiryteo
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-design
Source: https://github.com/kiryteo/opencode-setup/tree/main/skills/system-design
Command: npx skills add https://github.com/kiryteo/opencode-setup --skill system-design-kiryteo

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

System Design provides structured guidance to architect complex software, ensuring teams align on requirements, architecture choices, and trade-offs to reduce risk and rework.

Core Features & Use Cases

  • Requirements gathering, high-level and detailed design, data modeling, API contract considerations, and scalability planning.
  • Visual and textual design outputs, including component diagrams, data flows, and guidance on storage and messaging strategies.
  • Use Case: When designing a new distributed service, produce an architecture plan with components, interfaces, data models, and resilience considerations.

Quick Start

Draft a system design plan for a new service, including requirements, architecture components, and key trade-offs.

Frequently Asked Questions about system-design

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

FAQPage Schema
How do I design a scalable distributed system architecture?

System architecture design for distributed contexts involves gathering requirements, modeling data, defining API contracts, and planning scalability. You produce structured design documents with component diagrams, data flows, and explicit trade-offs to reduce project risk and rework.

What is the best way to document microservices architecture and data flows?

Document microservices architecture by generating structured design plans that include component diagrams, data flows, and messaging decisions. This approach captures explicit assumptions and trade-offs, ensuring teams align on storage strategies and resilience considerations across distributed services.

How do I structure a system design document for a new software service?

Structure a system design document by detailing requirements, high-level and detailed design, data modeling, and API contracts. The output includes ASCII or descriptive component diagrams and explicit scalability decisions, providing clear guidance for complex software projects.

Does this approach work for both monolithic and microservices contexts?

Yes, system design planning applies across distributed, microservices, and monolithic contexts. It guides architecture choices, storage and messaging decisions, and scalability planning regardless of the deployment topology, ensuring robust systems with clear decisions.

How do I decide on storage and messaging strategies during system design?

Decide on storage and messaging strategies by evaluating requirements and trade-offs within the design process. The resulting architecture plan documents data flows and component interactions, guiding resilient storage and messaging choices for complex software projects.

When should I not use a monolithic architecture for my software project?

Monolithic architectures may not suit projects requiring high scalability or distributed resilience. The system design process evaluates these constraints by documenting explicit assumptions and trade-offs, helping determine when microservices or distributed contexts are more appropriate.