askill
system-architect

system-architectSafety --Repository

Identify independent systems within a project and define clear system boundaries. Produces the Architecture Overview that serves as the foundation for subsequent system design.

1 stars
1.2k downloads
Updated 1/20/2026

Package Files

Loading files...
SKILL.md

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:

  1. Separation of concerns — each system has a single, clear responsibility
  2. Clear boundaries — explicit inputs and outputs, no fuzzy ownership
  3. 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

SystemInputOutputDepends OnDepended ByRelated Requirements
FrontendUser actionsHTTP requestsBackend API[REQ-001], [REQ-002]
Backend APIHTTP requestsJSON responsesDatabase, AgentFrontend[REQ-001], [REQ-003]
DatabaseSQL queriesResultsBackend, AgentAll
Agent SystemTask requestsResultsDatabase, LLM APIBackend[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

LayerTechnologyUsed By
FrontendReact, Vite, TailwindCSSFrontend System
BackendPython, FastAPI, SQLAlchemyBackend API System
DatabasePostgreSQL, RedisDatabase System
AgentLangGraph, OpenAIAgent System
InfrastructureDocker, KubernetesAll 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.

Install

Download ZIP
Requires askill CLI v1.0+

AI Quality Score

AI review pending.

Metadata

Licenseunknown
Version-
Updated1/20/2026
PublisherAvik-creator

Tags

apici-cddatabasellmsecurity