@szc-ft/mcp-szcd-client 0.18.0 → 0.19.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.
@@ -113,6 +113,28 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
113
113
  - "代码已生成,是否需要调整样式或交互细节?"
114
114
  - "是否需要补充表单校验规则?"
115
115
  - "是否需要添加批量操作功能?"
116
+ - "是否需要进行浏览器验证?(在本地浏览器中检查还原度和功能)"
117
+
118
+
119
+ ### 步骤6.5:浏览器验证(条件执行)
120
+
121
+ 当用户在步骤6中选择进行浏览器验证时执行此步骤。
122
+
123
+ 1. **提取代码上下文**:你已经掌握生成的代码结构(组件、selector、API),直接用于构造测试计划
124
+ 2. **询问用户**:目标页面 URL(如果还不知道)和设计稿(如有)
125
+ 3. **构造测试计划 JSON**:按 `local-browser-test` skill 中定义的 Plan Schema,从代码中提取真实 selector 和 API 路径
126
+ 4. **执行测试**:在用户终端执行:
127
+ ```bash
128
+ node {client_path}/local-browser-executor.js --plan '<计划JSON>' --output /tmp/browser-test-result.json
129
+ ```
130
+ 5. **解读结果**:读取 /tmp/browser-test-result.json,分析还原度评分和功能测试通过情况
131
+ 6. **闭环修复**:如有问题,主动修复代码并询问是否重新测试
132
+
133
+ **构造测试计划的要点**:
134
+ - selector 从生成的代码中读取(id/className/data-testid),不要猜测
135
+ - API 路径从代码中的接口调用读取
136
+ - checkElement 的 expect 从代码逻辑推断(columns 数量、数据行数等)
137
+ - 有设计稿时添加 compare 步骤,无设计稿时跳过
116
138
 
117
139
  ### 步骤7:收集用户反馈(必做,质量闭环)
118
140
 
@@ -76,7 +76,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
76
76
  | 任务类型 | 判断条件 | 流程 |
77
77
  |---------|---------|------|
78
78
  | **简单查询** | 只查组件信息/API/示例,不涉及代码生成 | 快速流程(步骤1→4→6→7) |
79
- | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→7) |
79
+ | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→6.5→7) |
80
80
 
81
81
  ---
82
82
  <!-- /INCLUDE:enhanced -->
@@ -267,8 +267,38 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
267
267
  - "代码已生成,是否需要调整样式或交互细节?"
268
268
  - "是否需要补充表单校验规则?"
269
269
  - "是否需要添加批量操作功能?"
270
+ - "是否需要进行浏览器验证?(在本地浏览器中检查还原度和功能)"
270
271
  <!-- /EXCLUDE:enhanced -->
271
272
 
273
+ <!-- INCLUDE:enhanced -->
274
+ **交互节点**:代码生成后,询问用户下一步:
275
+ > "代码已生成,你可以选择:
276
+ > 1. 调整样式或交互细节
277
+ > 2. 补充表单校验/批量操作等功能
278
+ > 3. 进行浏览器验证(在本地浏览器中检查还原度和功能)
279
+ > 4. 完成,收集反馈"
280
+ <!-- /INCLUDE:enhanced -->
281
+
282
+ ### 步骤6.5:浏览器验证(条件执行)
283
+
284
+ 当用户在步骤6中选择进行浏览器验证时执行此步骤。
285
+
286
+ 1. **提取代码上下文**:你已经掌握生成的代码结构(组件、selector、API),直接用于构造测试计划
287
+ 2. **询问用户**:目标页面 URL(如果还不知道)和设计稿(如有)
288
+ 3. **构造测试计划 JSON**:按 `local-browser-test` skill 中定义的 Plan Schema,从代码中提取真实 selector 和 API 路径
289
+ 4. **执行测试**:在用户终端执行:
290
+ ```bash
291
+ node {client_path}/local-browser-executor.js --plan '<计划JSON>' --output /tmp/browser-test-result.json
292
+ ```
293
+ 5. **解读结果**:读取 /tmp/browser-test-result.json,分析还原度评分和功能测试通过情况
294
+ 6. **闭环修复**:如有问题,主动修复代码并询问是否重新测试
295
+
296
+ **构造测试计划的要点**:
297
+ - selector 从生成的代码中读取(id/className/data-testid),不要猜测
298
+ - API 路径从代码中的接口调用读取
299
+ - checkElement 的 expect 从代码逻辑推断(columns 数量、数据行数等)
300
+ - 有设计稿时添加 compare 步骤,无设计稿时跳过
301
+
272
302
  ### 步骤7:收集用户反馈(必做,质量闭环)
273
303
 
274
304
  代码生成完成后,**必须**向用户收集反馈,用于优化 MCP 工具行为:
@@ -358,7 +388,7 @@ ProForm / ProFormWrapper
358
388
 
359
389
  ## 快速流程(简单查询类任务)
360
390
 
361
- 仅执行步骤1→4→6→7,跳过需求分析和方案确认:
391
+ 仅执行步骤1→4→6→7(跳过6.5),跳过需求分析和方案确认:
362
392
  1. **架构认知 + 自检** — 同步骤1
363
393
  2. **查询组件** — 按需查询目标组件(含依赖验证)
364
394
  3. **输出结果** — 直接返回组件信息/API/示例
@@ -117,6 +117,28 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
117
117
  - "代码已生成,是否需要调整样式或交互细节?"
118
118
  - "是否需要补充表单校验规则?"
119
119
  - "是否需要添加批量操作功能?"
120
+ - "是否需要进行浏览器验证?(在本地浏览器中检查还原度和功能)"
121
+
122
+
123
+ ### 步骤6.5:浏览器验证(条件执行)
124
+
125
+ 当用户在步骤6中选择进行浏览器验证时执行此步骤。
126
+
127
+ 1. **提取代码上下文**:你已经掌握生成的代码结构(组件、selector、API),直接用于构造测试计划
128
+ 2. **询问用户**:目标页面 URL(如果还不知道)和设计稿(如有)
129
+ 3. **构造测试计划 JSON**:按 `local-browser-test` skill 中定义的 Plan Schema,从代码中提取真实 selector 和 API 路径
130
+ 4. **执行测试**:在用户终端执行:
131
+ ```bash
132
+ node {client_path}/local-browser-executor.js --plan '<计划JSON>' --output /tmp/browser-test-result.json
133
+ ```
134
+ 5. **解读结果**:读取 /tmp/browser-test-result.json,分析还原度评分和功能测试通过情况
135
+ 6. **闭环修复**:如有问题,主动修复代码并询问是否重新测试
136
+
137
+ **构造测试计划的要点**:
138
+ - selector 从生成的代码中读取(id/className/data-testid),不要猜测
139
+ - API 路径从代码中的接口调用读取
140
+ - checkElement 的 expect 从代码逻辑推断(columns 数量、数据行数等)
141
+ - 有设计稿时添加 compare 步骤,无设计稿时跳过
120
142
 
121
143
  ### 步骤7:收集用户反馈(必做,质量闭环)
122
144
 
@@ -66,7 +66,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
66
66
  | 任务类型 | 判断条件 | 流程 |
67
67
  |---------|---------|------|
68
68
  | **简单查询** | 只查组件信息/API/示例,不涉及代码生成 | 快速流程(步骤1→4→6→7) |
69
- | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→7) |
69
+ | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→6.5→7) |
70
70
 
71
71
  ---
72
72
 
@@ -195,6 +195,33 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
195
195
  - Hooks 按依赖关系正确引入(如 useLeftTree、useTable)
196
196
 
197
197
 
198
+ **交互节点**:代码生成后,询问用户下一步:
199
+ > "代码已生成,你可以选择:
200
+ > 1. 调整样式或交互细节
201
+ > 2. 补充表单校验/批量操作等功能
202
+ > 3. 进行浏览器验证(在本地浏览器中检查还原度和功能)
203
+ > 4. 完成,收集反馈"
204
+
205
+ ### 步骤6.5:浏览器验证(条件执行)
206
+
207
+ 当用户在步骤6中选择进行浏览器验证时执行此步骤。
208
+
209
+ 1. **提取代码上下文**:你已经掌握生成的代码结构(组件、selector、API),直接用于构造测试计划
210
+ 2. **询问用户**:目标页面 URL(如果还不知道)和设计稿(如有)
211
+ 3. **构造测试计划 JSON**:按 `local-browser-test` skill 中定义的 Plan Schema,从代码中提取真实 selector 和 API 路径
212
+ 4. **执行测试**:在用户终端执行:
213
+ ```bash
214
+ node {client_path}/local-browser-executor.js --plan '<计划JSON>' --output /tmp/browser-test-result.json
215
+ ```
216
+ 5. **解读结果**:读取 /tmp/browser-test-result.json,分析还原度评分和功能测试通过情况
217
+ 6. **闭环修复**:如有问题,主动修复代码并询问是否重新测试
218
+
219
+ **构造测试计划的要点**:
220
+ - selector 从生成的代码中读取(id/className/data-testid),不要猜测
221
+ - API 路径从代码中的接口调用读取
222
+ - checkElement 的 expect 从代码逻辑推断(columns 数量、数据行数等)
223
+ - 有设计稿时添加 compare 步骤,无设计稿时跳过
224
+
198
225
  ### 步骤7:收集用户反馈(必做,质量闭环)
199
226
 
200
227
  代码生成完成后,**必须**向用户收集反馈,用于优化 MCP 工具行为:
@@ -241,7 +268,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
241
268
 
242
269
  ## 快速流程(简单查询类任务)
243
270
 
244
- 仅执行步骤1→4→6→7,跳过需求分析和方案确认:
271
+ 仅执行步骤1→4→6→7(跳过6.5),跳过需求分析和方案确认:
245
272
  1. **架构认知 + 自检** — 同步骤1
246
273
  2. **查询组件** — 按需查询目标组件(含依赖验证)
247
274
  3. **输出结果** — 直接返回组件信息/API/示例
@@ -46,7 +46,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
46
46
  | 任务类型 | 判断条件 | 流程 |
47
47
  |---------|---------|------|
48
48
  | **简单查询** | 只查组件信息/API/示例,不涉及代码生成 | 快速流程(步骤1→4→6→7) |
49
- | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→7) |
49
+ | **页面生成** | 需要根据需求/设计稿生成页面代码 | 完整流程(步骤1→2→3→4→5→6→6.5→7) |
50
50
 
51
51
  ---
52
52
 
@@ -162,6 +162,33 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
162
162
  - Hooks 按依赖关系正确引入(如 useLeftTree、useTable)
163
163
 
164
164
 
165
+ **交互节点**:代码生成后,询问用户下一步:
166
+ > "代码已生成,你可以选择:
167
+ > 1. 调整样式或交互细节
168
+ > 2. 补充表单校验/批量操作等功能
169
+ > 3. 进行浏览器验证(在本地浏览器中检查还原度和功能)
170
+ > 4. 完成,收集反馈"
171
+
172
+ ### 步骤6.5:浏览器验证(条件执行)
173
+
174
+ 当用户在步骤6中选择进行浏览器验证时执行此步骤。
175
+
176
+ 1. **提取代码上下文**:你已经掌握生成的代码结构(组件、selector、API),直接用于构造测试计划
177
+ 2. **询问用户**:目标页面 URL(如果还不知道)和设计稿(如有)
178
+ 3. **构造测试计划 JSON**:按 `local-browser-test` skill 中定义的 Plan Schema,从代码中提取真实 selector 和 API 路径
179
+ 4. **执行测试**:在用户终端执行:
180
+ ```bash
181
+ node {client_path}/local-browser-executor.js --plan '<计划JSON>' --output /tmp/browser-test-result.json
182
+ ```
183
+ 5. **解读结果**:读取 /tmp/browser-test-result.json,分析还原度评分和功能测试通过情况
184
+ 6. **闭环修复**:如有问题,主动修复代码并询问是否重新测试
185
+
186
+ **构造测试计划的要点**:
187
+ - selector 从生成的代码中读取(id/className/data-testid),不要猜测
188
+ - API 路径从代码中的接口调用读取
189
+ - checkElement 的 expect 从代码逻辑推断(columns 数量、数据行数等)
190
+ - 有设计稿时添加 compare 步骤,无设计稿时跳过
191
+
165
192
  ### 步骤7:收集用户反馈(必做,质量闭环)
166
193
 
167
194
  代码生成完成后,**必须**向用户收集反馈,用于优化 MCP 工具行为:
@@ -206,7 +233,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
206
233
 
207
234
  ## 快速流程(简单查询类任务)
208
235
 
209
- 仅执行步骤1→4→6→7,跳过需求分析和方案确认:
236
+ 仅执行步骤1→4→6→7(跳过6.5),跳过需求分析和方案确认:
210
237
  1. **架构认知 + 自检** — 同步骤1
211
238
  2. **查询组件** — 按需查询目标组件(含依赖验证)
212
239
  3. **输出结果** — 直接返回组件信息/API/示例
@@ -0,0 +1,57 @@
1
+ ---
2
+ description: 在本地浏览器中执行自动化测试(设计稿还原度对比/功能验证/页面检查)
3
+ argument-hint: <目标页面URL> [可选:设计稿图片路径]
4
+ ---
5
+
6
+ 请帮我在本地浏览器中执行测试。
7
+
8
+ **执行流程**:
9
+
10
+ 1. **收集测试信息**:
11
+
12
+ - **目标页面 URL**(必需):如果用户在命令参数中已提供,直接使用;否则向用户询问要测试的页面地址
13
+ - **设计稿图片**(可选):如果用户在命令参数中提供了图片路径,用于还原度对比;否则跳过视觉对比
14
+ - **测试范围**:向用户提供选项:
15
+ - "设计稿还原度对比"(需提供设计稿)
16
+ - "功能验证"(点击/输入/导航等交互测试)
17
+ - "页面检查"(JS 错误检测 + 页面截图)
18
+ - "全部测试"(以上全部)
19
+
20
+ 2. **读取 `local-browser-test` skill 文档**,了解 Plan Schema 和执行命令格式:
21
+ - 按 skill 中定义的步骤类型构造测试计划 JSON
22
+ - selector 从用户项目代码中读取(`id`/`className`/`data-testid`),不要猜测
23
+ - 根据用户选择的测试范围选择对应场景(A/B/C/D)
24
+
25
+ 3. **构造测试计划 JSON** 并写入临时文件(避免命令行参数过长):
26
+ ```bash
27
+ cat > /tmp/browser-test-plan.json << 'EOF'
28
+ {测试计划 JSON}
29
+ EOF
30
+ ```
31
+
32
+ 4. **执行测试**:
33
+ ```bash
34
+ node {client_install_path}/local-browser-executor.js \
35
+ --plan-file /tmp/browser-test-plan.json \
36
+ --output /tmp/browser-test-result.json
37
+ ```
38
+
39
+ 命令回退(如果上面的路径不可用):
40
+ - `npx szcd-mcp-browser-test --plan-file /tmp/browser-test-plan.json --output /tmp/browser-test-result.json`
41
+ - `node $(npm root -g)/@szc-ft/mcp-szcd-client/local-browser-executor.js --plan-file /tmp/browser-test-plan.json --output /tmp/browser-test-result.json`
42
+ - `node /scity/zengzhijie/mcp/szcd-mcp-client/local-browser-executor.js --plan-file /tmp/browser-test-plan.json --output /tmp/browser-test-result.json`
43
+
44
+ 5. **读取并解读结果**:
45
+ 读取 `/tmp/browser-test-result.json`,按以下标准解读:
46
+ - **还原度**:fidelity >= 95% 优秀 / 90-95% 良好 / < 90% 不足
47
+ - **功能测试**:passed = total 全部通过,否则列出失败步骤及原因
48
+ - **diff 图**:如有 diffImagePath,展示 diff 图路径供用户查看
49
+
50
+ 6. **闭环建议**:
51
+ - 如有问题,给出具体的修复建议
52
+ - 询问用户是否需要重新测试
53
+
54
+ **注意事项**:
55
+ - 首次使用需确保 Chrome 以调试模式启动:`google-chrome --remote-debugging-port=9222`
56
+ - 如执行器报错依赖缺失,引导用户安装:`npm install puppeteer-core pixelmatch pngjs sharp`
57
+ - connect 模式下天然继承用户浏览器的登录态和微前端环境
@@ -0,0 +1,42 @@
1
+ ---
2
+ description: 提交本次会话的代码生成反馈,用于优化 szcd MCP 服务质量
3
+ argument-hint: [可选:评分1-5] [可选:采纳/不采纳]
4
+ ---
5
+
6
+ 请帮我提交本次会话的反馈。
7
+
8
+ **执行流程**:
9
+
10
+ 1. **自动收集上下文**:从当前会话历史中提取以下信息,**不要重复询问用户已经说过的内容**:
11
+ - `userQuery`:用户最初的原始需求描述(从会话开头的消息中提取)
12
+ - `toolsUsed`:本次会话中实际调用过的 MCP 工具名称列表(从工具调用记录中提取)
13
+ - `generatedCodeSummary`:最近一次生成的代码摘要或关键组件列表(从生成的代码中提取前几行或核心结构,不超过 500 字)
14
+ - `toolType`:当前使用的 IDE 类型(根据运行环境判断:Qoder → "qoder",Trae → "trae",Claude → "claude",Qwen → "qwen",Cursor → "cursor",VS Code → "vscode",其他 → "generic")
15
+
16
+ 2. **向用户确认或补充**(仅询问缺失的信息):
17
+ - **准确性评分**:请用户评分 1-5 分(5 分最准确)。如果用户在命令参数中已提供,直接使用
18
+ - **是否采纳**:用户是否计划采纳生成的代码。如果用户在命令参数中已提供("采纳"/"不采纳"),直接使用
19
+ - **如不采纳**:询问具体原因(组件不匹配、API 错误、缺少功能、不符合设计稿等)
20
+
21
+ 3. **调用 MCP 工具提交反馈**:
22
+ 调用 `submit_feedback` 工具,参数如下:
23
+ ```
24
+ sessionId: "<当前会话 ID 或时间戳>"
25
+ toolsUsed: [自动提取的工具列表]
26
+ userQuery: "<自动提取的用户需求>"
27
+ generatedCodeSummary: "<自动提取的代码摘要>"
28
+ accuracyRating: <用户评分 1-5>
29
+ adopted: <true/false>
30
+ rejectionReason: "<不采纳原因,采纳则为空>"
31
+ contextSnapshot: {
32
+ 可选:从会话中提取的组件方案信息
33
+ }
34
+ toolType: "<自动判断的 IDE 类型>"
35
+ ```
36
+
37
+ 4. **输出结果**:告知用户反馈是否提交成功,显示 feedbackId
38
+
39
+ **注意事项**:
40
+ - 如果当前会话中没有代码生成记录,提示用户"当前会话中没有代码生成记录,反馈提交需要有生成代码的上下文"
41
+ - 尽可能从会话历史自动提取信息,减少用户手动输入
42
+ - 反馈提交失败不影响已生成的代码