openmatrix 0.1.43 → 0.1.45
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/package.json +1 -1
- package/skills/brainstorm.md +105 -430
- package/skills/start.md +76 -104
package/package.json
CHANGED
package/skills/brainstorm.md
CHANGED
|
@@ -1,430 +1,105 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:brainstorm
|
|
3
|
-
description: 头脑风暴 - 探索需求和设计后再执行任务
|
|
4
|
-
priority: high
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<NO-OTHER-SKILLS>
|
|
8
|
-
执行此技能时,不得调用其他任务编排相关的技能。
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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
|
-
|
|
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
|
-
multiSelect: q.multiSelect
|
|
107
|
-
}]
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
// 记录答案
|
|
111
|
-
collectedAnswers[q.id] = response.answers[q.question] || response.answers['0'];
|
|
112
|
-
|
|
113
|
-
// 记录洞察 (根据答案推导)
|
|
114
|
-
if (q.id === 'core_objective') {
|
|
115
|
-
collectedInsights.push(`核心目标: ${collectedAnswers[q.id]}`);
|
|
116
|
-
}
|
|
117
|
-
// ... 其他洞察
|
|
118
|
-
}
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
**收集回答并记录洞察**:
|
|
122
|
-
- 每个回答后,思考其含义
|
|
123
|
-
- 记录可能的设计决策
|
|
124
|
-
- 识别潜在风险
|
|
125
|
-
- **必须保存到 session.answers 对象中**
|
|
126
|
-
|
|
127
|
-
3. **深入追问** (可选)
|
|
128
|
-
|
|
129
|
-
如果用户选择了"其他"或回答不够清晰,进行追问:
|
|
130
|
-
```typescript
|
|
131
|
-
AskUserQuestion({
|
|
132
|
-
questions: [{
|
|
133
|
-
question: "请详细描述:",
|
|
134
|
-
header: "详情",
|
|
135
|
-
options: []
|
|
136
|
-
}]
|
|
137
|
-
})
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
4. **总结头脑风暴结果**
|
|
141
|
-
|
|
142
|
-
所有问题回答完成后,总结:
|
|
143
|
-
- 核心目标
|
|
144
|
-
- 用户价值
|
|
145
|
-
- 技术方案要点
|
|
146
|
-
- 风险和应对
|
|
147
|
-
- 验收标准
|
|
148
|
-
|
|
149
|
-
展示总结:
|
|
150
|
-
```
|
|
151
|
-
🧠 头脑风暴总结
|
|
152
|
-
|
|
153
|
-
📋 任务: 实现登录功能
|
|
154
|
-
|
|
155
|
-
🎯 核心目标
|
|
156
|
-
- 实现用户登录功能,支持邮箱和密码
|
|
157
|
-
|
|
158
|
-
👥 用户价值
|
|
159
|
-
- 终端用户可以安全登录系统
|
|
160
|
-
|
|
161
|
-
🔧 技术方案
|
|
162
|
-
- 使用 JWT 进行身份验证
|
|
163
|
-
- 密码使用 bcrypt 加密
|
|
164
|
-
|
|
165
|
-
⚠️ 风险评估
|
|
166
|
-
- 安全风险: 需要防止暴力破解
|
|
167
|
-
|
|
168
|
-
✅ 验收标准
|
|
169
|
-
- 功能完整
|
|
170
|
-
- 测试覆盖
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
5. **确认并开始执行**
|
|
174
|
-
|
|
175
|
-
```typescript
|
|
176
|
-
AskUserQuestion({
|
|
177
|
-
questions: [{
|
|
178
|
-
question: "头脑风暴完成,是否开始执行任务?",
|
|
179
|
-
header: "下一步",
|
|
180
|
-
options: [
|
|
181
|
-
{ label: "✅ 开始执行 (推荐)", description: "使用收集的信息开始执行任务" },
|
|
182
|
-
{ label: "🔄 继续探索", description: "还有问题需要进一步讨论" },
|
|
183
|
-
{ label: "📋 仅生成计划", description: "生成详细计划但不执行" }
|
|
184
|
-
],
|
|
185
|
-
multiSelect: false
|
|
186
|
-
}]
|
|
187
|
-
})
|
|
188
|
-
```
|
|
189
|
-
|
|
190
|
-
6. **保存答案并执行 start**
|
|
191
|
-
|
|
192
|
-
**关键步骤**: 必须将收集的答案保存到 CLI,然后再启动执行。
|
|
193
|
-
|
|
194
|
-
如果用户选择"开始执行":
|
|
195
|
-
|
|
196
|
-
**步骤 1**: 构建结果 JSON (必须包含所有收集的答案):
|
|
197
|
-
```typescript
|
|
198
|
-
const resultsJson = JSON.stringify({
|
|
199
|
-
answers: collectedAnswers, // 用户对每个问题的回答
|
|
200
|
-
insights: collectedInsights, // 推导出的洞察
|
|
201
|
-
designNotes: collectedNotes // 设计笔记
|
|
202
|
-
});
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
**步骤 2**: 调用 CLI 保存结果并标记完成:
|
|
206
|
-
```bash
|
|
207
|
-
# 必须传递 --results 参数,否则答案不会被保存!
|
|
208
|
-
openmatrix brainstorm --complete --results '$RESULTS_JSON' --json
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
实际执行示例:
|
|
212
|
-
```bash
|
|
213
|
-
# 使用单引号包裹 JSON,避免 shell 解析问题
|
|
214
|
-
openmatrix brainstorm --complete --results '{"answers":{"core_objective":"实现新功能","user_value":"终端用户"},"insights":["核心目标是实现新功能"],"designNotes":[]}' --json
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
**步骤 3**: 调用 CLI 启动任务执行:
|
|
218
|
-
```bash
|
|
219
|
-
# 使用 --brainstorm-answers 参数传递收集的信息
|
|
220
|
-
openmatrix start "$TASK_INPUT" \
|
|
221
|
-
--title "$TASK_TITLE" \
|
|
222
|
-
--quality "$QUALITY_LEVEL" \
|
|
223
|
-
--mode "$MODE" \
|
|
224
|
-
--brainstorm-answers '$RESULTS_JSON' \
|
|
225
|
-
--json
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
实际执行示例:
|
|
229
|
-
```bash
|
|
230
|
-
openmatrix start "实现用户登录功能" \
|
|
231
|
-
--title "用户登录功能" \
|
|
232
|
-
--quality balanced \
|
|
233
|
-
--mode auto \
|
|
234
|
-
--brainstorm-answers '{"answers":{"core_objective":"实现新功能","user_value":"终端用户"},"insights":["核心目标是实现新功能"],"designNotes":[]}' \
|
|
235
|
-
--json
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
**步骤 4**: 读取 CLI 返回的 SubagentTask 列表并执行:
|
|
239
|
-
```typescript
|
|
240
|
-
// CLI 返回 JSON 格式的任务列表
|
|
241
|
-
const result = JSON.parse(cliOutput);
|
|
242
|
-
if (result.status === 'continue' && result.subagentTasks.length > 0) {
|
|
243
|
-
// 使用 Agent 工具执行每个 SubagentTask
|
|
244
|
-
for (const task of result.subagentTasks) {
|
|
245
|
-
await Agent({
|
|
246
|
-
subagent_type: task.subagent_type,
|
|
247
|
-
description: task.description,
|
|
248
|
-
prompt: task.prompt,
|
|
249
|
-
isolation: task.isolation
|
|
250
|
-
});
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
```
|
|
254
|
-
|
|
255
|
-
**注意事项**:
|
|
256
|
-
- 必须先调用 `--complete --results` 保存答案
|
|
257
|
-
- 然后调用 `openmatrix start` 并传递 `--brainstorm-answers`
|
|
258
|
-
- 最后读取返回的 SubagentTask 列表并执行
|
|
259
|
-
- 不要直接执行任务,必须通过 `/om:start` 启动
|
|
260
|
-
|
|
261
|
-
</process>
|
|
262
|
-
|
|
263
|
-
<arguments>
|
|
264
|
-
$ARGUMENTS
|
|
265
|
-
</arguments>
|
|
266
|
-
|
|
267
|
-
<examples>
|
|
268
|
-
/om:brainstorm # 交互式头脑风暴
|
|
269
|
-
/om:brainstorm docs/task.md # 基于任务文件头脑风暴
|
|
270
|
-
/om:brainstorm "实现用户登录功能" # 基于描述头脑风暴
|
|
271
|
-
</examples>
|
|
272
|
-
|
|
273
|
-
<notes>
|
|
274
|
-
## 🎯 问题深度方法论
|
|
275
|
-
|
|
276
|
-
### 识别任务类型
|
|
277
|
-
|
|
278
|
-
**首先判断任务类型:**
|
|
279
|
-
```
|
|
280
|
-
任务描述
|
|
281
|
-
│
|
|
282
|
-
├── 0-1 项目(新系统/新功能)→ 深度问题
|
|
283
|
-
│
|
|
284
|
-
├── 迭代项目(现有系统改进)→ 针对性问题
|
|
285
|
-
│
|
|
286
|
-
└── 简单任务(bugfix/小改动)→ 确认性问题
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### 0-1 项目:深度问题框架
|
|
290
|
-
|
|
291
|
-
**当任务是创建新系统或新功能时,问这些底层逻辑问题:**
|
|
292
|
-
|
|
293
|
-
#### 第一层:价值逻辑
|
|
294
|
-
| 问题 | 为什么重要 |
|
|
295
|
-
|------|-----------|
|
|
296
|
-
| 这个产品解决什么**核心问题**? | 决定功能优先级 |
|
|
297
|
-
| **目标用户**是谁?他们的痛点是什么? | 决定 UX 设计 |
|
|
298
|
-
| **差异化优势**是什么?为什么用户选你? | 决定技术选型 |
|
|
299
|
-
| **成功指标**是什么?怎么衡量做完了? | 决定验收标准 |
|
|
300
|
-
|
|
301
|
-
#### 第二层:架构逻辑
|
|
302
|
-
| 问题 | 为什么重要 |
|
|
303
|
-
|------|-----------|
|
|
304
|
-
| **核心数据模型**是什么?实体有哪些? | 决定数据库设计 |
|
|
305
|
-
| **关键业务流程**是什么? | 决定 API 设计 |
|
|
306
|
-
| **技术决策**:为什么选这个技术栈? | 决定实现路径 |
|
|
307
|
-
| **边界条件**:什么情况不考虑? | 决定 MVP 范围 |
|
|
308
|
-
|
|
309
|
-
#### 第三层:风险逻辑
|
|
310
|
-
| 问题 | 为什么重要 |
|
|
311
|
-
|------|-----------|
|
|
312
|
-
| **最大风险**是什么? | 决定优先处理 |
|
|
313
|
-
| **假设**有哪些?如何验证? | 决定测试策略 |
|
|
314
|
-
| **失败条件**:什么情况下会放弃? | 决定止损点 |
|
|
315
|
-
|
|
316
|
-
### 迭代项目:针对性问题框架
|
|
317
|
-
|
|
318
|
-
**当任务是在现有系统上改进时:**
|
|
319
|
-
|
|
320
|
-
| 问题 | 为什么重要 |
|
|
321
|
-
|------|-----------|
|
|
322
|
-
| 当前**痛点**是什么? | 决定改进方向 |
|
|
323
|
-
| **影响范围**有哪些模块? | 决定改动边界 |
|
|
324
|
-
| **兼容性**要求是什么? | 决定实现方式 |
|
|
325
|
-
| **回滚方案**是什么? | 决定风险控制 |
|
|
326
|
-
|
|
327
|
-
### 简单任务:确认性问题
|
|
328
|
-
|
|
329
|
-
**当任务是 bugfix 或小改动时,只需要确认:**
|
|
330
|
-
|
|
331
|
-
| 问题 | 为什么重要 |
|
|
332
|
-
|------|-----------|
|
|
333
|
-
| 问题**根因**是什么? | 确保真正修复 |
|
|
334
|
-
| **影响范围**? | 确保不引入新问题 |
|
|
335
|
-
| **测试方案**? | 确保可验证 |
|
|
336
|
-
|
|
337
|
-
---
|
|
338
|
-
|
|
339
|
-
## 头脑风暴流程图
|
|
340
|
-
|
|
341
|
-
```
|
|
342
|
-
┌─────────────────┐
|
|
343
|
-
│ 开始头脑风暴 │
|
|
344
|
-
└────────┬────────┘
|
|
345
|
-
│
|
|
346
|
-
▼
|
|
347
|
-
┌─────────────────┐
|
|
348
|
-
│ CLI 初始化会话 │
|
|
349
|
-
└────────┬────────┘
|
|
350
|
-
│
|
|
351
|
-
▼
|
|
352
|
-
┌─────────────────┐
|
|
353
|
-
│ 获取问题列表 │
|
|
354
|
-
└────────┬────────┘
|
|
355
|
-
│
|
|
356
|
-
▼
|
|
357
|
-
┌─────────────────┐
|
|
358
|
-
│ 交互式问答 │◀─────┐
|
|
359
|
-
│ (AskUserQuestion)│ │
|
|
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
|
-
│ 自动执行 start │
|
|
385
|
-
└─────────────────┘
|
|
386
|
-
```
|
|
387
|
-
|
|
388
|
-
## 问题类型
|
|
389
|
-
|
|
390
|
-
| 问题 ID | 目的 | 为什么重要 |
|
|
391
|
-
|---------|------|-----------|
|
|
392
|
-
| core_objective | 明确核心目标 | 选择正确的实现策略 |
|
|
393
|
-
| user_value | 了解用户价值 | 设计合适的接口 |
|
|
394
|
-
| complexity | 评估复杂度 | 决定实施策略 |
|
|
395
|
-
| tech_constraints | 技术约束 | 影响方案选择 |
|
|
396
|
-
| risks | 风险评估 | 提前规划应对 |
|
|
397
|
-
| acceptance | 验收标准 | 判断完成度 |
|
|
398
|
-
| priority | 优先级 | 资源分配 |
|
|
399
|
-
|
|
400
|
-
## 与 start 的集成
|
|
401
|
-
|
|
402
|
-
头脑风暴完成后,收集的信息会传递给 start:
|
|
403
|
-
|
|
404
|
-
```json
|
|
405
|
-
{
|
|
406
|
-
"answers": {
|
|
407
|
-
"core_objective": "实现新功能",
|
|
408
|
-
"user_value": "终端用户",
|
|
409
|
-
"complexity": "中等",
|
|
410
|
-
"risks": ["技术风险", "兼容性风险"],
|
|
411
|
-
"acceptance": ["功能完整", "测试覆盖"],
|
|
412
|
-
"priority": "中优先级"
|
|
413
|
-
},
|
|
414
|
-
"insights": [
|
|
415
|
-
"需要考虑安全性",
|
|
416
|
-
"应该支持多种登录方式"
|
|
417
|
-
],
|
|
418
|
-
"designNotes": [
|
|
419
|
-
"使用 JWT 认证",
|
|
420
|
-
"密码需要加密存储"
|
|
421
|
-
]
|
|
422
|
-
}
|
|
423
|
-
```
|
|
424
|
-
|
|
425
|
-
这些信息会影响:
|
|
426
|
-
- 任务拆解策略
|
|
427
|
-
- 质量级别选择
|
|
428
|
-
- 技术栈确认
|
|
429
|
-
- 风险应对措施
|
|
430
|
-
</notes>
|
|
1
|
+
---
|
|
2
|
+
name: om:brainstorm
|
|
3
|
+
description: 头脑风暴 - 探索需求和设计后再执行任务
|
|
4
|
+
priority: high
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<NO-OTHER-SKILLS>
|
|
8
|
+
执行此技能时,不得调用其他任务编排相关的技能。
|
|
9
|
+
</NO-OTHER-SKILLS>
|
|
10
|
+
|
|
11
|
+
<objective>
|
|
12
|
+
任务执行前,先头脑风暴深入探索需求,理解完整后再开始执行。
|
|
13
|
+
</objective>
|
|
14
|
+
|
|
15
|
+
<process>
|
|
16
|
+
## 1. 初始化
|
|
17
|
+
|
|
18
|
+
检查断点:
|
|
19
|
+
```bash
|
|
20
|
+
cat .openmatrix/brainstorm/session.json 2>/dev/null
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
有未完成会话 → 询问继续或重新开始。
|
|
24
|
+
|
|
25
|
+
`$ARGUMENTS` 为空则询问用户任务内容。
|
|
26
|
+
|
|
27
|
+
创建会话:
|
|
28
|
+
```bash
|
|
29
|
+
openmatrix brainstorm "$ARGUMENTS" --json
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
CLI 返回问题列表:
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"taskTitle": "...",
|
|
36
|
+
"questions": [{ "id": "...", "question": "...", "header": "...", "options": [...], "multiSelect": false }]
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 2. 交互式问答
|
|
43
|
+
|
|
44
|
+
对每个问题逐一使用 `AskUserQuestion` 提问,收集答案到 `collectedAnswers` 对象。
|
|
45
|
+
|
|
46
|
+
根据任务类型决定追问深度:
|
|
47
|
+
- **0-1 项目**(新系统/新功能)→ 深度追问: 核心目标、用户价值、技术方案、风险
|
|
48
|
+
- **迭代项目**(改进现有系统)→ 针对性: 痛点、影响范围、兼容性
|
|
49
|
+
- **简单任务**(bugfix/小改动)→ 确认性: 根因、影响范围、测试方案
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 3. 总结 + 确认
|
|
54
|
+
|
|
55
|
+
展示头脑风暴总结:
|
|
56
|
+
```
|
|
57
|
+
任务: (标题)
|
|
58
|
+
核心目标: (摘要)
|
|
59
|
+
技术方案: (要点)
|
|
60
|
+
风险: (要点)
|
|
61
|
+
验收标准: (要点)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
AskUserQuestion({
|
|
66
|
+
questions: [{
|
|
67
|
+
question: "头脑风暴完成,下一步?",
|
|
68
|
+
header: "下一步",
|
|
69
|
+
options: [
|
|
70
|
+
{ label: "开始执行", description: "进入 /om:start 流程" },
|
|
71
|
+
{ label: "继续探索", description: "还有问题需要讨论" },
|
|
72
|
+
{ label: "仅生成计划", description: "不执行" }
|
|
73
|
+
],
|
|
74
|
+
multiSelect: false
|
|
75
|
+
}]
|
|
76
|
+
})
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 4. 保存 + 启动 start
|
|
82
|
+
|
|
83
|
+
选择"开始执行"后:
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# 1. 保存答案
|
|
87
|
+
openmatrix brainstorm --complete --results '{"answers":{...},"insights":[...],"designNotes":[...]}' --json
|
|
88
|
+
|
|
89
|
+
# 2. 启动任务 (会自动加载 brainstorm 答案)
|
|
90
|
+
openmatrix start "$TASK_INPUT" --title "$TASK_TITLE" --quality balanced --mode auto --brainstorm-answers '$RESULTS_JSON' --json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
CLI 返回 SubagentTask 列表后,按 start.md Step 3 执行。
|
|
94
|
+
|
|
95
|
+
</process>
|
|
96
|
+
|
|
97
|
+
<arguments>
|
|
98
|
+
$ARGUMENTS
|
|
99
|
+
</arguments>
|
|
100
|
+
|
|
101
|
+
<examples>
|
|
102
|
+
/om:brainstorm # 交互式
|
|
103
|
+
/om:brainstorm docs/task.md # 基于文件
|
|
104
|
+
/om:brainstorm "实现用户登录功能" # 基于描述
|
|
105
|
+
</examples>
|
package/skills/start.md
CHANGED
|
@@ -4,20 +4,11 @@ description: 启动新的任务执行周期
|
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
<EXTREMELY-IMPORTANT>
|
|
7
|
-
## 必须使用此 Skill 的情况
|
|
8
|
-
|
|
9
7
|
**任何可以拆分为多个步骤的任务,都必须使用 /om:start 执行!**
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
- ❌ 直接开始写代码
|
|
13
|
-
- ❌ 直接修改多个文件
|
|
14
|
-
- ❌ 跳过任务规划直接执行
|
|
15
|
-
|
|
16
|
-
**判断标准:**
|
|
17
|
-
- 任务需要修改 2+ 个文件 → 必须使用
|
|
18
|
-
- 任务需要 30+ 分钟 → 必须使用
|
|
19
|
-
- 任务包含多个子任务 → 必须使用
|
|
9
|
+
禁止: 直接写代码 / 直接改多文件 / 跳过规划
|
|
20
10
|
|
|
11
|
+
判断: 改 2+ 文件 → 用 /om:start | 30+ 分钟 → 用 /om:start | 多子任务 → 用 /om:start
|
|
21
12
|
**When in doubt → USE /om:start.**
|
|
22
13
|
</EXTREMELY-IMPORTANT>
|
|
23
14
|
|
|
@@ -26,28 +17,26 @@ description: 启动新的任务执行周期
|
|
|
26
17
|
</NO-OTHER-SKILLS>
|
|
27
18
|
|
|
28
19
|
<objective>
|
|
29
|
-
|
|
20
|
+
确认配置 → 拆解任务 → 执行 → 验证 → 完成
|
|
30
21
|
</objective>
|
|
31
22
|
|
|
32
23
|
<process>
|
|
33
24
|
## 前置检查
|
|
34
25
|
|
|
35
|
-
1.
|
|
36
|
-
2.
|
|
37
|
-
3.
|
|
38
|
-
4.
|
|
39
|
-
5.
|
|
26
|
+
1. `.openmatrix/` 不存在则 `openmatrix start --init-only`
|
|
27
|
+
2. 已有 running 状态则提示先完成或暂停
|
|
28
|
+
3. 无 `.git` 则询问是否初始化
|
|
29
|
+
4. `$ARGUMENTS` 为空则询问用户任务内容
|
|
30
|
+
5. 有已完成的 brainstorm 会话则继承答案
|
|
40
31
|
|
|
41
32
|
---
|
|
42
33
|
|
|
43
|
-
## Step 1:
|
|
34
|
+
## Step 1: 配置
|
|
44
35
|
|
|
45
|
-
调用 CLI 分析任务:
|
|
46
36
|
```bash
|
|
47
37
|
openmatrix analyze "$ARGUMENTS" --markdown
|
|
48
38
|
```
|
|
49
39
|
|
|
50
|
-
让用户选择质量级别和确认理解:
|
|
51
40
|
```typescript
|
|
52
41
|
AskUserQuestion({
|
|
53
42
|
questions: [
|
|
@@ -55,28 +44,29 @@ AskUserQuestion({
|
|
|
55
44
|
question: "选择质量级别:",
|
|
56
45
|
header: "质量",
|
|
57
46
|
options: [
|
|
58
|
-
{ label: "fast", description: "快速原型,>20%
|
|
47
|
+
{ label: "fast", description: "快速原型,>20% 覆盖率" },
|
|
59
48
|
{ label: "balanced (推荐)", description: "日常开发,>60% 覆盖率" },
|
|
60
|
-
{ label: "strict", description: "生产代码,TDD + >80%
|
|
49
|
+
{ label: "strict", description: "生产代码,TDD + >80%" }
|
|
61
50
|
],
|
|
62
51
|
multiSelect: false
|
|
63
52
|
},
|
|
64
53
|
{
|
|
65
|
-
question: "
|
|
54
|
+
question: "是否需要文档?",
|
|
66
55
|
header: "文档",
|
|
67
56
|
options: [
|
|
68
|
-
{ label: "无需文档", description: "
|
|
69
|
-
{ label: "基础文档", description: "README 或 API
|
|
70
|
-
{ label: "完整文档", description: "
|
|
57
|
+
{ label: "无需文档", description: "不生成" },
|
|
58
|
+
{ label: "基础文档", description: "README 或 API" },
|
|
59
|
+
{ label: "完整文档", description: "文档 + 示例" }
|
|
71
60
|
],
|
|
72
61
|
multiSelect: false
|
|
73
62
|
},
|
|
74
63
|
{
|
|
75
|
-
question: "
|
|
76
|
-
header: "
|
|
64
|
+
question: "执行模式:",
|
|
65
|
+
header: "模式",
|
|
77
66
|
options: [
|
|
78
|
-
{ label: "
|
|
79
|
-
{ label: "
|
|
67
|
+
{ label: "全自动", description: "问题自动跳过记录到 Meeting" },
|
|
68
|
+
{ label: "关键节点确认", description: "plan/merge 时暂停" },
|
|
69
|
+
{ label: "每步确认", description: "每任务完成后暂停" }
|
|
80
70
|
],
|
|
81
71
|
multiSelect: false
|
|
82
72
|
}
|
|
@@ -84,101 +74,83 @@ AskUserQuestion({
|
|
|
84
74
|
})
|
|
85
75
|
```
|
|
86
76
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
## Step 2: 拆解 + 执行模式
|
|
77
|
+
展示配置总结,让用户确认或修改:
|
|
90
78
|
|
|
91
|
-
```bash
|
|
92
|
-
openmatrix start "$TASK_INPUT" --quality "$QUALITY_LEVEL" --mode "$MODE" --json
|
|
93
79
|
```
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
for (const task of result.subagentTasks) {
|
|
101
|
-
await Agent({
|
|
102
|
-
subagent_type: task.subagent_type,
|
|
103
|
-
description: task.description,
|
|
104
|
-
prompt: task.prompt,
|
|
105
|
-
isolation: task.isolation
|
|
106
|
-
});
|
|
107
|
-
await Bash({
|
|
108
|
-
command: `openmatrix complete ${task.taskId} --${success ? 'success' : 'failed'}`,
|
|
109
|
-
description: `Mark task ${task.taskId}`
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
}
|
|
80
|
+
任务配置:
|
|
81
|
+
任务: (标题)
|
|
82
|
+
质量: balanced (>60% 覆盖率)
|
|
83
|
+
文档: 基础文档
|
|
84
|
+
模式: 全自动
|
|
85
|
+
技术栈: TypeScript, Vue.js
|
|
113
86
|
```
|
|
114
87
|
|
|
115
|
-
选择执行模式:
|
|
116
88
|
```typescript
|
|
117
89
|
AskUserQuestion({
|
|
118
90
|
questions: [{
|
|
119
|
-
question: "
|
|
120
|
-
header: "
|
|
91
|
+
question: "以上配置正确吗?",
|
|
92
|
+
header: "确认",
|
|
121
93
|
options: [
|
|
122
|
-
{ label: "
|
|
123
|
-
{ label: "
|
|
124
|
-
{ label: "
|
|
94
|
+
{ label: "确认,开始执行", description: "使用以上配置" },
|
|
95
|
+
{ label: "需要修改", description: "修改某项配置" },
|
|
96
|
+
{ label: "补充说明", description: "提供更多任务细节" }
|
|
125
97
|
],
|
|
126
98
|
multiSelect: false
|
|
127
99
|
}]
|
|
128
100
|
})
|
|
129
101
|
```
|
|
130
102
|
|
|
103
|
+
**确认** → Step 2 | **修改** → 回到 Step 1 | **补充** → 询问后重新分析
|
|
104
|
+
|
|
131
105
|
---
|
|
132
106
|
|
|
133
|
-
## Step
|
|
107
|
+
## Step 2: 拆解
|
|
134
108
|
|
|
135
|
-
|
|
109
|
+
```bash
|
|
110
|
+
openmatrix start "$TASK_INPUT" --quality "$QUALITY" --mode "$MODE" --json
|
|
111
|
+
```
|
|
136
112
|
|
|
137
|
-
|
|
113
|
+
CLI 返回 3 个任务: 规划(planner) → 开发(coder) → 验证(tester)
|
|
138
114
|
|
|
115
|
+
展示任务列表:
|
|
139
116
|
```
|
|
140
|
-
|
|
141
|
-
1.
|
|
142
|
-
2.
|
|
143
|
-
3.
|
|
144
|
-
4. Git 自动提交
|
|
145
|
-
5. 检查是否需要审批 (按执行模式)
|
|
146
|
-
}
|
|
117
|
+
任务计划:
|
|
118
|
+
1. [规划] XXX - 需求分析与规划
|
|
119
|
+
2. [开发] XXX - 开发实现 (依赖 1)
|
|
120
|
+
3. [验证] XXX - 验证 (依赖 2)
|
|
147
121
|
```
|
|
148
122
|
|
|
149
|
-
### 失败处理
|
|
150
|
-
|
|
151
|
-
失败的任务自动跳过并记录。执行结束后统一提示失败任务,提供重试/跳过选项。
|
|
152
|
-
|
|
153
|
-
### Meeting 处理
|
|
154
|
-
|
|
155
|
-
阻塞任务自动记录到 Meeting。使用 AskUserQuestion 逐个处理: 提供信息/跳过/重试。
|
|
156
|
-
|
|
157
123
|
---
|
|
158
124
|
|
|
159
|
-
## Step
|
|
125
|
+
## Step 3: 执行
|
|
126
|
+
|
|
127
|
+
**从此步骤开始,除非遇到风险操作或 Meeting,不得暂停询问用户。**
|
|
160
128
|
|
|
161
|
-
|
|
129
|
+
```
|
|
130
|
+
while (有待执行任务) {
|
|
131
|
+
1. Agent 工具执行 SubagentTask
|
|
132
|
+
2. openmatrix complete <taskId> --success/--failed
|
|
133
|
+
3. Git 自动提交
|
|
134
|
+
}
|
|
135
|
+
```
|
|
162
136
|
|
|
163
|
-
|
|
137
|
+
- **失败任务**: 自动跳过并记录,执行结束后统一提示
|
|
138
|
+
- **阻塞任务**: 记录到 Meeting,暂停用 AskUserQuestion 处理
|
|
164
139
|
|
|
165
140
|
---
|
|
166
141
|
|
|
167
|
-
## Step
|
|
142
|
+
## Step 4: 验证 + 完成
|
|
168
143
|
|
|
169
|
-
|
|
144
|
+
根据质量级别执行: 编译 → 测试 → 覆盖率 → Lint → 安全扫描
|
|
170
145
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
## Step 6: 完成
|
|
146
|
+
输出: `Tests: 15/15, 85% | Build: OK | Lint: OK | Security: OK`
|
|
174
147
|
|
|
175
|
-
|
|
148
|
+
通过则输出总结: 任务数、成功/失败、commits 数。
|
|
149
|
+
不通过则提示失败项。
|
|
176
150
|
|
|
177
151
|
---
|
|
178
152
|
|
|
179
|
-
##
|
|
180
|
-
|
|
181
|
-
以下操作在任何执行模式下都需要用户确认:
|
|
153
|
+
## 风险操作 (任何模式下都需确认)
|
|
182
154
|
|
|
183
155
|
| 类型 | 操作 |
|
|
184
156
|
|------|------|
|
|
@@ -195,29 +167,29 @@ $ARGUMENTS
|
|
|
195
167
|
</arguments>
|
|
196
168
|
|
|
197
169
|
<examples>
|
|
198
|
-
/om:start #
|
|
199
|
-
/om:start docs/task.md #
|
|
200
|
-
/om:start "实现用户登录功能" #
|
|
170
|
+
/om:start # 交互式输入
|
|
171
|
+
/om:start docs/task.md # 从文件
|
|
172
|
+
/om:start "实现用户登录功能" # 直接描述
|
|
201
173
|
</examples>
|
|
202
174
|
|
|
203
175
|
<notes>
|
|
204
176
|
## 质量级别
|
|
205
177
|
|
|
206
|
-
| 级别 | TDD | 覆盖率 | Lint | 安全 |
|
|
207
|
-
|
|
208
|
-
| **strict** | ✅ | >80% | ✅
|
|
209
|
-
| **balanced** | ❌ | >60% | ✅ | ✅ |
|
|
210
|
-
| **fast** | ❌ | >20% | ❌ | ❌ |
|
|
178
|
+
| 级别 | TDD | 覆盖率 | Lint | 安全 | 适用 |
|
|
179
|
+
|------|:---:|:------:|:----:|:----:|------|
|
|
180
|
+
| **strict** | ✅ | >80% | ✅ | ✅ | 生产代码 |
|
|
181
|
+
| **balanced** | ❌ | >60% | ✅ | ✅ | 日常开发 |
|
|
182
|
+
| **fast** | ❌ | >20% | ❌ | ❌ | 快速原型 |
|
|
211
183
|
|
|
212
184
|
## 执行模式
|
|
213
185
|
|
|
214
|
-
| 模式 |
|
|
215
|
-
|
|
216
|
-
| 全自动 |
|
|
217
|
-
| 关键节点 | plan/merge
|
|
218
|
-
| 每步确认 |
|
|
186
|
+
| 模式 | 暂停点 | 适用 |
|
|
187
|
+
|------|--------|------|
|
|
188
|
+
| 全自动 | 不暂停 | 简单任务 |
|
|
189
|
+
| 关键节点 | plan/merge | 常规任务 |
|
|
190
|
+
| 每步确认 | 每任务 | 重要任务 |
|
|
219
191
|
|
|
220
|
-
## Git
|
|
192
|
+
## Git 提交
|
|
221
193
|
|
|
222
194
|
```
|
|
223
195
|
<type>: (TASK-XXX) 简短描述
|