openmatrix 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/README.md +512 -0
  2. package/dist/agents/agent-runner.d.ts +152 -0
  3. package/dist/agents/agent-runner.js +656 -0
  4. package/dist/agents/base-agent.d.ts +46 -0
  5. package/dist/agents/base-agent.js +17 -0
  6. package/dist/agents/impl/coder-agent.d.ts +17 -0
  7. package/dist/agents/impl/coder-agent.js +96 -0
  8. package/dist/agents/impl/executor-agent.d.ts +32 -0
  9. package/dist/agents/impl/executor-agent.js +168 -0
  10. package/dist/agents/impl/index.d.ts +6 -0
  11. package/dist/agents/impl/index.js +17 -0
  12. package/dist/agents/impl/planner-agent.d.ts +24 -0
  13. package/dist/agents/impl/planner-agent.js +126 -0
  14. package/dist/agents/impl/researcher-agent.d.ts +17 -0
  15. package/dist/agents/impl/researcher-agent.js +133 -0
  16. package/dist/agents/impl/reviewer-agent.d.ts +17 -0
  17. package/dist/agents/impl/reviewer-agent.js +120 -0
  18. package/dist/agents/impl/tester-agent.d.ts +17 -0
  19. package/dist/agents/impl/tester-agent.js +110 -0
  20. package/dist/cli/commands/approve.d.ts +2 -0
  21. package/dist/cli/commands/approve.js +87 -0
  22. package/dist/cli/commands/meeting.d.ts +2 -0
  23. package/dist/cli/commands/meeting.js +245 -0
  24. package/dist/cli/commands/report.d.ts +2 -0
  25. package/dist/cli/commands/report.js +202 -0
  26. package/dist/cli/commands/resume.d.ts +2 -0
  27. package/dist/cli/commands/resume.js +104 -0
  28. package/dist/cli/commands/retry.d.ts +2 -0
  29. package/dist/cli/commands/retry.js +79 -0
  30. package/dist/cli/commands/start.d.ts +2 -0
  31. package/dist/cli/commands/start.js +252 -0
  32. package/dist/cli/commands/status.d.ts +2 -0
  33. package/dist/cli/commands/status.js +226 -0
  34. package/dist/cli/index.d.ts +2 -0
  35. package/dist/cli/index.js +26 -0
  36. package/dist/index.d.ts +2 -0
  37. package/dist/index.js +9 -0
  38. package/dist/orchestrator/ai-reviewer.d.ts +50 -0
  39. package/dist/orchestrator/ai-reviewer.js +326 -0
  40. package/dist/orchestrator/approval-manager.d.ts +62 -0
  41. package/dist/orchestrator/approval-manager.js +160 -0
  42. package/dist/orchestrator/executor.d.ts +114 -0
  43. package/dist/orchestrator/executor.js +325 -0
  44. package/dist/orchestrator/full-test-runner.d.ts +122 -0
  45. package/dist/orchestrator/full-test-runner.js +335 -0
  46. package/dist/orchestrator/git-commit-manager.d.ts +75 -0
  47. package/dist/orchestrator/git-commit-manager.js +248 -0
  48. package/dist/orchestrator/interactive-question-generator.d.ts +90 -0
  49. package/dist/orchestrator/interactive-question-generator.js +312 -0
  50. package/dist/orchestrator/meeting-manager.d.ts +85 -0
  51. package/dist/orchestrator/meeting-manager.js +222 -0
  52. package/dist/orchestrator/phase-executor.d.ts +198 -0
  53. package/dist/orchestrator/phase-executor.js +796 -0
  54. package/dist/orchestrator/question-generator.d.ts +22 -0
  55. package/dist/orchestrator/question-generator.js +102 -0
  56. package/dist/orchestrator/retry-manager.d.ts +41 -0
  57. package/dist/orchestrator/retry-manager.js +83 -0
  58. package/dist/orchestrator/scheduler.d.ts +62 -0
  59. package/dist/orchestrator/scheduler.js +148 -0
  60. package/dist/orchestrator/state-machine.d.ts +53 -0
  61. package/dist/orchestrator/state-machine.js +124 -0
  62. package/dist/orchestrator/task-parser.d.ts +7 -0
  63. package/dist/orchestrator/task-parser.js +63 -0
  64. package/dist/orchestrator/task-planner.d.ts +71 -0
  65. package/dist/orchestrator/task-planner.js +316 -0
  66. package/dist/storage/file-store.d.ts +12 -0
  67. package/dist/storage/file-store.js +80 -0
  68. package/dist/storage/state-manager.d.ts +31 -0
  69. package/dist/storage/state-manager.js +202 -0
  70. package/dist/types/index.d.ts +193 -0
  71. package/dist/types/index.js +30 -0
  72. package/dist/utils/logger.d.ts +41 -0
  73. package/dist/utils/logger.js +166 -0
  74. package/dist/utils/progress-reporter.d.ts +116 -0
  75. package/dist/utils/progress-reporter.js +287 -0
  76. package/package.json +50 -0
  77. package/scripts/build-check.js +19 -0
  78. package/scripts/install-skills.js +51 -0
  79. package/skills/approve.md +253 -0
  80. package/skills/meeting.md +346 -0
  81. package/skills/report.md +100 -0
  82. package/skills/resume.md +68 -0
  83. package/skills/retry.md +61 -0
  84. package/skills/start.md +449 -0
  85. package/skills/status.md +46 -0
@@ -0,0 +1,253 @@
1
+ ---
2
+ name: om:approve
3
+ description: 审批待处理项(包括计划、合并、部署、Meeting)
4
+ ---
5
+
6
+ <NO-OTHER-SKILLS>
7
+ 执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
8
+ </NO-OTHER-SKILLS>
9
+
10
+ <objective>
11
+ 处理所有需要人工决策的待审批项,包括阻塞问题、技术决策、计划审批等。
12
+ </objective>
13
+
14
+ <process>
15
+ 1. **获取待审批列表**
16
+ ```bash
17
+ openmatrix approve --list
18
+ ```
19
+
20
+ 2. **如果没有待审批项**
21
+ ```
22
+ ✅ 没有待审批项
23
+
24
+ 当前执行状态:
25
+ - 运行中任务: X
26
+ - 已完成: Y
27
+ - 总计: Z
28
+
29
+ 使用 /om:status 查看详情
30
+ ```
31
+ 如果有多个,让用户选择要处理的审批
32
+
33
+ 3. **展示审批内容** (根据类型区分)
34
+
35
+ **Plan 审批:**
36
+ ```
37
+ 🔔 待审批: APPR-001
38
+
39
+ 📋 类型: 📝 Plan 审批
40
+ 🎯 任务: TASK-XXX
41
+
42
+ ## 执行计划
43
+
44
+ ### Phase 1: 设计阶段
45
+ └─ TASK-001: 架构设计 (15min)
46
+
47
+ ### Phase 2: 开发阶段
48
+ ├─ TASK-002: 数据模型 (20min)
49
+ └─ TASK-003: API 接口 (30min)
50
+
51
+ 📊 统计
52
+ - 总任务: 3
53
+ - 预计耗时: ~1小时
54
+
55
+ ## 选项
56
+
57
+ [A] ✅ 批准 - 按此计划执行
58
+ [B] ✏️ 修改 - 需要调整计划
59
+ [C] ❌ 拒绝 - 重新规划
60
+
61
+ 请选择: _
62
+ ```
63
+
64
+ **Meeting 审批 (阻塞问题):**
65
+ ```
66
+ 🔔 待审批: APPR-002
67
+
68
+ 📋 类型: 🔴 Meeting (阻塞)
69
+ 🎯 任务: TASK-XXX
70
+
71
+ ## 阻塞问题描述
72
+
73
+ **原因**: [阻塞原因]
74
+ **时间**: [发生时间]
75
+
76
+ ## 影响范围
77
+
78
+ - TASK-XXX: 下游任务1
79
+ - TASK-YYY: 下游任务2
80
+
81
+ ## 可选操作
82
+
83
+ [A] 💡 提供信息 - 提供解决阻塞所需的信息
84
+ [B] ⏭️ 跳过任务 - 标记为可选,继续执行
85
+ [C] 🔄 修改方案 - 调整任务方案
86
+ [D] ❌ 取消执行 - 停止整个流程
87
+
88
+ 请选择: _
89
+ ```
90
+
91
+ **Meeting 审批 (技术决策):**
92
+ ```
93
+ 🔔 待审批: APPR-003
94
+
95
+ 📋 类型: 🤔 Meeting (决策)
96
+ 🎯 任务: TASK-XXX
97
+
98
+ ## 决策点
99
+
100
+ **问题**: [需要决策的技术问题]
101
+
102
+ ## 可选方案
103
+
104
+ 1. 方案A - [描述] (推荐)
105
+ - 优点: ...
106
+ - 缺点: ...
107
+
108
+ 2. 方案B - [描述]
109
+ - 优点: ...
110
+ - 缺点: ...
111
+
112
+ ## 选项
113
+
114
+ [A] 选择方案1 (推荐)
115
+ [B] 选择方案2
116
+ [C] 自定义方案 - 输入您自己的方案
117
+ [D] 需要更多信息 - 暂不决策,先获取更多信息
118
+
119
+ 请选择: _
120
+ ```
121
+
122
+ 4. **处理用户选择**
123
+
124
+ 使用 `AskUserQuestion` 工具进行交互:
125
+
126
+ ```typescript
127
+ AskUserQuestion({
128
+ questions: [{
129
+ question: "请选择审批操作:",
130
+ header: "审批",
131
+ options: [
132
+ { label: "批准", description: "批准并继续执行" },
133
+ { label: "修改", description: "需要修改后重新提交" },
134
+ { label: "拒绝", description: "拒绝此请求" }
135
+ ],
136
+ multiSelect: false
137
+ }]
138
+ })
139
+ ```
140
+
141
+ 如果选择"提供信息"或"自定义方案",追加问题:
142
+
143
+ ```typescript
144
+ AskUserQuestion({
145
+ questions: [{
146
+ question: "请输入详细信息:",
147
+ header: "详情",
148
+ options: [] // 允许自由输入
149
+ }]
150
+ })
151
+ ```
152
+
153
+ 5. **执行审批**
154
+ ```bash
155
+ openmatrix approve <approvalId> --action <approve|reject|modify> [--message "备注"]
156
+ ```
157
+
158
+ 6. **更新状态**
159
+
160
+ - 写入审批结果到 `approvals/{id}.json`
161
+ - 更新状态: approved / rejected
162
+ - 记录决策时间、决策人、决策理由
163
+
164
+ 7. **后续处理**
165
+
166
+ **如果批准:**
167
+ - 更新关联任务状态
168
+ - 如果是 Meeting,解决 Meeting 并记录解决方案
169
+ - 自动继续执行
170
+
171
+ **如果拒绝/修改:**
172
+ - 任务进入相应状态
173
+ - 显示后续操作建议
174
+
175
+ </process>
176
+
177
+ <arguments>
178
+ $ARGUMENTS
179
+
180
+ 如果提供审批ID,直接处理指定审批。
181
+ 如果无参数,列出所有待审批项供选择。
182
+ </arguments>
183
+
184
+ <examples>
185
+ /om:approve # 列出所有待审批
186
+ /om:approve APPR-001 # 直接处理指定审批
187
+ </examples>
188
+
189
+ <notes>
190
+ ## 审批类型说明
191
+
192
+ | 类型 | 图标 | 触发条件 | 处理方式 |
193
+ |------|------|---------|---------|
194
+ | plan | 📝 | 任务拆解完成 | 批准/修改/拒绝 |
195
+ | merge | 🔀 | 开发完成 | 批准/拒绝 |
196
+ | deploy | 🚀 | 部署前确认 | 批准/拒绝 |
197
+ | meeting | 🔴/🤔 | 阻塞/决策 | 交互式解决 |
198
+
199
+ ## Meeting 审批特殊处理
200
+
201
+ Meeting 审批需要更细致的交互:
202
+
203
+ 1. **阻塞问题**
204
+ - 提供信息 → 记录到任务,恢复执行
205
+ - 跳过任务 → 标记可选,继续下游
206
+ - 修改方案 → 调整参数,重新执行
207
+ - 取消执行 → 停止流程
208
+
209
+ 2. **技术决策**
210
+ - 选择方案 → 记录决策,继续执行
211
+ - 自定义方案 → 记录新方案,继续执行
212
+ - 需要更多信息 → 暂停,等待调研
213
+
214
+ ## CLI 命令
215
+
216
+ ```bash
217
+ # 列出待审批
218
+ openmatrix approve --list
219
+
220
+ # 处理审批
221
+ openmatrix approve APPR-001 --action approve --message "同意此方案"
222
+ openmatrix approve APPR-001 --action reject --message "需要重新设计"
223
+ openmatrix approve APPR-001 --action modify --message "增加测试覆盖率要求"
224
+
225
+ # Meeting 专用
226
+ openmatrix approve APPR-002 --action provide-info --info "数据库连接字符串是..."
227
+ openmatrix approve APPR-002 --action skip --message "此任务可选"
228
+ openmatrix approve APPR-002 --action cancel --message "需求变更,停止执行"
229
+ ```
230
+
231
+ ## 与执行循环的集成
232
+
233
+ ```
234
+ 执行循环检测到 pending approval
235
+
236
+
237
+ 调用 /om:approve
238
+
239
+
240
+ 用户审批决策
241
+
242
+
243
+ 更新审批状态
244
+
245
+
246
+ 如果是 Meeting:
247
+ ├─ 解决 Meeting
248
+ └─ 恢复任务状态
249
+
250
+
251
+ 继续执行循环
252
+ ```
253
+ </notes>
@@ -0,0 +1,346 @@
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
+ ```typescript
51
+ AskUserQuestion({
52
+ questions: [{
53
+ question: "请选择要处理的 Meeting:",
54
+ header: "选择 Meeting",
55
+ options: [
56
+ { label: "[1] TASK-001 - 数据库连接失败", description: "阻塞 - 需要信息" },
57
+ { label: "[2] TASK-003 - API设计决策", description: "决策 - 技术选型" },
58
+ { label: "[3] TASK-005 - API密钥缺失", description: "阻塞 - 需要信息" },
59
+ { label: "全部跳过", description: "标记所有 Meeting 为跳过" },
60
+ { label: "返回", description: "暂不处理" }
61
+ ],
62
+ multiSelect: false
63
+ }]
64
+ })
65
+ ```
66
+
67
+ 5. **处理单个 Meeting**
68
+
69
+ 根据 Meeting 类型展示不同的选项:
70
+
71
+ **🔴 阻塞问题 Meeting:**
72
+ ```
73
+ 📋 Meeting: APPR-001
74
+ 🎯 任务: TASK-001 - 数据库连接失败
75
+
76
+ ## 阻塞详情
77
+
78
+ **原因**: 无法连接到远程数据库
79
+ **尝试**: 已检查网络连通性,防火墙已放行
80
+ **时间**: 2024-03-25 10:30:00
81
+
82
+ ## 影响范围
83
+
84
+ - TASK-002: 用户数据同步 (依赖 TASK-001)
85
+ - TASK-004: 数据备份任务 (依赖 TASK-001)
86
+
87
+ ## 可用操作
88
+
89
+ [A] 💡 提供信息 - 提供解决问题所需的信息
90
+ [B] ⏭️ 跳过任务 - 标记此任务为可选,继续下游
91
+ [C] 🔄 重试 - 使用新信息重试此任务
92
+ [D] ✏️ 修改方案 - 调整任务执行方案
93
+ ```
94
+
95
+ **使用 AskUserQuestion:**
96
+ ```typescript
97
+ AskUserQuestion({
98
+ questions: [{
99
+ question: "请选择操作:",
100
+ header: "处理阻塞",
101
+ options: [
102
+ { label: "💡 提供信息", description: "提供解决问题所需的信息" },
103
+ { label: "⏭️ 跳过任务", description: "标记为可选,继续执行下游任务" },
104
+ { label: "🔄 重试", description: "使用新信息重试此任务" },
105
+ { label: "✏️ 修改方案", description: "调整任务执行方案" },
106
+ { label: "返回列表", description: "暂不处理" }
107
+ ],
108
+ multiSelect: false
109
+ }]
110
+ })
111
+ ```
112
+
113
+ 6. **处理具体选择**
114
+
115
+ **如果选择"提供信息":**
116
+ ```typescript
117
+ AskUserQuestion({
118
+ questions: [{
119
+ question: "请提供解决此阻塞所需的信息:",
120
+ header: "详细信息",
121
+ options: [], // 允许自由输入
122
+ multiSelect: false
123
+ }]
124
+ })
125
+ ```
126
+
127
+ 然后执行:
128
+ ```bash
129
+ openmatrix meeting APPR-001 --action provide-info \
130
+ --info "数据库连接字符串是: postgresql://user:pass@host/db"
131
+ ```
132
+
133
+ **如果选择"跳过任务":**
134
+ ```typescript
135
+ AskUserQuestion({
136
+ questions: [{
137
+ question: "确定要跳过此任务吗?",
138
+ header: "确认",
139
+ options: [
140
+ { label: "确认跳过", description: "标记为可选,继续下游" },
141
+ { label: "取消", description: "返回" }
142
+ ],
143
+ multiSelect: false
144
+ }]
145
+ })
146
+ ```
147
+
148
+ 然后执行:
149
+ ```bash
150
+ openmatrix meeting APPR-001 --action skip --message "任务可选,跳过执行"
151
+ ```
152
+
153
+ **如果选择"重试":**
154
+ ```bash
155
+ openmatrix meeting APPR-001 --action retry
156
+ ```
157
+
158
+ **如果选择"修改方案":**
159
+ ```typescript
160
+ AskUserQuestion({
161
+ questions: [{
162
+ question: "请描述修改后的方案:",
163
+ header: "新方案",
164
+ options: [], // 允许自由输入
165
+ multiSelect: false
166
+ }]
167
+ })
168
+ ```
169
+
170
+ 然后执行:
171
+ ```bash
172
+ openmatrix meeting APPR-001 --action modify \
173
+ --new-plan "使用本地 SQLite 替代 PostgreSQL"
174
+ ```
175
+
176
+ 7. **处理决策型 Meeting**
177
+
178
+ **🤔 技术决策 Meeting:**
179
+ ```
180
+ 📋 Meeting: APPR-002
181
+ 🎯 任务: TASK-003 - API 设计决策
182
+
183
+ ## 决策问题
184
+
185
+ **问题**: 选择 REST 还是 GraphQL?
186
+
187
+ ## 可选方案
188
+
189
+ **方案 1: REST API** (推荐)
190
+ - ✅ 简单直观,团队熟悉
191
+ - ✅ 调试方便
192
+ - ❌ 可能需要多次请求
193
+
194
+ **方案 2: GraphQL**
195
+ - ✅ 灵活查询,一次请求
196
+ - ✅ 强类型
197
+ - ❌ 学习成本较高
198
+ - ❌ 需要额外工具
199
+
200
+ ## 操作
201
+
202
+ [A] 选择方案 1 - REST (推荐)
203
+ [B] 选择方案 2 - GraphQL
204
+ [C] 自定义方案
205
+ ```
206
+
207
+ **使用 AskUserQuestion:**
208
+ ```typescript
209
+ AskUserQuestion({
210
+ questions: [{
211
+ question: "请做出决策:",
212
+ header: "技术决策",
213
+ options: [
214
+ { label: "选择方案 1: REST", description: "简单直观,团队熟悉" },
215
+ { label: "选择方案 2: GraphQL", description: "灵活查询,强类型" },
216
+ { label: "自定义方案", description: "输入其他方案" },
217
+ { label: "需要更多信息", description: "暂不决策,等待调研" },
218
+ { label: "返回列表", description: "返回 Meeting 列表" }
219
+ ],
220
+ multiSelect: false
221
+ }]
222
+ })
223
+ ```
224
+
225
+ 执行决策:
226
+ ```bash
227
+ openmatrix meeting APPR-002 --action decide \
228
+ --decision "REST" --reason "团队熟悉,快速开发"
229
+ ```
230
+
231
+ 8. **处理完成**
232
+
233
+ 处理一个 Meeting 后:
234
+ ```
235
+ ✅ Meeting APPR-001 已解决
236
+
237
+ 操作: 提供信息
238
+ 状态: 任务已恢复执行
239
+
240
+ 📋 剩余 Meeting (2个):
241
+ - APPR-002: API设计决策
242
+ - APPR-003: API密钥缺失
243
+
244
+ 是否继续处理? [Y/n]: _
245
+ ```
246
+
247
+ 如果是 "跳过" 或 "取消":
248
+ ```
249
+ ⏭️ Meeting APPR-001 已跳过
250
+
251
+ 任务 TASK-001 标记为可选
252
+ 下游任务可继续执行
253
+
254
+ 📋 剩余 Meeting (2个): ...
255
+ ```
256
+
257
+ 9. **批量处理**
258
+
259
+ 如果选择"全部跳过":
260
+ ```typescript
261
+ AskUserQuestion({
262
+ questions: [{
263
+ question: "确定要跳过所有 Meeting 吗?",
264
+ header: "批量操作",
265
+ options: [
266
+ { label: "确认全部跳过", description: "标记所有为可选" },
267
+ { label: "取消", description: "返回列表" }
268
+ ],
269
+ multiSelect: false
270
+ }]
271
+ })
272
+ ```
273
+
274
+ ```bash
275
+ openmatrix meeting --skip-all --message "批量跳过"
276
+ ```
277
+
278
+ </process>
279
+
280
+ <arguments>
281
+ $ARGUMENTS
282
+
283
+ - 无参数: 列出所有待处理 Meeting
284
+ - Meeting ID: 直接处理指定 Meeting
285
+ </arguments>
286
+
287
+ <examples>
288
+ /om:meeting # 查看所有待处理 Meeting
289
+ /om:meeting APPR-001 # 直接处理指定 Meeting
290
+ </examples>
291
+
292
+ <notes>
293
+ ## Meeting 类型
294
+
295
+ | 类型 | 图标 | 说明 |
296
+ |------|------|------|
297
+ | 阻塞 | 🔴 | 任务执行遇到阻塞,需要信息或决策 |
298
+ | 决策 | 🤔 | 技术选型或设计方案决策 |
299
+
300
+ ## 操作类型
301
+
302
+ | 操作 | 说明 | 后续 |
303
+ |------|------|------|
304
+ | provide-info | 提供解决信息 | 任务恢复执行 |
305
+ | skip | 跳过任务 | 标记可选,下游继续 |
306
+ | retry | 重试任务 | 重新执行当前任务 |
307
+ | modify | 修改方案 | 更新任务后重试 |
308
+ | decide | 做出决策 | 记录决策并继续 |
309
+ | cancel | 取消任务 | 停止相关下游任务 |
310
+
311
+ ## CLI 命令
312
+
313
+ ```bash
314
+ # 列出所有 Meeting
315
+ openmatrix meeting --list
316
+
317
+ # 处理指定 Meeting
318
+ openmatrix meeting APPR-001 --action provide-info --info "..."
319
+ openmatrix meeting APPR-001 --action skip --message "..."
320
+ openmatrix meeting APPR-001 --action retry
321
+ openmatrix meeting APPR-001 --action modify --new-plan "..."
322
+
323
+ # 批量操作
324
+ openmatrix meeting --skip-all --message "批量跳过"
325
+ ```
326
+
327
+ ## 与执行循环的关系
328
+
329
+ ```
330
+ 执行任务中...
331
+ ├── 任务A 完成 ✓
332
+ ├── 任务B 阻塞 → 创建Meeting → 跳过,继续
333
+ └── 任务C 完成 ✓
334
+
335
+ 执行完成!
336
+ 📋 有待处理的 Meeting (1个)
337
+
338
+ 用户执行 /om:meeting
339
+
340
+ 交互式处理 Meeting
341
+ ├── 提供信息 / 跳过 / 重试
342
+ └── 解决阻塞
343
+
344
+ 恢复执行或标记完成
345
+ ```
346
+ </notes>
@@ -0,0 +1,100 @@
1
+ ---
2
+ name: om:report
3
+ description: 生成任务执行报告
4
+ ---
5
+
6
+ <NO-OTHER-SKILLS>
7
+ 执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
8
+ </NO-OTHER-SKILLS>
9
+
10
+ <objective>
11
+ 生成当前运行周期的完整执行报告。
12
+ </objective>
13
+
14
+ <process>
15
+ 1. **收集数据**
16
+ - 全局状态 (state.json)
17
+ - 所有任务 (tasks/)
18
+ - 审批历史 (approvals/)
19
+ - Agent 执行日志 (agents/)
20
+
21
+ 2. **生成报告**
22
+
23
+ ```
24
+ 📊 OpenMatrix 执行报告
25
+ =====================
26
+
27
+ 🆔 Run ID: run-20240323-abc1
28
+ 📅 时间: 2024-03-23 10:00 - 12:30
29
+ ⏱️ 总耗时: 2小时30分钟
30
+
31
+ ## 📈 任务统计
32
+
33
+ | 状态 | 数量 | 占比 |
34
+ |------|------|------|
35
+ | ✅ 完成 | 8 | 80% |
36
+ | ❌ 失败 | 1 | 10% |
37
+ | ⏳ 跳过 | 1 | 10% |
38
+
39
+ ## 📋 任务详情
40
+
41
+ ### ✅ 已完成
42
+ - TASK-001: 需求分析 (15min)
43
+ - TASK-002: 数据库设计 (20min)
44
+ - TASK-003: API 开发 (45min)
45
+ ...
46
+
47
+ ### ❌ 失败
48
+ - TASK-007: 集成测试
49
+ 原因: 测试用例失败
50
+ 重试: 3次后仍失败
51
+
52
+ ### ⏳ 跳过
53
+ - TASK-008: 性能优化
54
+ 原因: 依赖任务失败
55
+
56
+ ## 🔔 审批记录
57
+
58
+ | ID | 类型 | 决策 | 时间 |
59
+ |----|----|------|------|
60
+ | APPR-001 | plan | ✅ 批准 | 10:05 |
61
+ | APPR-002 | merge | ✅ 批准 | 11:30 |
62
+
63
+ ## 🤖 Agent 执行
64
+
65
+ | Agent | 任务数 | 成功率 |
66
+ |-------|--------|--------|
67
+ | planner | 2 | 100% |
68
+ | coder | 4 | 75% |
69
+ | tester | 2 | 50% |
70
+
71
+ ## 📝 建议
72
+
73
+ 1. TASK-007 集成测试失败,建议检查测试用例
74
+ 2. 考虑增加代码审查环节
75
+
76
+ ## 📁 产出物
77
+
78
+ - src/api/users.ts
79
+ - src/api/auth.ts
80
+ - tests/integration/*.test.ts
81
+ ```
82
+
83
+ 3. **保存报告**
84
+ - 保存到 `.openmatrix/reports/report-{timestamp}.md`
85
+ - 可选输出到指定路径
86
+
87
+ </process>
88
+
89
+ <arguments>
90
+ $ARGUMENTS
91
+
92
+ --format json|markdown 输出格式
93
+ --output path 输出路径
94
+ </arguments>
95
+
96
+ <examples>
97
+ /om:report # 生成并显示报告
98
+ /om:report --output report.md # 保存到文件
99
+ /om:report --format json # JSON 格式
100
+ </examples>