🎉 init: 小龙的工作空间
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
# Architecture Agent
|
||||
|
||||
> SF-02 — Automated Architecture Generation from PRD
|
||||
|
||||
## Overview
|
||||
|
||||
The Architecture Agent consumes a structured PRD (from SF-01) and generates a complete technical architecture including tech stack selection, system diagram, database schema, API design, module decomposition, and directory structure.
|
||||
|
||||
It is **domain-aware**: architecture decisions are tailored to the PRD's domain (pet, ecommerce, education, enterprise, fitness, note, etc.) and platform constraints (iOS, Android, miniapp, web, desktop).
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# From PRD file (SF-01 output)
|
||||
node scripts/architecture-agent.mjs --input prd-example.json --pretty
|
||||
|
||||
# From one-sentence requirement (auto-invokes SF-01)
|
||||
node scripts/architecture-agent.mjs --input-text "做一个电商小程序" --output architecture.json
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ SF-02 Architecture Agent │
|
||||
│ │
|
||||
│ PRD ──▶ 1. Tech Stack Resolver │
|
||||
│ Platform → Stack mapping │
|
||||
│ Extra features → stack adjustments │
|
||||
│ │
|
||||
│ 2. Module Decomposer │
|
||||
│ Feature → Module grouping │
|
||||
│ Keyword-based clustering │
|
||||
│ Domain-specific additions │
|
||||
│ │
|
||||
│ 3. Database Designer │
|
||||
│ API paths → resource tables │
|
||||
│ Domain → table schemas │
|
||||
│ Always: users table │
|
||||
│ │
|
||||
│ 4. API Designer │
|
||||
│ Endpoint → resource grouping │
|
||||
│ Enriched endpoints │
|
||||
│ │
|
||||
│ 5. Architecture Diagramer │
|
||||
│ ASCII art 3-tier diagram │
|
||||
│ Client → API → DB flow │
|
||||
│ │
|
||||
│ 6. Directory Structure │
|
||||
│ Monorepo template │
|
||||
│ apps/ + server/ + packages/ │
|
||||
│ Module-specific directories │
|
||||
│ │
|
||||
│ 7. Data Flow Mapper │
|
||||
│ Page → API → DB trace │
|
||||
│ │
|
||||
│ 8. Deployment Strategy │
|
||||
│ Environments + CI/CD │
|
||||
│ Docker/native/build │
|
||||
│ │
|
||||
│ ──────────────▶ Architecture JSON │
|
||||
└─────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## Output Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"projectName": "PetCare",
|
||||
"domain": "pet",
|
||||
"techStack": {
|
||||
"frontend": "React Native 0.76 + Expo / Flutter 3.x",
|
||||
"backend": "NestJS + Prisma",
|
||||
"database": "PostgreSQL 15 + Redis 7 + MinIO(文件存储)",
|
||||
"deployment": "Docker Compose + Nginx / K8s(规模化)",
|
||||
"considerations": []
|
||||
},
|
||||
"architectureDiagram": "┌─────────────────────── ... ASCII art ...",
|
||||
"dataFlows": [
|
||||
{
|
||||
"page": "首页",
|
||||
"route": "/home",
|
||||
"description": "宠物卡片、今日提醒...",
|
||||
"dataFlow": ["GET /api/pets → ..."],
|
||||
"direction": "Client → API Gateway → Backend → Database → Response → Client"
|
||||
}
|
||||
],
|
||||
"modules": [
|
||||
{
|
||||
"name": "pet",
|
||||
"label": "宠物管理",
|
||||
"features": ["宠物档案", "健康日程"],
|
||||
"responsibilities": ["提供 宠物档案 相关功能", "提供 健康日程 相关功能"]
|
||||
}
|
||||
],
|
||||
"databaseSchema": [
|
||||
{
|
||||
"table": "users",
|
||||
"description": "用户表",
|
||||
"fields": [
|
||||
{ "name": "id", "type": "UUID", "constraints": "PK, DEFAULT gen_random_uuid()" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"apiDesign": [
|
||||
{
|
||||
"resource": "pets",
|
||||
"basePath": "/api/pets",
|
||||
"endpoints": [
|
||||
{ "method": "GET", "path": "/api/pets", "description": "..." }
|
||||
]
|
||||
}
|
||||
],
|
||||
"directoryStructure": [
|
||||
"petcare/",
|
||||
"├── apps/",
|
||||
"├── server/",
|
||||
"└── docker-compose.yml"
|
||||
],
|
||||
"deployment": {
|
||||
"environments": ["development", "staging", "production"],
|
||||
"strategy": "Docker Compose + Nginx / K8s(规模化)",
|
||||
"services": ["API Server (NestJS)", "PostgreSQL 15", "Redis 7"],
|
||||
"ci": "GitHub Actions → Build → Test → Deploy"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Tech Stack Selection
|
||||
|
||||
Automatic stack selection based on platforms:
|
||||
|
||||
| Platforms | Frontend | Backend | Database |
|
||||
|-----------|----------|---------|----------|
|
||||
| wechat-miniapp | 微信小程序原生 / Taro | 云函数 / Node.js | 云数据库 + MySQL |
|
||||
| miniapp | uni-app 3.x | Node.js + Koa2/NestJS | PostgreSQL + Redis |
|
||||
| ios | SwiftUI | Vapor / Node.js | PostgreSQL + Redis |
|
||||
| android | Jetpack Compose | Spring Boot / Ktor | PostgreSQL + Redis |
|
||||
| web | React 19 + Vite | NestJS / Fastify | PostgreSQL + Redis |
|
||||
| mobile+web | React Native / Flutter | NestJS + Prisma | PostgreSQL + Redis + MinIO |
|
||||
| default | React 19 + Vite | NestJS + Prisma | PostgreSQL + Redis |
|
||||
|
||||
Extra feature adjustments:
|
||||
- `wechat-pay` / `alipay` → payment SDK integration note
|
||||
- `logistics-tracking` → logistics API note
|
||||
- `real-time` → WebSocket (Socket.io)
|
||||
- `ai-powered` → AI service (OpenAI / 文心)
|
||||
|
||||
## Database Design
|
||||
|
||||
Domain-specific table generation:
|
||||
|
||||
| Domain | Tables |
|
||||
|--------|--------|
|
||||
| pet | users, pets, schedules, daily_logs |
|
||||
| ecommerce | users, products, orders, order_items, logistics |
|
||||
| education | users, courses, lessons, exercises, user_progress |
|
||||
| enterprise | users, departments, approvals, approval_steps, attendance |
|
||||
| fitness | users, checkins, training_plans |
|
||||
| note | users, notes, tags, note_tags |
|
||||
| generic | users, items |
|
||||
|
||||
All schemas include proper foreign keys, indexes, and constraints.
|
||||
|
||||
## Module Decomposition
|
||||
|
||||
Features are grouped into modules by keyword matching:
|
||||
|
||||
| Pattern | Module |
|
||||
|---------|--------|
|
||||
| 用户/登录/注册/权限 | auth |
|
||||
| 设置/偏好/配置 | settings |
|
||||
| 通知/提醒/推送 | notification |
|
||||
| 上传/文件/图片 | storage |
|
||||
| 统计/报告/分析 | analytics |
|
||||
| 支付/订单/购物车 | payment |
|
||||
| 审批/流程/考勤 | workflow |
|
||||
|
||||
Domain-specific modules are injected automatically (e.g., `product` + `order` for ecommerce).
|
||||
|
||||
## Downstream Integration
|
||||
|
||||
Architecture JSON is designed for:
|
||||
|
||||
- **SF-03 (Design Agent)**: Reads `pages`, `dataFlows` → UI wireframes
|
||||
- **SF-04 (Dev Agent)**: Reads `directoryStructure`, `modules`, `databaseSchema` → project scaffolding
|
||||
- **SF-05 (QA Agent)**: Reads `apiDesign`, `dataFlows` → test plans
|
||||
|
||||
## Test Coverage
|
||||
|
||||
57 tests across 16 suites.
|
||||
|
||||
```bash
|
||||
node --test test/architecture-agent.test.mjs
|
||||
```
|
||||
Reference in New Issue
Block a user