openmatrix 0.1.99 → 0.2.2
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/impl/coder-agent.js +42 -42
- package/dist/agents/impl/executor-agent.js +75 -75
- package/dist/agents/impl/planner-agent.js +63 -63
- package/dist/agents/impl/reviewer-agent.js +66 -66
- package/dist/agents/impl/tester-agent.js +56 -56
- package/dist/cli/commands/auto.js +20 -6
- package/dist/cli/commands/complete.js +1 -1
- package/dist/cli/commands/meeting.js +0 -1
- package/dist/cli/commands/report.js +45 -45
- package/dist/cli/commands/start.js +168 -34
- package/dist/cli/commands/status.js +0 -1
- package/dist/cli/commands/step.js +62 -35
- package/dist/orchestrator/ai-reviewer.d.ts +30 -2
- package/dist/orchestrator/ai-reviewer.js +314 -209
- package/dist/orchestrator/answer-mapper.d.ts +1 -0
- package/dist/orchestrator/answer-mapper.js +5 -2
- package/dist/orchestrator/approval-manager.js +14 -13
- package/dist/orchestrator/executor.d.ts +10 -1
- package/dist/orchestrator/executor.js +62 -2
- package/dist/orchestrator/interactive-question-generator.js +4 -3
- package/dist/orchestrator/meeting-manager.js +32 -31
- package/dist/orchestrator/phase-executor.js +9 -6
- package/dist/orchestrator/scheduler.d.ts +8 -6
- package/dist/orchestrator/scheduler.js +53 -22
- package/dist/orchestrator/state-machine.js +2 -2
- package/dist/orchestrator/task-planner.d.ts +83 -4
- package/dist/orchestrator/task-planner.js +702 -124
- package/dist/storage/state-manager.d.ts +6 -0
- package/dist/storage/state-manager.js +28 -0
- package/package.json +55 -55
- package/scripts/build-check.js +19 -19
- package/scripts/install-skills.js +57 -57
- package/skills/approve.md +250 -250
- package/skills/auto.md +298 -298
- package/skills/meeting.md +324 -324
- package/skills/om.md +112 -112
- package/skills/openmatrix.md +112 -112
- package/skills/start.md +38 -6
- package/dist/cli/commands/upgrade.d.ts +0 -2
- package/dist/cli/commands/upgrade.js +0 -329
- package/dist/orchestrator/task-planner.old.d.ts +0 -87
- package/dist/orchestrator/task-planner.old.js +0 -444
package/skills/meeting.md
CHANGED
|
@@ -1,324 +1,324 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:meeting
|
|
3
|
-
description: 查看和处理所有待确认的 Meeting(阻塞问题和决策点)
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<NO-OTHER-SKILLS>
|
|
7
|
-
执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
|
|
8
|
-
</NO-OTHER-SKILLS>
|
|
9
|
-
|
|
10
|
-
<objective>
|
|
11
|
-
查看所有执行过程中记录的 Meeting,以交互式方式让用户确认或提供解决方案。
|
|
12
|
-
</objective>
|
|
13
|
-
|
|
14
|
-
<process>
|
|
15
|
-
1. **获取 Meeting 列表**
|
|
16
|
-
```bash
|
|
17
|
-
openmatrix meeting --list
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
2. **如果没有待处理 Meeting**
|
|
21
|
-
```
|
|
22
|
-
✅ 没有待处理的 Meeting
|
|
23
|
-
|
|
24
|
-
当前状态:
|
|
25
|
-
- 已解决: X
|
|
26
|
-
- 总计: Y
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
3. **展示 Meeting 列表**
|
|
30
|
-
```
|
|
31
|
-
📋 待处理 Meeting (X个)
|
|
32
|
-
|
|
33
|
-
┌─────────────────────────────────────────┐
|
|
34
|
-
│ [1] 🔴 TASK-001 - 数据库连接失败 │
|
|
35
|
-
│ 阻塞原因: 无法连接到远程数据库 │
|
|
36
|
-
│ 影响: 2个下游任务 │
|
|
37
|
-
│ │
|
|
38
|
-
│ [2] 🤔 TASK-003 - API设计决策 │
|
|
39
|
-
│ 问题: 选择 REST 还是 GraphQL │
|
|
40
|
-
│ 方案: 待决策 │
|
|
41
|
-
│ │
|
|
42
|
-
│ [3] 🔴 TASK-005 - 第三方API密钥缺失 │
|
|
43
|
-
│ 阻塞原因: 需要申请 API Key │
|
|
44
|
-
│ 影响: 1个下游任务 │
|
|
45
|
-
└─────────────────────────────────────────┘
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
4. **使用 AskUserQuestion 选择处理哪个 Meeting**
|
|
49
|
-
|
|
50
|
-
**先在界面展示 Meeting 列表详情,再用简短 AskUserQuestion 让用户选择:**
|
|
51
|
-
|
|
52
|
-
AskUserQuestion: `header: "选择 Meeting"`, `multiSelect: false`
|
|
53
|
-
**question:** 请选择要处理的 Meeting(详情已展示在上方)
|
|
54
|
-
|
|
55
|
-
| label | description |
|
|
56
|
-
|-------|-------------|
|
|
57
|
-
| [1] TASK-001 - 数据库连接失败 | 阻塞 - 需要信息 |
|
|
58
|
-
| [2] TASK-003 - API设计决策 | 决策 - 技术选型 |
|
|
59
|
-
| 全部跳过 | 标记所有 Meeting 为跳过 |
|
|
60
|
-
| 返回 | 暂不处理 |
|
|
61
|
-
|
|
62
|
-
5. **处理单个 Meeting**
|
|
63
|
-
|
|
64
|
-
根据 Meeting 类型展示不同的选项:
|
|
65
|
-
|
|
66
|
-
**🔴 阻塞问题 Meeting:**
|
|
67
|
-
```
|
|
68
|
-
📋 Meeting: APPR-001
|
|
69
|
-
🎯 任务: TASK-001 - 数据库连接失败
|
|
70
|
-
|
|
71
|
-
## 阻塞详情
|
|
72
|
-
|
|
73
|
-
**原因**: 无法连接到远程数据库
|
|
74
|
-
**尝试**: 已检查网络连通性,防火墙已放行
|
|
75
|
-
**时间**: 2024-03-25 10:30:00
|
|
76
|
-
|
|
77
|
-
## 影响范围
|
|
78
|
-
|
|
79
|
-
- TASK-002: 用户数据同步 (依赖 TASK-001)
|
|
80
|
-
- TASK-004: 数据备份任务 (依赖 TASK-001)
|
|
81
|
-
|
|
82
|
-
## 可用操作
|
|
83
|
-
|
|
84
|
-
[A] 💡 提供信息 - 提供解决问题所需的信息
|
|
85
|
-
[B] ⏭️ 跳过任务 - 标记此任务为可选,继续下游
|
|
86
|
-
[C] 🔄 重试 - 使用新信息重试此任务
|
|
87
|
-
[D] ✏️ 修改方案 - 调整任务执行方案
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
**使用 AskUserQuestion(阻塞详情已展示在上方):**
|
|
91
|
-
|
|
92
|
-
AskUserQuestion: `header: "处理阻塞"`, `multiSelect: false`
|
|
93
|
-
**question:** 请选择操作
|
|
94
|
-
|
|
95
|
-
| label | description |
|
|
96
|
-
|-------|-------------|
|
|
97
|
-
| 提供信息 | 提供解决问题所需的信息 |
|
|
98
|
-
| 跳过任务 | 标记为可选,继续执行下游任务 |
|
|
99
|
-
| 重试 | 使用新信息重试此任务 |
|
|
100
|
-
| 修改方案 | 调整任务执行方案 |
|
|
101
|
-
| 返回列表 | 暂不处理 |
|
|
102
|
-
|
|
103
|
-
6. **处理具体选择**
|
|
104
|
-
|
|
105
|
-
**如果选择"提供信息":**
|
|
106
|
-
|
|
107
|
-
AskUserQuestion: `header: "详细信息"`, `multiSelect: false`
|
|
108
|
-
**question:** 请提供解决此阻塞所需的信息
|
|
109
|
-
|
|
110
|
-
然后执行:
|
|
111
|
-
```bash
|
|
112
|
-
openmatrix meeting APPR-001 --action provide-info \
|
|
113
|
-
--info "数据库连接字符串是: postgresql://user:pass@host/db"
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**如果选择"跳过任务":**
|
|
117
|
-
|
|
118
|
-
AskUserQuestion: `header: "确认"`, `multiSelect: false`
|
|
119
|
-
**question:** 确定要跳过此任务吗?
|
|
120
|
-
|
|
121
|
-
| label | description |
|
|
122
|
-
|-------|-------------|
|
|
123
|
-
| 确认跳过 | 标记为可选,继续下游 |
|
|
124
|
-
| 取消 | 返回 |
|
|
125
|
-
|
|
126
|
-
然后执行:
|
|
127
|
-
```bash
|
|
128
|
-
openmatrix meeting APPR-001 --action skip --message "任务可选,跳过执行"
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
**如果选择"重试":**
|
|
132
|
-
```bash
|
|
133
|
-
openmatrix meeting APPR-001 --action retry
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
**如果选择"修改方案":**
|
|
137
|
-
|
|
138
|
-
AskUserQuestion: `header: "新方案"`, `multiSelect: false`
|
|
139
|
-
**question:** 请描述修改后的方案
|
|
140
|
-
|
|
141
|
-
然后执行:
|
|
142
|
-
```bash
|
|
143
|
-
openmatrix meeting APPR-001 --action modify \
|
|
144
|
-
--new-plan "使用本地 SQLite 替代 PostgreSQL"
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
7. **处理决策型 Meeting**
|
|
148
|
-
|
|
149
|
-
**🤔 技术决策 Meeting:**
|
|
150
|
-
```
|
|
151
|
-
📋 Meeting: APPR-002
|
|
152
|
-
🎯 任务: TASK-003 - API 设计决策
|
|
153
|
-
|
|
154
|
-
## 决策问题
|
|
155
|
-
|
|
156
|
-
**问题**: 选择 REST 还是 GraphQL?
|
|
157
|
-
|
|
158
|
-
## 可选方案
|
|
159
|
-
|
|
160
|
-
**方案 1: REST API** (推荐)
|
|
161
|
-
- ✅ 简单直观,团队熟悉
|
|
162
|
-
- ✅ 调试方便
|
|
163
|
-
- ❌ 可能需要多次请求
|
|
164
|
-
|
|
165
|
-
**方案 2: GraphQL**
|
|
166
|
-
- ✅ 灵活查询,一次请求
|
|
167
|
-
- ✅ 强类型
|
|
168
|
-
- ❌ 学习成本较高
|
|
169
|
-
- ❌ 需要额外工具
|
|
170
|
-
|
|
171
|
-
## 操作
|
|
172
|
-
|
|
173
|
-
[A] 选择方案 1 - REST (推荐)
|
|
174
|
-
[B] 选择方案 2 - GraphQL
|
|
175
|
-
[C] 自定义方案
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**使用 AskUserQuestion(方案详情已展示在上方):**
|
|
179
|
-
|
|
180
|
-
AskUserQuestion: `header: "技术决策"`, `multiSelect: false`
|
|
181
|
-
**question:** 请做出决策
|
|
182
|
-
|
|
183
|
-
| label | description |
|
|
184
|
-
|-------|-------------|
|
|
185
|
-
| 选择方案 1: REST | 简单直观,团队熟悉 |
|
|
186
|
-
| 选择方案 2: GraphQL | 灵活查询,强类型 |
|
|
187
|
-
| 自定义方案 | 输入其他方案 |
|
|
188
|
-
| 需要更多信息 | 暂不决策,等待调研 |
|
|
189
|
-
| 返回列表 | 返回 Meeting 列表 |
|
|
190
|
-
|
|
191
|
-
执行决策:
|
|
192
|
-
```bash
|
|
193
|
-
openmatrix meeting APPR-002 --action decide \
|
|
194
|
-
--reason "选择 REST,团队熟悉,快速开发"
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
8. **处理完成**
|
|
198
|
-
|
|
199
|
-
处理一个 Meeting 后:
|
|
200
|
-
```
|
|
201
|
-
✅ Meeting APPR-001 已解决
|
|
202
|
-
|
|
203
|
-
操作: 提供信息
|
|
204
|
-
状态: 任务已恢复执行
|
|
205
|
-
|
|
206
|
-
📋 剩余 Meeting (2个):
|
|
207
|
-
- APPR-002: API设计决策
|
|
208
|
-
- APPR-003: API密钥缺失
|
|
209
|
-
|
|
210
|
-
是否继续处理? [Y/n]: _
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
如果是 "跳过" 或 "取消":
|
|
214
|
-
```
|
|
215
|
-
⏭️ Meeting APPR-001 已跳过
|
|
216
|
-
|
|
217
|
-
任务 TASK-001 标记为可选
|
|
218
|
-
下游任务可继续执行
|
|
219
|
-
|
|
220
|
-
📋 剩余 Meeting (2个): ...
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
9. **批量处理**
|
|
224
|
-
|
|
225
|
-
如果选择"全部跳过":
|
|
226
|
-
|
|
227
|
-
AskUserQuestion: `header: "批量操作"`, `multiSelect: false`
|
|
228
|
-
**question:** 确定要跳过所有 Meeting 吗?
|
|
229
|
-
|
|
230
|
-
| label | description |
|
|
231
|
-
|-------|-------------|
|
|
232
|
-
| 确认全部跳过 | 标记所有为可选 |
|
|
233
|
-
| 取消 | 返回列表 |
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
openmatrix meeting --skip-all --message "批量跳过"
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
</process>
|
|
240
|
-
|
|
241
|
-
<arguments>
|
|
242
|
-
$ARGUMENTS
|
|
243
|
-
|
|
244
|
-
- 无参数: 列出所有待处理 Meeting
|
|
245
|
-
- Meeting ID: 直接处理指定 Meeting
|
|
246
|
-
</arguments>
|
|
247
|
-
|
|
248
|
-
<examples>
|
|
249
|
-
/om:meeting # 查看所有待处理 Meeting
|
|
250
|
-
/om:meeting APPR-001 # 直接处理指定 Meeting
|
|
251
|
-
</examples>
|
|
252
|
-
|
|
253
|
-
<notes>
|
|
254
|
-
## Meeting 类型
|
|
255
|
-
|
|
256
|
-
| 类型 | 图标 | 说明 |
|
|
257
|
-
|------|------|------|
|
|
258
|
-
| 阻塞 | 🔴 | 任务执行遇到阻塞,需要信息或决策 |
|
|
259
|
-
| 决策 | 🤔 | 技术选型或设计方案决策 |
|
|
260
|
-
|
|
261
|
-
## 操作类型
|
|
262
|
-
|
|
263
|
-
| 操作 | 说明 | 后续 |
|
|
264
|
-
|------|------|------|
|
|
265
|
-
| provide-info | 提供解决信息 | 任务恢复执行 |
|
|
266
|
-
| skip | 跳过任务 | 标记可选,下游继续 |
|
|
267
|
-
| retry | 重试任务 | 重新执行当前任务 |
|
|
268
|
-
| modify | 修改方案 | 更新任务后重试 |
|
|
269
|
-
| decide | 做出决策 | 记录决策并继续 |
|
|
270
|
-
| cancel | 取消任务 | 停止相关下游任务 |
|
|
271
|
-
|
|
272
|
-
## CLI 命令
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
# 列出所有 Meeting
|
|
276
|
-
openmatrix meeting --list
|
|
277
|
-
|
|
278
|
-
# 处理指定 Meeting
|
|
279
|
-
openmatrix meeting APPR-001 --action provide-info --info "..."
|
|
280
|
-
openmatrix meeting APPR-001 --action skip --message "..."
|
|
281
|
-
openmatrix meeting APPR-001 --action retry
|
|
282
|
-
openmatrix meeting APPR-001 --action modify --new-plan "..."
|
|
283
|
-
openmatrix meeting APPR-001 --action decide --reason "选择方案A,因为..."
|
|
284
|
-
openmatrix meeting APPR-001 --action cancel --message "取消执行"
|
|
285
|
-
|
|
286
|
-
# 批量操作
|
|
287
|
-
openmatrix meeting --skip-all --message "批量跳过"
|
|
288
|
-
```
|
|
289
|
-
|
|
290
|
-
## 与执行循环的关系
|
|
291
|
-
|
|
292
|
-
```
|
|
293
|
-
执行任务中...
|
|
294
|
-
├── 任务A 完成 ✓
|
|
295
|
-
├── 任务B 阻塞 → 创建Meeting → 跳过,继续
|
|
296
|
-
└── 任务C 完成 ✓
|
|
297
|
-
|
|
298
|
-
执行完成!
|
|
299
|
-
📋 有待处理的 Meeting (1个)
|
|
300
|
-
↓
|
|
301
|
-
用户执行 /om:meeting
|
|
302
|
-
↓
|
|
303
|
-
交互式处理 Meeting
|
|
304
|
-
├── 提供信息 / 跳过 / 重试
|
|
305
|
-
└── 解决阻塞
|
|
306
|
-
↓
|
|
307
|
-
恢复执行或标记完成
|
|
308
|
-
```
|
|
309
|
-
|
|
310
|
-
## 与 start 的集成
|
|
311
|
-
|
|
312
|
-
执行 `/om:start` 时:
|
|
313
|
-
1. 阻塞任务自动跳过,创建 Meeting 记录
|
|
314
|
-
2. 非阻塞任务继续执行,最大化并行度
|
|
315
|
-
3. 所有非阻塞任务完成后,自动提示有待处理的 Meeting
|
|
316
|
-
4. 用户使用 `/om:meeting` 统一处理阻塞问题
|
|
317
|
-
|
|
318
|
-
**全自动执行模式下的 Meeting 流程:**
|
|
319
|
-
```
|
|
320
|
-
/om:start → 执行任务 → 遇到阻塞 → 创建 Meeting → 跳过阻塞 → 继续执行其他任务
|
|
321
|
-
↓
|
|
322
|
-
所有非阻塞任务完成 → 提示 Meeting → /om:meeting → 用户处理 → 完成
|
|
323
|
-
```
|
|
324
|
-
</notes>
|
|
1
|
+
---
|
|
2
|
+
name: om:meeting
|
|
3
|
+
description: 查看和处理所有待确认的 Meeting(阻塞问题和决策点)
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<NO-OTHER-SKILLS>
|
|
7
|
+
执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
|
|
8
|
+
</NO-OTHER-SKILLS>
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
查看所有执行过程中记录的 Meeting,以交互式方式让用户确认或提供解决方案。
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
1. **获取 Meeting 列表**
|
|
16
|
+
```bash
|
|
17
|
+
openmatrix meeting --list
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
2. **如果没有待处理 Meeting**
|
|
21
|
+
```
|
|
22
|
+
✅ 没有待处理的 Meeting
|
|
23
|
+
|
|
24
|
+
当前状态:
|
|
25
|
+
- 已解决: X
|
|
26
|
+
- 总计: Y
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
3. **展示 Meeting 列表**
|
|
30
|
+
```
|
|
31
|
+
📋 待处理 Meeting (X个)
|
|
32
|
+
|
|
33
|
+
┌─────────────────────────────────────────┐
|
|
34
|
+
│ [1] 🔴 TASK-001 - 数据库连接失败 │
|
|
35
|
+
│ 阻塞原因: 无法连接到远程数据库 │
|
|
36
|
+
│ 影响: 2个下游任务 │
|
|
37
|
+
│ │
|
|
38
|
+
│ [2] 🤔 TASK-003 - API设计决策 │
|
|
39
|
+
│ 问题: 选择 REST 还是 GraphQL │
|
|
40
|
+
│ 方案: 待决策 │
|
|
41
|
+
│ │
|
|
42
|
+
│ [3] 🔴 TASK-005 - 第三方API密钥缺失 │
|
|
43
|
+
│ 阻塞原因: 需要申请 API Key │
|
|
44
|
+
│ 影响: 1个下游任务 │
|
|
45
|
+
└─────────────────────────────────────────┘
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
4. **使用 AskUserQuestion 选择处理哪个 Meeting**
|
|
49
|
+
|
|
50
|
+
**先在界面展示 Meeting 列表详情,再用简短 AskUserQuestion 让用户选择:**
|
|
51
|
+
|
|
52
|
+
AskUserQuestion: `header: "选择 Meeting"`, `multiSelect: false`
|
|
53
|
+
**question:** 请选择要处理的 Meeting(详情已展示在上方)
|
|
54
|
+
|
|
55
|
+
| label | description |
|
|
56
|
+
|-------|-------------|
|
|
57
|
+
| [1] TASK-001 - 数据库连接失败 | 阻塞 - 需要信息 |
|
|
58
|
+
| [2] TASK-003 - API设计决策 | 决策 - 技术选型 |
|
|
59
|
+
| 全部跳过 | 标记所有 Meeting 为跳过 |
|
|
60
|
+
| 返回 | 暂不处理 |
|
|
61
|
+
|
|
62
|
+
5. **处理单个 Meeting**
|
|
63
|
+
|
|
64
|
+
根据 Meeting 类型展示不同的选项:
|
|
65
|
+
|
|
66
|
+
**🔴 阻塞问题 Meeting:**
|
|
67
|
+
```
|
|
68
|
+
📋 Meeting: APPR-001
|
|
69
|
+
🎯 任务: TASK-001 - 数据库连接失败
|
|
70
|
+
|
|
71
|
+
## 阻塞详情
|
|
72
|
+
|
|
73
|
+
**原因**: 无法连接到远程数据库
|
|
74
|
+
**尝试**: 已检查网络连通性,防火墙已放行
|
|
75
|
+
**时间**: 2024-03-25 10:30:00
|
|
76
|
+
|
|
77
|
+
## 影响范围
|
|
78
|
+
|
|
79
|
+
- TASK-002: 用户数据同步 (依赖 TASK-001)
|
|
80
|
+
- TASK-004: 数据备份任务 (依赖 TASK-001)
|
|
81
|
+
|
|
82
|
+
## 可用操作
|
|
83
|
+
|
|
84
|
+
[A] 💡 提供信息 - 提供解决问题所需的信息
|
|
85
|
+
[B] ⏭️ 跳过任务 - 标记此任务为可选,继续下游
|
|
86
|
+
[C] 🔄 重试 - 使用新信息重试此任务
|
|
87
|
+
[D] ✏️ 修改方案 - 调整任务执行方案
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**使用 AskUserQuestion(阻塞详情已展示在上方):**
|
|
91
|
+
|
|
92
|
+
AskUserQuestion: `header: "处理阻塞"`, `multiSelect: false`
|
|
93
|
+
**question:** 请选择操作
|
|
94
|
+
|
|
95
|
+
| label | description |
|
|
96
|
+
|-------|-------------|
|
|
97
|
+
| 提供信息 | 提供解决问题所需的信息 |
|
|
98
|
+
| 跳过任务 | 标记为可选,继续执行下游任务 |
|
|
99
|
+
| 重试 | 使用新信息重试此任务 |
|
|
100
|
+
| 修改方案 | 调整任务执行方案 |
|
|
101
|
+
| 返回列表 | 暂不处理 |
|
|
102
|
+
|
|
103
|
+
6. **处理具体选择**
|
|
104
|
+
|
|
105
|
+
**如果选择"提供信息":**
|
|
106
|
+
|
|
107
|
+
AskUserQuestion: `header: "详细信息"`, `multiSelect: false`
|
|
108
|
+
**question:** 请提供解决此阻塞所需的信息
|
|
109
|
+
|
|
110
|
+
然后执行:
|
|
111
|
+
```bash
|
|
112
|
+
openmatrix meeting APPR-001 --action provide-info \
|
|
113
|
+
--info "数据库连接字符串是: postgresql://user:pass@host/db"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**如果选择"跳过任务":**
|
|
117
|
+
|
|
118
|
+
AskUserQuestion: `header: "确认"`, `multiSelect: false`
|
|
119
|
+
**question:** 确定要跳过此任务吗?
|
|
120
|
+
|
|
121
|
+
| label | description |
|
|
122
|
+
|-------|-------------|
|
|
123
|
+
| 确认跳过 | 标记为可选,继续下游 |
|
|
124
|
+
| 取消 | 返回 |
|
|
125
|
+
|
|
126
|
+
然后执行:
|
|
127
|
+
```bash
|
|
128
|
+
openmatrix meeting APPR-001 --action skip --message "任务可选,跳过执行"
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
**如果选择"重试":**
|
|
132
|
+
```bash
|
|
133
|
+
openmatrix meeting APPR-001 --action retry
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**如果选择"修改方案":**
|
|
137
|
+
|
|
138
|
+
AskUserQuestion: `header: "新方案"`, `multiSelect: false`
|
|
139
|
+
**question:** 请描述修改后的方案
|
|
140
|
+
|
|
141
|
+
然后执行:
|
|
142
|
+
```bash
|
|
143
|
+
openmatrix meeting APPR-001 --action modify \
|
|
144
|
+
--new-plan "使用本地 SQLite 替代 PostgreSQL"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
7. **处理决策型 Meeting**
|
|
148
|
+
|
|
149
|
+
**🤔 技术决策 Meeting:**
|
|
150
|
+
```
|
|
151
|
+
📋 Meeting: APPR-002
|
|
152
|
+
🎯 任务: TASK-003 - API 设计决策
|
|
153
|
+
|
|
154
|
+
## 决策问题
|
|
155
|
+
|
|
156
|
+
**问题**: 选择 REST 还是 GraphQL?
|
|
157
|
+
|
|
158
|
+
## 可选方案
|
|
159
|
+
|
|
160
|
+
**方案 1: REST API** (推荐)
|
|
161
|
+
- ✅ 简单直观,团队熟悉
|
|
162
|
+
- ✅ 调试方便
|
|
163
|
+
- ❌ 可能需要多次请求
|
|
164
|
+
|
|
165
|
+
**方案 2: GraphQL**
|
|
166
|
+
- ✅ 灵活查询,一次请求
|
|
167
|
+
- ✅ 强类型
|
|
168
|
+
- ❌ 学习成本较高
|
|
169
|
+
- ❌ 需要额外工具
|
|
170
|
+
|
|
171
|
+
## 操作
|
|
172
|
+
|
|
173
|
+
[A] 选择方案 1 - REST (推荐)
|
|
174
|
+
[B] 选择方案 2 - GraphQL
|
|
175
|
+
[C] 自定义方案
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**使用 AskUserQuestion(方案详情已展示在上方):**
|
|
179
|
+
|
|
180
|
+
AskUserQuestion: `header: "技术决策"`, `multiSelect: false`
|
|
181
|
+
**question:** 请做出决策
|
|
182
|
+
|
|
183
|
+
| label | description |
|
|
184
|
+
|-------|-------------|
|
|
185
|
+
| 选择方案 1: REST | 简单直观,团队熟悉 |
|
|
186
|
+
| 选择方案 2: GraphQL | 灵活查询,强类型 |
|
|
187
|
+
| 自定义方案 | 输入其他方案 |
|
|
188
|
+
| 需要更多信息 | 暂不决策,等待调研 |
|
|
189
|
+
| 返回列表 | 返回 Meeting 列表 |
|
|
190
|
+
|
|
191
|
+
执行决策:
|
|
192
|
+
```bash
|
|
193
|
+
openmatrix meeting APPR-002 --action decide \
|
|
194
|
+
--reason "选择 REST,团队熟悉,快速开发"
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
8. **处理完成**
|
|
198
|
+
|
|
199
|
+
处理一个 Meeting 后:
|
|
200
|
+
```
|
|
201
|
+
✅ Meeting APPR-001 已解决
|
|
202
|
+
|
|
203
|
+
操作: 提供信息
|
|
204
|
+
状态: 任务已恢复执行
|
|
205
|
+
|
|
206
|
+
📋 剩余 Meeting (2个):
|
|
207
|
+
- APPR-002: API设计决策
|
|
208
|
+
- APPR-003: API密钥缺失
|
|
209
|
+
|
|
210
|
+
是否继续处理? [Y/n]: _
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
如果是 "跳过" 或 "取消":
|
|
214
|
+
```
|
|
215
|
+
⏭️ Meeting APPR-001 已跳过
|
|
216
|
+
|
|
217
|
+
任务 TASK-001 标记为可选
|
|
218
|
+
下游任务可继续执行
|
|
219
|
+
|
|
220
|
+
📋 剩余 Meeting (2个): ...
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
9. **批量处理**
|
|
224
|
+
|
|
225
|
+
如果选择"全部跳过":
|
|
226
|
+
|
|
227
|
+
AskUserQuestion: `header: "批量操作"`, `multiSelect: false`
|
|
228
|
+
**question:** 确定要跳过所有 Meeting 吗?
|
|
229
|
+
|
|
230
|
+
| label | description |
|
|
231
|
+
|-------|-------------|
|
|
232
|
+
| 确认全部跳过 | 标记所有为可选 |
|
|
233
|
+
| 取消 | 返回列表 |
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
openmatrix meeting --skip-all --message "批量跳过"
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
</process>
|
|
240
|
+
|
|
241
|
+
<arguments>
|
|
242
|
+
$ARGUMENTS
|
|
243
|
+
|
|
244
|
+
- 无参数: 列出所有待处理 Meeting
|
|
245
|
+
- Meeting ID: 直接处理指定 Meeting
|
|
246
|
+
</arguments>
|
|
247
|
+
|
|
248
|
+
<examples>
|
|
249
|
+
/om:meeting # 查看所有待处理 Meeting
|
|
250
|
+
/om:meeting APPR-001 # 直接处理指定 Meeting
|
|
251
|
+
</examples>
|
|
252
|
+
|
|
253
|
+
<notes>
|
|
254
|
+
## Meeting 类型
|
|
255
|
+
|
|
256
|
+
| 类型 | 图标 | 说明 |
|
|
257
|
+
|------|------|------|
|
|
258
|
+
| 阻塞 | 🔴 | 任务执行遇到阻塞,需要信息或决策 |
|
|
259
|
+
| 决策 | 🤔 | 技术选型或设计方案决策 |
|
|
260
|
+
|
|
261
|
+
## 操作类型
|
|
262
|
+
|
|
263
|
+
| 操作 | 说明 | 后续 |
|
|
264
|
+
|------|------|------|
|
|
265
|
+
| provide-info | 提供解决信息 | 任务恢复执行 |
|
|
266
|
+
| skip | 跳过任务 | 标记可选,下游继续 |
|
|
267
|
+
| retry | 重试任务 | 重新执行当前任务 |
|
|
268
|
+
| modify | 修改方案 | 更新任务后重试 |
|
|
269
|
+
| decide | 做出决策 | 记录决策并继续 |
|
|
270
|
+
| cancel | 取消任务 | 停止相关下游任务 |
|
|
271
|
+
|
|
272
|
+
## CLI 命令
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# 列出所有 Meeting
|
|
276
|
+
openmatrix meeting --list
|
|
277
|
+
|
|
278
|
+
# 处理指定 Meeting
|
|
279
|
+
openmatrix meeting APPR-001 --action provide-info --info "..."
|
|
280
|
+
openmatrix meeting APPR-001 --action skip --message "..."
|
|
281
|
+
openmatrix meeting APPR-001 --action retry
|
|
282
|
+
openmatrix meeting APPR-001 --action modify --new-plan "..."
|
|
283
|
+
openmatrix meeting APPR-001 --action decide --reason "选择方案A,因为..."
|
|
284
|
+
openmatrix meeting APPR-001 --action cancel --message "取消执行"
|
|
285
|
+
|
|
286
|
+
# 批量操作
|
|
287
|
+
openmatrix meeting --skip-all --message "批量跳过"
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## 与执行循环的关系
|
|
291
|
+
|
|
292
|
+
```
|
|
293
|
+
执行任务中...
|
|
294
|
+
├── 任务A 完成 ✓
|
|
295
|
+
├── 任务B 阻塞 → 创建Meeting → 跳过,继续
|
|
296
|
+
└── 任务C 完成 ✓
|
|
297
|
+
|
|
298
|
+
执行完成!
|
|
299
|
+
📋 有待处理的 Meeting (1个)
|
|
300
|
+
↓
|
|
301
|
+
用户执行 /om:meeting
|
|
302
|
+
↓
|
|
303
|
+
交互式处理 Meeting
|
|
304
|
+
├── 提供信息 / 跳过 / 重试
|
|
305
|
+
└── 解决阻塞
|
|
306
|
+
↓
|
|
307
|
+
恢复执行或标记完成
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
## 与 start 的集成
|
|
311
|
+
|
|
312
|
+
执行 `/om:start` 时:
|
|
313
|
+
1. 阻塞任务自动跳过,创建 Meeting 记录
|
|
314
|
+
2. 非阻塞任务继续执行,最大化并行度
|
|
315
|
+
3. 所有非阻塞任务完成后,自动提示有待处理的 Meeting
|
|
316
|
+
4. 用户使用 `/om:meeting` 统一处理阻塞问题
|
|
317
|
+
|
|
318
|
+
**全自动执行模式下的 Meeting 流程:**
|
|
319
|
+
```
|
|
320
|
+
/om:start → 执行任务 → 遇到阻塞 → 创建 Meeting → 跳过阻塞 → 继续执行其他任务
|
|
321
|
+
↓
|
|
322
|
+
所有非阻塞任务完成 → 提示 Meeting → /om:meeting → 用户处理 → 完成
|
|
323
|
+
```
|
|
324
|
+
</notes>
|