high-level-designlisted
Install: claude install-skill structure-projects/structure-agent-rules
# 概要设计(HLD)
> 用于**新项目**或大版本重构的系统级架构设计。
> 产出 C4 Level 1(系统上下文)+ Level 2(容器)+ 技术选型。
## 前置条件
- 变更提案存在(`changes/proposals/<current>/proposal.md`)
- **新项目**:proposal 类型为"新建项目"
- **大版本重构**:proposal 类型为"架构演进"
## 双流程区分
### 新项目流程(MUST 完整执行)
```
需求 → 概要设计(本技能)→ 详细设计(detailed-design)→ 编码 → ...
```
**MUST 完成 HLD 才能进入 LLD**。
### 历史项目流程(可跳过)
功能更新类变更**通常不需要 HLD**,可直接进入详细设计或编码。
仅当变更涉及**架构调整 / 技术栈升级 / 服务拆分**时才需要 HLD。
## 执行步骤
### 第 1 步:明确系统边界
**MUST 与用户确认**:
- 系统做什么(核心业务价值)
- 系统不做什么(明确非目标)
- 系统的用户是谁(内部 / 外部 / 第三方)
- 系统的上下游(依赖谁 / 被谁依赖)
### 第 2 步:系统上下文图(C4 Level 1)
用 mermaid 画系统上下文图:
```mermaid
graph TB
User[用户]
Admin[管理员]
System[本系统]
External1[外部系统 A]
External2[外部系统 B]
DB[(数据库)]
MQ[消息队列]
User --> System
Admin --> System
System --> External1
System --> External2
System --> DB
System --> MQ
```
### 第 3 步:容器图(C4 Level 2)
把系统拆分为"容器"(可独立部署的单元):
```mermaid
graph TB
subgraph 本系统
UI[前端 UI<br/>Vue3 + wujie]
API[后端 API<br/>Spring Boot 4.0.6]
Worker[后台任务<br/>XXL-Job]
DB[(MySQL)]
Cache[(Redis)]
end
User[用户] --> UI
UI --> API
API --> DB
API --> Cache
API --> MQ[消息队列]
Worker --> MQ
```
### 第 4 步:技术选型
**MUST 按 stack-constraints 选择**:
| 维度 | 选型 | 理由 |
|---|---|---|
| 后端框架 | Spring Boot 4.0.6 + JDK 17 | stack-constraints 强制 |
| 持久化 | MyBatis-Plus 3.5.16 | 生态标准 |
| 安全 | structure-security | 生态必选 |
| JSON | FastJSON | 生态必选 |
| 服务间调用 | Spring Cloud OpenFeign | 生态标准 |
|