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
package/README.md ADDED
@@ -0,0 +1,512 @@
1
+ # OpenMatrix
2
+
3
+ <div align="center">
4
+
5
+ **唯一同时实现 TDD + 严格质量门禁 + 全自动执行的 AI 任务编排系统**
6
+
7
+ *自动化 ≠ 牺牲质量 | 高质量 ≠ 手动操作*
8
+
9
+ [![npm version](https://badge.fury.io/js/openmatrix.svg)](https://badge.fury.io/js/openmatrix)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Node](https://img.shields.io/badge/Node-%3E%3D18.0.0-green.svg)](https://nodejs.org/)
12
+ [![Claude Code](https://img.shields.io/badge/Claude%20Code-Compatible-blue.svg)](https://claude.ai/code)
13
+
14
+ **[中文文档](#中文文档)** | **[English](#english)**
15
+
16
+ </div>
17
+
18
+ ---
19
+
20
+ # 中文文档
21
+
22
+ ## 一句话介绍
23
+
24
+ ```bash
25
+ /om:start 实现用户登录
26
+ # 第一个问题让你选择质量级别,然后全自动执行 + 严格质量保证
27
+ ```
28
+
29
+ ---
30
+
31
+ ## 完整流程图
32
+
33
+ ```
34
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
35
+ │ OpenMatrix 完整执行流程 │
36
+ └─────────────────────────────────────────────────────────────────────────────────┘
37
+
38
+ 用户输入: /om:start 实现用户登录功能
39
+
40
+
41
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
42
+ │ 阶段 0: 交互式问答 │
43
+ ├─────────────────────────────────────────────────────────────────────────────────┤
44
+ │ │
45
+ │ Q0: 选择质量级别? ◀─── 最重要,第一个问 │
46
+ │ ├── 🚀 strict → TDD + 80%覆盖率 + 6道门禁 + AI验收 │
47
+ │ ├── ⚖️ balanced → 60%覆盖率 + 4道门禁 + AI验收 │
48
+ │ └── ⚡ fast → 无质量门禁 │
49
+ │ │
50
+ │ Q1: 任务目标? (新功能/Bug修复/重构) │
51
+ │ Q2: 技术栈? (TypeScript/Python/Go...) │
52
+ │ Q3: 文档要求? (完整/基础/最小/无) │
53
+ │ │
54
+ └─────────────────────────────────────────────────────────────────────────────────┘
55
+
56
+
57
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
58
+ │ 阶段 1: 任务规划 (Planner Agent) │
59
+ ├─────────────────────────────────────────────────────────────────────────────────┤
60
+ │ │
61
+ │ 输入: 用户回答 + 任务描述 │
62
+ │ 输出: 执行计划 + 子任务列表 + 依赖图 │
63
+ │ │
64
+ │ 📋 执行计划示例: │
65
+ │ ├── TASK-001: 数据模型设计 (Planner, 15min) │
66
+ │ ├── TASK-002: API 接口实现 (Coder, 30min) │
67
+ │ ├── TASK-003: 单元测试 (Tester, 20min) │
68
+ │ └── TASK-004: 代码审查 (Reviewer, 10min) │
69
+ │ │
70
+ └─────────────────────────────────────────────────────────────────────────────────┘
71
+
72
+
73
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
74
+ │ 阶段 2: 任务执行 (根据质量级别) │
75
+ ├─────────────────────────────────────────────────────────────────────────────────┤
76
+ │ │
77
+ │ ┌─────────────────────────────────────────────────────────────────────────┐ │
78
+ │ │ strict 模式 (4阶段) │ │
79
+ │ │ │ │
80
+ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
81
+ │ │ │ TDD │────▶│ Develop │────▶│ Verify │────▶│ Accept │ │ │
82
+ │ │ │ 🧪 RED │ │ ✨ GREEN│ │ ✅ 6门禁│ │ 🎉 AI │ │ │
83
+ │ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ │
84
+ │ │ │ │ │ │ │ │
85
+ │ │ ▼ ▼ ▼ ▼ │ │
86
+ │ │ Tester 先写 Coder 写代码 6道质量门禁 Reviewer │ │
87
+ │ │ 测试(必须失败) (测试必须通过) (见下方) 最终验收 │ │
88
+ │ │ │ │
89
+ │ └─────────────────────────────────────────────────────────────────────────┘ │
90
+ │ │
91
+ │ ┌─────────────────────────────────────────────────────────────────────────┐ │
92
+ │ │ balanced 模式 (3阶段) │ │
93
+ │ │ │ │
94
+ │ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │
95
+ │ │ │ Develop │────▶│ Verify │────▶│ Accept │ │ │
96
+ │ │ │ ✨ 编码 │ │ ✅ 4门禁│ │ 🎉 AI │ │ │
97
+ │ │ └─────────┘ └─────────┘ └─────────┘ │ │
98
+ │ │ │ │
99
+ │ └─────────────────────────────────────────────────────────────────────────┘ │
100
+ │ │
101
+ │ ┌─────────────────────────────────────────────────────────────────────────┐ │
102
+ │ │ fast 模式 (1阶段) │ │
103
+ │ │ │ │
104
+ │ │ ┌─────────┐ ┌─────────┐ │ │
105
+ │ │ │ Develop │────▶│ Done │ │ │
106
+ │ │ │ ✨ 编码 │ │ 🏁 完成 │ │ │
107
+ │ │ └─────────┘ └─────────┘ │ │
108
+ │ │ │ │
109
+ │ └─────────────────────────────────────────────────────────────────────────┘ │
110
+ │ │
111
+ └─────────────────────────────────────────────────────────────────────────────────┘
112
+
113
+
114
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
115
+ │ 阶段 3: 质量门禁 (Verify 阶段) │
116
+ ├─────────────────────────────────────────────────────────────────────────────────┤
117
+ │ │
118
+ │ ┌──────────────────────────────────────────────────────────────────────────┐ │
119
+ │ │ 6 Quality Gates │ │
120
+ │ │ │ │
121
+ │ │ 🚪 Gate 1: 编译检查 │ │
122
+ │ │ │ $ npm run build │ │
123
+ │ │ └── → ✅ PASS (无编译错误) / ❌ FAIL (阻止继续) │ │
124
+ │ │ │ │
125
+ │ │ 🚪 Gate 2: 测试运行 │ │
126
+ │ │ │ $ npm test │ │
127
+ │ │ └── → ✅ PASS (所有测试通过) / ❌ FAIL (阻止继续) │ │
128
+ │ │ │ │
129
+ │ │ 🚪 Gate 3: 覆盖率检查 (strict: 80%, balanced: 60%) │ │
130
+ │ │ │ $ npm test -- --coverage │ │
131
+ │ │ └── → ✅ PASS (达标) / ⚠️ WARN (不达标但继续) │ │
132
+ │ │ │ │
133
+ │ │ 🚪 Gate 4: Lint 检查 (strict: 无error, balanced: 无严重error) │ │
134
+ │ │ │ $ npm run lint │ │
135
+ │ │ └── → ✅ PASS / ❌ FAIL (strict模式阻止) │ │
136
+ │ │ │ │
137
+ │ │ 🚪 Gate 5: 安全扫描 │ │
138
+ │ │ │ $ npm audit --audit-level=high │ │
139
+ │ │ └── → ✅ PASS (无高危漏洞) / ❌ FAIL (阻止继续) │ │
140
+ │ │ │ │
141
+ │ │ 🚪 Gate 6: 验收标准 │ │
142
+ │ │ │ 逐项检查用户定义的验收标准 │ │
143
+ │ │ └── → ✅ PASS (全部满足) / ❌ FAIL (阻止继续) │ │
144
+ │ │ │ │
145
+ │ └──────────────────────────────────────────────────────────────────────────┘ │
146
+ │ │
147
+ └─────────────────────────────────────────────────────────────────────────────────┘
148
+
149
+
150
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
151
+ │ 阶段 4: AI 验收 (Accept 阶段) │
152
+ ├─────────────────────────────────────────────────────────────────────────────────┤
153
+ │ │
154
+ │ Reviewer Agent 执行: │
155
+ │ ├── 📄 读取 verify-report.md │
156
+ │ ├── ✅ 验证所有验收标准已满足 │
157
+ │ ├── 🔍 确认代码可以合并 │
158
+ │ ├── 📊 生成质量报告 (quality-report.json) │
159
+ │ └── 📝 生成验收报告 (accept-report.md) │
160
+ │ │
161
+ │ 输出示例: │
162
+ │ ┌──────────────────────────────────────────────────────────────────────────┐ │
163
+ │ │ ACCEPT_PASSED │ │
164
+ │ │ Quality Score: A │ │
165
+ │ │ ├── Tests: ✅ 15/15 passed, 82% coverage │ │
166
+ │ │ ├── Build: ✅ Success │ │
167
+ │ │ ├── Lint: ✅ No errors (3 warnings) │ │
168
+ │ │ ├── Security: ✅ No vulnerabilities │ │
169
+ │ │ └── Criteria: ✅ 5/5 acceptance criteria met │ │
170
+ │ └──────────────────────────────────────────────────────────────────────────┘ │
171
+ │ │
172
+ └─────────────────────────────────────────────────────────────────────────────────┘
173
+
174
+
175
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
176
+ │ 阶段 5: Meeting 处理 (如有阻塞) │
177
+ ├─────────────────────────────────────────────────────────────────────────────────┤
178
+ │ │
179
+ │ 执行过程中遇到阻塞 → 创建 Meeting → 继续执行其他任务 │
180
+ │ │
181
+ │ 执行日志: │
182
+ │ ├── TASK-001: ✅ 完成 │
183
+ │ ├── TASK-002: ⚠️ 阻塞 → 创建 Meeting-001 → 跳过 ↷ │
184
+ │ ├── TASK-003: ✅ 完成 │
185
+ │ ├── TASK-004: ⚠️ 阻塞 → 创建 Meeting-002 → 跳过 ↷ │
186
+ │ └── TASK-005: ✅ 完成 │
187
+ │ │
188
+ │ 执行完成! 📋 有 2 个待处理 Meeting │
189
+ │ │
190
+ │ 用户执行: /om:meeting │
191
+ │ ├── [1] Meeting-001: 数据库连接失败 (TASK-002) │
192
+ │ │ ├── 💡 提供信息 → 重新执行 TASK-002 → ✅ 完成 │
193
+ │ │ ├── ⏭️ 跳过任务 → 标记为 skipped │
194
+ │ │ └── 🔄 重试 → 重新执行 TASK-002 │
195
+ │ └── [2] Meeting-002: API设计决策 (TASK-004) │
196
+ │ ├── 💡 提供信息 → 重新执行 TASK-004 → ✅ 完成 │
197
+ │ ├── ⏭️ 跳过任务 → 标记为 skipped │
198
+ │ └── 🔄 重试 → 重新执行 TASK-004 │
199
+ │ │
200
+ │ Meeting 处理完成后: │
201
+ │ └── 重新执行被阻塞的任务 (TASK-002, TASK-004) │
202
+ │ └── 每个任务仍需经过完整的 Phase 流程 (Develop → Verify → Accept) │
203
+ │ │
204
+ └─────────────────────────────────────────────────────────────────────────────────┘
205
+
206
+
207
+ ┌─────────────────────────────────────────────────────────────────────────────────┐
208
+ │ 阶段 6: 最终报告 │
209
+ ├─────────────────────────────────────────────────────────────────────────────────┤
210
+ │ │
211
+ │ /om:report │
212
+ │ │
213
+ │ 📊 执行报告: │
214
+ │ ├── 总任务: 5 │
215
+ │ ├── 完成: 5 (含 2 个 Meeting 处理后完成) │
216
+ │ ├── 跳过: 0 │
217
+ │ ├── 质量评分: A │
218
+ │ ├── 总耗时: 35 分钟 (含 Meeting 处理) │
219
+ │ └── Git 提交: 5 commits │
220
+ │ │
221
+ │ 📁 产出文件: │
222
+ │ ├── .openmatrix/state.json # 全局状态 │
223
+ │ ├── .openmatrix/tasks/TASK-001/ # 任务详情 │
224
+ │ │ ├── task.json # 任务定义 │
225
+ │ │ └── artifacts/ # 产出物 │
226
+ │ │ ├── result.md # 实现说明 │
227
+ │ │ ├── verify-report.md # 验证报告 │
228
+ │ │ ├── quality-report.json # 质量报告 │
229
+ │ │ └── accept-report.md # 验收报告 │
230
+ │ └── .openmatrix/approvals/ # 审批记录 (含 Meeting) │
231
+ │ │
232
+ └─────────────────────────────────────────────────────────────────────────────────┘
233
+
234
+ 🎉 完成!
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 为什么选择 OpenMatrix?
240
+
241
+ ### 与 superpowers / gsd 对比
242
+
243
+ | 特性 | OpenMatrix | superpowers | gsd |
244
+ |------|:----------:|:-----------:|:---:|
245
+ | **100% 自动化** | ✅ auto 模式 | ❌ 50% | ❌ 60% |
246
+ | **TDD 内置** | ✅ strict 模式 | ❌ 需手动 | ❌ 无 |
247
+ | **覆盖率强制** | ✅ 60-80% | ❌ 无 | ❌ 无 |
248
+ | **安全扫描** | ✅ npm audit | ❌ 无 | ❌ 无 |
249
+ | **AI 验收** | ✅ Reviewer Agent | ❌ 无 | 部分 |
250
+ | **阻塞不中断** | ✅ Meeting 机制 | ❌ 停止 | ❌ 停止 |
251
+ | **质量报告** | ✅ JSON + MD | ❌ 无 | 部分 |
252
+ | **上手难度** | ⚡ 一句话开始 | 中等 | 较高 |
253
+
254
+ ---
255
+
256
+ ## 快速开始
257
+
258
+ ### 安装
259
+
260
+ ```bash
261
+ # 克隆并安装
262
+ git clone https://github.com/bigfish1913/openmatrix.git
263
+ cd openmatrix && npm install && npm run build && npm link
264
+
265
+ # 复制 Skills
266
+ mkdir -p ~/.claude/commands/om
267
+ cp skills/*.md ~/.claude/commands/om/
268
+ ```
269
+
270
+ ### 第一次使用
271
+
272
+ ```bash
273
+ /om:start 实现用户登录功能
274
+
275
+ # 系统会先问:
276
+ ┌─────────────────────────────────────────────────────────┐
277
+ │ 问题 0: 选择质量级别 │
278
+ ├─────────────────────────────────────────────────────────┤
279
+ │ 🚀 strict → TDD + 80%覆盖率 + AI验收 (推荐生产代码) │
280
+ │ ⚖️ balanced → 60%覆盖率 + AI验收 (日常开发) │
281
+ │ ⚡ fast → 无质量门禁 (快速原型) │
282
+ └─────────────────────────────────────────────────────────┘
283
+ ```
284
+
285
+ ---
286
+
287
+ ## 核心特性
288
+
289
+ ### 1️⃣ 三级质量配置 (第一个问题就让你选)
290
+
291
+ | 级别 | TDD | 覆盖率 | Lint | 安全 | AI验收 | 适用场景 |
292
+ |:----:|:---:|:------:|:----:|:----:|:------:|---------|
293
+ | **strict** | ✅ | 80% | ✅ 严格 | ✅ | ✅ | 🏭 **生产代码** |
294
+ | **balanced** | ❌ | 60% | ✅ | ✅ | ✅ | 📦 日常开发 |
295
+ | **fast** | ❌ | 0% | ❌ | ❌ | ❌ | 🏃 快速原型 |
296
+
297
+ ### 2️⃣ 六道质量门禁 (Verify 阶段)
298
+
299
+ ```
300
+ ┌─────────────────────────────────────────────────────────────┐
301
+ │ Verify 阶段 - 质量门禁 │
302
+ ├─────────────────────────────────────────────────────────────┤
303
+ │ 🚪 Gate 1: 编译检查 npm run build → 必须通过 │
304
+ │ 🚪 Gate 2: 测试运行 npm test → 必须通过 │
305
+ │ 🚪 Gate 3: 覆盖率检查 >= 60%/80% → 可配置 │
306
+ │ 🚪 Gate 4: Lint 检查 无 error → 可配置 │
307
+ │ 🚪 Gate 5: 安全扫描 npm audit → 无高危漏洞 │
308
+ │ 🚪 Gate 6: 验收标准 用户定义 → 必须全部满足 │
309
+ └─────────────────────────────────────────────────────────────┘
310
+ ```
311
+
312
+ ### 3️⃣ TDD 模式 (strict 级别)
313
+
314
+ ```
315
+ 传统开发: 代码 → 测试 → Bug → 修复 → 回归 → ... (循环多次)
316
+
317
+ OpenMatrix TDD (strict):
318
+ 🧪 测试阶段: 先写测试 (RED - 测试必须失败)
319
+ ✨ 开发阶段: 再写代码 (GREEN - 测试必须通过)
320
+ ✅ 验证阶段: 6道质量门禁
321
+ 🎉 验收阶段: AI Reviewer 最终确认
322
+
323
+ 结果: 第一次就写对,无需返工
324
+ ```
325
+
326
+ ### 4️⃣ Meeting 机制 (阻塞不中断)
327
+
328
+ ```
329
+ ❌ 其他方案:
330
+ TASK-001 ✓ → TASK-002 阻塞 ⏸️ → 等用户... (浪费时间)
331
+
332
+ ✅ OpenMatrix:
333
+ TASK-001 ✓ → TASK-002 阻塞 → 创建Meeting → 跳过 ↷
334
+ TASK-003 ✓ → TASK-004 ✓ → 完成!
335
+ → 用户用 /om:meeting 统一处理所有阻塞
336
+ ```
337
+
338
+ ### 5️⃣ AI 验收 (Accept 阶段)
339
+
340
+ ```
341
+ Accept 阶段由 Reviewer Agent 执行:
342
+ ├── 检查 verify-report.md
343
+ ├── 验证所有验收标准
344
+ ├── 确认代码可合并
345
+ └── 生成 accept-report.md
346
+ ```
347
+
348
+ ---
349
+
350
+ ## 执行流程
351
+
352
+ ### strict 模式 (推荐生产代码)
353
+
354
+ ```
355
+ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐
356
+ │ TDD │────▶│ Develop │────▶│ Verify │────▶│ Accept │
357
+ │ 🧪 RED │ │ ✨ GREEN│ │ ✅ 6门禁│ │ 🎉 AI │
358
+ └─────────┘ └─────────┘ └─────────┘ └─────────┘
359
+ ```
360
+
361
+ ### balanced 模式 (日常开发)
362
+
363
+ ```
364
+ ┌─────────┐ ┌─────────┐ ┌─────────┐
365
+ │ Develop │────▶│ Verify │────▶│ Accept │
366
+ │ ✨ 编码 │ │ ✅ 4门禁│ │ 🎉 AI │
367
+ └─────────┘ └─────────┘ └─────────┘
368
+ ```
369
+
370
+ ---
371
+
372
+ ## Skills 命令
373
+
374
+ | 命令 | 用途 |
375
+ |------|------|
376
+ | `/om:start` | 启动新任务 (第一个问题选质量级别) |
377
+ | `/om:status` | 查看状态 |
378
+ | `/om:approve` | 审批决策 |
379
+ | `/om:meeting` | 处理阻塞问题 |
380
+ | `/om:resume` | 恢复中断 |
381
+ | `/om:retry` | 重试失败 |
382
+ | `/om:report` | 生成报告 |
383
+
384
+ ---
385
+
386
+ ## 质量报告
387
+
388
+ 每个任务完成后生成:
389
+
390
+ ```json
391
+ {
392
+ "taskId": "TASK-001",
393
+ "overall": "pass",
394
+ "tests": { "passed": 15, "failed": 0, "coverage": 82 },
395
+ "build": { "success": true },
396
+ "lint": { "errors": 0, "warnings": 3 },
397
+ "security": { "vulnerabilities": [] },
398
+ "acceptance": { "met": 5, "total": 5 }
399
+ }
400
+ ```
401
+
402
+ ---
403
+
404
+ ## 常见问题
405
+
406
+ ### Q: 哪种质量级别适合我?
407
+
408
+ | 你的场景 | 推荐级别 |
409
+ |---------|---------|
410
+ | 🏭 生产代码、核心功能 | **strict** |
411
+ | 📦 日常功能开发 | **balanced** |
412
+ | 🏃 快速原型、POC | **fast** |
413
+
414
+ ### Q: OpenMatrix 和 superpowers 可以一起用吗?
415
+
416
+ **A**: 可以!OpenMatrix 自动执行任务,superpowers 提供额外技能。
417
+
418
+ ### Q: Meeting 是什么?
419
+
420
+ **A**: 遇到阻塞时创建记录,但**不停止执行**。最后用 `/om:meeting` 统一处理。
421
+
422
+ ---
423
+
424
+ ## 配置
425
+
426
+ `.openmatrixrc.json`:
427
+
428
+ ```json
429
+ {
430
+ "quality": {
431
+ "tdd": false,
432
+ "minCoverage": 60,
433
+ "strictLint": true,
434
+ "securityScan": true
435
+ },
436
+ "approvalPoints": ["plan", "merge"],
437
+ "agents": { "maxConcurrent": 3 }
438
+ }
439
+ ```
440
+
441
+ ---
442
+
443
+ ## 开发
444
+
445
+ ```bash
446
+ git clone https://github.com/bigfish1913/openmatrix.git
447
+ cd openmatrix && npm install && npm run build && npm test
448
+ ```
449
+
450
+ ---
451
+
452
+ ## Roadmap
453
+
454
+ - [x] TDD 模式
455
+ - [x] 6 道质量门禁
456
+ - [x] Meeting 机制
457
+ - [x] 质量报告
458
+ - [x] AI 验收
459
+ - [ ] VSCode 扩展
460
+ - [ ] Python/Go 支持
461
+ - [ ] CI/CD 集成
462
+
463
+ ---
464
+
465
+ <div align="center">
466
+
467
+ **如果觉得有用,请给个 ⭐ Star!**
468
+
469
+ MIT © 2024 | Made by [bigfish1913](https://github.com/bigfish1913)
470
+
471
+ </div>
472
+
473
+ ---
474
+
475
+ # English
476
+
477
+ ## OpenMatrix: High Quality + Full Automation
478
+
479
+ The **only** AI task orchestration with TDD + Quality Gates + 100% Automation.
480
+
481
+ ### Quick Start
482
+
483
+ ```bash
484
+ # Install
485
+ git clone https://github.com/bigfish1913/openmatrix.git
486
+ cd openmatrix && npm install && npm run build && npm link
487
+ mkdir -p ~/.claude/commands/om && cp skills/*.md ~/.claude/commands/om/
488
+
489
+ # Use (first question asks quality level)
490
+ /om:start Implement user login
491
+ ```
492
+
493
+ ### Quality Levels
494
+
495
+ | Level | TDD | Coverage | Gates | Use Case |
496
+ |-------|:---:|:--------:|:-----:|----------|
497
+ | **strict** | ✅ | 80% | 6 | Production code |
498
+ | **balanced** | ❌ | 60% | 4 | Daily development |
499
+ | **fast** | ❌ | 0% | 1 | Prototypes |
500
+
501
+ ### Key Features
502
+
503
+ - ✅ **Quality Level Selection** - First question you answer
504
+ - ✅ **TDD Mode** - strict level includes test-first
505
+ - ✅ **6 Quality Gates** - Build, Tests, Coverage, Lint, Security, Acceptance
506
+ - ✅ **AI Acceptance** - Reviewer Agent validates final result
507
+ - ✅ **Meeting Mechanism** - Blockers don't stop execution
508
+ - ✅ **Quality Reports** - JSON format for every task
509
+
510
+ ### License
511
+
512
+ MIT
@@ -0,0 +1,152 @@
1
+ import type { Task, AgentType, AgentResult } from '../types/index.js';
2
+ import { StateManager } from '../storage/state-manager.js';
3
+ import { ApprovalManager } from '../orchestrator/approval-manager.js';
4
+ export interface AgentRunnerConfig {
5
+ maxConcurrent: number;
6
+ taskTimeout: number;
7
+ }
8
+ export interface SubagentPrompt {
9
+ task: Task;
10
+ context: string;
11
+ instructions: string;
12
+ }
13
+ /**
14
+ * Claude Code Subagent 类型
15
+ */
16
+ export type ClaudeCodeSubagentType = 'general-purpose' | 'Explore' | 'Plan';
17
+ /**
18
+ * Subagent 任务配置 - 用于 Agent 工具调用
19
+ */
20
+ export interface SubagentTask {
21
+ /** Subagent 类型 */
22
+ subagent_type: ClaudeCodeSubagentType;
23
+ /** 简短描述 (3-5 词) */
24
+ description: string;
25
+ /** 完整任务提示词 */
26
+ prompt: string;
27
+ /** 是否使用隔离 worktree */
28
+ isolation?: 'worktree';
29
+ /** 任务 ID (用于追踪) */
30
+ taskId: string;
31
+ /** 原始 Agent 类型 */
32
+ agentType: AgentType;
33
+ /** 超时时间 (ms) */
34
+ timeout: number;
35
+ /** 是否需要审批 */
36
+ needsApproval: boolean;
37
+ }
38
+ /**
39
+ * 用户上下文信息
40
+ */
41
+ export interface UserContext {
42
+ objective?: string;
43
+ techStack?: string[];
44
+ testCoverage?: string;
45
+ documentationLevel?: string;
46
+ additionalContext?: Record<string, string>;
47
+ }
48
+ /**
49
+ * AgentRunner - 使用 Subagent 执行任务
50
+ *
51
+ * 通过 Claude Code 的 Agent 工具启动子 Agent 执行任务
52
+ *
53
+ * 增强版特性:
54
+ * - 注入用户上下文到提示词
55
+ * - 注入验收标准
56
+ * - 注入代码上下文
57
+ */
58
+ export declare class AgentRunner {
59
+ private stateManager;
60
+ private approvalManager;
61
+ private config;
62
+ private runningAgents;
63
+ private userContext;
64
+ constructor(stateManager: StateManager, approvalManager: ApprovalManager, config?: Partial<AgentRunnerConfig>);
65
+ /**
66
+ * 设置用户上下文
67
+ */
68
+ setUserContext(context: UserContext): void;
69
+ /**
70
+ * 获取用户上下文
71
+ */
72
+ getUserContext(): UserContext;
73
+ /**
74
+ * 准备 Subagent 任务配置
75
+ *
76
+ * 返回可用于 Agent 工具调用的完整配置
77
+ */
78
+ prepareSubagentTask(task: Task): Promise<SubagentTask>;
79
+ /**
80
+ * 批量准备 Subagent 任务
81
+ */
82
+ prepareSubagentTasks(tasks: Task[]): Promise<SubagentTask[]>;
83
+ /**
84
+ * 映射 OpenMatrix Agent 类型到 Claude Code Subagent 类型
85
+ */
86
+ mapAgentType(agentType: AgentType): ClaudeCodeSubagentType;
87
+ /**
88
+ * 判断任务是否需要隔离执行
89
+ */
90
+ private needsIsolation;
91
+ /**
92
+ * 构建完整的执行提示词
93
+ */
94
+ buildExecutionPrompt(task: Task): string;
95
+ /**
96
+ * 构建阶段上下文
97
+ */
98
+ private buildPhaseContext;
99
+ /**
100
+ * 获取当前阶段
101
+ */
102
+ private getCurrentPhase;
103
+ /**
104
+ * 执行任务 - 返回 Subagent 调用提示 (向后兼容)
105
+ * @deprecated 使用 prepareSubagentTask() 代替
106
+ */
107
+ runTask(task: Task): Promise<AgentResult>;
108
+ /**
109
+ * 构建 Agent 提示词
110
+ */
111
+ private buildAgentPrompt;
112
+ /**
113
+ * 构建任务上下文 (增强版: 注入用户上下文)
114
+ */
115
+ private buildContext;
116
+ /**
117
+ * Planner Agent 提示词
118
+ */
119
+ private getPlannerPrompt;
120
+ /**
121
+ * Coder Agent 提示词 (增强版)
122
+ */
123
+ private getCoderPrompt;
124
+ /**
125
+ * Tester Agent 提示词 (增强版)
126
+ */
127
+ private getTesterPrompt;
128
+ /**
129
+ * Reviewer Agent 提示词 (增强版)
130
+ */
131
+ private getReviewerPrompt;
132
+ /**
133
+ * Researcher Agent 提示词
134
+ */
135
+ private getResearcherPrompt;
136
+ /**
137
+ * Executor Agent 提示词
138
+ */
139
+ private getExecutorPrompt;
140
+ /**
141
+ * 生成运行 ID
142
+ */
143
+ private generateRunId;
144
+ /**
145
+ * 获取运行中的 Agent 数量
146
+ */
147
+ getRunningCount(): number;
148
+ /**
149
+ * 检查是否可以启动新 Agent
150
+ */
151
+ canStartNew(): boolean;
152
+ }