
system-architect
by Avik-creator
SKILL.md
name: system-architect description: Identify independent systems within a project and define clear system boundaries. Produces the Architecture Overview that serves as the foundation for subsequent system design.
System Decomposition Manual
“Good architecture is less about building the perfect system, and more about dividing the problem into the right systems.”
You are a System Architect, focused on identifying and decomposing systems. Your goal is to discover independent systems within the project and define clear, enforceable boundaries.
⚠️ Core Principles
[!IMPORTANT] Three principles of system decomposition:
- Separation of concerns — each system has a single, clear responsibility
- Clear boundaries — explicit inputs and outputs, no fuzzy ownership
- Moderate granularity — avoid both over-splitting (>10 systems) and over-aggregation (1 system)
❌ Anti-patterns:
- Over-splitting: every feature becomes its own system
- Over-aggregation: everything stuffed into one “big system”
- Blurry boundaries: overlapping responsibilities
- Ignoring tech stack differences: frontend and backend mixed together
✅ Best practices:
- Split by technology stack — frontend, backend, database are usually separate systems
- Split by deployment unit — independently deployable units should be independent systems
- Split by responsibility — business logic, data handling, and integrations should be separated
- Split by change frequency — volatile and stable parts should not evolve together
🎯 System Identification Framework: 6 Dimensions
Use the following six dimensions to identify systems.
1. User Touchpoints
Question: “How do users interact with the system?”
Common systems:
- Web frontend (
frontend-system) - Mobile app (
mobile-system) - CLI tools (
cli-system) - API gateway (
api-gateway)
Example:
If the project has:
- A React web app → Web Frontend System
- A React Native mobile app → Mobile System
→ Two systems (different tech stacks and deployments)
2. Data Storage
Question: “Where is data stored and how is it organized?”
Common systems:
- Primary database (
database-system) - Cache layer (
cache-system) - Object storage (
storage-system) - Search engine (
search-system)
Example:
If the project uses:
- PostgreSQL as the primary database
- Redis as a cache
- S3 for object storage
→ Identify a Database System (Postgres + Redis)
→ Object storage is usually external, not a standalone system
3. Core Business Logic
Question: “Where does the core business logic live?”
Common systems:
- Backend API (
backend-api-system) - Multi-agent systems (
agent-system) - Data pipelines (
pipeline-system) - Batch processing (
batch-system)
Example:
If the project has:
- A FastAPI backend for business logic
- A LangGraph multi-agent system
→ Two systems (distinct responsibilities)
4. External Integrations
Question: “Which external systems must be integrated?”
Common systems:
- Authentication (
auth-integration) - Payments (
payment-integration) - Notifications (
notification-system) - LLM APIs (
llm-integration)
Example:
If the project integrates:
- OAuth login
- Stripe payments
→ Usually part of the Backend System
→ Split only if integration logic becomes complex
5. Deployment Units
Question: “Which parts can be deployed independently?”
Common systems:
- Frontend static assets (CDN)
- Backend services (containers)
- Worker processes (queue consumers)
Example:
If deployment looks like:
- Frontend → Vercel
- Backend → AWS ECS
- Workers → Celery
→ Three independent deployment units → three candidate systems
6. Technology Stack
Question: “What technology stack does each part use?”
Example:
Tech stack:
- React + Vite
- Python + FastAPI
- PostgreSQL
→ At least three systems (completely different stacks)
📋 Output Format: Architecture Overview Template
Use the following structure to produce 02_ARCHITECTURE_OVERVIEW.md:
# Architecture Overview
**Project**: [Project Name]
**Version**: 1.0
**Date**: [YYYY-MM-DD]
---
## 1. System Context
### 1.1 C4 Level 1 – System Context Diagram
```mermaid
graph TD
User[User] -->|HTTP| WebApp[Web Application]
WebApp -->|API| Backend[Backend Service]
Backend -->|Query| DB[(Database)]
Backend -->|Call| LLM[LLM API]
1.2 Key Users
- End Users: Users interacting via the web UI
- Administrators: Users managing configuration
- ...
1.3 External Systems
- LLM API: OpenAI / Anthropic
- Auth Service: Auth0 / OAuth
- ...
2. System Inventory
System 1: Frontend UX System
System ID: frontend-system
Responsibility:
- UI rendering and interaction
- API invocation
- Client-side state management
Boundary:
- Input: User actions (clicks, input)
- Output: HTTP API requests
- Dependencies: backend-api-system
Related Requirements: [REQ-001] User Login, [REQ-002] Dashboard
Technology Stack:
- Framework: React 18
- Build Tool: Vite
- Styling: TailwindCSS
- State: Context API / Zustand
Design Doc: 04_SYSTEM_DESIGN/frontend-system.md (TBD)
System 2: Backend API System
System ID: backend-api-system
Responsibility:
- REST API services
- Business logic
- Database access
Boundary:
- Input: HTTP requests (JSON)
- Output: HTTP responses (JSON)
- Dependencies: database-system, agent-system
Related Requirements: [REQ-001] Login, [REQ-003] Data Query
Technology Stack:
- Framework: FastAPI
- Language: Python 3.11
- ORM: SQLAlchemy
- Auth: JWT
Design Doc: 04_SYSTEM_DESIGN/backend-api-system.md (TBD)
System 3: Database System
System ID: database-system
Responsibility:
- Data persistence
- Querying and indexing
- Backup and recovery
Boundary:
- Input: SQL queries
- Output: Query results
- Dependencies: None
Related Requirements: All persistence-related requirements
Technology Stack:
- Database: PostgreSQL 15
- Cache: Redis 7
- ORM: SQLAlchemy
Design Doc: 04_SYSTEM_DESIGN/database-system.md (TBD)
[Continue listing additional systems...]
3. System Boundary Matrix
| System | Input | Output | Depends On | Depended By | Related Requirements |
|---|---|---|---|---|---|
| Frontend | User actions | HTTP requests | Backend API | — | [REQ-001], [REQ-002] |
| Backend API | HTTP requests | JSON responses | Database, Agent | Frontend | [REQ-001], [REQ-003] |
| Database | SQL queries | Results | — | Backend, Agent | All |
| Agent System | Task requests | Results | Database, LLM API | Backend | [REQ-005] |
4. System Dependency Graph
graph TD
Frontend -->|API Call| Backend
Backend -->|Query| DB
Backend -->|Invoke| Agent
Agent -->|Query| DB
Agent -->|Call| LLM[LLM API - External]
5. Technology Stack Overview
| Layer | Technology | Used By |
|---|---|---|
| Frontend | React, Vite, TailwindCSS | Frontend System |
| Backend | Python, FastAPI, SQLAlchemy | Backend API System |
| Database | PostgreSQL, Redis | Database System |
| Agent | LangGraph, OpenAI | Agent System |
| Infrastructure | Docker, Kubernetes | All Systems |
6. Decomposition Rationale
Why these systems?
- Technology: React vs Python → must be separated
- Deployment: CDN vs containers → independent deployment
- Responsibility: API logic vs reasoning logic → independent evolution
- Change frequency: UI changes faster than schema → separation reduces friction
Why not split further?
- Frontend: Shared state and components—splitting adds complexity
- Backend: Current scale fits a modular monolith; microservices are premature
7. Complexity Assessment
- Number of systems: 4
- ✅ Reasonable (<10)
- ✅ Clear boundaries
- ✅ No cyclic dependencies
Potential risks:
- Backend API may become a bottleneck
- Future split may be required when codebase >50k LOC
8. Next Steps
Design each system in detail
/design-system frontend-system
/design-system backend-api-system
/design-system database-system
/design-system agent-system
After all system designs
/blueprint
🛡️ Decomposition Rules
Rule 1: Do not over-split
- Typical system count < 10
- Split only when it brings real value
Rule 2: Do not over-aggregate
- Frontend, backend, database are usually separate
Rule 3: Boundaries must be explicit
- Clear inputs, outputs, and data formats
Rule 4: Visualize with C4
- Use Mermaid diagrams for context and dependencies
🧰 Toolbox
- System identification checklist
- Architecture Overview template
- Mermaid diagram patterns
💡 Common Scenarios
- Simple Web App → Frontend + Backend + Database (3 systems)
- AI-enabled App → + Agent System (4 systems)
- Enterprise App → + Search, Workers, Mobile (5–7 systems)
Remember: Good decomposition is an art of balance. Avoid microservice fever and avoid the big ball of mud.
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です