openmatrix 0.2.6 → 0.2.8
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/dist/agents/agent-runner.js +0 -1
- package/dist/cli/commands/analyze.js +8 -7
- package/dist/cli/commands/approve.js +24 -23
- package/dist/cli/commands/brainstorm.d.ts +115 -0
- package/dist/cli/commands/brainstorm.js +358 -255
- package/dist/cli/commands/check.d.ts +25 -0
- package/dist/cli/commands/check.js +69 -44
- package/dist/cli/commands/install-skills.js +4 -4
- package/dist/cli/commands/report.d.ts +23 -0
- package/dist/cli/commands/report.js +1 -0
- package/dist/cli/commands/status.d.ts +8 -0
- package/dist/cli/commands/status.js +19 -18
- package/dist/orchestrator/phase-executor.js +21 -0
- package/dist/orchestrator/upgrade-detector.js +32 -12
- package/dist/storage/file-store.js +6 -3
- package/dist/utils/logger.d.ts +4 -4
- package/package.json +1 -1
- package/skills/auto.md +3 -1
- package/skills/debug.md +451 -425
- package/skills/feature.md +415 -0
- package/skills/om.md +32 -17
- package/skills/openmatrix.md +11 -2
- package/skills/start.md +40 -2
package/skills/debug.md
CHANGED
|
@@ -1,425 +1,451 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:debug
|
|
3
|
-
description: 系统化调试 - 遇到任何 bug、测试失败或异常行为时使用,在提出修复方案之前执行
|
|
4
|
-
priority: high
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<NO-OTHER-SKILLS>
|
|
8
|
-
**绝对禁止**调用以下技能:
|
|
9
|
-
- ❌ superpowers:systematic-debugging → 你已经在 om:debug 中了
|
|
10
|
-
- ❌ superpowers:* → 全部被 OpenMatrix 替代
|
|
11
|
-
- ❌ gsd:* → 全部被 OpenMatrix 替代
|
|
12
|
-
- ❌ 任何其他任务编排相关的技能
|
|
13
|
-
|
|
14
|
-
**诊断和修复阶段只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
|
|
15
|
-
</NO-OTHER-SKILLS>
|
|
16
|
-
|
|
17
|
-
<MANDATORY-EXECUTION-ORDER>
|
|
18
|
-
## 执行顺序 - 必须严格按此顺序,不得跳过
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
Step 1: 接收问题描述(参数、指定任务、或询问用户)
|
|
22
|
-
Step 2: 调用 CLI: openmatrix debug 初始化会话
|
|
23
|
-
Step 3: 第一阶段:根因调查(Explore Agent)
|
|
24
|
-
Step 4: 第二阶段:模式分析(Explore Agent)
|
|
25
|
-
Step 5: 展示诊断报告 + 修复建议
|
|
26
|
-
|
|
27
|
-
Step
|
|
28
|
-
|
|
29
|
-
Step
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
</
|
|
38
|
-
|
|
39
|
-
<
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
###
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
##
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
###
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
###
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
##
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
${
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
```
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
1
|
+
---
|
|
2
|
+
name: om:debug
|
|
3
|
+
description: 系统化调试 - 遇到任何 bug、测试失败或异常行为时使用,在提出修复方案之前执行
|
|
4
|
+
priority: high
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<NO-OTHER-SKILLS>
|
|
8
|
+
**绝对禁止**调用以下技能:
|
|
9
|
+
- ❌ superpowers:systematic-debugging → 你已经在 om:debug 中了
|
|
10
|
+
- ❌ superpowers:* → 全部被 OpenMatrix 替代
|
|
11
|
+
- ❌ gsd:* → 全部被 OpenMatrix 替代
|
|
12
|
+
- ❌ 任何其他任务编排相关的技能
|
|
13
|
+
|
|
14
|
+
**诊断和修复阶段只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
|
|
15
|
+
</NO-OTHER-SKILLS>
|
|
16
|
+
|
|
17
|
+
<MANDATORY-EXECUTION-ORDER>
|
|
18
|
+
## 执行顺序 - 必须严格按此顺序,不得跳过
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Step 1: 接收问题描述(参数、指定任务、或询问用户)
|
|
22
|
+
Step 2: 调用 CLI: openmatrix debug 初始化会话
|
|
23
|
+
Step 3: 第一阶段:根因调查(Explore Agent)
|
|
24
|
+
Step 4: 第二阶段:模式分析(Explore Agent)
|
|
25
|
+
Step 5: 展示诊断报告 + 修复建议
|
|
26
|
+
⛔ 调查阶段结束,必须等待用户确认
|
|
27
|
+
Step 6: AskUserQuestion 是否需要修复
|
|
28
|
+
↓ 用户确认"需要修复"
|
|
29
|
+
Step 7: AskUserQuestion 选择修复策略
|
|
30
|
+
Step 8: 实施修复(Agent)
|
|
31
|
+
Step 9: 验证修复结果
|
|
32
|
+
Step 10: 写入 Debug Report 并展示
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
**铁律:不做根因调查,不许提修复方案**
|
|
36
|
+
**铁律:调查完成后必须询问用户是否修复,不得自动进入修复流程**
|
|
37
|
+
</MANDATORY-EXECUTION-ORDER>
|
|
38
|
+
|
|
39
|
+
<objective>
|
|
40
|
+
系统化调试 - 通过四阶段流程诊断和修复问题。不依赖任务流程,可独立使用。
|
|
41
|
+
</objective>
|
|
42
|
+
|
|
43
|
+
<process>
|
|
44
|
+
|
|
45
|
+
## Step 1: 接收问题
|
|
46
|
+
|
|
47
|
+
**检查 `$ARGUMENTS`:**
|
|
48
|
+
|
|
49
|
+
| 参数 | 处理方式 |
|
|
50
|
+
|------|---------|
|
|
51
|
+
| `--task TASK-XXX` | 读取指定失败任务 |
|
|
52
|
+
| `<问题描述>` | 直接使用描述 |
|
|
53
|
+
| 空 | 询问用户问题描述 |
|
|
54
|
+
|
|
55
|
+
**如果是空参数,询问:**
|
|
56
|
+
|
|
57
|
+
AskUserQuestion: `header: "问题描述"`, `multiSelect: false`
|
|
58
|
+
**question:** 请描述你遇到的问题
|
|
59
|
+
|
|
60
|
+
| label | description |
|
|
61
|
+
|-------|-------------|
|
|
62
|
+
| 描述问题 | 输入自由文本描述 |
|
|
63
|
+
| 选择失败任务 | 从当前失败任务中选择 |
|
|
64
|
+
| 取消 | 退出调试模式 |
|
|
65
|
+
|
|
66
|
+
**如果有失败任务(检查 .openmatrix/state.json):**
|
|
67
|
+
```bash
|
|
68
|
+
cat .openmatrix/state.json 2>/dev/null | grep -o '"failed":[0-9]*'
|
|
69
|
+
```
|
|
70
|
+
如果 `statistics.failed > 0`,读取 `.openmatrix/tasks/` 目录找到 failed 任务并展示。
|
|
71
|
+
|
|
72
|
+
## Step 2: 调用 CLI 初始化
|
|
73
|
+
|
|
74
|
+
**带任务 ID:**
|
|
75
|
+
```bash
|
|
76
|
+
openmatrix debug --task TASK-XXX --json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
**带描述:**
|
|
80
|
+
```bash
|
|
81
|
+
openmatrix debug "问题描述" --json
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
CLI 返回:
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"sessionId": "DEBUG-xxx",
|
|
88
|
+
"status": "diagnosing",
|
|
89
|
+
"problemType": "task_failure",
|
|
90
|
+
"report": {
|
|
91
|
+
"description": "...",
|
|
92
|
+
"relatedTaskId": "TASK-003",
|
|
93
|
+
"relatedFiles": ["src/xxx.ts"]
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
从返回结果中读取 `sessionId`,后续步骤使用此 ID。
|
|
99
|
+
|
|
100
|
+
## Step 3: 第一阶段 - 根因调查
|
|
101
|
+
|
|
102
|
+
**调用 Explore Agent:**
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
Agent({
|
|
106
|
+
subagent_type: "Explore",
|
|
107
|
+
description: "根因调查 - 第一阶段",
|
|
108
|
+
prompt: `你是调试专家。正在进行系统化调试的第一阶段:根因调查。
|
|
109
|
+
|
|
110
|
+
**铁律:在找到根因之前,不要提出任何修复方案。**
|
|
111
|
+
|
|
112
|
+
## 问题信息
|
|
113
|
+
- 问题类型: ${problemType}
|
|
114
|
+
- 问题描述: ${description}
|
|
115
|
+
${relatedTaskId ? `- 关联任务: ${relatedTaskId}` : ''}
|
|
116
|
+
|
|
117
|
+
## 任务
|
|
118
|
+
1. 仔细阅读所有错误信息(不要跳过任何警告或错误)
|
|
119
|
+
2. 收集相关文件和日志
|
|
120
|
+
3. 检查近期代码变更(git diff、最近提交)
|
|
121
|
+
4. 如果有多个组件,追踪数据流,找到断裂点
|
|
122
|
+
5. 定位问题根源
|
|
123
|
+
|
|
124
|
+
## 输出格式
|
|
125
|
+
请按以下格式输出:
|
|
126
|
+
|
|
127
|
+
### 错误信息
|
|
128
|
+
- 错误类型: ...
|
|
129
|
+
- 错误位置: 文件:行号
|
|
130
|
+
- 错误详情: ...
|
|
131
|
+
|
|
132
|
+
### 复现步骤
|
|
133
|
+
1. ...
|
|
134
|
+
|
|
135
|
+
### 近期变更
|
|
136
|
+
- 提交1: 描述
|
|
137
|
+
- 提交2: 描述
|
|
138
|
+
|
|
139
|
+
### 根因分析
|
|
140
|
+
[详细描述问题根源]
|
|
141
|
+
|
|
142
|
+
### 影响范围
|
|
143
|
+
- 文件1
|
|
144
|
+
- 文件2
|
|
145
|
+
|
|
146
|
+
## 禁止行为
|
|
147
|
+
❌ 提出修复方案
|
|
148
|
+
❌ 修改任何文件
|
|
149
|
+
❌ 做出未经证实的假设`,
|
|
150
|
+
run_in_background: false
|
|
151
|
+
})
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## Step 4: 第二阶段 - 模式分析
|
|
155
|
+
|
|
156
|
+
**调用 Explore Agent:**
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
Agent({
|
|
160
|
+
subagent_type: "Explore",
|
|
161
|
+
description: "模式分析 - 第二阶段",
|
|
162
|
+
prompt: `继续进行系统化调试的第二阶段:模式分析。
|
|
163
|
+
|
|
164
|
+
## 第一阶段发现
|
|
165
|
+
|
|
166
|
+
${第一阶段根因调查的完整输出}
|
|
167
|
+
|
|
168
|
+
## 任务
|
|
169
|
+
1. 在代码库中找到类似的、正常工作的代码
|
|
170
|
+
2. 对比正常代码和异常代码的差异
|
|
171
|
+
3. 列出所有差异点(无论多小)
|
|
172
|
+
4. 理解功能依赖关系和隐含假设
|
|
173
|
+
|
|
174
|
+
## 输出格式
|
|
175
|
+
|
|
176
|
+
### 正常示例
|
|
177
|
+
- 文件: path:line
|
|
178
|
+
- 说明: 为什么这段代码能正常工作
|
|
179
|
+
|
|
180
|
+
### 差异点
|
|
181
|
+
1. 差异1: 正常代码 vs 异常代码
|
|
182
|
+
2. 差异2: ...
|
|
183
|
+
|
|
184
|
+
### 依赖关系
|
|
185
|
+
- 需要哪些前置条件
|
|
186
|
+
- 有哪些隐含假设`,
|
|
187
|
+
run_in_background: false
|
|
188
|
+
})
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## Step 5: 展示诊断报告
|
|
192
|
+
|
|
193
|
+
**第一阶段和第二阶段完成后,展示诊断报告:**
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
🔍 诊断报告
|
|
197
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
198
|
+
|
|
199
|
+
问题类型: xxx
|
|
200
|
+
|
|
201
|
+
根因分析
|
|
202
|
+
[来自第一阶段调查的根因描述]
|
|
203
|
+
|
|
204
|
+
正常示例
|
|
205
|
+
文件: path:line
|
|
206
|
+
说明: ...
|
|
207
|
+
|
|
208
|
+
差异点
|
|
209
|
+
1. ...
|
|
210
|
+
2. ...
|
|
211
|
+
|
|
212
|
+
影响范围
|
|
213
|
+
- 文件1
|
|
214
|
+
- 文件2
|
|
215
|
+
|
|
216
|
+
修复建议
|
|
217
|
+
[基于差异分析的具体修复建议]
|
|
218
|
+
|
|
219
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Step 6: 确认是否修复
|
|
223
|
+
|
|
224
|
+
**⛔ 调查阶段结束,必须在此暂停等待用户确认。不得跳过此步骤自动进入修复。**
|
|
225
|
+
|
|
226
|
+
AskUserQuestion: `header: "是否修复"`, `multiSelect: false`
|
|
227
|
+
**question:** 调查已完成,是否需要修复?
|
|
228
|
+
|
|
229
|
+
| label | description |
|
|
230
|
+
|-------|-------------|
|
|
231
|
+
| 需要修复 | 选择修复策略并执行 |
|
|
232
|
+
| 仅查看报告 | 不修复,仅输出诊断报告后结束 |
|
|
233
|
+
| 继续深入调查 | 根因不够清晰,继续调查 |
|
|
234
|
+
|
|
235
|
+
**用户选择 "继续深入调查"** → 回到 Step 3,带着新信息重新调查。
|
|
236
|
+
**用户选择 "仅查看报告"** → 跳到 Step 10,输出诊断报告后结束。
|
|
237
|
+
|
|
238
|
+
## Step 7: 选择修复策略
|
|
239
|
+
|
|
240
|
+
**仅在用户选择"需要修复"后执行此步骤。**
|
|
241
|
+
|
|
242
|
+
AskUserQuestion: `header: "修复策略"`, `multiSelect: false`
|
|
243
|
+
**question:** 选择修复策略?
|
|
244
|
+
|
|
245
|
+
| label | description |
|
|
246
|
+
|-------|-------------|
|
|
247
|
+
| 自动修复 (推荐) | 调用 Agent 执行修复 |
|
|
248
|
+
| 手动修复 | 仅展示具体修复建议,用户自行修改 |
|
|
249
|
+
|
|
250
|
+
## Step 8: 实施修复
|
|
251
|
+
|
|
252
|
+
**如果用户选择自动修复:**
|
|
253
|
+
|
|
254
|
+
**修复前安全检查(必须执行):**
|
|
255
|
+
```bash
|
|
256
|
+
git status --porcelain
|
|
257
|
+
git log --oneline -5
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
Agent({
|
|
262
|
+
subagent_type: "general-purpose",
|
|
263
|
+
description: "实施 bug 修复",
|
|
264
|
+
prompt: `根据诊断报告执行修复。
|
|
265
|
+
|
|
266
|
+
## 铁律
|
|
267
|
+
1. 只实施单一修复(不要做额外改动)
|
|
268
|
+
2. 每次只改一个变量
|
|
269
|
+
3. 不在诊断不清的情况下盲目尝试
|
|
270
|
+
4. 不做"顺便"的重构
|
|
271
|
+
|
|
272
|
+
## 诊断报告
|
|
273
|
+
${诊断报告全文}
|
|
274
|
+
|
|
275
|
+
## 修复建议
|
|
276
|
+
${suggestedFix}
|
|
277
|
+
|
|
278
|
+
## 任务
|
|
279
|
+
1. 根据修复建议实施修改
|
|
280
|
+
2. 确保修改范围最小化
|
|
281
|
+
3. 完成后输出修改了哪些文件和具体改动
|
|
282
|
+
|
|
283
|
+
## 禁止行为
|
|
284
|
+
❌ 修改与修复无关的文件
|
|
285
|
+
❌ 进行额外的重构
|
|
286
|
+
❌ 同时修复多个问题`,
|
|
287
|
+
run_in_background: false
|
|
288
|
+
})
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Agent 完成后:**
|
|
292
|
+
1. 检查 Git 状态
|
|
293
|
+
2. 提交修复(如果文件有变更)
|
|
294
|
+
3. 进入 Step 9 验证
|
|
295
|
+
|
|
296
|
+
## Step 9: 验证修复
|
|
297
|
+
|
|
298
|
+
**根据问题类型选择验证方式:**
|
|
299
|
+
|
|
300
|
+
| 问题类型 | 验证方式 |
|
|
301
|
+
|---------|---------|
|
|
302
|
+
| task_failure | 重新运行失败任务或相关测试 |
|
|
303
|
+
| project_bug | 运行相关测试或构建 |
|
|
304
|
+
| system_bug | 验证 CLI 功能 |
|
|
305
|
+
| environment | 检查依赖安装状态 |
|
|
306
|
+
|
|
307
|
+
**任务失败:**
|
|
308
|
+
```bash
|
|
309
|
+
# 运行相关测试
|
|
310
|
+
npm test -- --run 2>&1 | tail -20
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**项目 bug:**
|
|
314
|
+
```bash
|
|
315
|
+
npm run build 2>&1 | tail -10
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
**环境:**
|
|
319
|
+
```bash
|
|
320
|
+
npm ls --depth=0 2>&1 | tail -20
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
**验证结果判断:**
|
|
324
|
+
- 测试全通过 / 构建成功 → 验证通过
|
|
325
|
+
- 仍有失败 / 构建失败 → 验证未通过
|
|
326
|
+
|
|
327
|
+
AskUserQuestion: `header: "验证结果"`, `multiSelect: false`
|
|
328
|
+
**question:** 修复验证通过了吗?
|
|
329
|
+
|
|
330
|
+
| label | description |
|
|
331
|
+
|-------|-------------|
|
|
332
|
+
| 通过 | 修复成功,记录报告 |
|
|
333
|
+
| 未通过 | 修复未生效,重新分析 |
|
|
334
|
+
| 部分通过 | 部分修复,继续诊断 |
|
|
335
|
+
|
|
336
|
+
**如果验证未通过:**
|
|
337
|
+
- 重试计数 +1
|
|
338
|
+
- **< 3 次** → 回到 Step 3(带着新信息重新分析)
|
|
339
|
+
- **>= 3 次** → 输出"已尝试 3 次以上修复,建议暂停并质疑架构",进入 Step 10
|
|
340
|
+
|
|
341
|
+
## Step 10: 写入 Debug Report
|
|
342
|
+
|
|
343
|
+
完成调试会话:
|
|
344
|
+
```bash
|
|
345
|
+
openmatrix debug --list
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**生成诊断报告文件(在界面输出):**
|
|
349
|
+
|
|
350
|
+
```markdown
|
|
351
|
+
# Debug Report
|
|
352
|
+
|
|
353
|
+
**会话 ID**: ${sessionId}
|
|
354
|
+
**日期**: ${timestamp}
|
|
355
|
+
**状态**: ${status}
|
|
356
|
+
|
|
357
|
+
## 问题描述
|
|
358
|
+
${description}
|
|
359
|
+
|
|
360
|
+
## 问题类型
|
|
361
|
+
${problemType}
|
|
362
|
+
|
|
363
|
+
## 诊断结果
|
|
364
|
+
### 根因
|
|
365
|
+
${rootCause}
|
|
366
|
+
|
|
367
|
+
### 影响范围
|
|
368
|
+
${impactScope}
|
|
369
|
+
|
|
370
|
+
## 修复操作
|
|
371
|
+
${operations}
|
|
372
|
+
|
|
373
|
+
## 验证结果
|
|
374
|
+
${verifyResult}
|
|
375
|
+
|
|
376
|
+
## 经验教训
|
|
377
|
+
${lessons}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
**Git 提交修复(如果有文件变更):**
|
|
381
|
+
```bash
|
|
382
|
+
git status --porcelain
|
|
383
|
+
# 如果有未提交文件:
|
|
384
|
+
git add -A && git commit -m "$(cat <<'EOF'
|
|
385
|
+
fix: 修复 bug - 问题描述
|
|
386
|
+
|
|
387
|
+
根因: ...
|
|
388
|
+
修复: ...
|
|
389
|
+
|
|
390
|
+
影响范围: ...
|
|
391
|
+
文件改动: ...
|
|
392
|
+
|
|
393
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
394
|
+
EOF
|
|
395
|
+
)"
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
</process>
|
|
399
|
+
|
|
400
|
+
<arguments>
|
|
401
|
+
$ARGUMENTS
|
|
402
|
+
</arguments>
|
|
403
|
+
|
|
404
|
+
<examples>
|
|
405
|
+
/om:debug # 交互式调试
|
|
406
|
+
/om:debug --task TASK-003 # 调试指定失败任务
|
|
407
|
+
/om:debug "API 返回 500 错误" # 带问题描述调试
|
|
408
|
+
</examples>
|
|
409
|
+
|
|
410
|
+
<notes>
|
|
411
|
+
## 四阶段流程
|
|
412
|
+
|
|
413
|
+
```
|
|
414
|
+
Step 1: 接收问题
|
|
415
|
+
↓
|
|
416
|
+
Step 2: CLI 初始化会话
|
|
417
|
+
↓
|
|
418
|
+
Step 3: 第一阶段 - 根因调查(只读)
|
|
419
|
+
↓
|
|
420
|
+
Step 4: 第二阶段 - 模式分析(只读)
|
|
421
|
+
↓
|
|
422
|
+
Step 5: 展示诊断报告 + 修复建议
|
|
423
|
+
↓
|
|
424
|
+
⛔ 调查阶段结束 — 必须等待用户确认
|
|
425
|
+
↓
|
|
426
|
+
Step 6: AskUserQuestion 是否需要修复
|
|
427
|
+
├─ "仅查看报告" → Step 10 输出报告
|
|
428
|
+
├─ "继续深入调查" → 回到 Step 3
|
|
429
|
+
└─ "需要修复" ↓
|
|
430
|
+
Step 7: AskUserQuestion 选择修复策略
|
|
431
|
+
↓
|
|
432
|
+
Step 8: 实施修复
|
|
433
|
+
↓
|
|
434
|
+
Step 9: 验证修复结果
|
|
435
|
+
├─ 未通过 (< 3次) → 回到 Step 3
|
|
436
|
+
├─ 未通过 (>= 3次) → Step 10
|
|
437
|
+
└─ 通过 ↓
|
|
438
|
+
Step 10: 写入 Debug Report
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
## 铁律
|
|
442
|
+
|
|
443
|
+
**不做根因调查,不许提修复方案**
|
|
444
|
+
|
|
445
|
+
## 红线
|
|
446
|
+
|
|
447
|
+
- 3 次修复失败 → 暂停,质疑架构
|
|
448
|
+
- 不修改未关联的文件
|
|
449
|
+
- 单一修复原则
|
|
450
|
+
- 修复前必须有验证方法
|
|
451
|
+
</notes>
|