mcpField
S
system-design

system-design

github.com/s-hiraokuDevelopment19114 installsUpdated 4w ago
Repository

About system-design

A system-design skill for architects and developers planning systems or major features. It structures requirements, component breakdowns, trade-off analysis, design documents, and review checks.

Key features

  1. 01Requirements clarification
  2. 02Component decomposition
  3. 03Architecture trade-off comparison
  4. 04Structured design documents
  5. 05Architecture review checklist

Use cases

  1. 01Designing a new system or major feature
  2. 02Recording decisions in ADRs
  3. 03Reviewing scalability and reliability
  4. 04Planning monolith decomposition or migration

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/s-hiraoku/synapse-a2a --skill system-design

After installing, type/system-designin Claude Code to confirm it loaded.

Details

From the project README

System Design

Guide architectural decisions and produce structured design artifacts.

When to Use

  • Designing a new system or major feature from scratch
  • Evaluating trade-offs between architectural approaches
  • Creating Architecture Decision Records (ADRs)
  • Reviewing existing architecture for scalability, reliability, or maintainability concerns
  • Decomposing a monolith or planning a migration

Workflow

Step 1: Clarify Requirements

Before designing, gather:

  1. Functional requirements - What must the system do?
  2. Non-functional requirements - Performance, availability, security, cost constraints
  3. Scope boundaries - What is explicitly out of scope?
  4. Existing constraints - Current tech stack, team skills, timeline

Ask the user to clarify any ambiguous requirements before proceeding.

Step 2: Identify Components

Break the system into components:

  • Data stores - What data exists? How is it accessed?
  • Services / modules - What are the logical units of work?
  • Interfaces - How do components communicate? (API, events, shared DB, files)
  • External dependencies - Third-party services, APIs, infrastructure
Step 3: Evaluate Alternatives

For each significant decision, document at least 2 options:

CriterionOption AOption B
Complexity......
Scalability......
Operational cost......
Team familiarity......

Recommend one option with clear reasoning.

Step 4: Produce Design Artifact

Output a structured design document:

# Design: <Title>

## Context
[Problem statement and motivation]

## Requirements
- Functional: ...
- Non-functional: ...

## Architecture
[Component diagram or description]

## Key Decisions
| Decision | Choice | Rationale |
|----------|--------|-----------|
| ... | ... | ... |

## Data Model
[Schema or entity relationships]

## API Surface
[Key endpoints or interfaces]

## Risks & Mitigations
| Risk | Impact | Mitigation |
|------|--------|------------|
| ... | ... | ... |

## Open Questions
- ...
Step 5: Review Checklist

Before finalizing, verify:

  • Single responsibility per component
  • No circular dependencies between modules
  • Failure modes identified and handled
  • Data consistency model is explicit (strong vs eventual)
  • Security boundaries are defined
  • Observability points (logging, metrics, tracing) are planned

Principles

  1. Start simple - Add complexity only when requirements demand it
  2. Make trade-offs explicit - Every choice has a cost; document it
  3. Design for change - Interfaces should be stable; implementations should be replaceable
  4. Separate concerns - Data, logic, and presentation should not be entangled
  5. Fail gracefully - Design for partial failures, not just the happy path

Comments

Markdown supported