agentleFS
wonderslifewonderslife/pdd-skills/system-architect/SKILL.md

system-architect

Skill41 starsChanged 8 months agoMITView on GitHub

Acts as a Senior System Architect to design robust, scalable, and maintainable software architectures. Enforces industry standards (PEP 8 for Python, ESLint for JS/TS), modular design, and security best practices. Use this skill when the user wants to start a new project, refactor an existing one, or discusses high-level system design. This skill focuses on project initialization, technology selection, and code standards. 支持中文触发:启动新项目、重构现有项目、系统设计、技术选型、代码标准、项目初始化、架构设计。

  • Reads credentials
  • Installs packages
  • Commits and pushes

32 other projects use a version of this, 3 of them edited.

Adopted by

Most recently taken up by

Used with

Projects with it also use database-architect, webapp-testing and 4 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • xfstudioSkill

    database-architect

    Expert database architect specializing in data layer design from

    Also in 3 projects that use this

  • JetBrainsSkill

    webapp-testing

    Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

    Also in 4 projects that use this

  • Microsoft AzureSkill

    git-workflow

    Squad branching model: dev-first workflow with insiders preview channel

    Also in 3 projects that use this

  • BlockSkill

    frontend-design

    Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.

    Also in 5 projects that use this

  • MicrosoftSkill

    mcp-builder

    Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node/TypeScript (MCP SDK).

    Also in 3 projects that use this

  • SentrySkill

    skill-creator

    Create new agent skills following the Agent Skills specification. Use when asked to "create a skill", "add a new skill", "write a skill", "make a skill", "build a skill", or scaffold a new skill with SKILL.md. Guides through requirements, writing, registration, and verification.

    Also in 5 projects that use this

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 6 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 28 edited versions we read keep these.

  • 6

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When selecting technologies or making architectural decisions, follow this process:

    line 506
  2. Distinctive:

    Consider build vs buy vs open source

    line 515
  3. Distinctive:

    Security First: All decisions prioritize security

    line 569
  4. Distinctive:

    Minimization: Follow YAGNI (You Aren't Gonna Need It) principle

    line 571
  5. Distinctive:

    Containerization: Use Docker by default for deployment

    line 572
  6. Distinctive:

    Must provide clear documentation and configuration templates

    line 607

“Common” is measured: kept by at least 6 in 10 of the 28 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

System Architect

Overview

This skill serves as a Technical Lead role, responsible for:

  • Project scaffolding and structure setup
  • Technology stack decision-making
  • Code standards enforcement
  • Documentation template creation

Note: This is a high-level system architecture skill focused on project initialization and technology stack selection. For detailed architecture design, please use software-architect.

Directory Structure

system-architect/
├── SKILL.md              # Skill definition file
├── LICENSE               # MIT License
└── assets/
    └── templates/        # Configuration templates
        ├── README.md
        ├── ARCHITECTURE.md
        └── .editorconfig

Trigger Conditions

Auto-trigger:

  • Starting a new project or application
  • Selecting technology stack (language, framework, database)
  • Setting up project structure and scaffolding
  • Defining code standards and linting rules
  • Creating project documentation (README, ARCHITECTURE)
  • Refactoring project structure

Manual trigger:

  • User inputs commands like /system-architect, /new-project, /setup, etc.

Core Capabilities

1. Technology Stack Selection Guide

1.1 Backend Technologies

TechnologyUse CasesProsCons
Python (FastAPI)API, microservices, ML/AIRapid development, async support, type hintsGIL limits CPU-intensive tasks
Python (Django)Full-featured web applicationsBatteries included, Admin panel, ORMMonolithic, slower for APIs
Java (Spring Boot)Enterprise applicationsMature ecosystem, strong typingVerbose, heavyweight
Node.js (Express)Real-time applications, APIsJavaScript full-stack, fast I/OCallback hell (use async/await)
GoHigh-performance servicesFast, simple, excellent concurrencySmaller ecosystem
RustSystems programming, performanceMemory safe, zero-cost abstractionsSteep learning curve

1.2 Frontend Technologies

TechnologyUse CasesProsCons
ReactSPA, complex UILarge ecosystem, flexibleNeed to choose libraries
Vue.jsSPA, progressive enhancementEasy to learn, complete frameworkSmaller ecosystem than React
AngularEnterprise applicationsComplete framework, TypeScriptSteep learning curve, verbose
SveltePerformance-critical applicationsNo virtual DOM, small bundleSmaller ecosystem

1.3 Databases

DatabaseUse CasesProsCons
PostgreSQLRelational data, ACID requiredACID, advanced features, JSONBVertical scaling limits
MySQLSimple web applicationsWidely adopted, easy setupFewer advanced features
MongoDBDocument storage, flexible schemaFlexible schema, horizontal scalingNo ACID transactions before 4.0
RedisCaching, sessions, queuesExtremely fast, versatileMemory limitations
ElasticsearchSearch, log analysisFull-text search, analyticsResource intensive

2. Project Structure Templates

2.1 Python Project Structure

project-name/
├── src/
│   ├── __init__.py
│   ├── main.py              # Application entry point
│   ├── config/              # Configuration management
│   │   ├── __init__.py
│   │   ├── settings.py
│   │   └── logging.py
│   ├── api/                 # API endpoints
│   │   ├── __init__.py
│   │   ├── routes/
│   │   └── dependencies.py
│   ├── services/            # Business logic
│   │   ├── __init__.py
│   │   └── user_service.py
│   ├── models/              # Data models
│   │   ├── __init__.py
│   │   ├── domain/          # Domain models
│   │   └── db/              # Database models
│   ├── repositories/        # Data access
│   │   ├── __init__.py
│   │   └── user_repository.py
│   └── utils/               # Utility functions
│       ├── __init__.py
│       └── helpers.py
├── tests/
│   ├── __init__.py
│   ├── unit/
│   ├── integration/
│   └── conftest.py
├── docs/
│   ├── README.md
│   └── ARCHITECTURE.md
├── scripts/
│   └── setup.sh
├── .env.example
├── .gitignore
├── requirements.txt
├── requirements-dev.txt
├── pyproject.toml
├── Dockerfile
├── docker-compose.yml
└── README.md

2.2 Node.js/TypeScript Project Structure

project-name/
├── src/
│   ├── index.ts             # Application entry point
│   ├── config/              # Configuration
│   │   ├── index.ts
│   │   └── database.ts
│   ├── routes/              # API routes
│   │   ├── index.ts
│   │   └── userRoutes.ts
│   ├── controllers/         # Request handlers
│   │   └── userController.ts
│   ├── services/            # Business logic
│   │   └── userService.ts
│   ├── models/              # Data models
│   │   └── User.ts
│   ├── repositories/        # Data access
│   │   └── userRepository.ts
│   ├── middleware/          # Express middleware
│   │   ├── auth.ts
│   │   └── errorHandler.ts
│   ├── types/               # TypeScript types
│   │   └── index.ts
│   └── utils/               # Utility functions
│       └── helpers.ts
├── tests/
│   ├── unit/
│   ├── integration/
│   └── setup.ts
├── docs/
│   ├── README.md
│   └── ARCHITECTURE.md
├── scripts/
│   └── setup.sh
├── .env.example
├── .gitignore
├── package.json
├── tsconfig.json
├── eslint.config.js
├── Dockerfile
├── docker-compose.yml
└── README.md

3. Configuration Templates

3.1 .editorconfig

# EditorConfig - https://editorconfig.org

root = true

[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{py,js,ts,json,yml,yaml}]
indent_style = space
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab

3.2 Python pyproject.toml

[tool.poetry]
name = "project-name"
version = "0.1.0"
description = "Project description"
authors = ["Your Name <your.email@example.com>"]

[tool.poetry.dependencies]
python = "^3.10"
fastapi = "^0.104.0"
uvicorn = "^0.24.0"
sqlalchemy = "^2.0.0"
pydantic = "^2.0.0"
python-dotenv = "^1.0.0"

[tool.poetry.dev-dependencies]
pytest = "^7.4.0"
pytest-cov = "^4.1.0"
black = "^23.10.0"
flake8 = "^6.1.0"
mypy = "^1.6.0"

[tool.black]
line-length = 100
target-version = ['py310']

[tool.mypy]
python_version = "3.10"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

3.3 TypeScript tsconfig.json

{
  "compilerOptions": {
    "target": "ES2022",
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "lib": ["ES2022"],
    "outDir": "./dist",
    "rootDir": "./src",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "declaration": true,
    "declarationMap": true,
    "sourceMap": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "noUnusedLocals": true,
    "noUnusedParameters": true,
    "noImplicitReturns": true,
    "noFallthroughCasesInSwitch": true
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist", "tests"]
}

3.4 ESLint Configuration

import js from '@eslint/js';
import ts from 'typescript-eslint';
import prettier from 'eslint-config-prettier';

export default [
  js.configs.recommended,
  ...ts.configs.recommended,
  prettier,
  {
    rules: {
      '@typescript-eslint/no-unused-vars': ['error', { argsIgnorePattern: '^_' }],
      '@typescript-eslint/explicit-function-return-type': 'off',
      '@typescript-eslint/no-explicit-any': 'warn',
      'no-console': ['warn', { allow: ['warn', 'error'] }],
    },
  },
];

4. Documentation Templates

4.1 README Template

# Project Name

Brief description of what this project does.

## Features

- Feature 1
- Feature 2
- Feature 3

## Quick Start

### Prerequisites

- Python 3.10+ / Node.js 18+
- Docker and Docker Compose
- PostgreSQL 14+ (if not using Docker)

### Installation

\`\`\`bash
# Clone the repository
git clone https://github.com/your-org/project-name.git
cd project-name

# Install dependencies
pip install -r requirements.txt  # Python
# or
npm install  # Node.js

# Set up environment variables
cp .env.example .env
# Edit .env with your configuration

# Run the application
python src/main.py  # Python
# or
npm run dev  # Node.js
\`\`\`

### Docker Setup

\`\`\`bash
# Build and run with Docker Compose
docker-compose up -d

# View logs
docker-compose logs -f

# Stop services
docker-compose down
\`\`\`

## Project Structure

\`\`\`
project-name/
├── src/                # Source code
│   ├── api/           # API endpoints
│   ├── services/      # Business logic
│   ├── models/        # Data models
│   └── repositories/  # Data access
├── tests/             # Test files
├── docs/              # Documentation
└── scripts/           # Utility scripts
\`\`\`

## API Documentation

API documentation is available at `/docs` when running the application.

## Testing

\`\`\`bash
# Run all tests
pytest  # Python
# or
npm test  # Node.js

# Run with coverage
pytest --cov=src  # Python
# or
npm run test:coverage  # Node.js
\`\`\`

## Contributing

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

4.2 ARCHITECTURE Template

# Architecture Overview

## System Components

### Component Diagram

\`\`\`mermaid
graph TB
    Client[Client Application]
    API[API Layer]
    Service[Service Layer]
    Repository[Repository Layer]
    DB[(Database)]
    Cache[(Redis Cache)]

    Client --> API
    API --> Service
    Service --> Repository
    Repository --> DB
    Service --> Cache
\`\`\`

## Data Flow

1. **Request Flow**: Client → API → Service → Repository → Database
2. **Response Flow**: Database → Repository → Service → API → Client
3. **Caching**: Service checks Cache before Repository

## Technology Stack

| Component | Technology | Justification |
|-----------|------------|---------------|
| Backend | FastAPI/Express | Fast, async, type-safe |
| Database | PostgreSQL | ACID compliance, JSONB support |
| Cache | Redis | Fast in-memory caching |
| Container | Docker | Consistent deployment |

## Key Decisions

### Decision 1: Use PostgreSQL for Primary Database

**Context**: Need reliable data storage for financial transactions.

**Decision**: PostgreSQL with SQLAlchemy ORM.

**Consequences**:
- ✅ ACID compliance
- ✅ Strong ecosystem
- ❌ Vertical scaling limits

**Alternatives Considered**: MySQL (fewer features), MongoDB (no ACID)

### Decision 2: Layered Architecture

**Context**: Need maintainable codebase with clear separation of concerns.

**Decision**: Three-layer architecture (API → Service → Repository).

**Consequences**:
- ✅ Clear separation of concerns
- ✅ Easy to test
- ❌ More files to maintain

## Security

- **Authentication**: JWT tokens with refresh mechanism
- **Authorization**: Role-based access control (RBAC)
- **Data Protection**: Encryption at rest and in transit
- **Input Validation**: Pydantic/Joi validation on all inputs

## Scalability

- **Horizontal Scaling**: Stateless services behind load balancer
- **Database Scaling**: Read replicas for read-heavy workloads
- **Caching**: Redis for frequently accessed data
- **Async Processing**: Background jobs for long-running tasks

## Deployment

- **Containerization**: Docker for consistent environments
- **Orchestration**: Kubernetes for production (optional)
- **CI/CD**: GitHub Actions for automated deployment
- **Monitoring**: Prometheus + Grafana for metrics

## Development Workflow

1. **Local Development**: Docker Compose for all dependencies
2. **Testing**: Unit tests + integration tests + E2E tests
3. **Code Review**: Required for all changes
4. **Deployment**: Automated via CI/CD pipeline

5. Decision Framework

When selecting technologies or making architectural decisions, follow this process:

  1. Understand Requirements
    • Functional requirements
    • Non-functional requirements (performance, scalability, security)
    • Constraints (budget, team skills, timeline)
  2. Generate Options
    • List at least 3 alternatives
    • Consider build vs buy vs open source
  3. Evaluate Trade-offs
    • Performance vs maintainability
    • Cost vs features
    • Learning curve vs productivity
  4. Make Decision
    • Document the decision
    • Document the rationale
    • Document alternatives considered
  5. Validate
    • Prototype if necessary
    • Get team buy-in
    • Plan migration if needed

6. Collaboration Table

6.1 Collaboration with Other Skills

Collaborating SkillCollaboration ModeDescription
software-architectDelegateAfter project initialization, delegate detailed architecture design
software-engineerDelegateDelegate specific feature implementation
expert-code-qualityConsultConsult before establishing code standards
pdd-mainSequentialUse PDD framework process for new projects
expert-mysqlConsultConsult before database selection
expert-ruoyiConsultConsult when using RuoYi framework for Java projects

6.2 Collaboration Workflow

New Project Startup
    ↓
Invoke system-architect
    ↓
Project scaffolding + Technology stack selection
    ↓
(If detailed architecture design needed) → Invoke software-architect
    ↓
(If code implementation needed) → Invoke software-engineer
    ↓
(If code quality check needed) → Invoke expert-code-quality
    ↓
Project initialization complete

7. Rules

  1. Security First: All decisions prioritize security
  2. Scalability: Design for growth from the start
  3. Minimization: Follow YAGNI (You Aren't Gonna Need It) principle
  4. Containerization: Use Docker by default for deployment
  5. Linting: Enforce strict code quality standards

8. Quick Diagnosis Mode

8.1 Technology Stack Quick Diagnosis

Problem SymptomsSuggested Technology
Rapid API developmentFastAPI (Python) / Express (Node.js)
Enterprise applicationsSpring Boot (Java) / Django (Python)
High concurrency servicesGo / Java
Real-time applicationsNode.js / Socket.io
Microservices architectureGo / Java / Node.js
Data analysisPython (pandas, numpy)
AI/ML integrationPython (TensorFlow, PyTorch)

8.2 Project Structure Quick Diagnosis

ScenarioSuggested Structure
Monolithic applicationLayered structure (api/service/repo)
MicroservicesIndependent service directories + shared libraries
Event-drivenDirectories organized by domain/event type
Hexagonal architecturecore/ports/adapters

9. Guardrails

  • Technology stack selection must consider existing team skills
  • Project structure must follow industry standards and best practices
  • Security must be a default consideration
  • Must provide clear documentation and configuration templates
  • Decisions must include trade-off analysis and alternatives

Version History

v2.0 (2026-03-21)

  • Unified to English descriptions
  • Added collaboration table to clarify relationships with other skills
  • Enhanced quick diagnosis mode
  • Added decision framework
  • Standardized output format

v1.0 (Initial version)

  • Basic project scaffolding templates
  • Technology stack selection guide
  • Configuration templates

Remember: The system architect's responsibility is to lay a solid foundation for the project. Choose simplicity until proven insufficient—complexity is a cost, not a feature.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.