create-vela-workflow 1.0.0
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 +136 -0
- package/bin/cli.js +188 -0
- package/docs/ai-workflow-tutorial.md +462 -0
- package/docs/official-site-tutorial.md +391 -0
- package/package.json +34 -0
- package/templates/.github/HARNESS-ENGINEERING-GUIDE.md +407 -0
- package/templates/.github/agents/vela-knowledge.agent.md +45 -0
- package/templates/.github/agents/vela-s1-prd.agent.md +69 -0
- package/templates/.github/agents/vela-s2-tech.agent.md +66 -0
- package/templates/.github/agents/vela-s3-coding.agent.md +301 -0
- package/templates/.github/agents/vela-workflow.agent.md +110 -0
- package/templates/.github/copilot-instructions.md +64 -0
- package/templates/.github/prompts/vela-apis.prompt.md +98 -0
- package/templates/.github/prompts/vela-best-practices.prompt.md +93 -0
- package/templates/.github/prompts/vela-components.prompt.md +118 -0
- package/templates/.github/prompts/vela-dev-guide.prompt.md +622 -0
- package/templates/.github/rules/project-init.md +45 -0
- package/templates/.github/rules/vela-coding-convention.md +324 -0
- package/templates/.github/rules/vela-css.md +217 -0
- package/templates/.github/rules/vela-design-driven.md +306 -0
- package/templates/.github/rules/vela-figma-mcp.md +198 -0
- package/templates/.github/rules/vela-format.md +119 -0
- package/templates/.github/rules/vela-layout.md +67 -0
- package/templates/.github/rules/vela-platform.md +46 -0
- package/templates/.github/rules/vela-quality.md +109 -0
- package/templates/.kiro/hooks/figma-design-check.kiro.hook +14 -0
- package/templates/.kiro/hooks/post-coding-validation.kiro.hook +13 -0
- package/templates/.kiro/hooks/validate-ux-files.kiro.hook +16 -0
- package/templates/.kiro/settings/mcp.json +7 -0
- package/templates/.kiro/skills/vela-js-app/SKILL.md +1072 -0
- package/templates/.kiro/steering/workflow-conventions.md +110 -0
- package/templates/.workflow/resource-paths.json +62 -0
- package/templates/.workflow/scripts/.gitkeep +0 -0
- package/templates/.workflow/scripts/checkpoint_manager.js +284 -0
- package/templates/.workflow/scripts/context_loader.js +841 -0
- package/templates/.workflow/scripts/figma_export.js +346 -0
- package/templates/.workflow/scripts/session_manager.js +438 -0
- package/templates/.workflow/stages/.gitkeep +0 -0
- package/templates/.workflow/stages/commands.md +171 -0
- package/templates/.workflow/stages/s1_prd.md +286 -0
- package/templates/.workflow/stages/s2_tech_design.md +302 -0
- package/templates/.workflow/stages/s3_coding.md +699 -0
- package/templates/.workflow/stages/s4_simulator.md +259 -0
- package/templates/.workflow/workflow-config.json +46 -0
- package/templates/.workflow/workflow_starter.md +912 -0
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
# S4: 模拟器调试
|
|
2
|
+
|
|
3
|
+
**⚠️ 重要:仅对 S4 模拟器调试阶段执行。**
|
|
4
|
+
|
|
5
|
+
S4 阶段的目标是在 S3 代码生成完成后,使用 VelaJS MCP 自动打开模拟器运行快应用,通过截图、DOM 树、日志等方式验证应用运行效果,并根据发现的问题自动修复代码。
|
|
6
|
+
|
|
7
|
+
> **VelaJS MCP 简介**:VelaJS MCP 为 AI 提供了接触 VelaJS 运行时的能力,包括开启调试、截图、点击交互、查看 DOM 树、抓 log 等,使 AI 可以像人类工程师一样通过查看应用的 UI 界面、点击交互、调试 log 信息等方式进行调试。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 阶段概要
|
|
12
|
+
|
|
13
|
+
| 属性 | 值 |
|
|
14
|
+
|------|-----|
|
|
15
|
+
| 阶段 ID | S4 |
|
|
16
|
+
| 阶段名称 | 模拟器调试 |
|
|
17
|
+
| 依赖工具 | VelaJS MCP(由 AIoT IDE 插件内置提供) |
|
|
18
|
+
| 前置条件 | S3 已完成(代码已写入项目工程目录) |
|
|
19
|
+
| 产出物 | 调试报告(可选)+ 修复后的代码 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 执行步骤
|
|
24
|
+
|
|
25
|
+
### Step 1: 前置校验与用户确认
|
|
26
|
+
|
|
27
|
+
S3 完成后,询问用户是否进入模拟器调试阶段。
|
|
28
|
+
|
|
29
|
+
**1.1 检查 S3 完成状态**
|
|
30
|
+
|
|
31
|
+
```javascript
|
|
32
|
+
const session = resumeSession(sessionId)
|
|
33
|
+
const s3Status = session.stages.S3.status
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
若 S3 未完成,阻止执行:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
❌ 无法进入 S4 模拟器调试阶段
|
|
40
|
+
S3 功能研发尚未完成(当前状态: {s3Status})
|
|
41
|
+
请先完成 S3 阶段后再进入 S4。
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**1.2 询问用户是否启动模拟器调试**
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
🚀 S3 功能研发已完成,是否自动打开模拟器运行快应用?
|
|
48
|
+
|
|
49
|
+
VelaJS MCP 可以帮你:
|
|
50
|
+
• 🖥️ 自动启动模拟器并加载应用
|
|
51
|
+
• 📸 截取应用 UI 截图进行视觉检查
|
|
52
|
+
• 🔍 查看 DOM 树结构验证页面布局
|
|
53
|
+
• 📋 抓取运行日志排查错误
|
|
54
|
+
• 👆 模拟点击交互验证功能逻辑
|
|
55
|
+
• 🔧 发现问题后自动修复代码
|
|
56
|
+
|
|
57
|
+
❓ 请选择:
|
|
58
|
+
[y] 启动模拟器调试 — 使用 VelaJS MCP 自动运行和调试应用
|
|
59
|
+
[s] 跳过 — 跳过模拟器调试,直接完成工作流
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
- 用户输入 `y` → 继续 Step 2
|
|
63
|
+
- 用户输入 `s` → 将 S4 状态标记为 `skipped`,直接输出工作流完成总结
|
|
64
|
+
|
|
65
|
+
**1.3 检测 VelaJS MCP 可用性**
|
|
66
|
+
|
|
67
|
+
检查当前环境中 VelaJS MCP 工具是否已注册可用。
|
|
68
|
+
|
|
69
|
+
> VelaJS MCP 由 AIoT IDE 插件内置提供,插件安装后会自动在项目根目录下写入 mcp.json 配置。
|
|
70
|
+
|
|
71
|
+
| 情况 | 处理方式 |
|
|
72
|
+
|------|---------|
|
|
73
|
+
| VelaJS MCP 工具可用 | ✅ 继续 Step 2 |
|
|
74
|
+
| VelaJS MCP 工具不可用 | ⚠️ 提示用户安装 AIoT IDE 插件 |
|
|
75
|
+
|
|
76
|
+
若 MCP 不可用:
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
⚠️ 未检测到 VelaJS MCP 工具
|
|
80
|
+
|
|
81
|
+
VelaJS MCP 需要安装 AIoT IDE 插件才能使用。请按以下步骤操作:
|
|
82
|
+
1. 安装 aiot-core 插件(aiot-core-1.7.20-beta.8.vsix)
|
|
83
|
+
2. 安装 aiot-emulator 插件(aiot-emulator-1.7.20-beta.8.vsix)
|
|
84
|
+
3. 安装 aiot-devtools 插件(vela.aiot-devtools-1.7.12.vsix)
|
|
85
|
+
4. 重启 IDE 后重新进入 S4 阶段
|
|
86
|
+
|
|
87
|
+
📖 详细说明: https://mi.feishu.cn/wiki/Nhlownm9UiMQs3kH263cfkStn5g
|
|
88
|
+
|
|
89
|
+
❓ 请选择:
|
|
90
|
+
[r] 已安装,重试检测
|
|
91
|
+
[s] 跳过模拟器调试
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**1.4 更新 Session 状态**
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
updateStageStatus(sessionId, 'S4', 'in_progress')
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
### Step 2: 启动模拟器
|
|
103
|
+
|
|
104
|
+
使用 VelaJS MCP 启动模拟器并加载项目。
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
🖥️ 正在启动模拟器...
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**2.1 使用 VelaJS MCP 开始调试**
|
|
111
|
+
|
|
112
|
+
通过 VelaJS MCP 工具启动模拟器调试会话。提示词格式:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
使用 velajs mcp 开始调试项目
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
若用户在 Session 中指定了屏幕规格,可以指定对应的模拟器:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
使用 velajs mcp 开始调试项目选择 {screen_width}x{screen_height} 模拟器
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
**2.2 等待模拟器就绪**
|
|
125
|
+
|
|
126
|
+
等待 VelaJS MCP 返回模拟器启动成功的信号。
|
|
127
|
+
|
|
128
|
+
| 情况 | 处理方式 |
|
|
129
|
+
|------|---------|
|
|
130
|
+
| 模拟器启动成功 | ✅ 继续 Step 3 |
|
|
131
|
+
| 模拟器启动失败 | ⚠️ 提示错误信息,提供 [r] 重试 / [s] 跳过 选项 |
|
|
132
|
+
| 启动超时(>30s) | ⚠️ 提示超时,提供 [r] 重试 / [s] 跳过 选项 |
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
✅ 模拟器已启动
|
|
136
|
+
📱 模拟器: {simulator_name}
|
|
137
|
+
📂 项目: {project_path}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
### Step 3: 自动化调试循环
|
|
143
|
+
|
|
144
|
+
模拟器启动后,进入自动化调试循环,通过截图、DOM 树、日志等方式检查应用运行状态。
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
🔍 正在进行自动化调试检查...
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**3.1 截取应用 UI 截图**
|
|
151
|
+
|
|
152
|
+
使用 VelaJS MCP 截取当前应用界面截图,进行视觉检查:
|
|
153
|
+
|
|
154
|
+
- 检查页面布局是否符合设计规格
|
|
155
|
+
- 检查文字是否正常显示(无溢出、截断)
|
|
156
|
+
- 检查图标/图片是否正确加载
|
|
157
|
+
- 检查圆屏裁切区域是否有内容被遮挡
|
|
158
|
+
|
|
159
|
+
**3.2 查看 DOM 树**
|
|
160
|
+
|
|
161
|
+
使用 VelaJS MCP 获取当前页面的 DOM 树结构:
|
|
162
|
+
|
|
163
|
+
- 验证组件层级是否与技术方案一致
|
|
164
|
+
- 检查 list/list-item 结构是否正确
|
|
165
|
+
- 检查数据绑定是否生效
|
|
166
|
+
|
|
167
|
+
**3.3 抓取运行日志**
|
|
168
|
+
|
|
169
|
+
使用 VelaJS MCP 获取应用运行日志:
|
|
170
|
+
|
|
171
|
+
- 检查是否有 JS 错误或异常
|
|
172
|
+
- 检查 API 调用是否正常
|
|
173
|
+
- 检查生命周期钩子是否按预期触发
|
|
174
|
+
|
|
175
|
+
**3.4 模拟交互测试**
|
|
176
|
+
|
|
177
|
+
使用 VelaJS MCP 模拟用户交互:
|
|
178
|
+
|
|
179
|
+
- 点击按钮验证事件响应
|
|
180
|
+
- 滑动列表验证滚动行为
|
|
181
|
+
- 页面跳转验证路由导航
|
|
182
|
+
|
|
183
|
+
**3.5 问题诊断与自动修复**
|
|
184
|
+
|
|
185
|
+
若在上述检查中发现问题:
|
|
186
|
+
|
|
187
|
+
1. 分析问题原因(UI 布局错误、JS 逻辑错误、样式问题等)
|
|
188
|
+
2. 自动修改项目工程目录中的代码文件
|
|
189
|
+
3. 使用 VelaJS MCP 重新加载应用
|
|
190
|
+
4. 再次截图验证修复效果
|
|
191
|
+
5. 重复直到所有检查通过或达到最大修复轮次(5 轮)
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
🔧 发现 {issue_count} 个问题,正在自动修复...
|
|
195
|
+
❌ {issue_1_description}
|
|
196
|
+
❌ {issue_2_description}
|
|
197
|
+
|
|
198
|
+
🔄 修复轮次: {round}/{max_rounds}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
### Step 4: 调试结果展示
|
|
204
|
+
|
|
205
|
+
调试完成后,展示调试结果摘要。
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
📋 模拟器调试结果:
|
|
209
|
+
📱 模拟器: {simulator_name}
|
|
210
|
+
📸 截图检查: {pass/fail}
|
|
211
|
+
🔍 DOM 结构: {pass/fail}
|
|
212
|
+
📋 运行日志: {error_count} 个错误
|
|
213
|
+
👆 交互测试: {pass_count}/{total_count} 通过
|
|
214
|
+
🔧 自动修复: {fix_count} 个问题已修复
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
### Step 5: Checkpoint 交互
|
|
220
|
+
|
|
221
|
+
```
|
|
222
|
+
❓ 请选择操作:
|
|
223
|
+
[y] 确认 — 调试通过,标记 S4 完成,工作流结束
|
|
224
|
+
[e] 继续调试 — 提供额外的调试指令或修改意见
|
|
225
|
+
[n] 重新调试 — 重新启动模拟器从头调试
|
|
226
|
+
|
|
227
|
+
⏳ 等待您的输入...
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
| 命令 | 处理逻辑 |
|
|
231
|
+
|------|---------|
|
|
232
|
+
| `y` | `updateStageStatus(sessionId, 'S4', 'completed')`,工作流完成 |
|
|
233
|
+
| `e` | 接收用户的调试指令,继续使用 VelaJS MCP 进行针对性调试 |
|
|
234
|
+
| `n` | 重新启动模拟器,返回 Step 2 |
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## 推荐模型说明
|
|
239
|
+
|
|
240
|
+
由于 VelaJS MCP 可提供应用 UI 截图,推荐使用有图像理解能力的 AI 大模型(如 Claude、Gemini、GPT-5 等)以获得最佳的视觉检查效果。
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 使用的工具
|
|
245
|
+
|
|
246
|
+
| 工具 | 来源 | 用途 |
|
|
247
|
+
|------|------|------|
|
|
248
|
+
| VelaJS MCP | AIoT IDE 插件内置 | 启动模拟器、截图、DOM 树、日志、交互模拟 |
|
|
249
|
+
| `updateStageStatus` | `session_manager.js` | 更新阶段状态 |
|
|
250
|
+
| `resumeSession` | `session_manager.js` | 恢复 Session |
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## 文件引用
|
|
255
|
+
|
|
256
|
+
| 文件 | 用途 |
|
|
257
|
+
|------|------|
|
|
258
|
+
| `.workflow/stages/commands.md` | 快捷命令处理逻辑 |
|
|
259
|
+
| `.workflow/scripts/session_manager.js` | Session 管理器 |
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.0",
|
|
3
|
+
"name": "Vela 快应用自动开发工作流",
|
|
4
|
+
"stages": {
|
|
5
|
+
"S1": {
|
|
6
|
+
"name": "PRD 生成",
|
|
7
|
+
"skill": "prd/generate",
|
|
8
|
+
"output_template": "01-prd.md",
|
|
9
|
+
"next_stage": "S2",
|
|
10
|
+
"prerequisites": [],
|
|
11
|
+
"inputs": ["figma_export", "requirement_description"]
|
|
12
|
+
},
|
|
13
|
+
"S2": {
|
|
14
|
+
"name": "技术方案",
|
|
15
|
+
"skill": "tech/design",
|
|
16
|
+
"output_template": "02-tech-design.md",
|
|
17
|
+
"next_stage": "S3",
|
|
18
|
+
"prerequisites": ["S1"],
|
|
19
|
+
"inputs": ["01-prd.md"]
|
|
20
|
+
},
|
|
21
|
+
"S3": {
|
|
22
|
+
"name": "功能研发",
|
|
23
|
+
"skill": "coding/implement",
|
|
24
|
+
"output_template": "03-code/",
|
|
25
|
+
"next_stage": "S4",
|
|
26
|
+
"prerequisites": ["S2"],
|
|
27
|
+
"inputs": ["01-prd.md", "02-tech-design.md", "figma_export"]
|
|
28
|
+
},
|
|
29
|
+
"S4": {
|
|
30
|
+
"name": "模拟器调试",
|
|
31
|
+
"skill": "simulator/debug",
|
|
32
|
+
"output_template": null,
|
|
33
|
+
"next_stage": null,
|
|
34
|
+
"prerequisites": ["S3"],
|
|
35
|
+
"inputs": ["01-prd.md", "02-tech-design.md"]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"commands": {
|
|
39
|
+
"y": "确认通过",
|
|
40
|
+
"e": "编辑修改",
|
|
41
|
+
"n": "放弃重新生成",
|
|
42
|
+
"q": "退出保存进度",
|
|
43
|
+
"status": "查看进度",
|
|
44
|
+
"back": "返回上一阶段"
|
|
45
|
+
}
|
|
46
|
+
}
|