@szc-ft/mcp-szcd-client 0.26.0 → 0.27.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.
@@ -42,7 +42,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
42
42
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
43
43
 
44
44
  执行动作:
45
- 1. 调用 `get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
45
+ 1. 调用 `get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
46
46
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
47
47
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
48
48
 
@@ -370,6 +370,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
370
370
 
371
371
  **输入**:
372
372
  - 步骤 1 的 `get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
373
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
373
374
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
374
375
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
375
376
  - 或步骤 3 的图片分析描述
@@ -383,38 +384,15 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
383
384
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
384
385
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
385
386
 
386
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
387
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
387
388
 
388
- *页面级布局*:
389
- | Sketch 特征 | 推断结果 | 依据 |
390
- |---|---|---|
391
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
392
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
393
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
394
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
389
+ 1. **画板名称** → 直接作为 `pageName`
390
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
391
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
392
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
393
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
395
394
 
396
- *区域级组件*:
397
- | Sketch 特征 | 推断结果 | 依据 |
398
- |---|---|---|
399
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
400
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
401
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
402
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
403
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
404
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
405
-
406
- *数据可视化(核心 3 类)*:
407
- | Sketch 特征 | 推断结果 | 依据 |
408
- |---|---|---|
409
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
410
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
411
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
412
-
413
- *表格子类型(核心 2 类)*:
414
- | Sketch 特征 | 推断结果 | 依据 |
415
- |---|---|---|
416
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
417
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
395
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
418
396
 
419
397
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
420
398
 
@@ -38,7 +38,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
38
38
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
39
39
 
40
40
  执行动作:
41
- 1. 调用 `get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
41
+ 1. 调用 `get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
42
42
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
43
43
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
44
44
 
@@ -366,6 +366,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
366
366
 
367
367
  **输入**:
368
368
  - 步骤 1 的 `get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
369
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
369
370
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
370
371
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
371
372
  - 或步骤 3 的图片分析描述
@@ -379,38 +380,15 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
379
380
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
380
381
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
381
382
 
382
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
383
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
383
384
 
384
- *页面级布局*:
385
- | Sketch 特征 | 推断结果 | 依据 |
386
- |---|---|---|
387
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
388
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
389
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
390
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
385
+ 1. **画板名称** → 直接作为 `pageName`
386
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
387
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
388
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
389
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
391
390
 
392
- *区域级组件*:
393
- | Sketch 特征 | 推断结果 | 依据 |
394
- |---|---|---|
395
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
396
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
397
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
398
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
399
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
400
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
401
-
402
- *数据可视化(核心 3 类)*:
403
- | Sketch 特征 | 推断结果 | 依据 |
404
- |---|---|---|
405
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
406
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
407
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
408
-
409
- *表格子类型(核心 2 类)*:
410
- | Sketch 特征 | 推断结果 | 依据 |
411
- |---|---|---|
412
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
413
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
391
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
414
392
 
415
393
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
416
394
 
@@ -88,7 +88,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
88
88
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
89
89
 
90
90
  执行动作:
91
- 1. 调用 `{{TOOL:get_architecture_overview}}`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
91
+ 1. 调用 `{{TOOL:get_architecture_overview}}`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
92
92
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
93
93
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
94
94
 
@@ -457,6 +457,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
457
457
 
458
458
  **输入**:
459
459
  - 步骤 1 的 `{{TOOL:get_architecture_overview}}` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
460
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
460
461
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
461
462
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
462
463
  - 或步骤 3 的图片分析描述
@@ -470,38 +471,15 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
470
471
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
471
472
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
472
473
 
473
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
474
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
474
475
 
475
- *页面级布局*:
476
- | Sketch 特征 | 推断结果 | 依据 |
477
- |---|---|---|
478
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
479
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
480
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
481
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
476
+ 1. **画板名称** → 直接作为 `pageName`
477
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
478
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
479
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
480
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
482
481
 
483
- *区域级组件*:
484
- | Sketch 特征 | 推断结果 | 依据 |
485
- |---|---|---|
486
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
487
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
488
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
489
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
490
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
491
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
492
-
493
- *数据可视化(核心 3 类)*:
494
- | Sketch 特征 | 推断结果 | 依据 |
495
- |---|---|---|
496
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
497
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
498
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
499
-
500
- *表格子类型(核心 2 类)*:
501
- | Sketch 特征 | 推断结果 | 依据 |
502
- |---|---|---|
503
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
504
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
482
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
505
483
 
506
484
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
507
485
 
@@ -1,8 +1,8 @@
1
1
  [
2
2
  {
3
3
  "name": "get_architecture_overview",
4
- "description": "获取7层架构图、模板组合模式、LLM映射错误提示",
5
- "whenToUse": "步骤1:架构认知"
4
+ "description": "获取7层架构图、模板组合模式、LLM映射错误提示。detail=full 额外返回 componentSummary(全量组件+设计元信息:layoutRole/variantProps/styleInjection/useCases/chartType/sketchSignals)+ styleMapping(节点样式映射)+ assetExtraction(图标/位图/图表色提取规则),设计稿→代码场景必选 full",
5
+ "whenToUse": "步骤1:架构认知(设计稿场景用 detail=full 一次拿全)"
6
6
  },
7
7
  {
8
8
  "name": "search_components_semantic",
@@ -42,7 +42,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
42
42
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
43
43
 
44
44
  执行动作:
45
- 1. 调用 `get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
45
+ 1. 调用 `get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
46
46
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
47
47
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
48
48
 
@@ -370,6 +370,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
370
370
 
371
371
  **输入**:
372
372
  - 步骤 1 的 `get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
373
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
373
374
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
374
375
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
375
376
  - 或步骤 3 的图片分析描述
@@ -383,38 +384,15 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
383
384
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
384
385
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
385
386
 
386
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
387
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
387
388
 
388
- *页面级布局*:
389
- | Sketch 特征 | 推断结果 | 依据 |
390
- |---|---|---|
391
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
392
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
393
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
394
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
389
+ 1. **画板名称** → 直接作为 `pageName`
390
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
391
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
392
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
393
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
395
394
 
396
- *区域级组件*:
397
- | Sketch 特征 | 推断结果 | 依据 |
398
- |---|---|---|
399
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
400
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
401
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
402
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
403
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
404
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
405
-
406
- *数据可视化(核心 3 类)*:
407
- | Sketch 特征 | 推断结果 | 依据 |
408
- |---|---|---|
409
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
410
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
411
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
412
-
413
- *表格子类型(核心 2 类)*:
414
- | Sketch 特征 | 推断结果 | 依据 |
415
- |---|---|---|
416
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
417
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
395
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
418
396
 
419
397
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
420
398
 
@@ -51,7 +51,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
51
51
 
52
52
  | 工具名 | 功能 | 何时使用 |
53
53
  |--------|------|---------|
54
- | `get_architecture_overview` | 获取7层架构图、模板组合模式、LLM映射错误提示 | 步骤1:架构认知 |
54
+ | `get_architecture_overview` | 获取7层架构图、模板组合模式、LLM映射错误提示。detail=full 额外返回 componentSummary(全量组件+设计元信息:layoutRole/variantProps/styleInjection/useCases/chartType/sketchSignals)+ styleMapping(节点样式映射)+ assetExtraction(图标/位图/图表色提取规则),设计稿→代码场景必选 full | 步骤1:架构认知(设计稿场景用 detail=full 一次拿全) |
55
55
  | `search_components_semantic` | 基于Repowiki知识库的语义搜索,用自然语言描述匹配最适合的组件 | 步骤4:语义搜索匹配 |
56
56
  | `get_component_full_profile` | 一站式获取组件全景画像。name支持逗号分隔批量查询,depth=deep获取Props链+源码摘要+样式注入,返回值是紧凑Markdown格式 | 步骤4:批量获取全景画像 |
57
57
  | `get_best_practices` | 获取组件使用最佳实践和常见错误修正,指定scenario可获取组合最佳实践 | 步骤4:组合最佳实践 |
@@ -86,7 +86,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
86
86
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
87
87
 
88
88
  执行动作:
89
- 1. 调用 `get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
89
+ 1. 调用 `get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
90
90
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
91
91
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
92
92
 
@@ -429,6 +429,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
429
429
 
430
430
  **输入**:
431
431
  - 步骤 1 的 `get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
432
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
432
433
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
433
434
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
434
435
  - 或步骤 3 的图片分析描述
@@ -442,38 +443,15 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
442
443
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
443
444
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
444
445
 
445
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
446
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
446
447
 
447
- *页面级布局*:
448
- | Sketch 特征 | 推断结果 | 依据 |
449
- |---|---|---|
450
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
451
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
452
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
453
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
448
+ 1. **画板名称** → 直接作为 `pageName`
449
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
450
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
451
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
452
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
454
453
 
455
- *区域级组件*:
456
- | Sketch 特征 | 推断结果 | 依据 |
457
- |---|---|---|
458
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
459
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
460
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
461
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
462
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
463
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
464
-
465
- *数据可视化(核心 3 类)*:
466
- | Sketch 特征 | 推断结果 | 依据 |
467
- |---|---|---|
468
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
469
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
470
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
471
-
472
- *表格子类型(核心 2 类)*:
473
- | Sketch 特征 | 推断结果 | 依据 |
474
- |---|---|---|
475
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
476
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
454
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
477
455
 
478
456
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
479
457
 
@@ -56,7 +56,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
56
56
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
57
57
 
58
58
  执行动作:
59
- 1. 调用 `mcp__szcd-component-helper__get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
59
+ 1. 调用 `mcp__szcd-component-helper__get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
60
60
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
61
61
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
62
62
 
@@ -392,6 +392,7 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
392
392
 
393
393
  **输入**:
394
394
  - 步骤 1 的 `mcp__szcd-component-helper__get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
395
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
395
396
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
396
397
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
397
398
  - 或步骤 3 的图片分析描述
@@ -405,38 +406,15 @@ Ant Design → ProComponents → Cover 层 → Wrapper 层 → ProPackages →
405
406
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
406
407
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
407
408
 
408
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
409
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
409
410
 
410
- *页面级布局*:
411
- | Sketch 特征 | 推断结果 | 依据 |
412
- |---|---|---|
413
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
414
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
415
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
416
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
411
+ 1. **画板名称** → 直接作为 `pageName`
412
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
413
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
414
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
415
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
417
416
 
418
- *区域级组件*:
419
- | Sketch 特征 | 推断结果 | 依据 |
420
- |---|---|---|
421
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
422
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
423
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
424
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
425
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
426
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
427
-
428
- *数据可视化(核心 3 类)*:
429
- | Sketch 特征 | 推断结果 | 依据 |
430
- |---|---|---|
431
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
432
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
433
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
434
-
435
- *表格子类型(核心 2 类)*:
436
- | Sketch 特征 | 推断结果 | 依据 |
437
- |---|---|---|
438
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
439
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
417
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
440
418
 
441
419
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
442
420
 
@@ -42,7 +42,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
42
42
  **在正式开始之前,获取项目架构全局视图,同时验证 MCP 连接。**
43
43
 
44
44
  执行动作:
45
- 1. 调用 `get_architecture_overview`(detail="summary")获取7层架构图、模板组合模式、推荐使用顺序和 LLM 映射错误提示
45
+ 1. 调用 `get_architecture_overview`(detail="full")一次性获取:7 层架构图、模板组合模式、推荐使用顺序、LLM 映射错误提示,**以及 `componentSummary`(全量组件 + 设计元信息:layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)+ `styleMapping`(节点样式映射)+ `assetExtraction`(图标/位图/图表色提取规则)**——这些是步骤 3.5 推理组件候选和步骤 5 样式注入的核心依据
46
46
  2. 如果连接失败,**立即停止并返回错误信息**,告知用户需要先配置 MCP 服务器
47
47
  3. 如果成功,根据返回的 `templatePatterns` 初步判断用户需求匹配哪个模板
48
48
 
@@ -370,6 +370,7 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
370
370
 
371
371
  **输入**:
372
372
  - 步骤 1 的 `get_architecture_overview` 返回的 `templatePatterns`(TreeQueryTable / QueryTabsTables / LeftRight / UpDown)
373
+ - 步骤 1 的 `componentSummary`:全量组件 + 设计元信息(layoutRole/variantProps/styleInjection/useCases,other/echarts 层附带 compositionSlots/requiredHooks/chartType/sketchSignals)—— **推理组件候选的权威目录,长尾场景按 layoutRole / useCases / sketchSignals 直接反查**
373
374
  - 步骤 1 的 `llmMappingHints.commonMistakes`(避免 LLM 常见映射错误)
374
375
  - 步骤 2.5 的 Sketch 节点结构 + 样式 Token
375
376
  - 或步骤 3 的图片分析描述
@@ -383,38 +384,15 @@ szcd 是基于 Ant Design 5.27 封装的企业级 React 组件库,采用分层
383
384
  - ❌ 在步骤 3 内部推理组件候选列表(应只产出图片描述)
384
385
  - ❌ 跳过此环节直接调 `get_component_full_profile`(必须先有候选列表)
385
386
 
386
- **推理时使用映射规则**(**此表为本步骤专用,仅含核心高频场景**):
387
+ **推理依据**:步骤 1 返回的 `componentSummary` 是组件候选的权威目录(由组件库源码动态生成),每项含 `layoutRole` / `variantProps` / `useCases` / `sketchSignals`(图表层)。按以下顺序反查:
387
388
 
388
- *页面级布局*:
389
- | Sketch 特征 | 推断结果 | 依据 |
390
- |---|---|---|
391
- | 画板名称(如 "4.1-编目审核-待办") | `pageName` | 直接使用 |
392
- | 左右分区布局 | `TemplateMode(templateTpye="LeftRight")` | 区域分布 |
393
- | 上下分区布局 | `TemplateMode(templateTpye="TopBottom")` | 区域分布 |
394
- | 标签页(Tabs) + 每个 Tab 内有表格 | `QueryTabsTables` 或 `TemplateMode` + Tabs | templatePatterns.QueryTabsTables |
389
+ 1. **画板名称** → 直接作为 `pageName`
390
+ 2. **大区切分** `componentSummary.other` `layoutRole === '页面定位'` 的组件(如 TemplateMode),结合 `variantProps.templateType`(LeftRight / TopBottom)和 `templatePatterns`(TreeQueryTable / QueryTabsTables)选模板
391
+ 3. **区域容器** → `layoutRole === '区域容器'` 的组件(LeftTree / Query / TableOrList / ModelOrDrawer / TitleAndBack / FormItemOrDetailItem 等),按 `useCases` 描述匹配 Sketch 区域语义
392
+ 4. **图表组件** `componentSummary.echarts[*].sketchSignals` 反查 `chartType`,锁定 Line / Bar / Pie / Scatter 等
393
+ 5. **变体选择** 同一组件的子类型(如 TableOrList 的 ProTable / ProList / EditableProTable)查 `variantProps` 配合 useCases
395
394
 
396
- *区域级组件*:
397
- | Sketch 特征 | 推断结果 | 依据 |
398
- |---|---|---|
399
- | 左侧窄区域 + 树形图层 | `LeftTree` 组件 | templatePatterns.TreeQueryTable |
400
- | 顶部输入框/下拉框/日期选择器 | `Query` 组件 | 搜索区域特征 |
401
- | 中间表头 + 数据行图层 | `TableOrList` 组件 | 表格区域特征 |
402
- | 弹窗/抽屉图层 | `ModelOrDrawer` 组件 | 弹窗交互特征 |
403
- | 页面标题 + 返回箭头 | `TitleAndBack` 组件 | 标题栏特征 |
404
- | 详情展示区域(只读字段) | `FormItemOrDetailItem(type="detail")` | 详情区特征 |
405
-
406
- *数据可视化(核心 3 类)*:
407
- | Sketch 特征 | 推断结果 | 依据 |
408
- |---|---|---|
409
- | 折线趋势图/时间序列图 | `Line` | ECharts 层图表组件 |
410
- | 柱状对比图/条形图 | `Bar` | ECharts 层图表组件 |
411
- | 饼图/环形图/占比图 | `Pie` | ECharts 层图表组件 |
412
-
413
- *表格子类型(核心 2 类)*:
414
- | Sketch 特征 | 推断结果 | 依据 |
415
- |---|---|---|
416
- | 可编辑表格(单元格直接输入) | `TableOrList(componentType="EditableProTable")` | 可编辑表格特征 |
417
- | 卡片列表(非表格式数据卡片) | `TableOrList(componentType="ProList")` | 卡片布局特征 |
395
+ 不要硬编码任何「Sketch 特征 → 组件」对照表——`componentSummary` 是唯一可信源,硬编码表会和服务端动态扫描结果漂移。
418
396
 
419
397
  #### ⚠️ TemplateMode 槽位传参铁律(高频踩坑)
420
398
 
@@ -12,7 +12,7 @@ compatibility:
12
12
  ## 触发条件
13
13
 
14
14
  当用户说出以下关键词时启动浏览器测试:
15
- - "测试一下"、"帮我验证"、"浏览器测试"
15
+ - "测试一下"、"帮我验证"、"浏览器测试"、"接管浏览器"
16
16
  - "对比设计稿"、"还原度"、"看看效果"
17
17
  - "功能测试"、"能不能正常用"
18
18
  - "检查页面"、"页面渲染"
@@ -159,32 +159,89 @@ wujie 微前端子应用渲染在 blob URL iframe 中,**坐标点击无法到
159
159
  - `~#myId` → 自动转为 `[id*="myId"]`
160
160
  - 普通选择器(如 `.my-class`)保持精确匹配
161
161
 
162
- ### puppeteer-core v22 注意事项
162
+ ## 实战经验补充
163
+
164
+ ### wujie 微前端诊断要点
165
+
166
+ 1. **子应用渲染在 blob URL iframe 中**,puppeteer 的 `page.frames()` 可以访问
167
+ 2. **iframe 内的 console 监听**:不要用 `frame.page().on()`(puppeteer-core 无此方法),改用 `page.on('console')` + `msg.frame().url()` 判断来源
168
+ 3. **生产环境 console 被屏蔽**:代码中 `console.log = () => {}` 导致 0 条消息。需提前注入 `localStorage.setItem('showConsoleLog', 'true')`
169
+ 4. **pageerror 事件是关键**:未捕获的 JS 异常不会出现在 console 中,必须监听 `page.on('pageerror')`
170
+ 5. **API 404/403 检查**:刷新页面后监听 `page.on('response')`,过滤 `resourceType === 'xhr'` 检查后端接口状态
171
+
172
+ ### 常见诊断流程
173
+
174
+ ```
175
+ 1. --action list-pages 确认目标页面存在
176
+ 2. --action diagnose 全面诊断(JS错误 + 网络 + 资源 + iframe)
177
+ 3. --action api-check 专门检查 API 请求(含 iframe 内的请求)
178
+ 4. 根据结果定位问题
179
+ ```
180
+
181
+ ### puppeteer-core 注意事项
182
+ - **连接时必须设 `defaultViewport: null`**,否则浏览器窗口会被强制缩放到指定尺寸:
183
+ ```js
184
+ // 正确:保持浏览器原始窗口大小
185
+ puppeteer.connect({ browserURL: 'http://localhost:9222', defaultViewport: null })
186
+ // 错误:会把浏览器视口改成 1440x900
187
+ puppeteer.connect({ browserURL: '...', defaultViewport: { width: 1440, height: 900 } })
188
+ ```
163
189
  - `page.$x()` 已移除,用 `evaluate` + `querySelectorAll` 替代
164
190
  - SVG 元素的 `className` 是 `SVGAnimatedString` 对象而非字符串,需先检查 `typeof`
165
191
  - 所有 `evaluate` 调用内部使用 `safeEval` 包装,自动处理 context destroyed 错误
166
192
 
167
193
  ## 执行命令
168
194
 
195
+ ### 快速诊断(最常用)
196
+ ```bash
197
+ NODE_PATH=~/.szcd-mcp/deps/node_modules node {skill_path}/local-browser-executor.cjs \
198
+ --action diagnose \
199
+ --url-contains "platform.aicityos.com" \
200
+ --wait 15000 \
201
+ --output-dir /tmp/browser-test-diagnose
202
+ ```
203
+
204
+ ### 列出所有标签页
205
+ ```bash
206
+ NODE_PATH=~/.szcd-mcp/deps/node_modules node {skill_path}/local-browser-executor.cjs \
207
+ --action list-pages
208
+ ```
209
+
210
+ ### 检查 API 请求状态
211
+ ```bash
212
+ NODE_PATH=~/.szcd-mcp/deps/node_modules node {skill_path}/local-browser-executor.cjs \
213
+ --action api-check \
214
+ --url-contains "platform.aicityos.com" \
215
+ --wait 15000
216
+ ```
217
+
218
+ ### 截图
169
219
  ```bash
170
- node {client_install_path}/local-browser-executor.js \
171
- --plan '<测试计划JSON>' \
172
- --output /tmp/browser-test-result.json \
173
- --base-url http://localhost:8088
220
+ NODE_PATH=~/.szcd-mcp/deps/node_modules node {skill_path}/local-browser-executor.cjs \
221
+ --action screenshot \
222
+ --url-contains "platform.aicityos.com" \
223
+ --filename current-page.png \
224
+ --output-dir /tmp/browser-test
174
225
  ```
175
226
 
176
- 也支持从文件读取计划:
227
+ ### 执行测试计划 JSON
177
228
  ```bash
178
- node {client_install_path}/local-browser-executor.js \
229
+ NODE_PATH=~/.szcd-mcp/deps/node_modules node {skill_path}/local-browser-executor.cjs \
230
+ --action plan \
179
231
  --plan-file /tmp/test-plan.json \
180
- --output /tmp/browser-test-result.json \
181
- --base-url http://localhost:8088
232
+ --output /tmp/browser-test-result.json
182
233
  ```
183
234
 
184
235
  ### 可选参数
185
236
 
186
- - `--cdp-url http://localhost:9223`:指定非默认的 CDP 端口
187
- - `--page-url http://xxx/page`:connect 模式下指定目标页面
237
+ - `--cdp-url http://localhost:9222`:CDP 地址(默认 9222)
238
+ - `--url <url>`:目标页面 URL(不存在则导航)
239
+ - `--url-contains <keyword>`:按关键词查找已打开的页面
240
+ - `--wait <ms>`:额外等待时间(默认 5000ms,微前端建议 15000)
241
+ - `--output <path>`:JSON 结果输出路径
242
+ - `--output-dir <dir>`:截图/产物目录
243
+ - `--filename <name>`:截图文件名
244
+ - `--full-page`:全页截图
188
245
 
189
246
  ## AI 语义断言(aiAssert)
190
247
 
@@ -216,7 +273,7 @@ node {client_install_path}/local-browser-executor.js \
216
273
  - 后续所有项目共享复用,无需重复安装
217
274
  - 如果自动安装失败,引导用户手动执行:
218
275
  ```bash
219
- cd ~/.szcd-mcp/deps && npm install puppeteer-core pixelmatch pngjs sharp --registry=https://npmmirror.com
276
+ cd ~/.szcd-mcp/deps && npm install puppeteer-core pixelmatch pngjs sharp --registry=https://registry.npmmirror.com
220
277
  ```
221
278
 
222
279
  ## 结果解读