feat(skill): REQ-20260406-0004 技能三层分离重构(7主线+16插件)
批次1: req-prd 瘦身 + req-design 重定位 + dev-coding 聚焦 批次2: dev-review 新建 + review-checklist 插件 批次3: dev-integration 新建 + req-compare 拆出 批次4: 插件完善 (req-research/db-migration/dev-scaffold/deploy-rollback) 批次5: 平台拆分 (dev-ios/dev-android/dev-mcp/dev-pda) + dev 分组更新 批次6: marketplace.json 32→44 plugins Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
8
skills-req/req-compare-plugin/.claude-plugin/plugin.json
Normal file
8
skills-req/req-compare-plugin/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "req-compare-plugin",
|
||||
"description": "对比式需求分析插件。系统平移、竞品借鉴、版本升级时的参考对象对比分析。挂载在 analysis 阶段。",
|
||||
"version": "1.0.0",
|
||||
"author": {
|
||||
"name": "qiudl"
|
||||
}
|
||||
}
|
||||
210
skills-req/req-compare-plugin/skills/SKILL.md
Normal file
210
skills-req/req-compare-plugin/skills/SKILL.md
Normal file
@@ -0,0 +1,210 @@
|
||||
---
|
||||
name: req-compare
|
||||
description: 对比式需求分析插件。系统平移、竞品借鉴、版本升级时使用参考对象对比法编写 PRD。挂载在 analysis 阶段,需要对比分析时由 req-prd 推荐激活。
|
||||
---
|
||||
|
||||
# 对比式需求分析插件 (req-compare)
|
||||
|
||||
## 概述
|
||||
|
||||
当进行**系统平移、功能迁移、竞品借鉴**时,使用对比分析法编写 PRD,确保新系统功能完整且有所改进。
|
||||
|
||||
**触发条件**:
|
||||
- 用户提到"从 XX 系统迁移"、"参考 XX 功能"、"平移"、"借鉴"
|
||||
- req-prd 检测到需求涉及参考系统
|
||||
|
||||
## 适用场景
|
||||
|
||||
| 场景 | 说明 | 示例 |
|
||||
|------|------|------|
|
||||
| 系统平移 | 旧系统迁移到新技术栈 | 酷采2.0 → 酷采3.0 |
|
||||
| 功能借鉴 | 参考竞品功能设计 | 参考飞书设计协作功能 |
|
||||
| 版本升级 | 基于当前版本优化 | V1.0 → V2.0 重构 |
|
||||
|
||||
---
|
||||
|
||||
## 对比分析工作流
|
||||
|
||||
```
|
||||
1. 确定参考对象
|
||||
├── 识别参考系统(可以是多个)
|
||||
├── 获取访问权限(测试环境、源代码)
|
||||
└── 明确对比目标
|
||||
|
||||
2. 参考对象分析
|
||||
├── 功能调研(前端页面操作)
|
||||
├── 业务数据分析(核心实体、字段含义)
|
||||
├── 业务逻辑分析(规则、流转、校验)
|
||||
└── 用户体验分析
|
||||
|
||||
3. 对比分析
|
||||
├── 功能对比表(保留/优化/新增/废弃)
|
||||
├── 业务数据对比(实体映射、新增数据项)
|
||||
├── 用户体验对比
|
||||
└── 非功能需求对比(性能、安全)
|
||||
|
||||
4. PRD 编写
|
||||
├── 背景说明(明确参考来源)
|
||||
├── 功能需求(标注来源与变更)
|
||||
├── 业务数据需求(实体、字段、规则)
|
||||
└── 非功能需求(性能、安全、兼容性)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 对比式 PRD 模板
|
||||
|
||||
```markdown
|
||||
# [功能模块名称] PRD
|
||||
|
||||
## 1. 文档概述
|
||||
|
||||
### 1.1 文档信息
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 文档名称 | [模块名称] 需求文档 |
|
||||
| 版本 | V1.0 |
|
||||
| 创建日期 | [日期] |
|
||||
| **需求来源** | **[参考系统名称] 平移/借鉴** |
|
||||
| **参考系统** | **[参考系统访问地址]** |
|
||||
|
||||
### 1.2 背景说明
|
||||
本需求文档基于 **[参考系统]** 的 [模块名称] 功能分析,将其平移至 [目标系统]。
|
||||
|
||||
**参考系统信息**:
|
||||
- 系统地址:[URL]
|
||||
- 技术栈:[技术栈描述]
|
||||
- 源码位置:[源码路径](如有)
|
||||
|
||||
---
|
||||
|
||||
## 2. 参考系统分析
|
||||
|
||||
### 2.1 功能截图
|
||||
[插入参考系统功能截图]
|
||||
|
||||
### 2.2 业务数据(参考系统)
|
||||
| 数据实体 | 核心字段 | 业务含义 |
|
||||
|----------|----------|----------|
|
||||
| [实体名] | [字段列表] | [业务说明] |
|
||||
|
||||
### 2.3 核心功能(参考系统)
|
||||
| 功能 | 用户操作 | 业务规则 |
|
||||
|------|----------|----------|
|
||||
| [功能名] | [操作描述] | [规则说明] |
|
||||
|
||||
### 2.4 业务逻辑(参考系统)
|
||||
- 核心业务规则摘要
|
||||
- 数据校验规则
|
||||
- 状态流转逻辑
|
||||
|
||||
---
|
||||
|
||||
## 3. 功能对比分析
|
||||
|
||||
### 3.1 功能对比表
|
||||
| 序号 | 功能 | 参考系统 | 目标系统 | 变更类型 | 说明 |
|
||||
|------|------|----------|----------|----------|------|
|
||||
| 1 | [功能1] | ✅ | ✅ | 保留 | 直接平移 |
|
||||
| 2 | [功能2] | ✅ | ✅+ | 优化 | [优化内容] |
|
||||
| 3 | [功能3] | ❌ | ✅ | 新增 | [新增原因] |
|
||||
| 4 | [功能4] | ✅ | ❌ | 废弃 | [废弃原因] |
|
||||
|
||||
### 3.2 业务数据对比
|
||||
| 数据项 | 参考系统 | 目标系统 | 变更 | 说明 |
|
||||
|--------|----------|----------|------|------|
|
||||
| [数据项] | [描述] | [描述] | 保留/优化/新增/废弃 | [说明] |
|
||||
|
||||
### 3.3 非功能需求对比
|
||||
| 维度 | 参考系统 | 目标系统要求 |
|
||||
|------|----------|-------------|
|
||||
| 性能 | [现状] | [目标] |
|
||||
| 安全 | [现状] | [目标] |
|
||||
| 用户体验 | [现状] | [目标] |
|
||||
|
||||
---
|
||||
|
||||
## 4. 目标系统设计
|
||||
|
||||
### 4.1 功能清单
|
||||
| 序号 | 功能 | 优先级 | 来源 | 说明 |
|
||||
|------|------|--------|------|------|
|
||||
| 1 | [功能] | P0 | 平移 | 从参考系统平移 |
|
||||
|
||||
### 4.2 业务数据需求(目标系统)
|
||||
| 数据实体 | 核心字段 | 业务规则 | 来源 |
|
||||
|----------|----------|----------|------|
|
||||
| [实体名] | [字段列表] | [校验/约束] | 平移/新增 |
|
||||
|
||||
### 4.3 业务规则
|
||||
- [ ] 规则1(沿用参考系统)
|
||||
- [ ] 规则2(优化调整)
|
||||
|
||||
---
|
||||
|
||||
## 5. 上线优先级
|
||||
1. [P0 功能] — 核心路径
|
||||
2. [P1 功能] — 重要但可后续迭代
|
||||
3. [P2 功能] — 优化项
|
||||
|
||||
## 6. 注意事项
|
||||
- 参考系统中 [xxx] 逻辑需要特别注意
|
||||
- 新系统中需改进 [xxx] 问题
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 参考对象分析方法
|
||||
|
||||
### 1. 前端功能调研
|
||||
- 访问参考系统,截图记录页面布局和交互流程
|
||||
- 记录用户操作路径(CRUD、搜索、筛选等)
|
||||
- 标注交互细节(表单校验、提示信息、异常处理)
|
||||
|
||||
### 2. 业务逻辑调研
|
||||
- 梳理核心业务规则和状态流转
|
||||
- 记录数据校验规则
|
||||
- 标注业务异常处理方式
|
||||
|
||||
> **技术层分析**(代码结构、数据库表结构、API 接口)请在 design 阶段使用 `req-design` 技能完成。
|
||||
|
||||
---
|
||||
|
||||
## 竞品分析模板
|
||||
|
||||
```markdown
|
||||
# [竞品名称] 分析
|
||||
|
||||
## 1. 产品概述
|
||||
- 定位:
|
||||
- 核心功能:
|
||||
- 目标用户:
|
||||
|
||||
## 2. 功能对比
|
||||
| 功能 | 我们 | 竞品A | 竞品B |
|
||||
|------|------|-------|-------|
|
||||
| 功能1 | ✅/❌/部分 | ... | ... |
|
||||
|
||||
## 3. 优劣势分析
|
||||
### 优势
|
||||
1. ...
|
||||
|
||||
### 劣势
|
||||
1. ...
|
||||
|
||||
## 4. 可借鉴点
|
||||
- ...
|
||||
|
||||
## 5. 差异化策略
|
||||
- ...
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **先调研再写 PRD** — 充分理解参考系统后再动笔
|
||||
2. **功能对比表必填** — 明确每个功能的保留/优化/新增/废弃决策
|
||||
3. **标注来源** — 每个功能需求标注是"平移"还是"新增"
|
||||
4. **记录废弃原因** — 参考系统有但不做的功能,必须记录原因
|
||||
5. **不抄技术实现** — 对比的是业务功能,不是代码结构
|
||||
8
skills-req/req-design-plugin/.claude-plugin/plugin.json
Normal file
8
skills-req/req-design-plugin/.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"name": "req-design-plugin",
|
||||
"description": "需求开发设计技能。PRD 到开发设计的转换:API 契约、数据模型变更、任务拆分、风险评估。",
|
||||
"version": "2.0.0",
|
||||
"author": {
|
||||
"name": "qiudl"
|
||||
}
|
||||
}
|
||||
455
skills-req/req-design-plugin/skills/SKILL.md
Normal file
455
skills-req/req-design-plugin/skills/SKILL.md
Normal file
@@ -0,0 +1,455 @@
|
||||
---
|
||||
name: req-design
|
||||
description: 需求开发设计技能。用于 PRD 到开发设计的转换:API 契约定义、数据模型变更方案、变更文件清单、开发任务拆分、技术风险评估。当用户执行 /req doc 或需要编写开发设计文档时自动激活。
|
||||
arguments: <REQ-ID>
|
||||
---
|
||||
|
||||
# 需求开发设计 Skill (req-design)
|
||||
|
||||
## 概述
|
||||
|
||||
本技能用于将 PRD 文档转换为**开发设计文档**,是产品需求(req-prd)和编码实现(dev-coding)之间的桥梁。
|
||||
|
||||
**核心输出**:
|
||||
- API 契约定义(前后端对齐)
|
||||
- 数据模型变更方案(新增/修改表和字段)
|
||||
- 变更文件清单(标注层级和改动类型)
|
||||
- 开发任务拆分(SMART 原则,2-4h 粒度)
|
||||
- 技术风险评估
|
||||
|
||||
**不包含**(由其他技能负责):
|
||||
- 具体代码实现 → `dev-coding`
|
||||
- 代码规范和编码模式 → `dev-coding`
|
||||
- 深度架构设计 → `dev-arch`(插件)
|
||||
- 数据库迁移细节 → `db-migration`(插件)
|
||||
|
||||
---
|
||||
|
||||
## 技能间契约
|
||||
|
||||
| 上游 | 本技能输入 | 本技能输出 | 下游 |
|
||||
|------|-----------|-----------|------|
|
||||
| req-prd | PRD 文档(用户故事、业务规则、验收标准) | 开发设计文档 | dev-coding |
|
||||
|
||||
**输出格式要求**:
|
||||
- API 契约:B 级格式(见下方标准)
|
||||
- 变更清单:按文件列出,标注层级和改动类型
|
||||
- 任务拆分:每任务 2-4h,SMART 原则
|
||||
|
||||
---
|
||||
|
||||
## 工作流程
|
||||
|
||||
```
|
||||
0. ⚠️ 需求验证(防浪费,5-10 分钟)
|
||||
├── 现有 UI 检查:功能是否已存在?
|
||||
├── 数据检查:字段/API 是否已有?
|
||||
└── 价值验证:痛点明确?有更简方案?
|
||||
|
||||
1. 获取需求信息
|
||||
├── mcp__ai-proj__get_requirement
|
||||
└── mcp__ai-proj__get_requirement_tasks(找 PRD 任务)
|
||||
|
||||
2. 分析 PRD 文档
|
||||
├── 提取功能点和业务规则
|
||||
├── 识别数据实体和关系
|
||||
└── 确定非功能需求(性能、安全)
|
||||
|
||||
3. 探索代码库
|
||||
├── 搜索相关现有代码(Grep/Glob/Explore)
|
||||
├── 识别修改文件和可复用代码
|
||||
└── 分析依赖关系
|
||||
|
||||
4. 设计 API 契约
|
||||
├── 定义新增/修改接口(B 级格式)
|
||||
├── 定义请求/响应结构
|
||||
└── 定义错误码
|
||||
|
||||
5. 设计数据模型变更
|
||||
├── 新增/修改表和字段
|
||||
├── 索引设计
|
||||
└── 数据迁移方案(如需要)
|
||||
|
||||
6. 生成变更文件清单
|
||||
├── 后端:Model → Repository → Service → Handler → Route → Migration
|
||||
├── 前端:Types → Services → Components → Pages
|
||||
└── 标注每个文件的改动类型(新增/修改/删除)
|
||||
|
||||
7. 拆分开发任务
|
||||
├── 按模块/文件拆分子任务
|
||||
└── mcp__ai-proj__create_subtask
|
||||
|
||||
8. 技术风险评估
|
||||
├── 影响分析(兼容性、性能)
|
||||
└── 回退方案
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 需求验证(第 0 步)
|
||||
|
||||
> **教训**:不先验证需求,可能花几小时实现冗余功能。
|
||||
|
||||
**验证清单**(5-10 分钟):
|
||||
|
||||
1. **现有功能检查**(最重要)
|
||||
- 打开相关页面,目视检查功能是否已存在
|
||||
- 检查数据库是否已有相关字段
|
||||
- 检查 API 是否已返回所需数据
|
||||
|
||||
2. **价值验证**
|
||||
- 解决什么具体痛点?
|
||||
- 有无更简单的替代方案?
|
||||
- 投入产出比是否合理?
|
||||
|
||||
3. **设计审查**
|
||||
- UI 设计是否合理?不重复、不混乱?
|
||||
- 是否符合现有设计规范?
|
||||
|
||||
**通过验证后再开始设计!**
|
||||
|
||||
---
|
||||
|
||||
## API 契约格式标准(B 级)
|
||||
|
||||
所有新增/修改 API 必须使用以下格式定义契约,作为前后端对齐的桥梁:
|
||||
|
||||
```
|
||||
### POST /api/v1/enterprises
|
||||
描述: 创建企业
|
||||
|
||||
请求体:
|
||||
- name: string (required) — 企业名称,最长 100 字符
|
||||
- code: string (required) — 企业编码,唯一,正则 ^[A-Z0-9-]+$
|
||||
- contact_email: string (optional) — 联系邮箱
|
||||
|
||||
响应 200:
|
||||
- id: int
|
||||
- name: string
|
||||
- code: string
|
||||
- created_at: datetime
|
||||
|
||||
错误:
|
||||
- 400: 参数校验失败(name/code 为空或格式错误)
|
||||
- 409: 编码已存在
|
||||
- 403: 无权限创建企业
|
||||
```
|
||||
|
||||
**B 级规则**:
|
||||
- 列出所有字段、类型、必填/可选
|
||||
- 标注校验规则(长度、格式、唯一性)
|
||||
- 列出所有可能的错误码和含义
|
||||
- 不需要 JSON 示例(A 级才需要)
|
||||
|
||||
---
|
||||
|
||||
## 开发设计文档模板
|
||||
|
||||
```markdown
|
||||
# [需求标题] 开发设计文档
|
||||
|
||||
## 1. 需求概述
|
||||
|
||||
### 1.1 需求信息
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 需求编号 | REQ-YYYYMMDD-XXXX |
|
||||
| 需求标题 | [标题] |
|
||||
| 优先级 | high/medium/low |
|
||||
| 预估工时 | Xh |
|
||||
|
||||
### 1.2 功能点清单
|
||||
- [ ] 功能点1:[描述]
|
||||
- [ ] 功能点2:[描述]
|
||||
|
||||
---
|
||||
|
||||
## 2. 代码库分析
|
||||
|
||||
### 2.1 相关现有代码
|
||||
| 文件路径 | 层级 | 当前功能 | 改动类型 |
|
||||
|---------|------|----------|---------|
|
||||
| `backend/models/xxx.go` | Model | 数据模型 | 新增字段 |
|
||||
| `backend/services/xxx_service.go` | Service | 业务逻辑 | 新增方法 |
|
||||
|
||||
### 2.2 可复用代码
|
||||
- [描述已有的可参考实现]
|
||||
|
||||
### 2.3 依赖关系
|
||||
- [需要注意的调用链和依赖]
|
||||
|
||||
---
|
||||
|
||||
## 3. API 契约
|
||||
|
||||
### 3.1 新增接口
|
||||
|
||||
### POST /api/v1/xxx
|
||||
描述: [功能描述]
|
||||
|
||||
请求体:
|
||||
- field1: type (required) — 说明
|
||||
- field2: type (optional) — 说明
|
||||
|
||||
响应 200:
|
||||
- field1: type
|
||||
- field2: type
|
||||
|
||||
错误:
|
||||
- 400: [说明]
|
||||
- 404: [说明]
|
||||
|
||||
### 3.2 修改接口
|
||||
[列出需要修改的现有接口及变更内容]
|
||||
|
||||
---
|
||||
|
||||
## 4. 数据模型变更
|
||||
|
||||
### 4.1 新增表
|
||||
| 表名 | 说明 |
|
||||
|------|------|
|
||||
| xxx | [用途] |
|
||||
|
||||
**字段设计**:
|
||||
| 字段 | 类型 | 约束 | 说明 |
|
||||
|------|------|------|------|
|
||||
| id | BIGSERIAL | PK | 主键 |
|
||||
| tenant_id | BIGINT | NOT NULL, INDEX | 租户ID |
|
||||
| name | VARCHAR(255) | NOT NULL | 名称 |
|
||||
| created_at | TIMESTAMP | NOT NULL, DEFAULT NOW() | 创建时间 |
|
||||
|
||||
**索引**:
|
||||
| 索引名 | 字段 | 类型 | 说明 |
|
||||
|--------|------|------|------|
|
||||
| idx_xxx_tenant | tenant_id | B-tree | 租户查询 |
|
||||
|
||||
### 4.2 修改表
|
||||
| 表名 | 变更 | 说明 |
|
||||
|------|------|------|
|
||||
| xxx | 新增字段 yyy | [用途] |
|
||||
|
||||
### 4.3 数据迁移(如需要)
|
||||
[迁移方案描述]
|
||||
|
||||
---
|
||||
|
||||
## 5. 变更文件清单
|
||||
|
||||
### 后端
|
||||
| 文件 | 层级 | 改动类型 | 改动说明 |
|
||||
|------|------|---------|---------|
|
||||
| `models/xxx.go` | Model | 修改 | 新增字段 |
|
||||
| `database/xxx_repository.go` | Repository | 修改 | 新增查询方法 |
|
||||
| `services/xxx_service.go` | Service | 修改 | 新增业务方法 |
|
||||
| `handlers/xxx_handler.go` | Handler | 修改 | 新增接口 |
|
||||
| `routes/xxx_routes.go` | Route | 修改 | 注册新路由 |
|
||||
| `migrations/YYYYMMDD_xxx.up.sql` | Migration | 新增 | 表结构变更 |
|
||||
|
||||
### 前端
|
||||
| 文件 | 层级 | 改动类型 | 改动说明 |
|
||||
|------|------|---------|---------|
|
||||
| `types/xxx.ts` | Types | 修改 | 新增接口定义 |
|
||||
| `services/xxxService.ts` | Service | 修改 | 新增 API 调用 |
|
||||
| `pages/XxxPage.tsx` | Page | 修改 | 新增功能 UI |
|
||||
|
||||
---
|
||||
|
||||
## 6. 开发任务拆分
|
||||
|
||||
### 6.1 任务列表
|
||||
| # | 任务标题 | 预估工时 | 依赖 |
|
||||
|---|---------|---------|------|
|
||||
| 1 | [后端] Model + Migration | 1h | - |
|
||||
| 2 | [后端] Repository + Service | 2h | #1 |
|
||||
| 3 | [后端] Handler + Route | 2h | #2 |
|
||||
| 4 | [前端] Types + Service | 1h | #3 |
|
||||
| 5 | [前端] 页面开发 | 3h | #4 |
|
||||
| 6 | [测试] 单元测试 | 2h | #3, #5 |
|
||||
|
||||
### 6.2 实施顺序
|
||||
[按依赖关系排列的开发步骤]
|
||||
|
||||
---
|
||||
|
||||
## 7. 技术风险评估
|
||||
|
||||
### 7.1 影响分析
|
||||
| 改动类型 | 影响范围 | 风险等级 | 应对措施 |
|
||||
|---------|---------|---------|---------|
|
||||
| [描述] | [范围] | 高/中/低 | [措施] |
|
||||
|
||||
### 7.2 风险清单
|
||||
- [ ] 数据库:是否需要数据迁移?是否影响数据完整性?
|
||||
- [ ] API:是否破坏兼容性?是否需要版本管理?
|
||||
- [ ] 前端:是否影响现有页面?是否有性能瓶颈?
|
||||
- [ ] 业务:是否影响核心流程?是否需要灰度?
|
||||
|
||||
### 7.3 回退方案
|
||||
[如果上线出问题,如何回退]
|
||||
|
||||
---
|
||||
|
||||
## 8. 注意事项
|
||||
[特殊说明、边界情况、兼容性要求]
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 任务拆分规则
|
||||
|
||||
### SMART 原则
|
||||
|
||||
- **Specific**(具体):明确要修改哪个文件/模块
|
||||
- **Measurable**(可衡量):清晰的完成标准
|
||||
- **Achievable**(可实现):单个任务 2-4 小时完成
|
||||
- **Relevant**(相关):与需求直接相关
|
||||
- **Time-bound**(有时限):预估工时
|
||||
|
||||
### 拆分粒度
|
||||
|
||||
- ✅ 好的粒度:`[Handler] 修改 manual_handler.go 添加发布接口(2h)`
|
||||
- ❌ 太粗:`[后端] 实现所有后端功能`
|
||||
- ❌ 太细:`[Handler] 添加 import 语句`
|
||||
|
||||
### 按文件拆分(推荐)
|
||||
- 每个文件对应一个子任务
|
||||
- 格式:`[层级] 修改 文件名 简要说明`
|
||||
|
||||
### 按功能模块拆分(大改动)
|
||||
- 将相关文件归为一个模块
|
||||
- 格式:`[模块] 功能描述`
|
||||
|
||||
### 标准开发顺序
|
||||
|
||||
```
|
||||
第一阶段:数据层
|
||||
├── Model 层:定义数据结构
|
||||
├── Migration:创建/修改表
|
||||
└── Repository 层:实现数据访问
|
||||
|
||||
第二阶段:业务层
|
||||
├── Service 层:实现业务逻辑
|
||||
└── 编写单元测试
|
||||
|
||||
第三阶段:接口层
|
||||
├── Handler 层:实现 HTTP 接口
|
||||
├── Route 层:注册路由
|
||||
└── API 文档(Swagger)
|
||||
|
||||
第四阶段:前端层
|
||||
├── Types:定义 TypeScript 接口
|
||||
├── Services:封装 API 调用
|
||||
├── Components:开发可复用组件
|
||||
└── Pages:实现业务页面
|
||||
|
||||
第五阶段:测试与优化
|
||||
├── 后端单元测试
|
||||
├── 前端组件测试
|
||||
└── E2E 测试
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 技术风险评估框架
|
||||
|
||||
### 影响分析矩阵
|
||||
|
||||
| 改动类型 | 影响范围 | 风险等级 | 应对措施 |
|
||||
|---------|---------|---------|---------|
|
||||
| 新增字段(非必填) | 低 | 低 | 添加 Migration,向后兼容 |
|
||||
| 修改字段类型 | 中 | 中 | 数据迁移脚本,充分测试 |
|
||||
| 删除字段 | 高 | 高 | 确认无依赖,先标记废弃 |
|
||||
| 新增 API 接口 | 低 | 低 | 接口设计评审 |
|
||||
| 修改 API 接口 | 中 | 中 | 保留旧接口,添加版本号 |
|
||||
| 删除 API 接口 | 高 | 高 | 确认无调用,发布公告 |
|
||||
| 新增前端页面 | 低 | 低 | 路由冲突检查 |
|
||||
| 修改核心组件 | 高 | 高 | 充分测试所有使用场景 |
|
||||
|
||||
### 性能影响评估
|
||||
|
||||
| 维度 | 评估项 |
|
||||
|------|--------|
|
||||
| 数据库 | 查询复杂度、索引使用、数据量、并发影响 |
|
||||
| API | 响应时间预期、QPS 预估、缓存策略、限流需求 |
|
||||
| 前端 | 首屏加载影响、渲染性能、内存占用 |
|
||||
|
||||
---
|
||||
|
||||
## 与 ai-proj 集成
|
||||
|
||||
### 文档创建
|
||||
|
||||
```typescript
|
||||
// 创建开发设计文档并关联任务
|
||||
mcp__ai-proj__create-and-attach({
|
||||
taskId: <设计任务ID>,
|
||||
title: "开发设计文档 - [需求标题]",
|
||||
content: "<使用上方模板生成的内容>"
|
||||
})
|
||||
```
|
||||
|
||||
### 子任务拆分
|
||||
|
||||
```typescript
|
||||
mcp__ai-proj__create_subtask({
|
||||
parentId: <开发任务ID>,
|
||||
title: "[Handler] 修改 manual_handler.go 添加发布接口"
|
||||
})
|
||||
```
|
||||
|
||||
### 进度更新
|
||||
|
||||
```typescript
|
||||
mcp__ai-proj__update_task_document({
|
||||
taskId: <设计任务ID>,
|
||||
content: "<更新后的设计文档>"
|
||||
})
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 插件触发
|
||||
|
||||
| 插件 | 触发条件 | 说明 |
|
||||
|------|---------|------|
|
||||
| `dev-arch` | 新模块/新表/复杂架构 | 深度架构设计 |
|
||||
| `db-migration` | 涉及数据库变更 | 数据库迁移方案 |
|
||||
|
||||
当检测到以上条件时,建议用户启用对应插件。
|
||||
|
||||
---
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **先验证再设计** — 5 分钟验证省 3 小时返工
|
||||
2. **API 契约先行** — 前后端对齐的桥梁,先定义再实现
|
||||
3. **复用优于新建** — 充分探索代码库,识别可复用代码
|
||||
4. **风险前置** — 在设计阶段识别风险,而非编码时才发现
|
||||
5. **粒度适中** — 任务拆分 2-4h,不要太粗也不要太细
|
||||
6. **文档可操作** — 开发者可直接按设计文档实施
|
||||
|
||||
---
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Q1: 如何确定是否需要新增数据库表?
|
||||
检查:新数据是否与现有实体有独立生命周期?是否需要独立查询?是否 1:N 或 N:N 关系?任一满足则新增表。
|
||||
|
||||
### Q2: 什么时候需要创建子任务?
|
||||
修改 3 个以上文件 / 预估工时 > 4h / 涉及多个层级 → 创建子任务。
|
||||
|
||||
### Q3: API 契约需要多详细?
|
||||
B 级:字段 + 类型 + 必填/可选 + 校验规则 + 错误码。不需要 JSON 示例。
|
||||
|
||||
### Q4: 设计文档和 PRD 的边界?
|
||||
PRD 说「做什么」(用户故事、业务规则、验收标准),设计文档说「怎么做」(API、数据模型、文件清单)。
|
||||
|
||||
---
|
||||
|
||||
## 变更记录
|
||||
|
||||
| 版本 | 日期 | 变更内容 |
|
||||
|------|------|----------|
|
||||
| V1.0 | 2026-01-26 | 初始版本(req-dev) |
|
||||
| V2.0 | 2026-04-06 | 重构为 req-design:移除架构指南和编码规范,聚焦 API 契约 + 任务拆分 |
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"name": "req-dev-plugin",
|
||||
"description": "Plugin for req-dev",
|
||||
"description": "[已废弃] 请使用 req-design-plugin。需求开发设计功能已迁移。",
|
||||
"version": "1.0.0",
|
||||
"deprecated": true,
|
||||
"author": {
|
||||
"name": "qiudl"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "req-prd-plugin",
|
||||
"description": "Plugin for req-prd",
|
||||
"version": "1.0.0",
|
||||
"description": "产品需求设计技能。PRD 文档编写、需求分析、用户故事、对比式分析。纯产品视角,不含技术实现。",
|
||||
"version": "2.0.0",
|
||||
"author": {
|
||||
"name": "qiudl"
|
||||
}
|
||||
|
||||
@@ -9,248 +9,23 @@ description: 产品设计与需求管理。用于 PRD 文档编写、需求分
|
||||
|
||||
本技能用于辅助产品设计和需求管理工作,包括:
|
||||
- PRD 文档编写与管理
|
||||
- **参考对象对比式 PRD 编写**(核心能力)
|
||||
- 需求分析与优先级排序
|
||||
- 用户故事创建
|
||||
- 功能设计与规划
|
||||
- 与 ai-proj 任务系统集成
|
||||
|
||||
---
|
||||
|
||||
## 参考对象对比式 PRD 编写
|
||||
|
||||
当进行**系统平移、功能迁移、竞品借鉴**时,应采用对比分析法编写 PRD,确保新系统功能完整且有所改进。
|
||||
|
||||
### 适用场景
|
||||
|
||||
| 场景 | 说明 | 示例 |
|
||||
|------|------|------|
|
||||
| 系统平移 | 旧系统迁移到新技术栈 | 酷采2.0 → 酷采3.0 |
|
||||
| 功能借鉴 | 参考竞品功能设计 | 参考飞书设计协作功能 |
|
||||
| 版本升级 | 基于当前版本优化 | V1.0 → V2.0 重构 |
|
||||
|
||||
### 对比分析工作流
|
||||
|
||||
```
|
||||
1. 确定参考对象
|
||||
├── 识别参考系统(可以是多个)
|
||||
├── 获取访问权限(测试环境、源代码)
|
||||
└── 明确对比目标
|
||||
|
||||
2. 参考对象分析
|
||||
├── 功能调研(前端页面操作)
|
||||
├── 数据模型分析(数据库表结构)
|
||||
├── 业务逻辑分析(后端代码)
|
||||
└── API 接口分析
|
||||
|
||||
3. 对比分析
|
||||
├── 功能对比表(保留/优化/新增/废弃)
|
||||
├── 数据模型对比(字段映射、新增字段)
|
||||
├── 技术架构对比
|
||||
└── 用户体验对比
|
||||
|
||||
4. PRD 编写
|
||||
├── 背景说明(明确参考来源)
|
||||
├── 功能需求(标注来源与变更)
|
||||
├── 数据设计(标注字段来源)
|
||||
└── 实现建议
|
||||
```
|
||||
|
||||
### 对比式 PRD 模板
|
||||
|
||||
```markdown
|
||||
# [功能模块名称] PRD
|
||||
|
||||
## 1. 文档概述
|
||||
|
||||
### 1.1 文档信息
|
||||
| 项目 | 内容 |
|
||||
|------|------|
|
||||
| 文档名称 | [模块名称] 需求文档 |
|
||||
| 版本 | V1.0 |
|
||||
| 创建日期 | [日期] |
|
||||
| **需求来源** | **[参考系统名称] 平移/借鉴** |
|
||||
| **参考系统** | **[参考系统访问地址]** |
|
||||
|
||||
### 1.2 背景说明
|
||||
本需求文档基于 **[参考系统]** 的 [模块名称] 功能分析,将其平移至 [目标系统]。
|
||||
|
||||
**参考系统信息**:
|
||||
- 系统地址:[URL]
|
||||
- 技术栈:[技术栈描述]
|
||||
- 源码位置:[源码路径](如有)
|
||||
**插件扩展**:
|
||||
- `req-compare` — 对比式 PRD 编写(系统平移/竞品借鉴时激活)
|
||||
- `req-prototype` — UI 原型生成
|
||||
|
||||
---
|
||||
|
||||
## 2. 参考系统分析
|
||||
## 对比式 PRD 编写
|
||||
|
||||
### 2.1 功能截图
|
||||
[插入参考系统功能截图]
|
||||
> 系统平移、竞品借鉴、版本升级时,使用 `req-compare` 插件进行对比分析。
|
||||
> 该插件包含完整的对比工作流、对比式 PRD 模板和竞品分析模板。
|
||||
|
||||
### 2.2 数据模型(参考系统)
|
||||
```sql
|
||||
-- 参考系统表结构
|
||||
CREATE TABLE [表名] (
|
||||
-- 从源代码/数据库提取
|
||||
);
|
||||
```
|
||||
|
||||
### 2.3 API 接口(参考系统)
|
||||
| 接口 | 方法 | 说明 |
|
||||
|------|------|------|
|
||||
| /api/xxx | GET/POST | [描述] |
|
||||
|
||||
### 2.4 业务逻辑(参考系统)
|
||||
- 核心业务规则摘要
|
||||
- 数据校验规则
|
||||
- 状态流转逻辑
|
||||
|
||||
---
|
||||
|
||||
## 3. 功能对比分析
|
||||
|
||||
### 3.1 功能对比表
|
||||
| 序号 | 功能 | 参考系统 | 目标系统 | 变更类型 | 说明 |
|
||||
|------|------|----------|----------|----------|------|
|
||||
| 1 | [功能1] | ✅ | ✅ | 保留 | 直接平移 |
|
||||
| 2 | [功能2] | ✅ | ✅+ | 优化 | [优化内容] |
|
||||
| 3 | [功能3] | ❌ | ✅ | 新增 | [新增原因] |
|
||||
| 4 | [功能4] | ✅ | ❌ | 废弃 | [废弃原因] |
|
||||
|
||||
### 3.2 数据模型对比
|
||||
| 参考系统字段 | 目标系统字段 | 类型 | 变更 | 说明 |
|
||||
|--------------|--------------|------|------|------|
|
||||
| id (varchar) | id (bigint) | PK | 优化 | 改用自增ID |
|
||||
| company_id | tenant_id | FK | 重命名 | 统一租户字段 |
|
||||
| -- | created_by | bigint | 新增 | 审计字段 |
|
||||
|
||||
### 3.3 技术架构对比
|
||||
| 层次 | 参考系统 | 目标系统 |
|
||||
|------|----------|----------|
|
||||
| 后端框架 | [如: Spring Boot] | [如: Go Gin] |
|
||||
| 前端框架 | [如: Vue 2] | [如: React 18] |
|
||||
| 数据库 | [如: MySQL] | [如: PostgreSQL] |
|
||||
|
||||
---
|
||||
|
||||
## 4. 目标系统设计
|
||||
|
||||
### 4.1 功能清单
|
||||
| 序号 | 功能 | 优先级 | 来源 | 说明 |
|
||||
|------|------|--------|------|------|
|
||||
| 1 | [功能] | P0 | 平移 | 从参考系统平移 |
|
||||
|
||||
### 4.2 数据模型(目标系统)
|
||||
```sql
|
||||
-- 目标系统表结构(基于对比分析设计)
|
||||
CREATE TABLE [表名] (
|
||||
id BIGINT PRIMARY KEY,
|
||||
-- 字段设计...
|
||||
);
|
||||
```
|
||||
|
||||
### 4.3 API 设计(目标系统)
|
||||
| 接口 | 方法 | 说明 | 参考接口 |
|
||||
|------|------|------|----------|
|
||||
| /api/v1/xxx | GET | [描述] | 参考 /api/xxx |
|
||||
|
||||
### 4.4 业务规则
|
||||
- [ ] 规则1(沿用参考系统)
|
||||
- [ ] 规则2(优化调整)
|
||||
|
||||
---
|
||||
|
||||
## 5. 实现建议
|
||||
|
||||
### 5.1 开发顺序
|
||||
1. 数据模型迁移
|
||||
2. 后端 API 实现
|
||||
3. 前端页面开发
|
||||
4. 数据迁移脚本
|
||||
|
||||
### 5.2 注意事项
|
||||
- 参考系统中 [xxx] 逻辑需要特别注意
|
||||
- 新系统中需改进 [xxx] 问题
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 参考对象分析工具
|
||||
|
||||
#### 1. 前端分析
|
||||
```bash
|
||||
# 启动浏览器调试模式(macOS)
|
||||
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
|
||||
--remote-debugging-port=9222 \
|
||||
--user-data-dir=/tmp/chrome-debug
|
||||
|
||||
# 访问参考系统,截图、分析交互
|
||||
```
|
||||
|
||||
#### 2. 后端代码分析
|
||||
```bash
|
||||
# 搜索相关模型
|
||||
grep -r "class.*Model" --include="*.java" /path/to/legacy/
|
||||
|
||||
# 搜索相关控制器
|
||||
grep -r "@Controller\|@RestController" --include="*.java" /path/to/legacy/
|
||||
```
|
||||
|
||||
#### 3. 数据库分析
|
||||
```sql
|
||||
-- 查看表结构
|
||||
SHOW CREATE TABLE table_name;
|
||||
|
||||
-- 查看字段注释
|
||||
SELECT COLUMN_NAME, COLUMN_COMMENT
|
||||
FROM information_schema.COLUMNS
|
||||
WHERE TABLE_NAME = 'table_name';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 示例:酷采3.0标签管理模块
|
||||
|
||||
以下是基于酷采2.0平移的标签管理模块对比分析示例:
|
||||
|
||||
#### 参考系统(酷采2.0)
|
||||
|
||||
**数据模型**:
|
||||
```sql
|
||||
-- 酷采2.0 prd_product_label 表
|
||||
CREATE TABLE `prd_product_label` (
|
||||
`id` varchar(64) NOT NULL,
|
||||
`label_name` varchar(256) DEFAULT NULL,
|
||||
`company_id` varchar(64) DEFAULT NULL,
|
||||
`input_user_id` varchar(64) DEFAULT NULL,
|
||||
`input_user_name` varchar(64) DEFAULT NULL,
|
||||
`input_time` datetime DEFAULT NULL,
|
||||
`update_user_id` varchar(64) DEFAULT NULL,
|
||||
`update_user_name` varchar(64) DEFAULT NULL,
|
||||
`update_time` datetime DEFAULT NULL,
|
||||
`version` bigint(20) DEFAULT 0,
|
||||
`is_delete` tinyint(1) DEFAULT 0,
|
||||
`status` tinyint(1) DEFAULT 1,
|
||||
`remark` varchar(512) DEFAULT NULL,
|
||||
`sort_no` int(11) DEFAULT 0,
|
||||
PRIMARY KEY (`id`)
|
||||
);
|
||||
```
|
||||
|
||||
**代码位置**:
|
||||
- 后端: `cool_lining/module-provider/.../dao/model/prd/PrdProductLabel.java`
|
||||
- 前端: `ln_admin/src/views/module/prd/product_label/`
|
||||
|
||||
#### 目标系统(酷采3.0)设计
|
||||
|
||||
**数据模型对比**:
|
||||
| 酷采2.0 | 酷采3.0 | 变更 |
|
||||
|---------|---------|------|
|
||||
| id (varchar) | id (bigint) | 改用自增ID |
|
||||
| company_id | tenant_id | 统一租户标识 |
|
||||
| input_user_id | created_by | 简化字段命名 |
|
||||
| input_time | created_at | 统一时间字段 |
|
||||
| is_delete | deleted_at | 改用软删除时间戳 |
|
||||
**触发方式**:当需求涉及参考系统时,req-prd 自动推荐激活 req-compare 插件。
|
||||
|
||||
---
|
||||
|
||||
@@ -523,36 +298,9 @@ mcp__ai-proj__export_task_document_to_file
|
||||
|
||||
---
|
||||
|
||||
## 竞品分析模板
|
||||
## 竞品分析
|
||||
|
||||
### 分析框架
|
||||
|
||||
```markdown
|
||||
# [竞品名称] 分析
|
||||
|
||||
## 1. 产品概述
|
||||
- 定位:
|
||||
- 核心功能:
|
||||
- 目标用户:
|
||||
|
||||
## 2. 功能对比
|
||||
| 功能 | 我们 | 竞品A | 竞品B |
|
||||
|------|------|-------|-------|
|
||||
| 功能1 | ✅/❌/部分 | ... | ... |
|
||||
|
||||
## 3. 优劣势分析
|
||||
### 优势
|
||||
1. ...
|
||||
|
||||
### 劣势
|
||||
1. ...
|
||||
|
||||
## 4. 可借鉴点
|
||||
- ...
|
||||
|
||||
## 5. 差异化策略
|
||||
- ...
|
||||
```
|
||||
> 竞品分析模板已移至 `req-compare` 插件。涉及竞品对比时自动激活。
|
||||
|
||||
---
|
||||
|
||||
@@ -610,13 +358,14 @@ mcp__ai-proj__export_task_document_to_file
|
||||
- [ ] 操作可撤销
|
||||
- [ ] 符合用户习惯
|
||||
|
||||
### 技术方案检查
|
||||
### 非功能需求检查
|
||||
|
||||
- [ ] 技术可行性验证
|
||||
- [ ] 性能影响评估
|
||||
- [ ] 扩展性考虑
|
||||
- [ ] 安全性审查
|
||||
- [ ] 兼容性测试
|
||||
- [ ] 性能要求已量化(响应时间、并发量)
|
||||
- [ ] 安全需求已明确(权限、数据保护)
|
||||
- [ ] 兼容性要求已定义(浏览器、设备)
|
||||
- [ ] 可用性目标已设定
|
||||
|
||||
> **技术方案可行性检查**在 design 阶段由 `req-design` 技能完成。
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "req-research-plugin",
|
||||
"description": "需求调研插件。代码审计、数据库分析、现有功能调研。挂载在 analysis 阶段,需要深度调研时激活。",
|
||||
"version": "1.0.0",
|
||||
"author": { "name": "qiudl" }
|
||||
}
|
||||
124
skills-req/req-research-plugin/skills/SKILL.md
Normal file
124
skills-req/req-research-plugin/skills/SKILL.md
Normal file
@@ -0,0 +1,124 @@
|
||||
---
|
||||
name: req-research
|
||||
description: 需求调研插件。代码审计、数据库分析、现有功能调研、技术可行性评估。挂载在 analysis 阶段,需要深度调研时由 req-prd 推荐激活。
|
||||
---
|
||||
|
||||
# 需求调研插件 (req-research)
|
||||
|
||||
## 概述
|
||||
|
||||
当 PRD 编写需要**深入了解现有系统**时使用。提供结构化的调研方法。
|
||||
|
||||
**触发条件**:
|
||||
- 需求涉及修改现有功能(需了解当前实现)
|
||||
- 需求涉及数据库表结构变更
|
||||
- 需要技术可行性评估
|
||||
|
||||
## 调研方法
|
||||
|
||||
### 1. 前端功能调研
|
||||
|
||||
```bash
|
||||
# 启动本地开发环境
|
||||
cd frontend && npm start
|
||||
|
||||
# 访问相关页面,记录:
|
||||
# - 页面布局和交互流程
|
||||
# - 表单字段和校验规则
|
||||
# - 列表列和筛选条件
|
||||
# - 异常情况处理(空状态、错误提示)
|
||||
```
|
||||
|
||||
**调研模板**:
|
||||
```markdown
|
||||
### 页面: [页面名称] ([URL])
|
||||
- **功能**: [功能描述]
|
||||
- **字段**: [列出所有字段]
|
||||
- **操作**: [CRUD/筛选/排序/导出]
|
||||
- **校验**: [表单校验规则]
|
||||
- **截图**: [如有]
|
||||
```
|
||||
|
||||
### 2. 后端代码审计
|
||||
|
||||
```bash
|
||||
# 搜索相关模型
|
||||
Grep(pattern="type.*struct", path="backend/models", glob="*xxx*.go")
|
||||
|
||||
# 搜索相关 Handler
|
||||
Grep(pattern="func.*Handler.*xxx", path="backend/handlers")
|
||||
|
||||
# 搜索相关路由
|
||||
Grep(pattern="xxx", path="backend/routes")
|
||||
|
||||
# 搜索相关 Service
|
||||
Grep(pattern="func.*Service.*xxx", path="backend/services")
|
||||
```
|
||||
|
||||
**审计模板**:
|
||||
```markdown
|
||||
### 模块: [模块名]
|
||||
- **Model**: `backend/models/xxx.go` — [字段数]个字段
|
||||
- **Repository**: `backend/database/xxx_repository.go` — [方法数]个方法
|
||||
- **Service**: `backend/services/xxx_service.go` — [方法数]个方法
|
||||
- **Handler**: `backend/handlers/xxx_handler.go` — [接口数]个接口
|
||||
- **Route**: `backend/routes/xxx_routes.go`
|
||||
- **关键业务逻辑**: [描述]
|
||||
```
|
||||
|
||||
### 3. 数据库分析
|
||||
|
||||
```bash
|
||||
# 查看表结构(本地)
|
||||
psql -U ai_user -d ai_project -c "\d table_name"
|
||||
|
||||
# 查看数据量
|
||||
psql -U ai_user -d ai_project -c "SELECT COUNT(*) FROM table_name"
|
||||
|
||||
# 查看索引
|
||||
psql -U ai_user -d ai_project -c "\di table_name*"
|
||||
```
|
||||
|
||||
**分析模板**:
|
||||
```markdown
|
||||
### 表: [表名]
|
||||
- **字段数**: N
|
||||
- **数据量**: ~N 行
|
||||
- **索引**: [列出索引]
|
||||
- **关联**: [外键关系]
|
||||
- **特殊字段**: [JSON/Array/Enum 等]
|
||||
```
|
||||
|
||||
### 4. API 分析
|
||||
|
||||
```bash
|
||||
# 查看 Swagger 文档
|
||||
open http://localhost:8080/swagger/index.html
|
||||
|
||||
# 搜索 API 路由
|
||||
Grep(pattern="GET|POST|PUT|DELETE.*xxx", path="backend/routes")
|
||||
```
|
||||
|
||||
## 调研报告模板
|
||||
|
||||
```markdown
|
||||
## 调研报告 — {需求标题}
|
||||
|
||||
### 1. 现有功能
|
||||
[页面/功能调研结果]
|
||||
|
||||
### 2. 代码结构
|
||||
[代码审计结果,按分层列出]
|
||||
|
||||
### 3. 数据库现状
|
||||
[表结构、数据量、索引]
|
||||
|
||||
### 4. 技术可行性
|
||||
| 方案 | 优点 | 缺点 | 工时预估 |
|
||||
|------|------|------|---------|
|
||||
| 方案A | ... | ... | Xh |
|
||||
| 方案B | ... | ... | Xh |
|
||||
|
||||
### 5. 建议
|
||||
[推荐方案及原因]
|
||||
```
|
||||
Reference in New Issue
Block a user