system-design
npx machina-cli add skill shahtuyakov/claude-setup/system-design --openclawSystem Design
Architectural decision framework for web apps and iOS native applications with custom backends.
Decision Process
- Identify requirements (scale, platform, constraints)
- Load relevant reference file (see table below)
- Use comparison matrix to evaluate options
- Verify compatibility using MCP context7 for latest docs
- Document decision with rationale
Reference Navigation
| Decision Type | Load | Use When |
|---|---|---|
| API style | references/api-patterns.md | Choosing REST vs GraphQL vs gRPC |
| Database | references/database-patterns.md | Selecting primary database, caching layer |
| Authentication | references/auth-patterns.md | Designing auth flow, token strategy |
| Real-time | references/realtime-patterns.md | Adding live updates, push notifications |
| iOS architecture | references/ios-patterns.md | Native iOS app structure, offline-first |
| Backend architecture | references/architecture-patterns.md | Monolith vs microservices, serverless |
| File storage | references/storage-patterns.md | Media uploads, CDN, cloud storage |
Decision Documentation
Record each decision in .agents/architect/decisions.md:
## [date] - [decision title]
Context: [what prompted this decision]
Options: [what was considered]
Decision: [what was chosen]
Rationale: [why]
Platform Considerations
Web + iOS Projects
- Design API with mobile constraints in mind (bandwidth, battery)
- Plan for offline-first on iOS with backend sync
- Consider BFF (Backend for Frontend) if needs diverge significantly
iOS-Specific
- Always check
references/ios-patterns.mdfor native patterns - Auth must include Keychain storage and biometrics
- Push notifications require APNs backend integration
Source
git clone https://github.com/shahtuyakov/claude-setup/blob/main/skills/system-design/SKILL.mdView on GitHub Overview
System Design provides an architectural decision framework for web apps and iOS native applications with custom backends. It guides technology choices, architecture patterns, API design, database selection, and authentication planning, supported by comparison matrices to help informed decisions.
How This Skill Works
Follow a five-step process: identify requirements (scale, platform, constraints); load the relevant reference file; use a comparison matrix to evaluate options; verify compatibility using MCP context7 with the latest docs; and document the decision with rationale in the designated file.
When to Use It
- Choosing REST vs GraphQL vs gRPC for an API
- Selecting the primary database and caching layer
- Designing authentication flows and token strategies
- Adding real-time updates or push notifications
- Evaluating backend architecture: monolith, microservices, or serverless
Quick Start
- Step 1: Identify requirements (scale, platform, constraints).
- Step 2: Load relevant reference patterns (e.g., references/api-patterns.md, references/database-patterns.md, references/ios-patterns.md).
- Step 3: Use the comparison matrix to evaluate options and document the decision in .agents/architect/decisions.md.
Best Practices
- Identify requirements up front (scale, platform, constraints) before comparing options.
- Load the matching reference patterns file (e.g., api-patterns.md, ios-patterns.md) to frame choices.
- Use side-by-side comparison matrices to evaluate trade-offs objectively.
- Verify compatibility with MCP context7 and latest docs.
- Document the decision with context, options considered, and the rationale in .agents/architect/decisions.md.
Example Use Cases
- REST vs GraphQL vs gRPC decision for a public API.
- Choosing a primary database and caching layer for a high-traffic app.
- Auth flow design with token strategies and Keychain considerations on iOS.
- Implementing offline-first iOS architecture with backend sync.
- Deciding between monolith and microservices/serverless for a mobile backend.