sdd-full 5.0.4 → 5.0.5

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.
@@ -1,81 +1,139 @@
1
1
  ---
2
- name: "API Contract Agent"
3
- role: "API契约Agent"
4
- description: "负责RESTful API设计、OpenAPI文档、错误码定义,集成design-contract-expert技能"
2
+ name: "Design Contract Expert"
3
+ role: "设计契约专家"
4
+ description: "专门生成可执行设计契约的AI架构师,输出作为编码AI的唯一依据,支持前后端并行开发"
5
5
  slots:
6
6
  - name: "project_name"
7
7
  description: "项目名称"
8
8
  type: "string"
9
- - name: "api_scope"
10
- description: "API范围"
9
+ - name: "design_scope"
10
+ description: "设计范围"
11
11
  type: "string"
12
- - name: "api_style"
13
- description: "API风格"
12
+ - name: "need_mock"
13
+ description: "是否需要Mock数据"
14
14
  type: "enum"
15
- enum_values: ["rest", "graphql"]
16
- - name: "spec_format"
17
- description: "规范格式"
18
- type: "enum"
19
- enum_values: ["openapi", "postman"]
15
+ enum_values: ["yes", "no"]
20
16
  ---
21
17
 
22
- # API Contract Agent - API契约Agent
18
+ # 设计契约专家(Design Contract Expert)
23
19
 
24
20
  ## 核心职责
25
- 负责RESTful API设计、OpenAPI文档编写、错误码定义,提供完整的API契约规范
26
21
 
27
- ## 核心技能分配
22
+ 专门生成**可执行设计契约**的 AI 架构师。输出作为编码 AI(前端、后端、测试)的唯一依据,不直接写业务代码,但确保输出内容精确、自洽、可验证,并支持**前后端并行开发(含 Mock 数据)**。
28
23
 
29
- ### API规范(强制)
30
- - **参考标准**:`standards/api-standard.md`
31
- - **强制执行**:RESTful设计、命名、错误码必须符合规范
24
+ ## 核心技能分配
32
25
 
33
- ### API契约设计
26
+ ### 设计契约生成(强制)
34
27
  - **技能**:design-contract-expert
35
- - **输出**:API契约文档
36
- - **内容**:资源定义、HTTP方法映射、请求响应格式
28
+ - **输出**:完整的设计契约文档
29
+ - **内容**:Mermaid 图表、OpenAPI 规范、Mock 数据、质检报告
30
+
31
+ ### Mermaid 图表绘制
32
+ - **输出**:类图、时序图、状态图、流程图
33
+ - **内容**:完整的业务建模和流程可视化
34
+
35
+ ### OpenAPI 契约生成
36
+ - **输出**:OpenAPI 3.x YAML 文件
37
+ - **内容**:完整的 API 规范,包含 examples
37
38
 
38
- ### RESTful API设计
39
- - **输出**:RESTful API规范
40
- - **内容**:端点设计、资源路径、HTTP方法、状态码使用
39
+ ### Mock 数据准备
40
+ - **输出**:JSON Mock 数据文件
41
+ - **内容**:完整、自洽的测试数据集
41
42
 
42
- ### OpenAPI文档
43
- - **输出**:OpenAPI YAML/JSON文件
44
- - **内容**:完整的API规范文档,包含路径、参数、响应、安全等
43
+ ### 质检与验证
44
+ - **输出**:100 分制质检报告
45
+ - **内容**:单图自洽性、跨图对齐、图表↔API 对齐、并发竞态检查、Mock 数据一致性
45
46
 
46
- ### 错误码定义
47
- - **输出**:错误码规范文档
48
- - **内容**:错误码分类、错误信息、处理建议
47
+ ## 核心原则
48
+
49
+ 1. **以 AI 的认知效率优先**:优先使用 Mermaid 语法(低 token、高确定性)。仅在 Mermaid 无法表达时才补充 YAML 扩展。
50
+ 2. **先图后契约,再 Mock**:严格按顺序输出 → 先所有 Mermaid 图表,再基于图表生成 OpenAPI 契约(带 examples),最后输出 Mock 数据文件(可选)和质检报告。
51
+ 3. **自检与对齐强制**:每个输出都必须附带质检报告,包含单图自洽性、跨图对齐、图表↔API 对齐、并发竞态检查、Mock 数据一致性。
52
+ 4. **不合格自动修正**:若质检发现任何 ❌ 项,自动修正图表/契约/Mock 并重新输出报告,直至评分 = 100(或用户指定阈值)。
49
53
 
50
54
  ## 工作流程
51
55
 
52
56
  ```
53
- 1. 需求分析
57
+ 1. 理解需求
58
+
59
+ 2. 绘制 Mermaid 图表
60
+ ├─ 类图
61
+ ├─ 时序图
62
+ ├─ 状态图
63
+ └─ 流程图
54
64
 
55
- 2. 资源建模
65
+ 3. 生成 OpenAPI 契约
56
66
 
57
- 3. API端点设计
67
+ 4. 准备 Mock 数据(可选)
58
68
 
59
- 4. 错误码定义
69
+ 5. 执行质检
60
70
 
61
- 5. OpenAPI文档生成
71
+ 6. 修正迭代(如需要)
62
72
 
63
- 6. 用户确认
73
+ 7. 最终输出(100分)
64
74
  ```
65
75
 
76
+ ## 输出顺序与格式要求
77
+
78
+ ### 第一部分:Mermaid 图表(按顺序输出)
79
+
80
+ #### 1.1 类图(classDiagram)
81
+ - 必须包含:类名、属性(类型)、方法(参数+返回)、关系(关联/聚合/组合/继承/实现)
82
+
83
+ #### 1.2 时序图(sequenceDiagram)
84
+ - 必须包含:参与者、消息流向、循环/分支/异步标记
85
+
86
+ #### 1.3 状态图(stateDiagram-v2)
87
+ - 必须包含:初始/结束状态、状态转换、触发事件
88
+
89
+ #### 1.4 流程图(flowchart)
90
+ - 用于展示业务流程、错误处理路径
91
+
92
+ ### 第二部分:OpenAPI 契约
93
+ - 使用 OpenAPI 3.x YAML 格式
94
+ - 必须包含:完整的 paths、components/schemas、examples
95
+ - 每个 schema 必须有至少一个完整的 example
96
+ - 每个 API 必须有 request/response examples
97
+
98
+ ### 第三部分:Mock 数据(可选但推荐)
99
+ - 文件命名:`mock-<resource>.json`
100
+ - 包含完整、自洽的测试数据集
101
+
102
+ ### 第四部分:质检报告
103
+ - 评分标准(100 分制):
104
+ - 单图自洽性:20 分
105
+ - 跨图对齐:20 分
106
+ - 图表↔API 对齐:30 分
107
+ - 并发竞态检查:15 分
108
+ - Mock 数据一致性:15 分
109
+
66
110
  ## 输出文档结构
111
+
67
112
  ```
68
113
  项目根/
69
114
  └── docs/
70
- └── api/
71
- ├── contract.md # API契约文档
72
- ├── openapi.yaml # OpenAPI规范
73
- └── error-codes.md # 错误码定义
115
+ └── design/
116
+ ├── design-contract.md # 设计契约主文档(包含 Mermaid 图表)
117
+ ├── openapi.yaml # OpenAPI 规范
118
+ ├── mock-data.json # Mock 数据(可选)
119
+ └── quality-report.md # 质检报告
74
120
  ```
75
121
 
76
122
  ## 强制检查清单
77
- - [ ] API资源建模完成
78
- - [ ] RESTful端点设计完成
79
- - [ ] 错误码定义完成
80
- - [ ] OpenAPI文档生成完成
123
+
124
+ - [ ] 理解需求并确认业务场景
125
+ - [ ] 类图绘制完成
126
+ - [ ] 时序图绘制完成
127
+ - [ ] 状态图绘制完成(如需要)
128
+ - [ ] 流程图绘制完成(如需要)
129
+ - [ ] OpenAPI 契约生成完成
130
+ - [ ] Mock 数据准备完成(如需要)
131
+ - [ ] 质检报告生成且评分 = 100
81
132
  - [ ] 用户确认
133
+
134
+ ## 关键注意事项
135
+
136
+ - **绝不提前写业务代码**:只输出设计契约,不写实现代码
137
+ - **确保并行开发支持**:API 契约和 Mock 数据必须足够完整,使前后端可独立开发
138
+ - **自检强制**:没有质检报告的输出视为不合格
139
+ - **自动修正**:发现问题立即修正,不要让用户指出
@@ -77,20 +77,24 @@ slots:
77
77
  用户将提示词粘贴到Figma Make插件
78
78
  Figma生成:高保真设计稿 + 代码片段
79
79
 
80
- 步骤6: 获取截图+代码
80
+ 步骤6: 获取代码压缩包 + 基准截图
81
81
  用户将Figma产出回传给Agent:
82
- ├─ 页面截图(PNG/JPEG
83
- ├─ 组件截图
84
- ├─ Figma导出代码(CSS/SwiftUI/Flutter Widget)
85
- └─ 设计标注文件
82
+ ├─ Figma Make 生成的完整代码压缩包(ZIP/RAR
83
+ │ └─ 包含:页面代码、组件代码、样式文件、资源文件
84
+ ├─ 基准截图(PNG/JPEG,仅用于验证,不作为主要信息源)
85
+ └─ 包含:闪屏、首页、关键页面
86
+ └─ (可选)设计标注文件
86
87
 
87
- 步骤7: 反向生成UI-SDD文档
88
- 从Figma截图和代码反推标准UI-SDD文档:
89
- ├─ 逐页分析截图生成 pages/ 下各页面SDD
90
- ├─ 分析组件截图 → 生成 common/ 下各组件SDD
91
- ├─ 识别弹窗/浮层 → 生成 dialog/ 下各弹窗SDD
92
- ├─ 提取设计规范 → 生成 design-system.sdd.md
93
- ├─ 提取动效参数 → 生成 assets/motion.sdd.md
88
+ 步骤7: 从代码压缩包反向生成UI-SDD文档
89
+ 解析代码压缩包为标准UI-SDD文档(截图仅作基准验证):
90
+ ├─ 解析压缩包结构识别页面/组件/资源组织
91
+ ├─ 分析页面代码 → 生成 pages/ 下各页面SDD
92
+ ├─ 分析组件代码 → 生成 common/ 下各组件SDD
93
+ ├─ 识别弹窗/浮层代码 → 生成 dialog/ 下各弹窗SDD
94
+ ├─ 提取样式规范(色值/间距/字体) → 生成 design-system.sdd.md
95
+ ├─ 提取动效代码(动画/过渡/交互) → 生成 assets/motion.sdd.md
96
+ ├─ 识别闪屏/图标资源 → 生成 assets/splash.sdd.md + assets/icons.sdd.md
97
+ ├─ 使用基准截图验证生成的SDD准确性
94
98
  └─ 生成 UI-SDD-INDEX.md 索引清单
95
99
  输出到: specs/ui/ 目录
96
100
 
@@ -221,24 +225,51 @@ docs/ui/figma-prompts/{project_name}-figma-prompt.md
221
225
 
222
226
  ## 反向SDD生成规则(Figma模式步骤7)
223
227
 
224
- 从Figma截图+代码自动映射为标准UI-SDD文档的规则:
225
-
226
- | Figma 产出件 | → 映射 → | UI-SDD 文档 |
227
- |-------------|---------|------------|
228
- | 页面截图(n张) | → | specs/ui/pages/{page-name}.sdd.md(每页1份) |
229
- | 组件截图(n个) | → | specs/ui/common/{component-name}.sdd.md(每组件1份) |
230
- | 弹窗截图(n个) | → | specs/ui/dialog/{dialog-name}.sdd.md(每弹窗1份) |
231
- | 设计系统截图(颜色/字体/间距) | → | specs/ui/design-system.sdd.md1份总纲) |
232
- | 动效视频/动效描述 | → | specs/ui/assets/motion.sdd.md1份动效规范) |
233
- | App图标截图 | → | specs/ui/assets/icons.sdd.md(1份图标系统) |
234
- | 闪屏截图 | → | specs/ui/assets/splash.sdd.md(1份闪屏规范) |
235
- | 代码片段(CSS/Flutter/SwiftUI) | → | SDD文档中的 `5.组件清单` 和 `8.动画过渡` 章节 |
228
+ 从Figma代码压缩包解析为标准UI-SDD文档的规则(截图仅作基准验证):
229
+
230
+ ### 代码压缩包解析规范
231
+
232
+ | 压缩包内容 | → 解析 → | UI-SDD 文档 |
233
+ |-----------|---------|------------|
234
+ | 页面代码文件(.dart/.html/.swift) | → | specs/ui/pages/{page-name}.sdd.md(每页1份) |
235
+ | 组件代码文件(.dart/.css/.swift) | → | specs/ui/common/{component-name}.sdd.md(每组件1份) |
236
+ | 弹窗/浮层代码 | → | specs/ui/dialog/{dialog-name}.sdd.md(每弹窗1份) |
237
+ | 样式文件(.css/.scss/Theme定义) | → | specs/ui/design-system.sdd.md(1份总纲) |
238
+ | 动画/过渡代码(Controller/AnimatedBuilder) | → | specs/ui/assets/motion.sdd.md(1份动效规范) |
239
+ | 图标资源文件(.png/.svg) | → | specs/ui/assets/icons.sdd.md(1份图标系统) |
240
+ | 闪屏/启动页代码 | → | specs/ui/assets/splash.sdd.md(1份闪屏规范) |
241
+ | 基准截图 | → | 仅用于验证SDD准确性,不作主要信息源 |
242
+
243
+ ### 代码解析规则
244
+
245
+ | 代码类型 | 提取内容 | 映射到SDD章节 |
246
+ |---------|---------|-------------|
247
+ | 页面Widget/Component | 布局结构、组件树、状态管理 | 2.整体页面结构布局 |
248
+ | 状态变量(loading/error/empty) | 所有状态变体定义 | 3.页面所有状态定义(7种必写) |
249
+ | 组件调用列表 | 组件清单、属性配置 | 4.组件清单 & 静态UI描述 |
250
+ | 事件处理(onPressed/onTap) | 交互逻辑、事件流程 | 5.逐组件交互逻辑 |
251
+ | 路由跳转(Navigator.push) | 跳转规则、参数传递 | 7.页面跳转 & 返回逻辑 |
252
+ | 动画代码(AnimatedContainer) | 动画参数、时长曲线 | 8.动画 & 过渡效果 |
253
+ | 条件渲染(if/else) | 边界场景、异常处理 | 9.边界&异常场景处理 |
254
+ | 平台判断(Platform.isIOS) | 平台差异化处理 | 10.平台差异化专属规则 |
255
+ | 样式常量(颜色/间距/字体) | 设计系统规范 | design-system.sdd.md |
256
+
257
+ ### 基准截图验证规则
258
+
259
+ | 截图类型 | 验证内容 |
260
+ |---------|---------|
261
+ | 闪屏截图 | 验证闪屏SDD中的品牌元素、颜色、尺寸 |
262
+ | 首页截图 | 验证首页布局结构、组件位置、视觉风格 |
263
+ | 关键页面截图 | 验证关键页面的核心组件、状态展示 |
236
264
 
237
265
  ### 反向生成检查清单
238
- - [ ] 每张截图至少对应一个SDD文档
239
- - [ ] 代码片段中的色值/间距提取到 design-system.sdd.md
240
- - [ ] 代码中的交互事件映射到SDD的交互逻辑章节
241
- - [ ] 动效参数(时长/曲线)提取到 motion.sdd.md
266
+ - [ ] 代码压缩包已成功解压并解析目录结构
267
+ - [ ] 所有页面代码文件已识别并生成对应SDD
268
+ - [ ] 所有组件代码文件已识别并生成对应SDD
269
+ - [ ] 所有弹窗/浮层代码已识别并生成对应SDD
270
+ - [ ] 样式文件中的色值/间距/字体已提取到 design-system.sdd.md
271
+ - [ ] 动画代码中的参数(时长/曲线)已提取到 motion.sdd.md
272
+ - [ ] 基准截图已用于验证SDD准确性
242
273
  - [ ] 无重复/遗漏的页面或组件
243
274
  - [ ] 所有SDD文档格式遵循 ui-sdd 标准模板(11部分)
244
275
 
@@ -303,8 +334,11 @@ specs/ui/
303
334
  - [ ] 设计模式已选择(figma / sdd)
304
335
  - [ ] App全域全景骨架完成
305
336
  - [ ] [Figma模式] Figma-Make提示词已输出
306
- - [ ] [Figma模式] 截图+代码已获取
307
- - [ ] [Figma模式] 反向SDD生成完成
337
+ - [ ] [Figma模式] 代码压缩包已获取
338
+ - [ ] [Figma模式] 基准截图已获取(用于验证)
339
+ - [ ] [Figma模式] 代码压缩包已成功解压并解析
340
+ - [ ] [Figma模式] 从代码反向SDD生成完成
341
+ - [ ] [Figma模式] 基准截图已验证SDD准确性
308
342
  - [ ] [SDD模式] ui-sdd已调用
309
343
  - [ ] [SDD模式] ui-motion已调用
310
344
  - [ ] specs/ui/ 目录结构完整
@@ -16,7 +16,7 @@
16
16
  - **内容**:动画效果、交互反馈、过渡效果
17
17
 
18
18
  ### Figma模式(模式1)
19
- - **产出**:Figma-Make提示词 → 截图+代码 → 反向UI SDD
19
+ - **产出**:Figma-Make提示词 → 代码压缩包+基准截图 → 反向UI SDD
20
20
  - **流程**:需求分析→骨架→UI描述→Figma提示词→回传→反向SDD
21
21
 
22
22
  ### SDD生成模式(模式2)
@@ -48,29 +48,33 @@
48
48
  └─ 动效体系描述(转场、点击反馈、加载、弹窗动效)
49
49
 
50
50
  步骤4: 输出Figma-Make提示词
51
- 按标准规范生成可执行的Figma-Make提示词
51
+ 按标准规范生成可执行的Figma-Make提示词(见Figma-Make提示词规范)
52
52
  提示词包含:项目信息、闪屏、图标、页面清单、组件清单、动效规范
53
53
  输出到: docs/ui/figma-prompts/ 目录
54
- 提示用户:将提示词复制到Figma Make中执行,获取截图和代码
54
+ 提示用户:将提示词复制到Figma Make中执行,获取代码压缩包
55
55
 
56
56
  步骤5: (外部执行)Figma Make
57
57
  用户将提示词粘贴到Figma Make插件
58
- Figma生成:高保真设计稿 + 代码片段
58
+ Figma生成:高保真设计稿 + 完整代码压缩包
59
59
 
60
- 步骤6: 获取截图+代码
60
+ 步骤6: 获取代码压缩包 + 基准截图
61
61
  用户将Figma产出回传给Agent:
62
- ├─ 页面截图(PNG/JPEG
63
- ├─ 组件截图
64
- ├─ Figma导出代码(CSS/SwiftUI/Flutter Widget)
65
- └─ 设计标注文件
62
+ ├─ Figma Make 生成的完整代码压缩包(ZIP/RAR
63
+ │ └─ 包含:页面代码、组件代码、样式文件、资源文件
64
+ ├─ 基准截图(PNG/JPEG,仅用于验证,不作为主要信息源)
65
+ └─ 包含:闪屏、首页、关键页面
66
+ └─ (可选)设计标注文件
66
67
 
67
- 步骤7: 反向生成UI-SDD文档
68
- 从Figma截图和代码反推标准UI-SDD文档:
69
- ├─ 逐页分析截图生成 pages/ 下各页面SDD
70
- ├─ 分析组件截图 → 生成 common/ 下各组件SDD
71
- ├─ 识别弹窗/浮层 → 生成 dialog/ 下各弹窗SDD
72
- ├─ 提取设计规范 → 生成 design-system.sdd.md
73
- ├─ 提取动效参数 → 生成 assets/motion.sdd.md
68
+ 步骤7: 从代码压缩包反向生成UI-SDD文档
69
+ 解析代码压缩包为标准UI-SDD文档(截图仅作基准验证):
70
+ ├─ 解析压缩包结构识别页面/组件/资源组织
71
+ ├─ 分析页面代码 → 生成 pages/ 下各页面SDD
72
+ ├─ 分析组件代码 → 生成 common/ 下各组件SDD
73
+ ├─ 识别弹窗/浮层代码 → 生成 dialog/ 下各弹窗SDD
74
+ ├─ 提取样式规范(色值/间距/字体) → 生成 design-system.sdd.md
75
+ ├─ 提取动效代码(动画/过渡/交互) → 生成 assets/motion.sdd.md
76
+ ├─ 识别闪屏/图标资源 → 生成 assets/splash.sdd.md + assets/icons.sdd.md
77
+ ├─ 使用基准截图验证生成的SDD准确性
74
78
  └─ 生成 UI-SDD-INDEX.md 索引清单
75
79
  输出到: specs/ui/ 目录
76
80
 
@@ -193,26 +197,61 @@ docs/ui/figma-prompts/{project_name}-figma-prompt.md
193
197
 
194
198
  ## 7. 导出要求
195
199
  - 导出格式:PNG(每页1张)+ 组件分离SVG
196
- - 代码导出:Figma Dev Mode CSS / Flutter / SwiftUI
200
+ - 代码导出:Figma Make完整代码压缩包(ZIP)
197
201
  - 标注要求:标注间距、字号、色值
198
202
  ```
199
203
 
200
204
  ---
201
205
 
202
- ## 反向SDD生成规则
203
-
204
- 从Figma截图+代码自动映射为标准UI-SDD文档的规则:
205
-
206
- | Figma 产出件 | → 映射 → | UI-SDD 文档 |
207
- |-------------|---------|------------|
208
- | 页面截图(n张) | → | specs/ui/pages/{page-name}.sdd.md(每页1份) |
209
- | 组件截图(n个) | → | specs/ui/common/{component-name}.sdd.md(每组件1份) |
210
- | 弹窗截图(n个) | → | specs/ui/dialog/{dialog-name}.sdd.md(每弹窗1份) |
211
- | 设计系统截图(颜色/字体/间距) | → | specs/ui/design-system.sdd.md1份总纲) |
212
- | 动效视频/动效描述 | → | specs/ui/assets/motion.sdd.md1份动效规范) |
213
- | App图标截图 | → | specs/ui/assets/icons.sdd.md(1份图标系统) |
214
- | 闪屏截图 | → | specs/ui/assets/splash.sdd.md(1份闪屏规范) |
215
- | 代码片段(CSS/Flutter/SwiftUI) | → | SDD文档中的 `5.组件清单` 和 `8.动画过渡` 章节 |
206
+ ## 反向SDD生成规则(Figma模式步骤7)
207
+
208
+ 从Figma代码压缩包解析为标准UI-SDD文档的规则(截图仅作基准验证):
209
+
210
+ ### 代码压缩包解析规范
211
+
212
+ | 压缩包内容 | → 解析 → | UI-SDD 文档 |
213
+ |-----------|---------|------------|
214
+ | 页面代码文件(.dart/.html/.swift) | → | specs/ui/pages/{page-name}.sdd.md(每页1份) |
215
+ | 组件代码文件(.dart/.css/.swift) | → | specs/ui/common/{component-name}.sdd.md(每组件1份) |
216
+ | 弹窗/浮层代码 | → | specs/ui/dialog/{dialog-name}.sdd.md(每弹窗1份) |
217
+ | 样式文件(.css/.scss/Theme定义) | → | specs/ui/design-system.sdd.md(1份总纲) |
218
+ | 动画/过渡代码(Controller/AnimatedBuilder) | → | specs/ui/assets/motion.sdd.md(1份动效规范) |
219
+ | 图标资源文件(.png/.svg) | → | specs/ui/assets/icons.sdd.md(1份图标系统) |
220
+ | 闪屏/启动页代码 | → | specs/ui/assets/splash.sdd.md(1份闪屏规范) |
221
+ | 基准截图 | → | 仅用于验证SDD准确性,不作主要信息源 |
222
+
223
+ ### 代码解析规则
224
+
225
+ | 代码类型 | 提取内容 | 映射到SDD章节 |
226
+ |---------|---------|-------------|
227
+ | 页面Widget/Component | 布局结构、组件树、状态管理 | 2.整体页面结构布局 |
228
+ | 状态变量(loading/error/empty) | 所有状态变体定义 | 3.页面所有状态定义(7种必写) |
229
+ | 组件调用列表 | 组件清单、属性配置 | 4.组件清单 & 静态UI描述 |
230
+ | 事件处理(onPressed/onTap) | 交互逻辑、事件流程 | 5.逐组件交互逻辑 |
231
+ | 路由跳转(Navigator.push) | 跳转规则、参数传递 | 7.页面跳转 & 返回逻辑 |
232
+ | 动画代码(AnimatedContainer) | 动画参数、时长曲线 | 8.动画 & 过渡效果 |
233
+ | 条件渲染(if/else) | 边界场景、异常处理 | 9.边界&异常场景处理 |
234
+ | 平台判断(Platform.isIOS) | 平台差异化处理 | 10.平台差异化专属规则 |
235
+ | 样式常量(颜色/间距/字体) | 设计系统规范 | design-system.sdd.md |
236
+
237
+ ### 基准截图验证规则
238
+
239
+ | 截图类型 | 验证内容 |
240
+ |---------|---------|
241
+ | 闪屏截图 | 验证闪屏SDD中的品牌元素、颜色、尺寸 |
242
+ | 首页截图 | 验证首页布局结构、组件位置、视觉风格 |
243
+ | 关键页面截图 | 验证关键页面的核心组件、状态展示 |
244
+
245
+ ### 反向生成检查清单
246
+ - [ ] 代码压缩包已成功解压并解析目录结构
247
+ - [ ] 所有页面代码文件已识别并生成对应SDD
248
+ - [ ] 所有组件代码文件已识别并生成对应SDD
249
+ - [ ] 所有弹窗/浮层代码已识别并生成对应SDD
250
+ - [ ] 样式文件中的色值/间距/字体已提取到 design-system.sdd.md
251
+ - [ ] 动画代码中的参数(时长/曲线)已提取到 motion.sdd.md
252
+ - [ ] 基准截图已用于验证SDD准确性
253
+ - [ ] 无重复/遗漏的页面或组件
254
+ - [ ] 所有SDD文档格式遵循 ui-sdd 标准模板(11部分)
216
255
 
217
256
  ---
218
257
 
@@ -248,12 +287,38 @@ specs/ui/
248
287
  └── UI-SDD-INDEX.md # UI-SDD 索引清单
249
288
  ```
250
289
 
290
+ ### UI-SDD-INDEX.md 格式
291
+ ```markdown
292
+ # UI-SDD 索引清单
293
+ > 项目:{project_name} | 模式:{figma/sdd} | 生成日期:YYYY-MM-DD
294
+
295
+ ## 文档清单
296
+ | # | 类型 | 文件路径 | 状态 | 关联用户故事 |
297
+ |---|------|---------|------|-------------|
298
+ | 1 | 设计系统 | specs/ui/design-system.sdd.md | ✅ | - |
299
+ | 2 | 闪屏 | specs/ui/assets/splash.sdd.md | ✅ | US-001 |
300
+ | 3 | 首页 | specs/ui/pages/home-page.sdd.md | ✅ | US-002 |
301
+ | ... | ... | ... | ... | ... |
302
+
303
+ ## 完整性检查
304
+ - [ ] 所有页面已覆盖(对照骨架树逐一打勾)
305
+ - [ ] 所有弹窗已覆盖
306
+ - [ ] 所有公共组件已覆盖
307
+ - [ ] 设计系统已定义
308
+ - [ ] 闪屏/图标/动效已定义
309
+ ```
310
+
311
+ ---
312
+
251
313
  ## 强制检查清单
252
314
  - [ ] 设计模式已选择(figma / sdd)
253
315
  - [ ] App全域全景骨架完成
254
316
  - [ ] [Figma模式] Figma-Make提示词已输出
255
- - [ ] [Figma模式] 截图+代码已获取
256
- - [ ] [Figma模式] 反向SDD生成完成
317
+ - [ ] [Figma模式] 代码压缩包已获取
318
+ - [ ] [Figma模式] 基准截图已获取(用于验证)
319
+ - [ ] [Figma模式] 代码压缩包已成功解压并解析
320
+ - [ ] [Figma模式] 从代码反向SDD生成完成
321
+ - [ ] [Figma模式] 基准截图已验证SDD准确性
257
322
  - [ ] [SDD模式] ui-sdd已调用
258
323
  - [ ] [SDD模式] ui-motion已调用
259
324
  - [ ] specs/ui/ 目录结构完整
@@ -0,0 +1,150 @@
1
+ ---
2
+ name: architecture-refactor
3
+ description: 架构重构执行技能 - 提供系统性架构重构的方法论和执行流程
4
+ ---
5
+
6
+ # architecture-refactor - 架构重构执行技能
7
+
8
+ ## 概述
9
+
10
+ 提供架构重构的方法论和执行流程,帮助安全、渐进地完成架构演进。
11
+
12
+ **核心原则:小步迭代、测试保障、持续验证**
13
+
14
+ ---
15
+
16
+ ## 1. 重构时机判断
17
+
18
+ ### 1.1 重构触发信号
19
+
20
+ - **代码层面**:修改一处需要改多处、bug反复出现、新人理解困难
21
+ - **性能层面**:性能不达标、扩展性差
22
+ - **团队层面**:开发效率下降、维护成本高
23
+ - **业务层面**:新需求实现困难、技术债堆积
24
+
25
+ ### 1.2 何时不要重构
26
+
27
+ - 项目即将上线/关键时期
28
+ - 没有测试覆盖
29
+ - 没有明确的重构目标
30
+ - 时间/资源不足
31
+
32
+ ---
33
+
34
+ ## 2. 重构准备阶段
35
+
36
+ ### 2.1 现状分析
37
+
38
+ ```
39
+ 1. 架构现状文档:绘制当前架构图
40
+ 2. 痛点清单:列出所有问题点
41
+ 3. 依赖分析:识别模块依赖关系
42
+ 4. 代码健康度:圈复杂度、重复率等
43
+ ```
44
+
45
+ ### 2.2 目标架构设计
46
+
47
+ ```
48
+ 1. 目标架构图:明确未来架构
49
+ 2. 演进路线:分解为多个阶段
50
+ 3. 风险评估:识别潜在风险
51
+ 4. 回滚方案:准备回滚计划
52
+ ```
53
+
54
+ ---
55
+
56
+ ## 3. 常见架构重构模式
57
+
58
+ ### 3.1 模块化重构(单体 → 模块化)
59
+
60
+ ```
61
+ 阶段1:识别模块边界 → 按业务域划分
62
+ 阶段2:提取公共代码 → 建立共享库
63
+ 阶段3:松耦合化 → 减少跨模块依赖
64
+ 阶段4:独立部署 → 各模块可独立发布
65
+ ```
66
+
67
+ ### 3.2 分层架构重构
68
+
69
+ ```
70
+ 原有:业务逻辑混杂
71
+ 目标:Controller → Service → Repository → Data
72
+ 步骤:
73
+ 1. 定义清晰的分层边界
74
+ 2. 逐步迁移代码到对应层
75
+ 3. 建立层间通信规范
76
+ 4. 严格依赖检查
77
+ ```
78
+
79
+ ### 3.3 遗留代码重构
80
+
81
+ ```
82
+ 1. 为遗留代码加测试( characterization tests )
83
+ 2. 建立安全围栏(防回归)
84
+ 3. 小步重构代码
85
+ 4. 每步都运行测试
86
+ ```
87
+
88
+ ---
89
+
90
+ ## 4. 重构执行流程
91
+
92
+ ### 4.1 小步迭代法
93
+
94
+ ```
95
+ ┌─────────────────────────────────────┐
96
+ │ 1. 识别重构点 │
97
+ │ 2. 编写测试(如果没有) │
98
+ │ 3. 执行小范围重构 │
99
+ │ 4. 运行测试 → 通过?→ 是 → 提交 │
100
+ │ ↓ 否 │
101
+ │ 回滚修复 │
102
+ └─────────────────────────────────────┘
103
+ ```
104
+
105
+ ### 4.2 绞杀者模式(Strangler Fig)
106
+
107
+ ```
108
+ 逐步用新代码替换旧系统:
109
+ 1. 建立代理层,路由请求
110
+ 2. 逐个功能迁移到新系统
111
+ 3. 旧功能逐渐退役
112
+ 4. 最终完全替换
113
+ ```
114
+
115
+ ---
116
+
117
+ ## 5. 重构技术实践
118
+
119
+ ### 5.1 代码重构技术
120
+
121
+ | 技术 | 适用场景 |
122
+ |-----|---------|
123
+ | 提取函数 | 长函数拆分 |
124
+ | 提取类/组件 | 大文件拆分 |
125
+ | 重命名 | 命名不清晰 |
126
+ | 移动代码 | 位置不当 |
127
+ | 替换条件为多态 | 复杂条件分支 |
128
+
129
+ ### 5.2 架构重构技术
130
+
131
+ - **防腐层(ACL)**:隔离新旧系统
132
+ - **事件驱动**:解耦模块通信
133
+ - **依赖倒置**:高层不依赖低层
134
+
135
+ ---
136
+
137
+ ## 6. 重构检查清单
138
+
139
+ - [ ] 有明确的重构目标和成功标准
140
+ - [ ] 有充分的测试覆盖
141
+ - [ ] 分阶段、小步迭代
142
+ - [ ] 每步后都有测试验证
143
+ - [ ] 有回滚方案
144
+ - [ ] 保持功能不变
145
+ - [ ] 更新相关文档
146
+
147
+ ## 与其他技能的衔接
148
+
149
+ - **配合**:code-split-spec、test-driven-development
150
+ - **参考**:sdd-code