system-design

Create production system designs defining boundaries, components, and runtime flows.

Updated Apr 25, 2026
One-click install
npx skills add https://github.com/Tiepbm/software-engineering-agent --skill system-design-tiepbm
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: system-design
Source: https://github.com/Tiepbm/software-engineering-agent/tree/main/skills/system-design
Command: npx skills add https://github.com/Tiepbm/software-engineering-agent --skill system-design-tiepbm

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Designs production system boundaries, components, runtime flows, state ownership, sync and async interactions, scalability, resilience, bottlenecks, and failure behavior.

Core Features & Use Cases

  • Define component responsibilities, ownership, dependency direction, and deployment boundaries.
  • Map request flows, event flows, state transitions, data mutations, retries, timeouts, cancellation, and failure states.
  • Identify source of truth, derived state, caches, queues, idempotency keys, and repair workflows.

Quick Start

Provide a complete system design for a new service by outlining components, data ownership, runtime flows, and failure handling.

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 system architecture for a new service?

To design a scalable system architecture, define component responsibilities, deployment boundaries, and data ownership. Map runtime flows, state transitions, and failure states to ensure clear ownership and fault tolerance across the service.

What is the best way to map runtime flows and state ownership for complex workflows?

Mapping runtime flows requires identifying synchronous and asynchronous paths, data mutations, and retries. Establish a source of truth, derived state, caches, and idempotency keys to handle state ownership and recovery procedures effectively.

How do you handle failure behavior and resilience in production system designs?

Handling failure behavior in production system designs involves defining timeouts, cancellation procedures, and repair workflows. Map failure states and apply fault-tolerance strategies to ensure system resilience during asynchronous interactions and bottlenecks.

When do I need to define deployment boundaries and data boundaries for orchestration flows?

Define deployment boundaries and data boundaries for orchestration flows when clear ownership and component responsibilities are required. This ensures proper dependency direction and isolates state mutations across complex workflows.

Can I use this approach to identify bottlenecks and scalability limits in my architecture?

Yes, you can identify bottlenecks and scalability limits by capturing requirements for state ownership, runtime flows, and failure behavior. Analyze queues, caches, and source of truth data to define precise repair workflows and system limits.

Does system design require defining observability and recovery procedures for async interactions?

System design requires defining observability and recovery procedures for async interactions to maintain resilience. Capture requirements for event flows, retries, and idempotency keys to ensure proper failure handling and state recovery.