openmatrix 0.2.24 → 0.2.25
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/cli/commands/start.js +16 -15
- package/dist/orchestrator/task-planner.d.ts +5 -104
- package/dist/orchestrator/task-planner.js +99 -799
- package/dist/test/generator.js +39 -11
- package/dist/types/index.d.ts +3 -1
- package/package.json +61 -61
- package/skills/auto.md +383 -415
- package/skills/brainstorm.md +27 -29
- package/skills/plan.md +261 -0
- package/skills/start.md +552 -707
package/skills/start.md
CHANGED
|
@@ -1,707 +1,552 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:start
|
|
3
|
-
description: "Use when starting a new development task cycle with interactive questions. Triggers on TASK-EXECUTION intent: user wants to start implementing a clearly-defined task with full workflow support. DO NOT trigger on: vague ideas (use brainstorm), status checks, debugging, or pure questions. Intent signals: user describes a concrete task to build/fix/refactor, has clear goal, or wants to start execution workflow."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<INTENT-JUDGMENT>
|
|
7
|
-
## 意图判断指南
|
|
8
|
-
|
|
9
|
-
**AI 应根据用户语义判断意图:**
|
|
10
|
-
|
|
11
|
-
### 触发信号(任务执行意图)
|
|
12
|
-
|
|
13
|
-
- 用户想开始明确的开发任务
|
|
14
|
-
- 任务描述清晰可执行
|
|
15
|
-
- 有具体的功能目标
|
|
16
|
-
- 修复已知 bug(知道要改什么)
|
|
17
|
-
|
|
18
|
-
### 不触发信号
|
|
19
|
-
|
|
20
|
-
| 用户意图 | 应调用 |
|
|
21
|
-
|---------|--------|
|
|
22
|
-
| 需求不明确 | /om:brainstorm |
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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
|
-
Step
|
|
57
|
-
Step
|
|
58
|
-
Step
|
|
59
|
-
Step
|
|
60
|
-
Step
|
|
61
|
-
Step
|
|
62
|
-
Step
|
|
63
|
-
Step
|
|
64
|
-
Step
|
|
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
|
-
| `status:
|
|
103
|
-
| `status:
|
|
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
|
-
### Step 4: 提交文档(必须执行,不可跳过)
|
|
177
|
-
|
|
178
|
-
在开始任何新任务之前,先提交所有已变更的文档文件,确保文档和代码同步提交。
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
git status --porcelain
|
|
182
|
-
```
|
|
183
|
-
|
|
184
|
-
检查是否有文档变更(包括 `docs/` 目录、所有 `.md`
|
|
185
|
-
|
|
186
|
-
```bash
|
|
187
|
-
git diff --name-only | grep -E '\.md$|^docs/' 2>/dev/null
|
|
188
|
-
git ls-files --others --exclude-standard | grep -E '\.md$|^docs/' 2>/dev/null
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
如果有文档变更(未追踪或未提交),执行提交:
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
git add docs/ .openmatrix/*.md CLAUDE.md README.md README_EN.md
|
|
195
|
-
git commit -m "$(cat <<'EOF'
|
|
196
|
-
docs: 更新项目文档
|
|
197
|
-
|
|
198
|
-
更新内容: ...
|
|
199
|
-
|
|
200
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
201
|
-
EOF
|
|
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
|
-
### Step 7:
|
|
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
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
```
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
>
|
|
500
|
-
|
|
501
|
-
>
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
openmatrix
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
|
527
|
-
|
|
528
|
-
|
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
```
|
|
554
|
-
|
|
555
|
-
**使用返回值执行下一个 Agent:**
|
|
556
|
-
```typescript
|
|
557
|
-
// 从 step 返回的 subagent 对象直接用于 Agent 工具
|
|
558
|
-
const stepResult = JSON.parse(/* openmatrix step --json 输出 */);
|
|
559
|
-
if (stepResult.status === 'next') {
|
|
560
|
-
Agent({
|
|
561
|
-
subagent_type: stepResult.subagent.subagent_type,
|
|
562
|
-
description: stepResult.subagent.description,
|
|
563
|
-
prompt: stepResult.subagent.prompt + "\n\n⚠️ ...",
|
|
564
|
-
isolation: stepResult.subagent.isolation,
|
|
565
|
-
run_in_background: true
|
|
566
|
-
})
|
|
567
|
-
}
|
|
568
|
-
```
|
|
569
|
-
|
|
570
|
-
5. 检查审批点(auto 模式自动批准,其他模式按配置暂停)
|
|
571
|
-
|
|
572
|
-
6. **审批点处理(根据执行模式):**
|
|
573
|
-
|
|
574
|
-
根据用户选择的执行模式处理审批:
|
|
575
|
-
|
|
576
|
-
| 执行模式 | 审批点 | 处理方式 |
|
|
577
|
-
|---------|--------|---------|
|
|
578
|
-
| 全自动执行 | 无 | 自动批准所有操作 |
|
|
579
|
-
| 关键节点确认 | plan, merge, deploy | 到达审批点时暂停,交互式确认 |
|
|
580
|
-
| 每阶段确认 | develop, verify, accept | 每个阶段完成后暂停,交互式确认 |
|
|
581
|
-
|
|
582
|
-
**交互式审批流程(非全自动模式):**
|
|
583
|
-
|
|
584
|
-
当到达审批点时,使用 `openmatrix approve --json`(不带 ID)查看待审批项,**先在界面展示审批内容摘要**,再用简短 AskUserQuestion 请求确认:
|
|
585
|
-
|
|
586
|
-
AskUserQuestion: `header: "审批"`, `multiSelect: false`
|
|
587
|
-
**question:** 是否批准此审批请求?(详情已展示在上方)
|
|
588
|
-
|
|
589
|
-
| label | description |
|
|
590
|
-
|-------|-------------|
|
|
591
|
-
| 批准 | 同意继续执行 |
|
|
592
|
-
| 拒绝 | 拒绝并停止执行 |
|
|
593
|
-
| 查看详情 | 查看完整审批内容后再决定 |
|
|
594
|
-
|
|
595
|
-
用户选择后,执行对应命令:
|
|
596
|
-
- 批准: `openmatrix approve <approval-id> -d approve --json`
|
|
597
|
-
- 拒绝: `openmatrix approve <approval-id> -d reject --json`
|
|
598
|
-
- 修改: `openmatrix approve <approval-id> -d modify -c "修改建议" --json`
|
|
599
|
-
- 查看详情: 读取 `.openmatrix/approvals/<approval-id>.json` 并展示完整内容
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
**Agent 上下文共享机制 (Agent Memory):**
|
|
603
|
-
|
|
604
|
-
每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
|
|
605
|
-
这确保 Agent 之间共享知识、避免重复工作、保持决策一致性。
|
|
606
|
-
|
|
607
|
-
```
|
|
608
|
-
Agent-1 完成 → 写入 context.md → Agent-2 读取 Agent-1 的上下文 → 写入 context.md → ...
|
|
609
|
-
```
|
|
610
|
-
|
|
611
|
-
**中断恢复:** 如果会话中断,再次执行 `/om:start` 时:
|
|
612
|
-
1. 读取 `.openmatrix/state.json`
|
|
613
|
-
2. 如果 `status === 'running'`,读取所有任务,找到 status 不是 completed 的任务
|
|
614
|
-
3. 从中断的任务继续执行,不需要重新开始
|
|
615
|
-
|
|
616
|
-
**Meeting 处理(auto 模式):** 记录并跳过,执行完成后统一展示。
|
|
617
|
-
|
|
618
|
-
**执行完成后:**
|
|
619
|
-
|
|
620
|
-
### Meeting 机制
|
|
621
|
-
|
|
622
|
-
在「全自动执行」模式下:
|
|
623
|
-
- 遇到阻塞任务时,创建 Meeting 记录并跳过该任务
|
|
624
|
-
- 继续执行其他独立任务,最大化并行度
|
|
625
|
-
- 所有非阻塞任务完成后,提示用户使用 `/om:meeting` 统一处理阻塞问题
|
|
626
|
-
|
|
627
|
-
```bash
|
|
628
|
-
openmatrix meeting --list
|
|
629
|
-
```
|
|
630
|
-
|
|
631
|
-
如有 pending Meeting,交互式处理。
|
|
632
|
-
|
|
633
|
-
所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
|
|
634
|
-
```bash
|
|
635
|
-
git add . && git commit -m "$(cat <<'EOF'
|
|
636
|
-
feat: 完成所有任务 - 任务总标题
|
|
637
|
-
|
|
638
|
-
改动点1
|
|
639
|
-
改动点2
|
|
640
|
-
|
|
641
|
-
影响范围: 全部模块
|
|
642
|
-
文件改动: src/xxx.ts, src/yyy.ts
|
|
643
|
-
|
|
644
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
645
|
-
EOF
|
|
646
|
-
)"
|
|
647
|
-
```
|
|
648
|
-
|
|
649
|
-
**Git 提交格式规范(所有提交必须遵守):**
|
|
650
|
-
|
|
651
|
-
```
|
|
652
|
-
<type>(TASK-XXX): 简短描述
|
|
653
|
-
|
|
654
|
-
改动点1
|
|
655
|
-
改动点2
|
|
656
|
-
|
|
657
|
-
影响范围: 模块名
|
|
658
|
-
文件改动: 文件1, 文件2
|
|
659
|
-
|
|
660
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
661
|
-
```
|
|
662
|
-
|
|
663
|
-
**type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
|
|
664
|
-
**禁止使用 emoji**,使用纯文本格式
|
|
665
|
-
|
|
666
|
-
</process>
|
|
667
|
-
|
|
668
|
-
<arguments>
|
|
669
|
-
$ARGUMENTS
|
|
670
|
-
</arguments>
|
|
671
|
-
|
|
672
|
-
<examples>
|
|
673
|
-
/om:start
|
|
674
|
-
/om:start docs/task.md
|
|
675
|
-
/om:start "实现用户登录功能"
|
|
676
|
-
</examples>
|
|
677
|
-
|
|
678
|
-
<notes>
|
|
679
|
-
## 质量级别
|
|
680
|
-
|
|
681
|
-
| 级别 | TDD | 覆盖率 | Lint | 安全 |
|
|
682
|
-
|------|:---:|:------:|:----:|:----:|
|
|
683
|
-
| strict | ✅ | >80% | ✅ | ✅ |
|
|
684
|
-
| balanced | ❌ | >60% | ✅ | ✅ |
|
|
685
|
-
| fast | ❌ | 无 | ❌ | ❌ |
|
|
686
|
-
|
|
687
|
-
## 执行流程
|
|
688
|
-
|
|
689
|
-
```
|
|
690
|
-
Step 1-3: 初始化 + 解析输入 + 分析类型 → Step 4: 提交文档 → Step 5-6: 问答 + 确认 → Step 7: 提取 goals + plan → Step 8: 写入 tasks-input.json
|
|
691
|
-
→ Step 9: openmatrix start --tasks-json (必须) → Step 10: 读取 subagentTasks
|
|
692
|
-
→ Step 11: Agent 逐个执行 (只有这里写代码)
|
|
693
|
-
```
|
|
694
|
-
|
|
695
|
-
## Git 提交格式
|
|
696
|
-
|
|
697
|
-
```
|
|
698
|
-
<type>(TASK-XXX): 简短描述
|
|
699
|
-
|
|
700
|
-
改动点1 / 改动点2
|
|
701
|
-
影响范围: 模块名
|
|
702
|
-
文件改动: 文件1, 文件2
|
|
703
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
704
|
-
```
|
|
705
|
-
|
|
706
|
-
type: feat/fix/test/refactor/docs。禁止 emoji。
|
|
707
|
-
</notes>
|
|
1
|
+
---
|
|
2
|
+
name: om:start
|
|
3
|
+
description: "Use when starting a new development task cycle with interactive questions. Triggers on TASK-EXECUTION intent: user wants to start implementing a clearly-defined task with full workflow support. Expects plan.md + tasks-input.json to already exist (generated by /om:plan). DO NOT trigger on: vague ideas (use brainstorm), status checks, debugging, or pure questions. Intent signals: user describes a concrete task to build/fix/refactor, has clear goal, or wants to start execution workflow."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<INTENT-JUDGMENT>
|
|
7
|
+
## 意图判断指南
|
|
8
|
+
|
|
9
|
+
**AI 应根据用户语义判断意图:**
|
|
10
|
+
|
|
11
|
+
### 触发信号(任务执行意图)
|
|
12
|
+
|
|
13
|
+
- 用户想开始明确的开发任务
|
|
14
|
+
- 任务描述清晰可执行
|
|
15
|
+
- 有具体的功能目标
|
|
16
|
+
- 修复已知 bug(知道要改什么)
|
|
17
|
+
|
|
18
|
+
### 不触发信号
|
|
19
|
+
|
|
20
|
+
| 用户意图 | 应调用 |
|
|
21
|
+
|---------|--------|
|
|
22
|
+
| 需求不明确 | /om:brainstorm |
|
|
23
|
+
| 需要生成技术方案 | /om:plan |
|
|
24
|
+
| 调查问题原因 | /om:debug |
|
|
25
|
+
| 查看进度 | /om:status |
|
|
26
|
+
|
|
27
|
+
### 示例判断
|
|
28
|
+
|
|
29
|
+
| 用户消息 | 判断 | 结果 |
|
|
30
|
+
|---------|------|------|
|
|
31
|
+
| "开始实现登录功能" | 任务执行意图 | 触发 |
|
|
32
|
+
| "修复这个 bug"(明确位置)| 执行意图明确 | 触发 |
|
|
33
|
+
| "重构 API 模块" | 任务意图 | 触发 |
|
|
34
|
+
| "登录怎么设计" | 设计意图 | /om:brainstorm |
|
|
35
|
+
| "生成技术方案" | 方案生成 | /om:plan |
|
|
36
|
+
| "为什么出错了" | 调查意图 | /om:debug |
|
|
37
|
+
</INTENT-JUDGMENT>
|
|
38
|
+
|
|
39
|
+
<NO-OTHER-SKILLS>
|
|
40
|
+
**绝对禁止**调用以下任何技能或工具:
|
|
41
|
+
- gsd-executor、gsd:* 等 GSD 相关技能
|
|
42
|
+
- superpowers:* 等 superpowers 相关技能
|
|
43
|
+
- 任何其他任务编排相关的 Agent 或工具
|
|
44
|
+
|
|
45
|
+
**Step 9 只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
|
|
46
|
+
|
|
47
|
+
违规调用将导致执行失败。
|
|
48
|
+
|
|
49
|
+
**相关技能**: `/om:brainstorm` (需求探索) | `/om:plan` (方案生成) | `/om:auto` (全自动) | `/om:meeting` (阻塞处理) | `/om:status` (状态查看) | `/om:report` (报告)
|
|
50
|
+
</NO-OTHER-SKILLS>
|
|
51
|
+
|
|
52
|
+
<MANDATORY-EXECUTION-ORDER>
|
|
53
|
+
## 执行顺序 - 必须严格按此顺序,不得跳过任何步骤
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Step 1: 初始化 .openmatrix 目录
|
|
57
|
+
Step 2: 验证前置条件(plan.md + tasks-input.json 必须已存在)
|
|
58
|
+
Step 3: 智能分析任务类型(开发/非开发)
|
|
59
|
+
Step 4: 提交文档(git add docs/ + 所有 .md 文件, commit)
|
|
60
|
+
Step 5: 必选问题(开发任务:质量+E2E+模式; 非开发:仅模式)<- 不可跳过
|
|
61
|
+
Step 6: 可选问题(仅复杂开发任务)+ 展示执行计划
|
|
62
|
+
Step 7: 调用 openmatrix start --tasks-json <- 必须完成,不可跳过
|
|
63
|
+
Step 8: 从 CLI 返回结果中读取 subagentTasks 列表 <- 必须完成
|
|
64
|
+
Step 9: 逐个执行 subagentTasks(调用 Agent 工具) <- 只有这步才能写代码
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**违反以下任一规则将导致任务执行失败:**
|
|
68
|
+
|
|
69
|
+
- **禁止在 Step 9 之前写任何业务代码** — 所有代码必须在 Step 9 通过 Agent 执行
|
|
70
|
+
- **禁止跳过 Step 5 必选问题** — 开发任务必须选质量/E2E/模式,非开发任务必须选模式
|
|
71
|
+
- **禁止跳过 Step 7** — 必须调用 CLI,不能用其他方式代替
|
|
72
|
+
- **禁止自行规划 Phase** — 任务由 CLI 的 TaskPlanner 拆分,AI 只提取 goals
|
|
73
|
+
- **禁止用 Bash/npm/write 直接写业务代码** — 业务代码只能通过 Step 9 的 Agent 执行
|
|
74
|
+
- **禁止调用 gsd-executor 或其他编排技能** — 必须用原生 Agent 工具
|
|
75
|
+
- **禁止在 start 中生成 plan** — plan 由 /om:plan 生成,start 只负责执行
|
|
76
|
+
</MANDATORY-EXECUTION-ORDER>
|
|
77
|
+
|
|
78
|
+
<objective>
|
|
79
|
+
读取已有的 plan.md + tasks-input.json,通过必选问答确定执行配置(开发任务还需确定质量等级、E2E测试),确认后通过 CLI 拆分任务并执行。
|
|
80
|
+
|
|
81
|
+
本 Skill 只做执行,不做方案生成。如果 plan.md 或 tasks-input.json 不存在,引导用户先执行 /om:plan。
|
|
82
|
+
|
|
83
|
+
**Step 5 必选问题不可跳过** — 开发任务必须选择:
|
|
84
|
+
1. 质量等级 (strict/balanced/fast)
|
|
85
|
+
2. E2E 测试 (当选择 strict/balanced 时)
|
|
86
|
+
3. 执行模式 (全自动/关键节点确认/每阶段确认)
|
|
87
|
+
|
|
88
|
+
非开发任务(文档、配置等)只需选择执行模式。
|
|
89
|
+
</objective>
|
|
90
|
+
|
|
91
|
+
<process>
|
|
92
|
+
|
|
93
|
+
## === 准备阶段(此阶段不得写任何业务代码)===
|
|
94
|
+
|
|
95
|
+
### Step 1: 智能检测状态
|
|
96
|
+
|
|
97
|
+
检查 `.openmatrix/` 目录和 `state.json` 的状态:
|
|
98
|
+
|
|
99
|
+
| 状态 | 处理方式 |
|
|
100
|
+
|------|---------|
|
|
101
|
+
| `.openmatrix/` 不存在 | 全新初始化: `openmatrix start --init-only` |
|
|
102
|
+
| `status: initialized` | 正常继续(首次使用) |
|
|
103
|
+
| `status: completed` | 提示用户:开始新任务会清理旧数据,确认后继续 |
|
|
104
|
+
| `status: running` | 提示用户先完成或暂停当前任务,然后退出 |
|
|
105
|
+
| `status: paused` | 询问用户:继续上次任务(->`/om:resume`)还是开始新任务 |
|
|
106
|
+
| `status: failed` | 询问用户:重试失败任务(->`/om:retry`)还是开始新任务 |
|
|
107
|
+
|
|
108
|
+
**如果是全新初始化:**
|
|
109
|
+
```bash
|
|
110
|
+
openmatrix start --init-only
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**检查 Git 仓库(必须执行,不可跳过):**
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
# 检查是否有 .git 目录(必须执行此命令)
|
|
117
|
+
ls -la .git 2>/dev/null || echo "NOT_INITIALIZED"
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**根据检查结果处理:**
|
|
121
|
+
|
|
122
|
+
| 检查结果 | 必须执行的操作 |
|
|
123
|
+
|---------|--------------|
|
|
124
|
+
| 目录不存在 | 使用 AskUserQuestion 询问用户是否初始化 git |
|
|
125
|
+
| 目录存在 | 继续检查远程仓库 |
|
|
126
|
+
|
|
127
|
+
**如果用户同意初始化,立即执行:**
|
|
128
|
+
```bash
|
|
129
|
+
git init
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Step 2: 验证前置条件
|
|
133
|
+
|
|
134
|
+
**检查 plan.md 和 tasks-input.json 是否已存在:**
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
cat .openmatrix/tasks-input.json 2>/dev/null || echo "NOT_FOUND"
|
|
138
|
+
cat .openmatrix/plan.md 2>/dev/null || echo "NOT_FOUND"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
| 情况 | 处理方式 |
|
|
142
|
+
|------|---------|
|
|
143
|
+
| 两个都存在 | 读取内容,继续 Step 3 |
|
|
144
|
+
| 只有 tasks-input.json | 继续执行(plan.md 可选) |
|
|
145
|
+
| 只有 plan.md | 提示:需要 tasks-input.json,引导执行 `/om:plan` |
|
|
146
|
+
| 都不存在,有 `$ARGUMENTS` | 自动调用 `/om:plan` 生成方案(传入参数) |
|
|
147
|
+
| 都不存在,无参数 | 引导执行 `/om:plan` |
|
|
148
|
+
|
|
149
|
+
**如果都存在,读取 tasks-input.json:**
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
cat .openmatrix/tasks-input.json
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
提取关键字段:`title`、`goals`、`goalTypes`、`goalComplexity`。
|
|
156
|
+
|
|
157
|
+
**检测研究上下文:**
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
cat .openmatrix/research/context.json 2>/dev/null || echo "NO_RESEARCH"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
如果检测到研究上下文,告知用户并将 `--research-context` 参数传递给 CLI。
|
|
164
|
+
|
|
165
|
+
### Step 3: 智能分析任务类型
|
|
166
|
+
|
|
167
|
+
根据 `goalTypes` 字段判断是开发任务还是非开发任务,这决定 Step 5 需要问哪些问题。
|
|
168
|
+
|
|
169
|
+
| 任务类型 | 定义 | Step 5 问题 |
|
|
170
|
+
|---------|------|------------|
|
|
171
|
+
| **开发任务** | goalTypes 包含 `development` | 质量等级 + E2E + 执行模式 |
|
|
172
|
+
| **非开发任务** | goalTypes 仅有 `testing`/`documentation`/`other` | 仅执行模式 |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
### Step 4: 提交文档(必须执行,不可跳过)
|
|
177
|
+
|
|
178
|
+
在开始任何新任务之前,先提交所有已变更的文档文件,确保文档和代码同步提交。
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
git status --porcelain
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
检查是否有文档变更(包括 `docs/` 目录、所有 `.md` 文件):
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
git diff --name-only | grep -E '\.md$|^docs/' 2>/dev/null
|
|
188
|
+
git ls-files --others --exclude-standard | grep -E '\.md$|^docs/' 2>/dev/null
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
如果有文档变更(未追踪或未提交),执行提交:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
git add docs/ .openmatrix/*.md CLAUDE.md README.md README_EN.md
|
|
195
|
+
git commit -m "$(cat <<'EOF'
|
|
196
|
+
docs: 更新项目文档
|
|
197
|
+
|
|
198
|
+
更新内容: ...
|
|
199
|
+
|
|
200
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
201
|
+
EOF
|
|
202
|
+
)"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
**如果没有文档变更,跳过此步骤继续。**
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
### Step 5: 必选问题(不可跳过,不可使用默认值,必须通过 AskUserQuestion 让用户选择)
|
|
210
|
+
|
|
211
|
+
根据 `goalTypes` 字段判断需要询问哪些问题:
|
|
212
|
+
|
|
213
|
+
| goalTypes | 需要询问 |
|
|
214
|
+
|-----------|---------|
|
|
215
|
+
| `development` | 5.1 质量等级 -> 5.2 E2E -> 5.3 执行模式 |
|
|
216
|
+
| `testing` | 仅 5.3 执行模式 |
|
|
217
|
+
| `documentation` / `other` | 仅 5.3 执行模式 |
|
|
218
|
+
|
|
219
|
+
#### 5.1 质量等级(仅 `goalTypes: development`)
|
|
220
|
+
|
|
221
|
+
AskUserQuestion: `header: "质量等级"`, `multiSelect: false`
|
|
222
|
+
|
|
223
|
+
**question:** 选择质量等级(决定测试覆盖、Lint、安全扫描等要求)
|
|
224
|
+
|
|
225
|
+
| label | description |
|
|
226
|
+
|-------|-------------|
|
|
227
|
+
| `strict` | TDD + >80%覆盖率 + 严格Lint + 安全扫描 — 生产级代码 |
|
|
228
|
+
| `balanced (推荐)` | >60%覆盖率 + Lint + 安全扫描 — 日常开发 |
|
|
229
|
+
| `fast` | 无质量门禁 — 快速原型/验证 |
|
|
230
|
+
|
|
231
|
+
#### 5.2 E2E 测试(仅 `development` 且选 strict/balanced,选 `fast` 跳过)
|
|
232
|
+
|
|
233
|
+
AskUserQuestion: `header: "E2E 测试"`, `multiSelect: false`
|
|
234
|
+
|
|
235
|
+
**question:** 是否需要端到端 (E2E) 测试?(适用于 Web/Mobile/GUI 项目,耗时较长)
|
|
236
|
+
|
|
237
|
+
| label | description |
|
|
238
|
+
|-------|-------------|
|
|
239
|
+
| `功能测试 (推荐)` | 验证业务流程正确性,无需浏览器可视化,速度快 |
|
|
240
|
+
| `视觉验证` | 需要浏览器可视化验证,可检查页面样式和布局 |
|
|
241
|
+
| `不需要` | 仅进行单元测试和集成测试,节省时间 |
|
|
242
|
+
|
|
243
|
+
#### 5.3 执行模式(所有任务必选)
|
|
244
|
+
|
|
245
|
+
AskUserQuestion: `header: "执行模式"`, `multiSelect: false`
|
|
246
|
+
|
|
247
|
+
**question:** 选择执行模式(控制 AI 执行过程中的审批节点)
|
|
248
|
+
|
|
249
|
+
| label | description |
|
|
250
|
+
|-------|-------------|
|
|
251
|
+
| `全自动执行 (推荐)` | 全自动执行,无需人工审批,遇到阻塞自动 Meeting |
|
|
252
|
+
| `关键节点确认` | plan/merge/deploy 时暂停确认 |
|
|
253
|
+
| `每阶段确认` | 每个阶段(develop/verify/accept)完成后暂停 |
|
|
254
|
+
|
|
255
|
+
### Step 6: 可选问题(仅复杂任务)
|
|
256
|
+
|
|
257
|
+
根据任务类型,可能需要额外询问:
|
|
258
|
+
|
|
259
|
+
- 技术栈偏好
|
|
260
|
+
- 文档级别
|
|
261
|
+
- 风险评估
|
|
262
|
+
- 验收标准
|
|
263
|
+
|
|
264
|
+
展示执行计划:
|
|
265
|
+
|
|
266
|
+
```
|
|
267
|
+
执行计划
|
|
268
|
+
|
|
269
|
+
Goals:
|
|
270
|
+
1. [development/high] 目标1
|
|
271
|
+
2. [development/medium] 目标2
|
|
272
|
+
3. [testing/medium] 目标3
|
|
273
|
+
|
|
274
|
+
统计
|
|
275
|
+
Goals: N 个(将生成 N个开发 + N个测试 + 审查)
|
|
276
|
+
质量级别: xxx
|
|
277
|
+
E2E 测试: 功能测试 / 视觉验证 / 不启用
|
|
278
|
+
技术方案: .openmatrix/plan.md
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
### Step 7: 调用 CLI 创建任务(不可跳过)
|
|
282
|
+
|
|
283
|
+
**根据任务类型选择正确的 CLI 调用:**
|
|
284
|
+
|
|
285
|
+
**开发任务**(有质量等级选择):
|
|
286
|
+
```bash
|
|
287
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality <质量等级> --mode <执行模式> --json
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
如果存在 `.openmatrix/research/context.json`,增加 `--research-context` 参数:
|
|
291
|
+
```bash
|
|
292
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --research-context @.openmatrix/research/context.json --quality <质量等级> --mode <执行模式> --json
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
如果启用了 E2E 测试(功能测试),加上 `--e2e-tests`:
|
|
296
|
+
```bash
|
|
297
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality balanced --mode auto --e2e-tests --json
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
如果选择了视觉验证,加上 `--e2e-tests --e2e-type visual`:
|
|
301
|
+
```bash
|
|
302
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality balanced --mode auto --e2e-tests --e2e-type visual --json
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
**非开发任务**(无质量等级):
|
|
306
|
+
```bash
|
|
307
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --mode <执行模式> --json
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
此命令返回 JSON 包含 `subagentTasks` 列表。
|
|
311
|
+
|
|
312
|
+
### Step 8: 读取 subagentTasks
|
|
313
|
+
|
|
314
|
+
CLI 返回 JSON 中 `subagentTasks` 数组包含待执行任务。
|
|
315
|
+
|
|
316
|
+
## === 执行阶段(只有此阶段才能写业务代码)===
|
|
317
|
+
|
|
318
|
+
### Step 9: 逐个执行 subagentTasks(禁止中断)
|
|
319
|
+
|
|
320
|
+
<LOOP-ENFORCEMENT>
|
|
321
|
+
**此步骤是执行循环,必须执行完所有任务后才能停止。**
|
|
322
|
+
|
|
323
|
+
- **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
|
|
324
|
+
- **禁止询问"是否继续"** — 直接执行下一个任务
|
|
325
|
+
- **禁止输出"让我知道是否..."后停止** — 继续执行
|
|
326
|
+
- **禁止因为上下文压缩而忘记剩余任务** — 通过 `openmatrix step --json` 重新获取状态
|
|
327
|
+
|
|
328
|
+
**文件持久化循环(防止上下文压缩丢失状态):**
|
|
329
|
+
```bash
|
|
330
|
+
# 每个 Agent 完成后执行:
|
|
331
|
+
# --summary 传入执行摘要,自动追加到全局 context.md
|
|
332
|
+
openmatrix complete TASK-XXX --success --summary "决策: xxx; 文件: xxx"
|
|
333
|
+
|
|
334
|
+
# 提交验证(防止 commit 静默失败):
|
|
335
|
+
git status --porcelain # 检查是否有未提交的文件
|
|
336
|
+
# 如果有未提交文件 -> 必须手动提交:
|
|
337
|
+
git add . && git commit -m "feat(TASK-XXX): 任务标题"
|
|
338
|
+
|
|
339
|
+
openmatrix step --json # 获取下一个任务 + 检查是否全部完成
|
|
340
|
+
```
|
|
341
|
+
`openmatrix step` 会从磁盘读取真实状态,不依赖上下文记忆。
|
|
342
|
+
</LOOP-ENFORCEMENT>
|
|
343
|
+
|
|
344
|
+
#### 9.1 歧义检测机制
|
|
345
|
+
|
|
346
|
+
**Agent 输出中可能包含歧义报告(JSON 格式):**
|
|
347
|
+
|
|
348
|
+
当 Agent 输出包含以下标记时,表示检测到歧义:
|
|
349
|
+
```
|
|
350
|
+
<AMBIGUITY_REPORT>
|
|
351
|
+
{
|
|
352
|
+
"ambiguities": [
|
|
353
|
+
{
|
|
354
|
+
"type": "missing_info" | "conflicting_req" | "unclear_scope" | "tech_choice" | "edge_case",
|
|
355
|
+
"severity": "critical" | "high" | "medium" | "low",
|
|
356
|
+
"description": "歧义描述",
|
|
357
|
+
"suggestions": ["建议1", "建议2"]
|
|
358
|
+
}
|
|
359
|
+
],
|
|
360
|
+
"overallSeverity": "critical" | "high" | "medium" | "low"
|
|
361
|
+
}
|
|
362
|
+
</AMBIGUITY_REPORT>
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
#### 9.2 歧义处理策略
|
|
366
|
+
|
|
367
|
+
根据 `overallSeverity` 和执行模式选择处理方式:
|
|
368
|
+
|
|
369
|
+
| 执行模式 | Critical/High | Medium/Low |
|
|
370
|
+
|---------|--------------|------------|
|
|
371
|
+
| **全自动执行** | Meeting + 继续执行 | Meeting + 继续执行 |
|
|
372
|
+
| **关键节点确认** | AskUserQuestion | Meeting + 继续执行 |
|
|
373
|
+
| **每阶段确认** | AskUserQuestion | Meeting + 继续执行 |
|
|
374
|
+
|
|
375
|
+
**Meeting 处理(写入阻塞记录):**
|
|
376
|
+
```bash
|
|
377
|
+
openmatrix meeting --create --task TASK-XXX --reason "歧义: ${description}" --severity ${severity}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
**AskUserQuestion 处理(交互确认):**
|
|
381
|
+
|
|
382
|
+
AskUserQuestion: `header: "歧义确认"`, `multiSelect: false`
|
|
383
|
+
**question:** 检测到 ${severity} 级歧义:${description}。请确认处理方式
|
|
384
|
+
|
|
385
|
+
| label | description |
|
|
386
|
+
|-------|-------------|
|
|
387
|
+
| 提供信息 | 回答歧义相关问题,继续执行 |
|
|
388
|
+
| 跳过任务 | 标记当前任务为可选,继续执行其他任务 |
|
|
389
|
+
| 修改方案 | 根据歧义调整任务方案后继续 |
|
|
390
|
+
|
|
391
|
+
#### 9.3 执行 Agent 任务
|
|
392
|
+
|
|
393
|
+
```typescript
|
|
394
|
+
Agent({
|
|
395
|
+
subagent_type: task.subagent_type,
|
|
396
|
+
description: task.description,
|
|
397
|
+
prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议\n\n🚫 **禁止执行以下 Git 命令**:\n- ❌ git commit — 所有提交统一通过 openmatrix complete 执行\n- ❌ git checkout — 不要切换分支\n- ❌ git merge — 不要合并其他分支\n- ❌ git pull — 不要拉取远程更新\n- ❌ git push — 不要推送代码\n- ❌ git rebase — 不要变基\n- ❌ git branch — 不要创建/删除分支\n\n✅ 允许:git status, git diff, git log",
|
|
398
|
+
isolation: task.isolation,
|
|
399
|
+
run_in_background: true
|
|
400
|
+
})
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
每个 Agent 完成后(收到后台完成通知时):
|
|
404
|
+
1. **标记完成并更新统计(必须执行):**
|
|
405
|
+
```bash
|
|
406
|
+
openmatrix complete TASK-XXX --success --summary "关键决策: xxx; 创建文件: xxx"
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
2. **全局上下文文件** — 所有任务的上下文累积在 `.openmatrix/context.md`:
|
|
410
|
+
- 每次任务完成后,通过 `--summary` 参数追加写入
|
|
411
|
+
- 后续 Agent 可读取此文件了解前序任务的决策和发现
|
|
412
|
+
|
|
413
|
+
3. Git 自动提交(必须使用下方统一提交格式)
|
|
414
|
+
|
|
415
|
+
4. **获取下一个任务(必须执行,防止上下文压缩丢失):**
|
|
416
|
+
```bash
|
|
417
|
+
openmatrix step --json
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
**返回值解析:**
|
|
421
|
+
|
|
422
|
+
| status | 含义 | 后续操作 |
|
|
423
|
+
|--------|------|---------|
|
|
424
|
+
| `next` | 有下一个任务 | 继续执行返回的 `subagent` 配置 |
|
|
425
|
+
| `done` | 所有任务完成 | 进入最终提交 |
|
|
426
|
+
| `blocked` | 无可执行任务 | 检查是否有 Meeting,用 `/om:meeting` 处理 |
|
|
427
|
+
|
|
428
|
+
5. **审批点处理(根据执行模式):**
|
|
429
|
+
|
|
430
|
+
| 执行模式 | 审批点 | 处理方式 |
|
|
431
|
+
|---------|--------|---------|
|
|
432
|
+
| 全自动执行 | 无 | 自动批准所有操作 |
|
|
433
|
+
| 关键节点确认 | plan, merge, deploy | 到达审批点时暂停,交互式确认 |
|
|
434
|
+
| 每阶段确认 | develop, verify, accept | 每个阶段完成后暂停,交互式确认 |
|
|
435
|
+
|
|
436
|
+
**Agent 上下文共享机制 (Agent Memory):**
|
|
437
|
+
|
|
438
|
+
每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
Agent-1 完成 -> 写入 context.md -> Agent-2 读取 Agent-1 的上下文 -> 写入 context.md -> ...
|
|
442
|
+
```
|
|
443
|
+
|
|
444
|
+
**中断恢复:** 如果会话中断,再次执行 `/om:start` 时:
|
|
445
|
+
1. 读取 `.openmatrix/state.json`
|
|
446
|
+
2. 如果 `status === 'running'`,读取所有任务,找到 status 不是 completed 的任务
|
|
447
|
+
3. 从中断的任务继续执行,不需要重新开始
|
|
448
|
+
|
|
449
|
+
**Meeting 处理(auto 模式):** 记录并跳过,执行完成后统一展示。
|
|
450
|
+
|
|
451
|
+
**执行完成后:**
|
|
452
|
+
|
|
453
|
+
### Meeting 机制
|
|
454
|
+
|
|
455
|
+
在「全自动执行」模式下:
|
|
456
|
+
- 遇到阻塞任务时,创建 Meeting 记录并跳过该任务
|
|
457
|
+
- 继续执行其他独立任务,最大化并行度
|
|
458
|
+
- 所有非阻塞任务完成后,提示用户使用 `/om:meeting` 统一处理阻塞问题
|
|
459
|
+
|
|
460
|
+
```bash
|
|
461
|
+
openmatrix meeting --list
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
如有 pending Meeting,交互式处理。
|
|
465
|
+
|
|
466
|
+
所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
|
|
467
|
+
```bash
|
|
468
|
+
git add . && git commit -m "$(cat <<'EOF'
|
|
469
|
+
feat: 完成所有任务 - 任务总标题
|
|
470
|
+
|
|
471
|
+
改动点1
|
|
472
|
+
改动点2
|
|
473
|
+
|
|
474
|
+
影响范围: 全部模块
|
|
475
|
+
文件改动: src/xxx.ts, src/yyy.ts
|
|
476
|
+
|
|
477
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
478
|
+
EOF
|
|
479
|
+
)"
|
|
480
|
+
```
|
|
481
|
+
|
|
482
|
+
**Git 提交格式规范(所有提交必须遵守):**
|
|
483
|
+
|
|
484
|
+
```
|
|
485
|
+
<type>(TASK-XXX): 简短描述
|
|
486
|
+
|
|
487
|
+
改动点1
|
|
488
|
+
改动点2
|
|
489
|
+
|
|
490
|
+
影响范围: 模块名
|
|
491
|
+
文件改动: 文件1, 文件2
|
|
492
|
+
|
|
493
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
**type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
|
|
497
|
+
**禁止使用 emoji**,使用纯文本格式
|
|
498
|
+
|
|
499
|
+
</process>
|
|
500
|
+
|
|
501
|
+
<arguments>
|
|
502
|
+
$ARGUMENTS
|
|
503
|
+
</arguments>
|
|
504
|
+
|
|
505
|
+
<examples>
|
|
506
|
+
/om:start
|
|
507
|
+
/om:start "实现用户登录功能"
|
|
508
|
+
</examples>
|
|
509
|
+
|
|
510
|
+
<notes>
|
|
511
|
+
## 流程定位
|
|
512
|
+
|
|
513
|
+
```
|
|
514
|
+
需求 -> brainstorm (澄清需求) -> plan (生成方案) -> start (执行) -> end
|
|
515
|
+
需求 -> brainstorm (澄清需求) -> plan (生成方案) -> auto (全自动执行) -> end
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
start 和 auto 在同一位置,区别在于 start 有交互审批,auto 零交互。前置条件:
|
|
519
|
+
- `.openmatrix/plan.md` — 技术方案(由 /om:plan 生成)
|
|
520
|
+
- `.openmatrix/tasks-input.json` — 结构化元数据(由 /om:plan 生成)
|
|
521
|
+
|
|
522
|
+
如果前置条件不满足,引导用户执行 `/om:plan`。
|
|
523
|
+
|
|
524
|
+
## 质量级别
|
|
525
|
+
|
|
526
|
+
| 级别 | TDD | 覆盖率 | Lint | 安全 |
|
|
527
|
+
|------|:---:|:------:|:----:|:----:|
|
|
528
|
+
| strict | Y | >80% | Y | Y |
|
|
529
|
+
| balanced | N | >60% | Y | Y |
|
|
530
|
+
| fast | N | 无 | N | N |
|
|
531
|
+
|
|
532
|
+
## 执行流程
|
|
533
|
+
|
|
534
|
+
```
|
|
535
|
+
Step 1-2: 初始化 + 验证前置条件 -> Step 3-4: 分析类型 + 提交文档 -> Step 5-6: 问答 + 确认
|
|
536
|
+
-> Step 7: openmatrix start --tasks-json (必须) -> Step 8: 读取 subagentTasks
|
|
537
|
+
-> Step 9: Agent 逐个执行 (只有这里写代码)
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
## Git 提交格式
|
|
541
|
+
|
|
542
|
+
```
|
|
543
|
+
<type>(TASK-XXX): 简短描述
|
|
544
|
+
|
|
545
|
+
改动点1 / 改动点2
|
|
546
|
+
影响范围: 模块名
|
|
547
|
+
文件改动: 文件1, 文件2
|
|
548
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
549
|
+
```
|
|
550
|
+
|
|
551
|
+
type: feat/fix/test/refactor/docs。禁止 emoji。
|
|
552
|
+
</notes>
|