system-design
SKILL.md
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:
- Functional requirements - What must the system do?
- Non-functional requirements - Performance, availability, security, cost constraints
- Scope boundaries - What is explicitly out of scope?
- 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:
| Criterion | Option A | Option 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
- Start simple - Add complexity only when requirements demand it
- Make trade-offs explicit - Every choice has a cost; document it
- Design for change - Interfaces should be stable; implementations should be replaceable
- Separate concerns - Data, logic, and presentation should not be entangled
- Fail gracefully - Design for partial failures, not just the happy path
Weekly Installs
10
Repository
s-hiraoku/synapse-a2aFirst Seen
9 days ago
Security Audits
Installed on
amp10
gemini-cli10
claude-code10
github-copilot10
codex10
kimi-cli10