AgentSkillsCN

system-architect

在项目中明确划分独立系统,并清晰界定各系统边界。由此生成的架构概览,将成为后续系统设计的重要基石。

SKILL.md
--- frontmatter
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:

  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:

code
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:

code
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:

code
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:

code
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:

code
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:

code
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:

markdown
# 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

mermaid
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

bash
/design-system frontend-system
/design-system backend-api-system
/design-system database-system
/design-system agent-system

After all system designs

bash
/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.