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:
2026-04-06 17:43:30 +09:30
parent 31c2d5a474
commit 3706d7f32d
35 changed files with 2178 additions and 623 deletions

View File

@@ -0,0 +1,8 @@
{
"name": "req-compare-plugin",
"description": "对比式需求分析插件。系统平移、竞品借鉴、版本升级时的参考对象对比分析。挂载在 analysis 阶段。",
"version": "1.0.0",
"author": {
"name": "qiudl"
}
}

View 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. **不抄技术实现** — 对比的是业务功能,不是代码结构

View File

@@ -0,0 +1,8 @@
{
"name": "req-design-plugin",
"description": "需求开发设计技能。PRD 到开发设计的转换API 契约、数据模型变更、任务拆分、风险评估。",
"version": "2.0.0",
"author": {
"name": "qiudl"
}
}

View 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-4hSMART 原则
---
## 工作流程
```
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 契约 + 任务拆分 |

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -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` 技能完成。
---

View File

@@ -0,0 +1,6 @@
{
"name": "req-research-plugin",
"description": "需求调研插件。代码审计、数据库分析、现有功能调研。挂载在 analysis 阶段,需要深度调研时激活。",
"version": "1.0.0",
"author": { "name": "qiudl" }
}

View 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. 建议
[推荐方案及原因]
```