openmatrix 0.1.1 → 0.1.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/README.md +397 -389
- package/dist/cli/commands/install-skills.js +26 -3
- package/package.json +1 -1
- package/skills/om.md +124 -0
package/README.md
CHANGED
|
@@ -1,389 +1,397 @@
|
|
|
1
|
-
# OpenMatrix
|
|
2
|
-
|
|
3
|
-
<div align="center">
|
|
4
|
-
|
|
5
|
-
**同时实现 TDD + 严格质量门禁 + 全自动执行的 AI 任务编排系统**
|
|
6
|
-
|
|
7
|
-
*自动化 ≠ 牺牲质量 | 高质量 ≠ 手动操作*
|
|
8
|
-
|
|
9
|
-
[](https://www.npmjs.com/package/openmatrix)
|
|
10
|
-
[](https://opensource.org/licenses/MIT)
|
|
11
|
-
[](https://nodejs.org/)
|
|
12
|
-
[](https://claude.ai/code)
|
|
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
|
-
|
|
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
|
-
│ 🚪 Gate
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
→
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
```
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
|
217
|
-
|
|
218
|
-
| `/om
|
|
219
|
-
| `/om:
|
|
220
|
-
| `/om:
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
│
|
|
239
|
-
|
|
240
|
-
│
|
|
241
|
-
│
|
|
242
|
-
|
|
243
|
-
│
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
│
|
|
247
|
-
|
|
248
|
-
│
|
|
249
|
-
│
|
|
250
|
-
│
|
|
251
|
-
│
|
|
252
|
-
│
|
|
253
|
-
│
|
|
254
|
-
│
|
|
255
|
-
│
|
|
256
|
-
│
|
|
257
|
-
│
|
|
258
|
-
│
|
|
259
|
-
│
|
|
260
|
-
│ │
|
|
261
|
-
│ │
|
|
262
|
-
│ │
|
|
263
|
-
│ │
|
|
264
|
-
│ └──────────────┬──────────────┘ │
|
|
265
|
-
│ │ │
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
### Q:
|
|
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
|
-
|
|
1
|
+
# OpenMatrix
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**同时实现 TDD + 严格质量门禁 + 全自动执行的 AI 任务编排系统**
|
|
6
|
+
|
|
7
|
+
*自动化 ≠ 牺牲质量 | 高质量 ≠ 手动操作*
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/openmatrix)
|
|
10
|
+
[](https://opensource.org/licenses/MIT)
|
|
11
|
+
[](https://nodejs.org/)
|
|
12
|
+
[](https://claude.ai/code)
|
|
13
|
+
[](https://matrix.laofu.online/)
|
|
14
|
+
|
|
15
|
+
**[📚 官方文档](https://matrix.laofu.online/docs/)** | **[🚀 快速开始](https://matrix.laofu.online/docs/getting-started/)** | **[💬 GitHub](https://github.com/bigfish1913/openmatrix)**
|
|
16
|
+
|
|
17
|
+
**[中文](README.md)** | **[English](README_EN.md)**
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 一句话介绍
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
/om 实现用户登录
|
|
27
|
+
# 自动启动任务编排,第一个问题选质量级别,然后全自动执行
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
> `/om` 是 `/om:start` 的快捷方式,功能完全相同
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 执行流程概览
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
用户输入 → 质量选择 → 任务规划 → 执行 → 质量门禁 → AI验收 → Meeting处理 → 完成
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
| 阶段 | 说明 | 关键点 |
|
|
41
|
+
|:----:|------|--------|
|
|
42
|
+
| 0 | 交互问答 | **第一个问题选质量级别** |
|
|
43
|
+
| 1 | 任务规划 | Planner Agent 生成计划 |
|
|
44
|
+
| 2 | 任务执行 | strict/balanced/fast 三种模式 |
|
|
45
|
+
| 3 | 质量门禁 | 6 道质量门禁验证 |
|
|
46
|
+
| 4 | AI 验收 | Reviewer Agent 最终确认 |
|
|
47
|
+
| 5 | Meeting | 阻塞不中断,最后处理并**重新执行** |
|
|
48
|
+
| 6 | 最终报告 | 质量评分 + 产出文件 |
|
|
49
|
+
|
|
50
|
+
📖 **详细流程图**: [docs/FLOW.md](docs/FLOW.md) (含 Mermaid 图表)
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## 为什么选择 OpenMatrix?
|
|
55
|
+
|
|
56
|
+
### 与 superpowers / gsd 对比
|
|
57
|
+
|
|
58
|
+
| 特性 | OpenMatrix | superpowers | gsd |
|
|
59
|
+
|------|:----------:|:-----------:|:---:|
|
|
60
|
+
| **100% 自动化** | ✅ auto 模式 | ❌ 50% | ❌ 60% |
|
|
61
|
+
| **TDD 内置** | ✅ strict 模式 | ❌ 需手动 | ❌ 无 |
|
|
62
|
+
| **覆盖率强制** | ✅ 60-80% | ❌ 无 | ❌ 无 |
|
|
63
|
+
| **安全扫描** | ✅ npm audit | ❌ 无 | ❌ 无 |
|
|
64
|
+
| **AI 验收** | ✅ Reviewer Agent | ❌ 无 | 部分 |
|
|
65
|
+
| **阻塞不中断** | ✅ Meeting 机制 | ❌ 停止 | ❌ 停止 |
|
|
66
|
+
| **质量报告** | ✅ JSON + MD | ❌ 无 | 部分 |
|
|
67
|
+
| **上手难度** | ⚡ 一句话开始 | 中等 | 较高 |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 快速开始
|
|
72
|
+
|
|
73
|
+
### 安装
|
|
74
|
+
|
|
75
|
+
**方式一: NPM 安装 (推荐)**
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 全局安装
|
|
79
|
+
npm install -g openmatrix
|
|
80
|
+
|
|
81
|
+
# Skills 会自动安装到 ~/.claude/commands/om/
|
|
82
|
+
# 如果自动安装失败,手动执行:
|
|
83
|
+
openmatrix install-skills
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**方式二: 从源码安装**
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
# 克隆并安装
|
|
90
|
+
git clone https://github.com/bigfish1913/openmatrix.git
|
|
91
|
+
cd openmatrix && npm install && npm run build && npm link
|
|
92
|
+
|
|
93
|
+
# 安装 Skills (如果 postinstall 未自动执行)
|
|
94
|
+
openmatrix install-skills
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
### 验证安装
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# 检查 CLI 是否可用
|
|
101
|
+
openmatrix --version
|
|
102
|
+
|
|
103
|
+
# 检查 Skills 是否安装成功
|
|
104
|
+
openmatrix install-skills
|
|
105
|
+
# 或直接查看
|
|
106
|
+
ls ~/.claude/commands/om/
|
|
107
|
+
# 应显示: start.md auto.md status.md approve.md meeting.md resume.md retry.md report.md
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### 第一次使用
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
/om:start 实现用户登录功能
|
|
114
|
+
|
|
115
|
+
# 系统会先问:
|
|
116
|
+
┌─────────────────────────────────────────────────────────┐
|
|
117
|
+
│ 问题 0: 选择质量级别 │
|
|
118
|
+
├─────────────────────────────────────────────────────────┤
|
|
119
|
+
│ 🚀 strict → TDD + 80%覆盖率 + AI验收 (推荐生产代码) │
|
|
120
|
+
│ ⚖️ balanced → 60%覆盖率 + AI验收 (日常开发) │
|
|
121
|
+
│ ⚡ fast → 无质量门禁 (快速原型) │
|
|
122
|
+
└─────────────────────────────────────────────────────────┘
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 核心特性
|
|
128
|
+
|
|
129
|
+
### 1️⃣ 三级质量配置 (第一个问题就让你选)
|
|
130
|
+
|
|
131
|
+
| 级别 | TDD | 覆盖率 | Lint | 安全 | AI验收 | 适用场景 |
|
|
132
|
+
|:----:|:---:|:------:|:----:|:----:|:------:|---------|
|
|
133
|
+
| **strict** | ✅ | >80% | ✅ 严格 | ✅ | ✅ | 🏭 **生产代码** |
|
|
134
|
+
| **balanced** | ❌ | >60% | ✅ | ✅ | ✅ | 📦 日常开发 |
|
|
135
|
+
| **fast** | ❌ | >20% | ❌ | ❌ | ❌ | 🏃 快速原型 |
|
|
136
|
+
|
|
137
|
+
> strict 可配置为 100%。默认 >80% 覆盖核心业务逻辑。
|
|
138
|
+
|
|
139
|
+
### 2️⃣ 六道质量门禁 (Verify 阶段)
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
143
|
+
│ Verify 阶段 - 质量门禁 │
|
|
144
|
+
├─────────────────────────────────────────────────────────────┤
|
|
145
|
+
│ 🚪 Gate 1: 编译检查 npm run build → 必须通过 │
|
|
146
|
+
│ 🚪 Gate 2: 测试运行 npm test → 必须通过 │
|
|
147
|
+
│ 🚪 Gate 3: 覆盖率检查 >20%/60%/80% → 可配置 │
|
|
148
|
+
│ 🚪 Gate 4: Lint 检查 无 error → 可配置 │
|
|
149
|
+
│ 🚪 Gate 5: 安全扫描 npm audit → 无高危漏洞 │
|
|
150
|
+
│ 🚪 Gate 6: 验收标准 用户定义 → 必须全部满足 │
|
|
151
|
+
└─────────────────────────────────────────────────────────────┘
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 3️⃣ TDD 模式 (strict 级别)
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
传统开发: 代码 → 测试 → Bug → 修复 → 回归 → ... (循环多次)
|
|
158
|
+
|
|
159
|
+
OpenMatrix TDD (strict):
|
|
160
|
+
🧪 测试阶段: 先写测试 (RED - 测试必须失败)
|
|
161
|
+
✨ 开发阶段: 再写代码 (GREEN - 测试必须通过)
|
|
162
|
+
✅ 验证阶段: 6道质量门禁
|
|
163
|
+
🎉 验收阶段: AI Reviewer 最终确认
|
|
164
|
+
|
|
165
|
+
结果: 第一次就写对,无需返工
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 4️⃣ Meeting 机制 (阻塞不中断)
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
❌ 其他方案:
|
|
172
|
+
TASK-001 ✓ → TASK-002 阻塞 ⏸️ → 等用户... (浪费时间)
|
|
173
|
+
|
|
174
|
+
✅ OpenMatrix:
|
|
175
|
+
TASK-001 ✓ → TASK-002 阻塞 → 创建Meeting → 跳过 ↷
|
|
176
|
+
TASK-003 ✓ → TASK-004 ✓ → 完成!
|
|
177
|
+
→ 用户用 /om:meeting 统一处理所有阻塞
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 5️⃣ AI 验收 (Accept 阶段)
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
Accept 阶段由 Reviewer Agent 执行:
|
|
184
|
+
├── 检查 verify-report.md
|
|
185
|
+
├── 验证所有验收标准
|
|
186
|
+
├── 确认代码可合并
|
|
187
|
+
└── 生成 accept-report.md
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 执行流程
|
|
193
|
+
|
|
194
|
+
### strict 模式 (推荐生产代码)
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
198
|
+
│ TDD │────▶│ Develop │────▶│ Verify │────▶│ Accept │
|
|
199
|
+
│ 🧪 RED │ │ ✨ GREEN│ │ ✅ 6门禁│ │ 🎉 AI │
|
|
200
|
+
└─────────┘ └─────────┘ └─────────┘ └─────────┘
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### balanced 模式 (日常开发)
|
|
204
|
+
|
|
205
|
+
```
|
|
206
|
+
┌─────────┐ ┌─────────┐ ┌─────────┐
|
|
207
|
+
│ Develop │────▶│ Verify │────▶│ Accept │
|
|
208
|
+
│ ✨ 编码 │ │ ✅ 4门禁│ │ 🎉 AI │
|
|
209
|
+
└─────────┘ └─────────┘ └─────────┘
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Skills 命令
|
|
215
|
+
|
|
216
|
+
| 命令 | 用途 |
|
|
217
|
+
|------|------|
|
|
218
|
+
| `/om` | **默认入口** - 直接输入任务描述即可启动 |
|
|
219
|
+
| `/om:start` | 启动新任务 (第一个问题选质量级别) |
|
|
220
|
+
| `/om:auto` | 🚀 **全自动执行** - 无阻塞、无确认、直接完成 |
|
|
221
|
+
| `/om:status` | 查看状态 |
|
|
222
|
+
| `/om:approve` | 审批决策 |
|
|
223
|
+
| `/om:meeting` | 处理阻塞问题 |
|
|
224
|
+
| `/om:resume` | 恢复中断 |
|
|
225
|
+
| `/om:retry` | 重试失败 |
|
|
226
|
+
| `/om:report` | 生成报告 |
|
|
227
|
+
|
|
228
|
+
> `/om` 是 `/om:start` 的快捷方式,功能完全相同
|
|
229
|
+
|
|
230
|
+
### `/om:start` 执行流程 (含 Meeting 机制)
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
234
|
+
│ 执行阶段 │
|
|
235
|
+
├──────────────────────────────────────────────────────────────────────────┤
|
|
236
|
+
│ │
|
|
237
|
+
│ TASK-001 ✅ ──→ TASK-002 ⚠️阻塞 ──→ 创建Meeting ──→ 跳过 ↷ │
|
|
238
|
+
│ │ │
|
|
239
|
+
│ ↓ │
|
|
240
|
+
│ TASK-003 ✅ ──→ TASK-004 ✅ ──→ TASK-005 ✅ ──→ 所有任务执行完成 │
|
|
241
|
+
│ │
|
|
242
|
+
└──────────────────────────────────────────────────────────────────────────┘
|
|
243
|
+
│
|
|
244
|
+
▼
|
|
245
|
+
┌──────────────────────────────────────────────────────────────────────────┐
|
|
246
|
+
│ Meeting 自动检测 │
|
|
247
|
+
├──────────────────────────────────────────────────────────────────────────┤
|
|
248
|
+
│ │
|
|
249
|
+
│ ┌─────────────────────┐ │
|
|
250
|
+
│ │ 有 pending Meeting? │ │
|
|
251
|
+
│ └──────────┬──────────┘ │
|
|
252
|
+
│ ╱ \ │
|
|
253
|
+
│ 否 是 │
|
|
254
|
+
│ │ │ │
|
|
255
|
+
│ ▼ ▼ │
|
|
256
|
+
│ ┌───────┐ ┌─────────────────────────────┐ │
|
|
257
|
+
│ │ 完成! │ │ 📋 交互式处理 Meeting │ │
|
|
258
|
+
│ └───────┘ │ ┌─────────────────────────┐│ │
|
|
259
|
+
│ │ │ [1] TASK-002: 数据库连接││ │
|
|
260
|
+
│ │ │ 💡提供信息 / ⏭️跳过 ││ │
|
|
261
|
+
│ │ │ [2] TASK-005: API决策 ││ │
|
|
262
|
+
│ │ │ 🤔选择方案 ││ │
|
|
263
|
+
│ │ └─────────────────────────┘│ │
|
|
264
|
+
│ └──────────────┬──────────────┘ │
|
|
265
|
+
│ │ │
|
|
266
|
+
│ ▼ │
|
|
267
|
+
│ ┌─────────────────────────────┐ │
|
|
268
|
+
│ │ 用户提供信息/选择方案 │ │
|
|
269
|
+
│ │ ↓ │ │
|
|
270
|
+
│ │ 🔄 重新执行阻塞任务 │ │
|
|
271
|
+
│ │ TASK-002 ✅ │ │
|
|
272
|
+
│ └──────────────┬──────────────┘ │
|
|
273
|
+
│ │ │
|
|
274
|
+
└────────────────────────────────────────────┼──────────────────────────────┘
|
|
275
|
+
│
|
|
276
|
+
▼
|
|
277
|
+
┌───────────┐
|
|
278
|
+
│ 完成! 🎉 │
|
|
279
|
+
└───────────┘
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### `/om:auto` 全自动模式
|
|
283
|
+
|
|
284
|
+
**适用场景**: CI/CD、自动化脚本、无需人工干预的任务
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
/om:auto 实现用户登录功能 # 默认 strict 模式
|
|
288
|
+
/om:auto --mode=balanced 添加API接口 # 指定 balanced 模式
|
|
289
|
+
/om:auto --fast 创建CLI工具 # 快速原型模式
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**特点**:
|
|
293
|
+
- ❌ 无审批点确认
|
|
294
|
+
- ❌ 无 Phase 间暂停
|
|
295
|
+
- ❌ Meeting 自动跳过 (记录但不阻塞)
|
|
296
|
+
- ✅ 默认 strict 质量级别
|
|
297
|
+
- ✅ 适合 CI/CD 集成
|
|
298
|
+
|
|
299
|
+
**与 `/om:start` 对比**:
|
|
300
|
+
|
|
301
|
+
| 特性 | `/om:start` | `/om:auto` |
|
|
302
|
+
|------|-------------|------------|
|
|
303
|
+
| 质量级别 | 交互式选择 | 参数指定/默认 strict |
|
|
304
|
+
| 审批确认 | 根据配置 | 全部跳过 |
|
|
305
|
+
| Meeting | 交互式处理 | 自动跳过 |
|
|
306
|
+
| 适用场景 | 日常开发 | CI/CD、自动化 |
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## 质量报告
|
|
311
|
+
|
|
312
|
+
每个任务完成后生成:
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
{
|
|
316
|
+
"taskId": "TASK-001",
|
|
317
|
+
"overall": "pass",
|
|
318
|
+
"tests": { "passed": 15, "failed": 0, "coverage": 82 },
|
|
319
|
+
"build": { "success": true },
|
|
320
|
+
"lint": { "errors": 0, "warnings": 3 },
|
|
321
|
+
"security": { "vulnerabilities": [] },
|
|
322
|
+
"acceptance": { "met": 5, "total": 5 }
|
|
323
|
+
}
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
---
|
|
327
|
+
|
|
328
|
+
## 常见问题
|
|
329
|
+
|
|
330
|
+
### Q: 哪种质量级别适合我?
|
|
331
|
+
|
|
332
|
+
| 你的场景 | 推荐级别 |
|
|
333
|
+
|---------|---------|
|
|
334
|
+
| 🏭 生产代码、核心功能 | **strict** |
|
|
335
|
+
| 📦 日常功能开发 | **balanced** |
|
|
336
|
+
| 🏃 快速原型、POC | **fast** |
|
|
337
|
+
|
|
338
|
+
### Q: OpenMatrix 和 superpowers 可以一起用吗?
|
|
339
|
+
|
|
340
|
+
**A**: 可以!OpenMatrix 自动执行任务,superpowers 提供额外技能。
|
|
341
|
+
|
|
342
|
+
### Q: Meeting 是什么?
|
|
343
|
+
|
|
344
|
+
**A**: 遇到阻塞时创建记录,但**不停止执行**。最后用 `/om:meeting` 统一处理。
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## 配置
|
|
349
|
+
|
|
350
|
+
`.openmatrixrc.json`:
|
|
351
|
+
|
|
352
|
+
```json
|
|
353
|
+
{
|
|
354
|
+
"quality": {
|
|
355
|
+
"tdd": false,
|
|
356
|
+
"minCoverage": 60,
|
|
357
|
+
"strictLint": true,
|
|
358
|
+
"securityScan": true
|
|
359
|
+
},
|
|
360
|
+
"approvalPoints": ["plan", "merge"],
|
|
361
|
+
"agents": { "maxConcurrent": 3 }
|
|
362
|
+
}
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
---
|
|
366
|
+
|
|
367
|
+
## 开发
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
git clone https://github.com/bigfish1913/openmatrix.git
|
|
371
|
+
cd openmatrix && npm install && npm run build && npm test
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## Roadmap
|
|
377
|
+
|
|
378
|
+
- [x] TDD 模式
|
|
379
|
+
- [x] 6 道质量门禁
|
|
380
|
+
- [x] Meeting 机制
|
|
381
|
+
- [x] 质量报告
|
|
382
|
+
- [x] AI 验收
|
|
383
|
+
- [x] `/om:auto` 全自动模式
|
|
384
|
+
- [x] Meeting 自动处理
|
|
385
|
+
- [ ] VSCode 扩展
|
|
386
|
+
- [ ] Python/Go 支持
|
|
387
|
+
- [ ] CI/CD 集成
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
<div align="center">
|
|
392
|
+
|
|
393
|
+
**如果觉得有用,请给个 ⭐ Star!**
|
|
394
|
+
|
|
395
|
+
MIT © 2024 | Made by [bigfish1913](https://github.com/bigfish1913)
|
|
396
|
+
|
|
397
|
+
</div>
|
|
@@ -65,8 +65,8 @@ exports.installSkillsCommand = new commander_1.Command('install-skills')
|
|
|
65
65
|
console.error(' Error:', err.message);
|
|
66
66
|
process.exit(1);
|
|
67
67
|
}
|
|
68
|
-
// Get skill files
|
|
69
|
-
const files = fs.readdirSync(skillsDir).filter(f => f.endsWith('.md'));
|
|
68
|
+
// Get skill files (excluding om.md which is the default entry)
|
|
69
|
+
const files = fs.readdirSync(skillsDir).filter(f => f.endsWith('.md') && f !== 'om.md');
|
|
70
70
|
if (files.length === 0) {
|
|
71
71
|
console.error('❌ No skill files found in:', skillsDir);
|
|
72
72
|
process.exit(1);
|
|
@@ -75,6 +75,7 @@ exports.installSkillsCommand = new commander_1.Command('install-skills')
|
|
|
75
75
|
let installed = 0;
|
|
76
76
|
let skipped = 0;
|
|
77
77
|
let failed = 0;
|
|
78
|
+
// Install skill files to ~/.claude/commands/om/
|
|
78
79
|
files.forEach(file => {
|
|
79
80
|
const src = path.join(skillsDir, file);
|
|
80
81
|
const dest = path.join(commandsDir, file);
|
|
@@ -95,15 +96,37 @@ exports.installSkillsCommand = new commander_1.Command('install-skills')
|
|
|
95
96
|
failed++;
|
|
96
97
|
}
|
|
97
98
|
});
|
|
99
|
+
// Install default /om command to ~/.claude/commands/om.md
|
|
100
|
+
const omSrc = path.join(skillsDir, 'om.md');
|
|
101
|
+
const omDest = path.join(claudeDir, 'commands', 'om.md');
|
|
102
|
+
if (fs.existsSync(omSrc)) {
|
|
103
|
+
try {
|
|
104
|
+
if (fs.existsSync(omDest) && !options.force) {
|
|
105
|
+
console.log(` ⏭️ Skipped: om.md (already exists)`);
|
|
106
|
+
skipped++;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
fs.copyFileSync(omSrc, omDest);
|
|
110
|
+
console.log(` ✅ Installed: /om (default entry)`);
|
|
111
|
+
installed++;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch (err) {
|
|
115
|
+
console.log(` ❌ Failed: om.md (${err.message})`);
|
|
116
|
+
failed++;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
98
119
|
console.log('\n' + '─'.repeat(50));
|
|
99
120
|
console.log(`📊 Summary:`);
|
|
100
121
|
console.log(` ✅ Installed: ${installed}`);
|
|
101
122
|
console.log(` ⏭️ Skipped: ${skipped}`);
|
|
102
123
|
console.log(` ❌ Failed: ${failed}`);
|
|
103
124
|
console.log(`\n📁 Location: ${commandsDir}`);
|
|
125
|
+
console.log(`📁 Default: ${omDest}`);
|
|
104
126
|
if (installed > 0) {
|
|
105
127
|
console.log('\n🎉 Skills installed successfully!');
|
|
106
|
-
console.log(' Try: /om
|
|
128
|
+
console.log(' Try: /om <your task>');
|
|
129
|
+
console.log(' Or: /om:start <your task>');
|
|
107
130
|
}
|
|
108
131
|
if (failed > 0) {
|
|
109
132
|
process.exit(1);
|
package/package.json
CHANGED
package/skills/om.md
ADDED
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: om
|
|
3
|
+
description: OpenMatrix 默认入口 - 直接输入任务描述即可启动
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<NO-OTHER-SKILLS>
|
|
7
|
+
执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
|
|
8
|
+
</NO-OTHER-SKILLS>
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
OpenMatrix 的默认入口。用户可以直接输入任务描述,系统会自动启动 /om:start 执行任务编排。
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
1. **解析用户输入**
|
|
16
|
+
|
|
17
|
+
用户输入 `$ARGUMENTS` 可能是:
|
|
18
|
+
- 任务描述 (如 "实现用户登录功能")
|
|
19
|
+
- 文件路径 (如 "docs/task.md")
|
|
20
|
+
- 空输入
|
|
21
|
+
|
|
22
|
+
2. **判断输入类型**
|
|
23
|
+
|
|
24
|
+
**如果是任务描述或文件路径**:
|
|
25
|
+
→ 直接调用 `/om:start` 并传递参数
|
|
26
|
+
|
|
27
|
+
**如果是空输入**:
|
|
28
|
+
→ 显示帮助信息
|
|
29
|
+
|
|
30
|
+
3. **自动启动 /om:start**
|
|
31
|
+
|
|
32
|
+
无论用户输入什么,都自动转换为 `/om:start` 调用:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
用户输入: "实现用户登录"
|
|
36
|
+
系统执行: /om:start 实现用户登录
|
|
37
|
+
|
|
38
|
+
用户输入: "docs/task.md"
|
|
39
|
+
系统执行: /om:start docs/task.md
|
|
40
|
+
|
|
41
|
+
用户输入: (空)
|
|
42
|
+
系统显示: 帮助信息
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
4. **帮助信息**
|
|
46
|
+
|
|
47
|
+
如果用户输入为空或输入 `--help`,显示:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
📦 OpenMatrix - AI 任务编排系统
|
|
51
|
+
|
|
52
|
+
用法:
|
|
53
|
+
/om <任务描述> 直接启动任务
|
|
54
|
+
/om:start <任务> 交互式启动 (可选质量级别)
|
|
55
|
+
/om:auto <任务> 全自动执行
|
|
56
|
+
|
|
57
|
+
示例:
|
|
58
|
+
/om 实现用户登录功能
|
|
59
|
+
/om 修复登录页面的样式问题
|
|
60
|
+
/om 添加 API 接口
|
|
61
|
+
|
|
62
|
+
质量级别:
|
|
63
|
+
🚀 strict - TDD + 80%覆盖率 (生产代码)
|
|
64
|
+
⚖️ balanced - 60%覆盖率 (日常开发)
|
|
65
|
+
⚡ fast - 无质量门禁 (快速原型)
|
|
66
|
+
|
|
67
|
+
其他命令:
|
|
68
|
+
/om:status - 查看状态
|
|
69
|
+
/om:meeting - 处理阻塞
|
|
70
|
+
/om:report - 生成报告
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
</process>
|
|
74
|
+
|
|
75
|
+
<arguments>
|
|
76
|
+
$ARGUMENTS
|
|
77
|
+
</arguments>
|
|
78
|
+
|
|
79
|
+
<examples>
|
|
80
|
+
/om 实现用户登录功能 # 自动启动任务编排
|
|
81
|
+
/om 修复登录页面的样式问题 # 直接描述任务
|
|
82
|
+
/om docs/task.md # 从文件读取任务
|
|
83
|
+
/om # 显示帮助
|
|
84
|
+
</examples>
|
|
85
|
+
|
|
86
|
+
<notes>
|
|
87
|
+
## 工作原理
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
用户输入: /om 实现登录
|
|
91
|
+
│
|
|
92
|
+
▼
|
|
93
|
+
┌─────────────────┐
|
|
94
|
+
│ 检测到任务描述 │
|
|
95
|
+
└────────┬────────┘
|
|
96
|
+
│
|
|
97
|
+
▼
|
|
98
|
+
┌─────────────────┐
|
|
99
|
+
│ 自动调用 │
|
|
100
|
+
│ /om:start │
|
|
101
|
+
│ 实现登录 │
|
|
102
|
+
└─────────────────┘
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## 与 /om:start 的关系
|
|
106
|
+
|
|
107
|
+
`/om` 是 `/om:start` 的快捷方式:
|
|
108
|
+
- `/om <任务>` ≡ `/om:start <任务>`
|
|
109
|
+
- 用户体验更简洁
|
|
110
|
+
- 功能完全相同
|
|
111
|
+
|
|
112
|
+
## 推荐用法
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# 快速启动 (推荐)
|
|
116
|
+
/om 实现用户登录
|
|
117
|
+
|
|
118
|
+
# 等价于
|
|
119
|
+
/om:start 实现用户登录
|
|
120
|
+
|
|
121
|
+
# 全自动模式
|
|
122
|
+
/om:auto 实现用户登录
|
|
123
|
+
```
|
|
124
|
+
</notes>
|