/install gen-design
\r \r
/gen-design - 系统设计技能\r
\r
技能 ID: gen-design\r
技能名称: 系统设计技能\r
版本: 1.4.0\r
描述: 基于领域知识库进行数据模型设计和集成设计,生成与 PRD 数据流对齐的设计文档\r
\r
---\r
\r
触发条件\r
\r
/gen-design\r/design\r生成设计文档\r系统设计\r \r
技能边界(防止误触发)\r
\r
- 本技能仅当用户明确要「根据 PRD/需求生成系统设计文档」时触发。\r
- 不得在以下场景触发本技能:\r
- 用户要「分析现有代码库」→ 应使用 analyze\r
- 用户要「从现有代码反推设计主线」→ 应使用 analyze --phase=deep\r
- 若误触发:应说明「您当前意图是 XX,应使用 /analyze 或 /analyze --phase=deep」,并引导至正确技能。\r \r ---\r \r
前置条件\r
\r
- PRD 文档已生成,或用户已提供清晰的需求描述\r
- 领域知识库已准备就绪(
skills/libs/domain-knowledge/)\r \r ---\r \r
核心增强:领域知识库驱动\r
\r 本技能基于领域知识库进行增强,实现:\r \r
- 数据模型设计 — 参考知识库中的核心实体关系、数据库表设计\r
- 接口设计 — 参考知识库中的核心接口设计\r
- 集成设计 — 参考知识库中的常见集成点\r
- 非功能性需求 — 参考知识库中的约束条件和最佳实践\r \r ---\r \r
技能行为\r
\r
阶段一:确认技术栈偏好\r
\r
好的,让我了解一些设计相关的信息:\r
\r
1. 技术栈确认\r
根据您的需求,推荐使用以下技术栈:\r
\r
**前端**:Vue 3 + Ant Design Vue\r
**后端**:Spring Boot 3 + MyBatis-Plus\r
【如需要 AI 能力】LangChain4j + LangGraph4j\r
【如用户规模>10 万】Spring Cloud 微服务\r
\r
是否采用此技术栈方案?\r
A) 采用推荐方案\r
B) 调整技术栈(请说明)\r
C) 使用其他技术栈(请说明)\r
\r
2. 预期用户规模?\r
A) 日活\x3C1 万(单体架构)\r
B) 日活 1-10 万(读写分离)\r
C) 日活>10 万(微服务架构)\r
\r
3. 部署环境?\r
A) 云服务器(阿里云/腾讯云)\r
B) 容器化(K8s/Docker)\r
C) 本地服务器\r
```\r
\r
### 阶段二:设计方案呈现\r
\r
```\r
基于您的需求和技术栈确认,我推荐以下架构方案:\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
\r
**推荐方案**(单体架构):\r
\r
【前端】\r
- 框架:Vue.js 3.x(组合式 API)\r
- UI 库:Ant Design Vue 4.x\r
- 状态管理:Pinia\r
- 路由:Vue Router 4.x\r
- HTTP 客户端:Axios\r
\r
【后端】\r
- 框架:Spring Boot 3.x\r
- ORM:MyBatis-Plus 3.5.x\r
- 安全:Spring Security + JWT\r
- 文档:Knife4j(Swagger 3)\r
- 工具:Lombok, Hutool\r
\r
【数据库】\r
- MySQL 8.0(主从复制,读写分离)\r
- Redis 6.x(缓存热点数据)\r
\r
【AI 能力】(如需要)\r
- LangChain4j:大模型接入\r
- LangGraph4j:工作流编排\r
\r
**架构特点**:\r
- 前后端分离\r
- 读写分离(主从数据库)\r
- Redis 缓存热点数据\r
- 适合日活 1-10 万规模\r
\r
**优势**:\r
- 技术栈成熟稳定,团队容易上手\r
- 开发效率高,支持快速迭代\r
- 生态完善,问题容易解决\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
\r
是否采用推荐方案?确认后生成详细设计文档。\r
```\r
\r
### 阶段三:数据模型设计(基于知识库)\r
\r
```\r
【数据模型设计增强】\r
\r
基于领域知识库,设计数据模型:\r
\r
1. 读取 PRD 中识别的领域\r
2. 加载对应领域知识库\r
3. 参考知识库中的「核心实体关系」\r
4. 参考知识库中的「数据库表设计参考」\r
5. 根据 PRD 功能需求调整\r
\r
【实体关系设计】\r
\r
从知识库提取核心实体:\r
\r
| 实体 | 来源知识库 | 核心属性 | 关联实体 |\r
|------|-----------|---------|---------|\r
| {实体1} | {领域} | {属性列表} | {关联实体} |\r
| {实体2} | {领域} | {属性列表} | {关联实体} |\r
\r
【表结构设计】\r
\r
参考知识库中的数据库表设计,结合业务需求调整:\r
\r
- 表名规范\r
- 字段类型\r
- 索引设计\r
- 分库分表策略(如需要)\r
```\r
\r
### 阶段四:接口设计(基于知识库)\r
\r
```\r
【接口设计增强】\r
\r
基于领域知识库,设计 API 接口:\r
\r
1. 参考知识库中的「核心接口设计」\r
2. 参考知识库中的「常见集成点」\r
3. 根据 PRD 数据流设计接口调用链\r
\r
【接口分类】\r
\r
| 分类 | 来源知识库 | 接口示例 |\r
|------|-----------|---------|\r
| 核心业务接口 | {领域}知识库 | {接口列表} |\r
| 集成接口 | 知识库集成点 | {接口列表} |\r
| 管理接口 | 业务需求 | {接口列表} |\r
\r
【接口规范】\r
\r
参考知识库中的接口设计规范:\r
- RESTful 风格\r
- 统一响应格式\r
- 异常处理规范\r
- 认证授权机制\r
```\r
\r
### 阶段五:集成设计(基于知识库)\r
\r
```\r
【集成设计增强】\r
\r
基于领域知识库,设计系统集成:\r
\r
1. 参考知识库中的「常见集成点」\r
2. 根据 PRD 数据流设计集成方案\r
3. 定义集成契约\r
\r
【集成点清单】\r
\r
| 集成点 | 集成类型 | 来源知识库 | 数据内容 | 触发时机 |\r
|--------|---------|-----------|---------|---------|\r
| {集成点1} | API/消息队列 | {领域}知识库 | {数据} | {触发条件} |\r
\r
【集成契约】\r
\r
每个集成点定义:\r
- 接口/消息格式\r
- 数据字段\r
- 调用方式\r
- 异常处理\r
- 重试机制\r
```\r
\r
### 阶段六:生成设计文档\r
\r
生成时**必须**同时填写「4. 数据流主线与集成点」节,不得留空。\r
\r
### 阶段七:数据流主线与集成点必填与自动补全\r
\r
- **规则**:生成设计文档后必须检查「4. 数据流主线与集成点」是否已填写完整。\r
- **若 PRD 中已有「核心数据流与闭环」**:必须据此展开为本节的「数据流主线」与「集成点清单」。\r
- **若 PRD 中无或不足**:根据「3. 模块划分」与「5. 接口设计」**自动推断**数据流路径与集成点。\r
- **参考知识库**:从知识库「典型数据流骨架」提取集成点。\r
\r
### 阶段八:生成完成与下一步引导\r
\r
```\r
正在生成 docs/design/YYYY-MM-DD-{project-name}-design.md...\r
\r
✅ 设计文档已生成,包含:\r
- 系统架构图\r
- 技术栈说明\r
- 模块划分(X 个模块)\r
- **数据模型设计**(基于领域知识库)\r
- **接口设计**(基于领域知识库)\r
- **集成设计**(基于领域知识库)\r
- 数据流主线与集成点清单(与 PRD 数据流对齐)\r
- 部署方案\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
下一步(请先执行验证再拆任务):\r
请执行以下命令完成数据流与闭环验证后,再执行 /gen-tasks:\r
\r
/validate docs/design/YYYY-MM-DD-{project-name}-design.md\r
\r
验证完成后再执行:/gen-tasks\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
\r
**自动继续**:若平台支持技能链调用,用户回复「是」或未明确说「暂停」时,应**代为调用 validate**(传入本设计文档路径)。\r
```\r
\r
---\r
\r
## 领域知识库使用规范\r
\r
### 知识库使用方式\r
\r
| 设计阶段 | 使用内容 | 用途 |\r
|---------|---------|------|\r
| 数据模型设计 | 核心实体关系、数据库表设计参考 | 设计表结构 |\r
| 接口设计 | 核心接口设计 | 设计 API 接口 |\r
| 集成设计 | 常见集成点 | 设计系统集成 |\r
| 非功能性需求 | 约束条件、最佳实践 | 补充设计约束 |\r
\r
### 领域识别与知识库加载\r
\r
```\r
【领域识别流程】\r
\r
1. 分析 PRD 文档,识别涉及的业务领域\r
- 关键词匹配:积分、订单、支付、用户等\r
- 功能模块分析\r
- 数据流涉及的外部系统\r
\r
2. 加载对应领域知识库\r
- 路径:skills/libs/domain-knowledge/{domain}.md\r
- 可用领域:\r
* points(积分系统)\r
* user-center(用户中心)\r
* order(订单系统)\r
* payment(支付系统)\r
* ecommerce(电商通用)\r
\r
3. 提取知识库核心内容\r
- 核心实体关系\r
- 典型数据流骨架\r
- 常见集成点\r
- 业务规则模板\r
```\r
\r
### 数据模型设计规则\r
\r
```\r
【设计流程】\r
\r
1. 识别 PRD 涉及的领域\r
2. 加载对应领域知识库\r
3. 提取「核心实体列表」\r
4. 参考「实体关系图」\r
5. 参考「数据库表设计参考」\r
6. 根据业务需求调整\r
\r
【调整规则】\r
\r
- 删除不需要的实体\r
- 合并相似的实体\r
- 扩展实体的属性\r
- 调整实体关系\r
\r
【命名规范】\r
\r
参考知识库中的命名规范:\r
- 表名:t_{模块}_{实体},如 t_points_account\r
- 字段名:下划线分隔\r
- 主键:id (BIGINT)\r
- 外键:{关联实体}_id\r
\r
【输出格式】\r
\r
数据模型设计必须包含:\r
1. ER 图(Mermaid 格式)\r
2. 实体清单表格\r
3. 每个实体的详细字段表\r
4. 索引设计说明\r
5. 与知识库的对应关系说明\r
```\r
\r
### 接口设计规则\r
\r
```\r
【设计流程】\r
\r
1. 分析 PRD 数据流\r
2. 参考「核心接口设计」\r
3. 设计接口调用链\r
4. 定义接口契约\r
\r
【接口分类】\r
\r
1. 业务接口(来自知识库)\r
- CRUD 接口\r
- 业务操作接口\r
\r
2. 集成接口(来自知识库集成点)\r
- 上游系统对接\r
- 下游系统对接\r
\r
3. 管理接口\r
- 配置管理\r
- 数据统计\r
\r
【接口规范】\r
\r
参考知识库中的接口设计规范:\r
- RESTful 风格\r
- 统一响应格式\r
- 分页查询规范\r
- 批量操作规范\r
\r
【输出格式】\r
\r
接口设计必须包含:\r
1. API 规范说明(协议、认证、版本)\r
2. 统一响应格式示例\r
3. 接口清单表格(编号、名称、方法、路径)\r
4. 关键接口详细说明(请求/响应参数)\r
5. 与知识库的对应关系说明\r
```\r
\r
---\r
\r
## 集成设计规则\r
\r
```\r
【设计流程】\r
\r
1. 识别 PRD 中涉及的外部系统\r
2. 加载领域知识库「常见集成点」\r
3. 参考「典型数据流骨架」\r
4. 设计集成方案\r
5. 定义集成契约\r
\r
【集成点分类】\r
\r
1. 上游系统(触发本系统)\r
- 用户系统:获取用户信息\r
- 订单系统:订单状态变更\r
- 支付系统:支付结果通知\r
\r
2. 下游系统(本系统触发)\r
- 消息通知:积分变动通知\r
- 风控系统:异常操作上报\r
- 数据分析:数据同步\r
\r
3. 第三方服务\r
- 短信服务\r
- Push 服务\r
- 外部 API\r
\r
【集成契约要素】\r
\r
每个集成点必须定义:\r
- 集成方式:API / 消息队列 / 数据库\r
- 数据格式:JSON / Protobuf / 其他\r
- 调用方式:同步 / 异步\r
- 超时设置\r
- 重试机制\r
- 异常处理\r
- 幂等性保证\r
\r
【输出格式】\r
\r
集成设计必须包含:\r
1. 集成点清单表格\r
2. 每个集成点的详细契约\r
3. 数据流与集成点的对应关系\r
4. 与知识库的对应关系说明\r
```\r
\r
---\r
\r
## 技术栈规范\r
\r
### 前端技术栈(默认推荐)\r
\r
```yaml\r
框架:\r
name: Vue.js\r
version: 3.x\r
说明:组合式 API,TypeScript 支持\r
\r
UI 组件库:\r
name: Ant Design Vue\r
version: 4.x\r
说明:企业级 UI 组件库\r
\r
状态管理:\r
name: Pinia\r
version: latest\r
说明:Vue 3 官方推荐\r
\r
路由:\r
name: Vue Router\r
version: 4.x\r
\r
HTTP 客户端:\r
name: Axios\r
version: latest\r
```\r
\r
### 后端技术栈(默认推荐)\r
\r
```yaml\r
框架:\r
name: Spring Boot\r
version: 3.x\r
\r
ORM:\r
name: MyBatis-Plus\r
version: 3.5.x\r
\r
安全:\r
name: Spring Security\r
version: 6.x\r
认证:JWT Token\r
\r
文档:\r
name: Knife4j\r
version: 4.x\r
\r
数据库:\r
name: MySQL\r
version: 8.0\r
\r
缓存:\r
name: Redis\r
version: 6.x\r
```\r
\r
### AI 能力集成(如需要)\r
\r
```yaml\r
AI 框架:\r
name: LangChain4j\r
version: latest\r
\r
工作流编排:\r
name: LangGraph4j\r
version: latest\r
\r
支持的模型:\r
- 通义千问\r
- 文心一言\r
- ChatGLM\r
- Ollama\r
```\r
\r
---\r
\r
## 架构方案库\r
\r
本技能支持根据用户需求推荐合适的架构方案。详细的架构方案模板见 **[libs/architecture-options.md](../libs/architecture-options.md)**,包含:\r
\r
- 方案 A:经典单体架构\r
- 方案 A+:单体 + 读写分离\r
- 方案 B:Spring Cloud 微服务\r
- 方案 C:标准前后端分离\r
- 方案 D:Serverless 架构\r
- 方案 E:高并发架构\r
\r
---\r
\r
## 架构选择决策树\r
\r
```\r
需求分析 → 架构选择\r
\r
1. 用户规模?\r
- \x3C1 万 → 单体架构(Spring Boot)\r
- 1-10 万 → 单体 + 读写分离 + Redis 缓存\r
- >10 万 → 微服务(Spring Cloud)\r
\r
2. 是否需要 AI 能力?\r
- 是 → 集成 LangChain4j + LangGraph4j\r
- 否 → 标准技术栈\r
\r
3. 前端类型?\r
- 企业级/中后台 → Vue 3 + Ant Design Vue\r
- C 端/H5 → Vue 3 + Vant\r
- 复杂交互 → React + Ant Design\r
\r
4. 特殊需求?\r
- 实时通信 → WebSocket + Redis Pub/Sub\r
- 大数据检索 → Elasticsearch\r
- 高并发 → Redis 集群 + 消息队列\r
```\r
\r
---\r
\r
## 输出文件\r
\r
```\r
docs/design/YYYY-MM-DD-{project-name}-design.md\r
```\r
\r
**目录与写入**:写入前须确保 `docs/design/` 存在(空仓库时先创建 `docs` 与 `docs/design`),并将完整设计文档落盘,禁止仅对话展示。通用约定见 [SKILLS-FILE-OUTPUT.md](../SKILLS-FILE-OUTPUT.md)。\r
\r
**前后端分离**:使用模板时须填写 **「1.4 仓库与代码目录结构」** 中的 `{frontendRoot}`、`{backendRoot}`(如 `frontend/`、`backend/`),供后续 `/gen-code` 将前后端代码分别写入对应根目录。\r
\r
---\r
\r
## 示例对话\r
\r
### 示例:积分系统设计\r
\r
```\r
用户:/gen-design\r
\r
AI: 好的,我将根据 PRD 文档进行系统设计。\r
\r
检测到 PRD 涉及领域:积分系统、用户中心、订单\r
已加载对应领域知识库。\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
\r
1. 技术栈确认\r
根据您的需求,推荐使用以下技术栈:\r
\r
**前端**:Vue 3 + Ant Design Vue\r
**后端**:Spring Boot 3 + MyBatis-Plus\r
**数据库**:MySQL 8.0 + Redis\r
\r
是否采用此技术栈方案?\r
A) 采用推荐方案\r
B) 调整技术栈\r
\r
2. 预期用户规模?\r
A) 日活\x3C1 万\r
B) 日活 1-10 万\r
C) 日活>10 万\r
\r
用户:1-A, 2-B\r
\r
AI: 基于您的需求和技术栈确认,我推荐以下架构方案:\r
\r
**推荐方案**(单体 + 读写分离):\r
\r
【架构特点】\r
- 前后端分离\r
- 读写分离(MySQL 主从)\r
- Redis 缓存积分数据\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
\r
**数据模型设计**(基于领域知识库):\r
\r
从积分知识库提取核心实体:\r
- PointsAccount(积分账户)\r
- PointsRecord(积分流水)\r
- PointsRule(积分规则)\r
- PointsExchange(积分兑换记录)\r
- PointsExpire(积分过期记录)\r
\r
从用户中心知识库提取核心实体:\r
- User(用户)\r
- Role(角色)\r
- Permission(权限)\r
\r
【是否需要调整数据模型?】\r
A) 使用推荐模型\r
B) 需要调整(请说明)\r
\r
用户:A\r
\r
AI: **接口设计**(基于领域知识库):\r
\r
从积分知识库提取核心接口:\r
- 积分账户服务:getBalance, earnPoints, usePoints, freezePoints\r
- 积分流水服务:queryRecords, createRecord\r
- 积分规则服务:getRule, calculatePoints\r
\r
集成接口(来自知识库集成点):\r
- 订单系统:消费返积分、积分抵扣、积分撤销\r
- 用户系统:获取用户信息\r
- 消息系统:积分变动通知\r
\r
【是否需要调整接口设计?】\r
A) 使用推荐接口\r
B) 需要调整(请说明)\r
\r
用户:A\r
\r
AI: 正在生成 docs/design/2026-03-02-points-system-design.md...\r
\r
✅ 设计文档已生成,包含:\r
- 系统架构图\r
- 技术栈说明\r
- 模块划分(3 个模块)\r
- **数据模型设计**(7 张表,基于领域知识库)\r
- **接口设计**(15 个 API,基于领域知识库)\r
- **集成设计**(3 个集成点,基于领域知识库)\r
- 数据流主线与集成点清单(与 PRD 数据流对齐)\r
- 部署方案\r
\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
下一步:\r
请执行以下命令完成数据流验证:\r
\r
/validate docs/design/2026-03-02-points-system-design.md\r
\r
验证完成后再执行:/gen-tasks\r
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\r
```\r
\r
---\r
\r
## 相关技能\r
\r
- **gen-prd**: PRD 生成,本技能的前置技能\r
- **design-review**: 设计评审(可选),本技能产出后的质量加固\r
- **validate**: 设计验证(如 `--mode=dataflow`),本技能的后续验证\r
- **gen-coding-specs**: 固化技术栈与编码约定到 `docs/coding-specs/`,**强烈建议在 gen-tasks / gen-code 前**完成,与 [SKILL-VALUE-CHAIN.md](../SKILL-VALUE-CHAIN.md) 一致\r
- **contract-gen**: 契约生成(可选,契约驱动时),本技能的后续技能\r
- **gen-tasks**: 任务拆解,本技能的后续技能\r
\r
---\r
\r
## 版本历史\r
\r
| 版本 | 日期 | 变更说明 |\r
|------|------|----------|\r
| 1.4.0 | 2026-03-07 | 新增数据流标注、契约生成集成 |\r
| 1.3.0 | 2026-03-05 | 新增功能单元设计 |\r
| 1.2.0 | 2026-03-03 | 新增API规范设计 |\r
| 1.1.0 | 2026-03-02 | 新增存量项目设计增强 |\r
| 1.0.0 | 2026-03-01 | 初始版本 |\r
\r
---\r
\r
*本技能是 AI Speckits 技能体系的系统设计阶段,基于领域知识库增强。*\r
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install gen-design - After installation, invoke the skill by name or use
/gen-design - Provide required inputs per the skill's parameter spec and get structured output
What is Gen Design?
通过交互式技术选型生成系统设计文档。基于领域知识库进行数据模型设计和集成设计,确保设计与 PRD 数据流对齐。仅当用户要「生成系统设计文档」时使用;分析现有代码库请用 analyze,从代码反推设计主线请用 analyze --phase=deep。 It is an AI Agent Skill for Claude Code / OpenClaw, with 93 downloads so far.
How do I install Gen Design?
Run "/install gen-design" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Gen Design free?
Yes, Gen Design is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Gen Design support?
Gen Design is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Gen Design?
It is built and maintained by Liu Feng (@lf951515851); the current version is v1.0.0.