mcp-probe-kit 1.8.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +44 -2
- package/docs/BEST_PRACTICES.md +9 -0
- package/docs/HOW_TO_TRIGGER.html +68 -69
- package/docs/HOW_TO_TRIGGER.md +41 -2
- package/package.json +1 -1
- package/docs/specs/add-feature/design.md +0 -608
- package/docs/specs/add-feature/requirements.md +0 -175
- package/docs/specs/add-feature/tasks.md +0 -111
- package/docs/specs/design2code/README.md +0 -0
- package/docs/specs/design2code/requirements.md +0 -0
- package/docs/specs/estimate/design.md +0 -209
- package/docs/specs/estimate/requirements.md +0 -140
- package/docs/specs/estimate/tasks.md +0 -66
- package/docs/specs/fix-bug/design.md +0 -259
- package/docs/specs/fix-bug/requirements.md +0 -132
- package/docs/specs/fix-bug/tasks.md +0 -66
- package/docs/specs/gen-mock/design.md +0 -241
- package/docs/specs/gen-mock/requirements.md +0 -137
- package/docs/specs/gen-mock/tasks.md +0 -66
- package/docs/specs/init-project-context/design.md +0 -515
- package/docs/specs/init-project-context/requirements.md +0 -144
- package/docs/specs/init-project-context/tasks.md +0 -93
- package/docs/specs/security-scan/design.md +0 -152
- package/docs/specs/security-scan/requirements.md +0 -150
- package/docs/specs/security-scan/tasks.md +0 -67
- package/docs/specs/start-bugfix/design.md +0 -42
- package/docs/specs/start-bugfix/requirements.md +0 -70
- package/docs/specs/start-bugfix/tasks.md +0 -21
- package/docs/specs/start-feature/design.md +0 -41
- package/docs/specs/start-feature/requirements.md +0 -90
- package/docs/specs/start-feature/tasks.md +0 -21
- package/docs/specs/start-review/requirements.md +0 -0
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
# 设计文档:fix_bug
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
`fix_bug` 采用"提示词生成器"模式,返回完整的 Bug 修复流程指南,指导 AI 从问题定位到验证测试的全过程。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 技术方案
|
|
10
|
-
|
|
11
|
-
### 设计理念
|
|
12
|
-
|
|
13
|
-
与 `debug` 工具的区别:
|
|
14
|
-
- `debug`: 分析错误,给出调试策略
|
|
15
|
-
- `fix_bug`: 完整的修复流程,包含定位→分析→修复→验证
|
|
16
|
-
|
|
17
|
-
### 修复流程模型
|
|
18
|
-
|
|
19
|
-
```
|
|
20
|
-
Bug 报告
|
|
21
|
-
↓
|
|
22
|
-
问题定位(Where)
|
|
23
|
-
↓
|
|
24
|
-
原因分析(Why)
|
|
25
|
-
↓
|
|
26
|
-
方案设计(How)
|
|
27
|
-
↓
|
|
28
|
-
代码修复(Fix)
|
|
29
|
-
↓
|
|
30
|
-
验证测试(Verify)
|
|
31
|
-
↓
|
|
32
|
-
修复完成
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 架构设计
|
|
38
|
-
|
|
39
|
-
### 工具结构
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
src/tools/fix_bug.ts
|
|
43
|
-
├── fixBug(args) # 主函数
|
|
44
|
-
│ ├── 验证参数
|
|
45
|
-
│ ├── 构建修复指南
|
|
46
|
-
│ └── 返回结果
|
|
47
|
-
└── 常量定义
|
|
48
|
-
└── PROMPT_TEMPLATE # 提示词模板
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
## 提示词模板设计
|
|
54
|
-
|
|
55
|
-
```markdown
|
|
56
|
-
# Bug 修复指南
|
|
57
|
-
|
|
58
|
-
## 🐛 Bug 信息
|
|
59
|
-
|
|
60
|
-
**错误信息**:
|
|
61
|
-
\`\`\`
|
|
62
|
-
{error_message}
|
|
63
|
-
\`\`\`
|
|
64
|
-
|
|
65
|
-
**堆栈跟踪**:
|
|
66
|
-
\`\`\`
|
|
67
|
-
{stack_trace}
|
|
68
|
-
\`\`\`
|
|
69
|
-
|
|
70
|
-
**复现步骤**: {steps_to_reproduce}
|
|
71
|
-
|
|
72
|
-
**期望行为**: {expected_behavior}
|
|
73
|
-
|
|
74
|
-
**实际行为**: {actual_behavior}
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## 📍 阶段 1: 问题定位
|
|
79
|
-
|
|
80
|
-
### 步骤 1.1: 分析错误信息
|
|
81
|
-
|
|
82
|
-
1. 识别错误类型(语法错误/运行时错误/逻辑错误)
|
|
83
|
-
2. 提取关键信息:
|
|
84
|
-
- 错误名称
|
|
85
|
-
- 错误消息
|
|
86
|
-
- 发生位置
|
|
87
|
-
|
|
88
|
-
### 步骤 1.2: 分析堆栈跟踪
|
|
89
|
-
|
|
90
|
-
1. 找到错误发生的第一个项目文件
|
|
91
|
-
2. 追踪调用链
|
|
92
|
-
3. 记录相关文件列表
|
|
93
|
-
|
|
94
|
-
### 步骤 1.3: 读取相关代码
|
|
95
|
-
|
|
96
|
-
**操作**: 读取以下文件并分析:
|
|
97
|
-
- [从堆栈中识别的文件]
|
|
98
|
-
- [相关的配置文件]
|
|
99
|
-
- [相关的测试文件]
|
|
100
|
-
|
|
101
|
-
### 定位结论
|
|
102
|
-
|
|
103
|
-
| 项目 | 内容 |
|
|
104
|
-
|------|------|
|
|
105
|
-
| 问题文件 | [文件路径] |
|
|
106
|
-
| 问题位置 | 第 X 行 |
|
|
107
|
-
| 问题代码 | [代码片段] |
|
|
108
|
-
|
|
109
|
-
---
|
|
110
|
-
|
|
111
|
-
## 🔍 阶段 2: 原因分析
|
|
112
|
-
|
|
113
|
-
### 步骤 2.1: 5 Whys 分析
|
|
114
|
-
|
|
115
|
-
1. **Why 1**: 为什么会出现这个错误?
|
|
116
|
-
- [答案]
|
|
117
|
-
2. **Why 2**: 为什么会 [Why 1 的答案]?
|
|
118
|
-
- [答案]
|
|
119
|
-
3. **Why 3**: 为什么会 [Why 2 的答案]?
|
|
120
|
-
- [答案]
|
|
121
|
-
4. **Why 4**: 为什么会 [Why 3 的答案]?
|
|
122
|
-
- [答案]
|
|
123
|
-
5. **Why 5**: 为什么会 [Why 4 的答案]?
|
|
124
|
-
- [答案]
|
|
125
|
-
|
|
126
|
-
### 步骤 2.2: 代码逻辑分析
|
|
127
|
-
|
|
128
|
-
1. 分析问题代码的逻辑流程
|
|
129
|
-
2. 识别边界条件和异常情况
|
|
130
|
-
3. 检查数据流和状态变化
|
|
131
|
-
|
|
132
|
-
### 分析结论
|
|
133
|
-
|
|
134
|
-
| 项目 | 内容 |
|
|
135
|
-
|------|------|
|
|
136
|
-
| 直接原因 | [直接导致错误的原因] |
|
|
137
|
-
| 根本原因 | [深层次的原因] |
|
|
138
|
-
| 触发条件 | [什么情况下会触发] |
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 🔧 阶段 3: 修复方案
|
|
143
|
-
|
|
144
|
-
### 步骤 3.1: 设计修复方案
|
|
145
|
-
|
|
146
|
-
**方案 A**: [方案描述]
|
|
147
|
-
- 优点: [优点]
|
|
148
|
-
- 缺点: [缺点]
|
|
149
|
-
- 风险: [风险]
|
|
150
|
-
|
|
151
|
-
**方案 B**: [方案描述]
|
|
152
|
-
- 优点: [优点]
|
|
153
|
-
- 缺点: [缺点]
|
|
154
|
-
- 风险: [风险]
|
|
155
|
-
|
|
156
|
-
**选择方案**: [选择的方案及理由]
|
|
157
|
-
|
|
158
|
-
### 步骤 3.2: 影响范围评估
|
|
159
|
-
|
|
160
|
-
| 影响项 | 说明 |
|
|
161
|
-
|--------|------|
|
|
162
|
-
| 修改文件 | [文件列表] |
|
|
163
|
-
| 影响功能 | [功能列表] |
|
|
164
|
-
| 需要测试 | [测试范围] |
|
|
165
|
-
|
|
166
|
-
### 步骤 3.3: 实施修复
|
|
167
|
-
|
|
168
|
-
**修改文件**: [文件路径]
|
|
169
|
-
|
|
170
|
-
**修改前**:
|
|
171
|
-
\`\`\`
|
|
172
|
-
[原代码]
|
|
173
|
-
\`\`\`
|
|
174
|
-
|
|
175
|
-
**修改后**:
|
|
176
|
-
\`\`\`
|
|
177
|
-
[新代码]
|
|
178
|
-
\`\`\`
|
|
179
|
-
|
|
180
|
-
**修改说明**: [解释修改的原因和逻辑]
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## ✅ 阶段 4: 验证测试
|
|
185
|
-
|
|
186
|
-
### 步骤 4.1: 单元测试
|
|
187
|
-
|
|
188
|
-
为修复编写单元测试:
|
|
189
|
-
|
|
190
|
-
\`\`\`typescript
|
|
191
|
-
describe('[功能描述]', () => {
|
|
192
|
-
it('should [测试场景]', () => {
|
|
193
|
-
// 测试代码
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
it('should handle [边界情况]', () => {
|
|
197
|
-
// 边界测试
|
|
198
|
-
});
|
|
199
|
-
});
|
|
200
|
-
\`\`\`
|
|
201
|
-
|
|
202
|
-
### 步骤 4.2: 手动验证
|
|
203
|
-
|
|
204
|
-
1. [ ] 按原复现步骤验证问题已修复
|
|
205
|
-
2. [ ] 验证正常流程不受影响
|
|
206
|
-
3. [ ] 验证边界情况处理正确
|
|
207
|
-
|
|
208
|
-
### 步骤 4.3: 回归测试
|
|
209
|
-
|
|
210
|
-
1. [ ] 运行相关模块的测试
|
|
211
|
-
2. [ ] 运行全量测试(如有 CI)
|
|
212
|
-
3. [ ] 检查是否引入新问题
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
## 📋 修复检查清单
|
|
217
|
-
|
|
218
|
-
- [ ] 问题已定位到具体代码
|
|
219
|
-
- [ ] 根本原因已分析清楚
|
|
220
|
-
- [ ] 修复方案已评估风险
|
|
221
|
-
- [ ] 代码修改已完成
|
|
222
|
-
- [ ] 单元测试已添加
|
|
223
|
-
- [ ] 手动验证已通过
|
|
224
|
-
- [ ] 回归测试已通过
|
|
225
|
-
- [ ] 代码已提交(附带清晰的 commit message)
|
|
226
|
-
|
|
227
|
-
---
|
|
228
|
-
|
|
229
|
-
## 📝 修复总结
|
|
230
|
-
|
|
231
|
-
| 项目 | 内容 |
|
|
232
|
-
|------|------|
|
|
233
|
-
| Bug 描述 | [简述] |
|
|
234
|
-
| 根本原因 | [原因] |
|
|
235
|
-
| 修复方案 | [方案] |
|
|
236
|
-
| 修改文件 | [文件列表] |
|
|
237
|
-
| 测试覆盖 | [测试情况] |
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
---
|
|
241
|
-
|
|
242
|
-
## 接口设计
|
|
243
|
-
|
|
244
|
-
```typescript
|
|
245
|
-
interface FixBugArgs {
|
|
246
|
-
error_message: string; // 必填
|
|
247
|
-
stack_trace?: string; // 可选
|
|
248
|
-
steps_to_reproduce?: string; // 可选
|
|
249
|
-
expected_behavior?: string; // 可选
|
|
250
|
-
actual_behavior?: string; // 可选
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
async function fixBug(args: FixBugArgs): Promise<MCPResponse>
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
---
|
|
257
|
-
|
|
258
|
-
*设计版本: 1.0.0*
|
|
259
|
-
*创建时间: 2025-01-14*
|
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
# 需求文档:fix_bug
|
|
2
|
-
|
|
3
|
-
## 功能概述
|
|
4
|
-
|
|
5
|
-
`fix_bug` 是一个 MCP 工具,用于指导 AI 完成完整的 Bug 修复流程。从问题定位、原因分析、修复方案到验证测试,提供结构化的修复指南。
|
|
6
|
-
|
|
7
|
-
## 术语定义
|
|
8
|
-
|
|
9
|
-
- **Bug_Report**: Bug 报告,包含错误描述、复现步骤、堆栈信息等
|
|
10
|
-
- **Root_Cause**: 根本原因,导致 Bug 的代码或逻辑问题
|
|
11
|
-
- **Fix_Plan**: 修复方案,包含修改的文件、代码变更、影响范围
|
|
12
|
-
- **Regression_Test**: 回归测试,验证修复不会引入新问题
|
|
13
|
-
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
## 需求列表
|
|
17
|
-
|
|
18
|
-
### 需求 1: 接收 Bug 信息
|
|
19
|
-
|
|
20
|
-
**用户故事:** 作为开发者,我想要提供 Bug 的详细信息,以便工具能够分析问题。
|
|
21
|
-
|
|
22
|
-
#### 验收标准
|
|
23
|
-
|
|
24
|
-
1. THE 工具 SHALL 接受以下输入参数:
|
|
25
|
-
- error_message: 错误信息(必填)
|
|
26
|
-
- stack_trace: 堆栈跟踪(可选)
|
|
27
|
-
- steps_to_reproduce: 复现步骤(可选)
|
|
28
|
-
- expected_behavior: 期望行为(可选)
|
|
29
|
-
- actual_behavior: 实际行为(可选)
|
|
30
|
-
2. WHEN 用户只提供 error_message THEN 工具 SHALL 正常工作
|
|
31
|
-
3. WHEN 用户提供更多信息 THEN 工具 SHALL 生成更精准的修复指南
|
|
32
|
-
|
|
33
|
-
---
|
|
34
|
-
|
|
35
|
-
### 需求 2: 生成问题定位指南
|
|
36
|
-
|
|
37
|
-
**用户故事:** 作为开发者,我想要工具指导我定位问题,以便快速找到 Bug 所在。
|
|
38
|
-
|
|
39
|
-
#### 验收标准
|
|
40
|
-
|
|
41
|
-
1. THE 指南 SHALL 包含以下定位步骤:
|
|
42
|
-
- 分析错误信息和堆栈
|
|
43
|
-
- 识别相关文件和代码位置
|
|
44
|
-
- 确定问题触发条件
|
|
45
|
-
2. THE 指南 SHALL 提供搜索关键词建议
|
|
46
|
-
3. THE 指南 SHALL 指导 AI 读取相关代码文件
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
### 需求 3: 生成原因分析指南
|
|
51
|
-
|
|
52
|
-
**用户故事:** 作为开发者,我想要工具帮助分析根本原因,以便从根源解决问题。
|
|
53
|
-
|
|
54
|
-
#### 验收标准
|
|
55
|
-
|
|
56
|
-
1. THE 指南 SHALL 包含根因分析方法:
|
|
57
|
-
- 5 Whys 分析法
|
|
58
|
-
- 代码逻辑追踪
|
|
59
|
-
- 数据流分析
|
|
60
|
-
2. THE 指南 SHALL 要求记录分析结论
|
|
61
|
-
3. THE 指南 SHALL 区分直接原因和根本原因
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
### 需求 4: 生成修复方案指南
|
|
66
|
-
|
|
67
|
-
**用户故事:** 作为开发者,我想要工具生成修复方案,以便有计划地修复 Bug。
|
|
68
|
-
|
|
69
|
-
#### 验收标准
|
|
70
|
-
|
|
71
|
-
1. THE 指南 SHALL 包含修复方案模板:
|
|
72
|
-
- 修改的文件列表
|
|
73
|
-
- 具体的代码变更
|
|
74
|
-
- 影响范围评估
|
|
75
|
-
2. THE 指南 SHALL 考虑多种修复方案并比较
|
|
76
|
-
3. THE 指南 SHALL 评估修复的风险
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
### 需求 5: 生成验证测试指南
|
|
81
|
-
|
|
82
|
-
**用户故事:** 作为开发者,我想要工具指导我验证修复,以便确保 Bug 已解决且无回归。
|
|
83
|
-
|
|
84
|
-
#### 验收标准
|
|
85
|
-
|
|
86
|
-
1. THE 指南 SHALL 包含验证步骤:
|
|
87
|
-
- 单元测试用例
|
|
88
|
-
- 手动验证步骤
|
|
89
|
-
- 回归测试建议
|
|
90
|
-
2. THE 指南 SHALL 生成针对该 Bug 的测试代码
|
|
91
|
-
3. THE 指南 SHALL 提供验证检查清单
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
## 非功能需求
|
|
96
|
-
|
|
97
|
-
### 性能要求
|
|
98
|
-
- 工具响应时间应小于 100ms
|
|
99
|
-
|
|
100
|
-
### 兼容性要求
|
|
101
|
-
- 支持多种编程语言的错误信息格式
|
|
102
|
-
- 支持主流 AI 模型
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## 输入输出规格
|
|
107
|
-
|
|
108
|
-
### 输入参数
|
|
109
|
-
|
|
110
|
-
| 参数名 | 类型 | 必填 | 描述 |
|
|
111
|
-
|--------|------|------|------|
|
|
112
|
-
| error_message | string | 是 | 错误信息 |
|
|
113
|
-
| stack_trace | string | 否 | 堆栈跟踪 |
|
|
114
|
-
| steps_to_reproduce | string | 否 | 复现步骤 |
|
|
115
|
-
| expected_behavior | string | 否 | 期望行为 |
|
|
116
|
-
| actual_behavior | string | 否 | 实际行为 |
|
|
117
|
-
|
|
118
|
-
### 输出格式
|
|
119
|
-
|
|
120
|
-
```typescript
|
|
121
|
-
{
|
|
122
|
-
content: [{
|
|
123
|
-
type: "text",
|
|
124
|
-
text: "Bug 修复指南(Markdown 格式)"
|
|
125
|
-
}]
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
---
|
|
130
|
-
|
|
131
|
-
*文档版本: 1.0.0*
|
|
132
|
-
*创建时间: 2025-01-14*
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# 任务清单:fix_bug
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
实现 `fix_bug` MCP 工具,用于指导完整的 Bug 修复流程。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 任务列表
|
|
10
|
-
|
|
11
|
-
### 阶段 1: 创建工具文件
|
|
12
|
-
|
|
13
|
-
- [x] 1.1 创建 `src/tools/fix_bug.ts` 文件
|
|
14
|
-
- 创建文件结构
|
|
15
|
-
- 定义接口类型
|
|
16
|
-
- 实现参数验证
|
|
17
|
-
- 实现主函数框架
|
|
18
|
-
- _需求: 1.1-1.3_
|
|
19
|
-
|
|
20
|
-
- [x] 1.2 编写提示词模板
|
|
21
|
-
- 实现 PROMPT_TEMPLATE 常量
|
|
22
|
-
- 包含问题定位指南
|
|
23
|
-
- 包含 5 Whys 分析法
|
|
24
|
-
- 包含修复方案模板
|
|
25
|
-
- 包含验证测试指南
|
|
26
|
-
- 包含修复检查清单
|
|
27
|
-
- _需求: 2.1-5.3_
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
### 阶段 2: 注册工具
|
|
32
|
-
|
|
33
|
-
- [x] 2.1 在 `src/tools/index.ts` 中导出工具
|
|
34
|
-
- 添加 export 语句
|
|
35
|
-
|
|
36
|
-
- [x] 2.2 在 `src/index.ts` 中注册工具
|
|
37
|
-
- 添加工具定义(name, description, inputSchema)
|
|
38
|
-
- 添加工具处理逻辑(switch case)
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
### 阶段 3: 测试验证
|
|
43
|
-
|
|
44
|
-
- [x] 3.1 编译项目
|
|
45
|
-
- 运行 `npm run build`
|
|
46
|
-
- 确保无编译错误
|
|
47
|
-
|
|
48
|
-
- [ ] 3.2 功能测试
|
|
49
|
-
- 测试只提供 error_message
|
|
50
|
-
- 测试提供完整 Bug 信息
|
|
51
|
-
- 验证生成的修复指南完整性
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 文件变更清单
|
|
56
|
-
|
|
57
|
-
| 文件 | 操作 | 说明 |
|
|
58
|
-
|------|------|------|
|
|
59
|
-
| src/tools/fix_bug.ts | 新建 | 工具实现 |
|
|
60
|
-
| src/tools/index.ts | 修改 | 添加导出 |
|
|
61
|
-
| src/index.ts | 修改 | 注册工具 |
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
*任务版本: 1.0.0*
|
|
66
|
-
*创建时间: 2025-01-14*
|
|
@@ -1,241 +0,0 @@
|
|
|
1
|
-
# 设计文档:gen_mock
|
|
2
|
-
|
|
3
|
-
## 概述
|
|
4
|
-
|
|
5
|
-
`gen_mock` 采用"提示词生成器"模式,返回 Mock 数据生成指南,指导 AI 根据数据结构生成符合语义的模拟数据。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 技术方案
|
|
10
|
-
|
|
11
|
-
### 字段语义识别
|
|
12
|
-
|
|
13
|
-
根据字段名自动识别数据类型:
|
|
14
|
-
|
|
15
|
-
```typescript
|
|
16
|
-
const FIELD_PATTERNS = {
|
|
17
|
-
// 个人信息
|
|
18
|
-
name: { pattern: /name|姓名/i, generator: "faker.person.fullName()" },
|
|
19
|
-
email: { pattern: /email|邮箱/i, generator: "faker.internet.email()" },
|
|
20
|
-
phone: { pattern: /phone|mobile|手机|电话/i, generator: "faker.phone.number()" },
|
|
21
|
-
avatar: { pattern: /avatar|头像/i, generator: "faker.image.avatar()" },
|
|
22
|
-
|
|
23
|
-
// 地址
|
|
24
|
-
address: { pattern: /address|地址/i, generator: "faker.location.streetAddress()" },
|
|
25
|
-
city: { pattern: /city|城市/i, generator: "faker.location.city()" },
|
|
26
|
-
country: { pattern: /country|国家/i, generator: "faker.location.country()" },
|
|
27
|
-
|
|
28
|
-
// 时间
|
|
29
|
-
date: { pattern: /date|日期/i, generator: "faker.date.recent()" },
|
|
30
|
-
createdAt: { pattern: /created|创建/i, generator: "faker.date.past()" },
|
|
31
|
-
updatedAt: { pattern: /updated|更新/i, generator: "faker.date.recent()" },
|
|
32
|
-
|
|
33
|
-
// 业务
|
|
34
|
-
id: { pattern: /^id$|_id$/i, generator: "faker.string.uuid()" },
|
|
35
|
-
title: { pattern: /title|标题/i, generator: "faker.lorem.sentence()" },
|
|
36
|
-
description: { pattern: /desc|description|描述/i, generator: "faker.lorem.paragraph()" },
|
|
37
|
-
price: { pattern: /price|价格/i, generator: "faker.commerce.price()" },
|
|
38
|
-
status: { pattern: /status|状态/i, generator: "['active', 'inactive', 'pending']" },
|
|
39
|
-
url: { pattern: /url|链接/i, generator: "faker.internet.url()" },
|
|
40
|
-
};
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
### 类型映射
|
|
44
|
-
|
|
45
|
-
```typescript
|
|
46
|
-
const TYPE_GENERATORS = {
|
|
47
|
-
string: "faker.lorem.word()",
|
|
48
|
-
number: "faker.number.int({ min: 1, max: 100 })",
|
|
49
|
-
boolean: "faker.datatype.boolean()",
|
|
50
|
-
Date: "faker.date.recent()",
|
|
51
|
-
"string[]": "faker.lorem.words(3).split(' ')",
|
|
52
|
-
"number[]": "[1, 2, 3]",
|
|
53
|
-
};
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## 架构设计
|
|
59
|
-
|
|
60
|
-
### 工具结构
|
|
61
|
-
|
|
62
|
-
```
|
|
63
|
-
src/tools/gen_mock.ts
|
|
64
|
-
├── genMock(args) # 主函数
|
|
65
|
-
│ ├── 验证参数
|
|
66
|
-
│ ├── 构建生成指南
|
|
67
|
-
│ └── 返回结果
|
|
68
|
-
└── 常量定义
|
|
69
|
-
├── FIELD_PATTERNS # 字段模式
|
|
70
|
-
├── TYPE_GENERATORS # 类型生成器
|
|
71
|
-
└── PROMPT_TEMPLATE # 提示词模板
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## 提示词模板设计
|
|
77
|
-
|
|
78
|
-
```markdown
|
|
79
|
-
# Mock 数据生成指南
|
|
80
|
-
|
|
81
|
-
## 🎯 生成目标
|
|
82
|
-
|
|
83
|
-
**数据结构**:
|
|
84
|
-
\`\`\`
|
|
85
|
-
{schema}
|
|
86
|
-
\`\`\`
|
|
87
|
-
|
|
88
|
-
**生成数量**: {count} 条
|
|
89
|
-
**输出格式**: {format}
|
|
90
|
-
**语言区域**: {locale}
|
|
91
|
-
|
|
92
|
-
---
|
|
93
|
-
|
|
94
|
-
## 📋 生成步骤
|
|
95
|
-
|
|
96
|
-
### 步骤 1: 解析数据结构
|
|
97
|
-
|
|
98
|
-
分析输入的数据结构,识别:
|
|
99
|
-
1. 字段名称和类型
|
|
100
|
-
2. 必填/可选字段
|
|
101
|
-
3. 嵌套结构
|
|
102
|
-
4. 数组类型
|
|
103
|
-
|
|
104
|
-
### 步骤 2: 字段语义识别
|
|
105
|
-
|
|
106
|
-
根据字段名匹配语义:
|
|
107
|
-
|
|
108
|
-
| 字段名模式 | 生成规则 |
|
|
109
|
-
|------------|----------|
|
|
110
|
-
| name, 姓名 | 人名 |
|
|
111
|
-
| email, 邮箱 | 邮箱格式 |
|
|
112
|
-
| phone, 手机 | 手机号格式 |
|
|
113
|
-
| address, 地址 | 地址 |
|
|
114
|
-
| date, 日期 | 日期时间 |
|
|
115
|
-
| id, _id | UUID |
|
|
116
|
-
| title, 标题 | 短句 |
|
|
117
|
-
| description, 描述 | 段落 |
|
|
118
|
-
| price, 价格 | 金额 |
|
|
119
|
-
| url, 链接 | URL |
|
|
120
|
-
| avatar, 头像 | 图片 URL |
|
|
121
|
-
| status, 状态 | 枚举值 |
|
|
122
|
-
|
|
123
|
-
### 步骤 3: 生成数据
|
|
124
|
-
|
|
125
|
-
根据识别结果生成数据:
|
|
126
|
-
|
|
127
|
-
**中文数据示例**:
|
|
128
|
-
- 姓名: 张三、李四、王五
|
|
129
|
-
- 手机: 138xxxx1234
|
|
130
|
-
- 地址: xx省xx市xx区xx路xx号
|
|
131
|
-
|
|
132
|
-
**英文数据示例**:
|
|
133
|
-
- Name: John Doe
|
|
134
|
-
- Phone: +1-xxx-xxx-xxxx
|
|
135
|
-
- Address: 123 Main St
|
|
136
|
-
|
|
137
|
-
### 步骤 4: 格式化输出
|
|
138
|
-
|
|
139
|
-
根据 format 参数输出:
|
|
140
|
-
|
|
141
|
-
**JSON 格式**:
|
|
142
|
-
\`\`\`json
|
|
143
|
-
[
|
|
144
|
-
{ "field": "value" },
|
|
145
|
-
{ "field": "value" }
|
|
146
|
-
]
|
|
147
|
-
\`\`\`
|
|
148
|
-
|
|
149
|
-
**TypeScript 格式**:
|
|
150
|
-
\`\`\`typescript
|
|
151
|
-
const mockData: Type[] = [
|
|
152
|
-
{ field: "value" },
|
|
153
|
-
{ field: "value" }
|
|
154
|
-
];
|
|
155
|
-
\`\`\`
|
|
156
|
-
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
## 📊 输出模板
|
|
160
|
-
|
|
161
|
-
### 单条数据
|
|
162
|
-
|
|
163
|
-
\`\`\`json
|
|
164
|
-
{
|
|
165
|
-
// 根据 schema 生成
|
|
166
|
-
}
|
|
167
|
-
\`\`\`
|
|
168
|
-
|
|
169
|
-
### 批量数据
|
|
170
|
-
|
|
171
|
-
\`\`\`json
|
|
172
|
-
[
|
|
173
|
-
// {count} 条数据
|
|
174
|
-
]
|
|
175
|
-
\`\`\`
|
|
176
|
-
|
|
177
|
-
---
|
|
178
|
-
|
|
179
|
-
## 🔧 高级功能
|
|
180
|
-
|
|
181
|
-
### 关联数据生成
|
|
182
|
-
|
|
183
|
-
如果需要生成有关联的数据:
|
|
184
|
-
|
|
185
|
-
\`\`\`json
|
|
186
|
-
// users
|
|
187
|
-
[
|
|
188
|
-
{ "id": "user-1", "name": "张三" }
|
|
189
|
-
]
|
|
190
|
-
|
|
191
|
-
// orders (关联 user_id)
|
|
192
|
-
[
|
|
193
|
-
{ "id": "order-1", "user_id": "user-1", "amount": 100 }
|
|
194
|
-
]
|
|
195
|
-
\`\`\`
|
|
196
|
-
|
|
197
|
-
### 自定义规则
|
|
198
|
-
|
|
199
|
-
支持在 schema 中添加注释指定规则:
|
|
200
|
-
|
|
201
|
-
\`\`\`typescript
|
|
202
|
-
interface User {
|
|
203
|
-
id: string; // UUID
|
|
204
|
-
age: number; // 18-60
|
|
205
|
-
status: string; // "active" | "inactive"
|
|
206
|
-
tags: string[]; // 3-5 个标签
|
|
207
|
-
}
|
|
208
|
-
\`\`\`
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## ✅ 检查清单
|
|
213
|
-
|
|
214
|
-
- [ ] 数据结构已正确解析
|
|
215
|
-
- [ ] 字段语义已识别
|
|
216
|
-
- [ ] 数据类型正确
|
|
217
|
-
- [ ] 数量符合要求
|
|
218
|
-
- [ ] 格式正确
|
|
219
|
-
- [ ] 中文/英文符合 locale 设置
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
---
|
|
223
|
-
|
|
224
|
-
## 接口设计
|
|
225
|
-
|
|
226
|
-
```typescript
|
|
227
|
-
interface GenMockArgs {
|
|
228
|
-
schema: string; // 必填,TS interface 或 JSON Schema
|
|
229
|
-
count?: number; // 可选,默认 1
|
|
230
|
-
format?: string; // 可选,默认 json
|
|
231
|
-
locale?: string; // 可选,默认 zh-CN
|
|
232
|
-
seed?: number; // 可选,随机种子
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
async function genMock(args: GenMockArgs): Promise<MCPResponse>
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
---
|
|
239
|
-
|
|
240
|
-
*设计版本: 1.0.0*
|
|
241
|
-
*创建时间: 2025-01-14*
|