openmatrix 0.1.81 → 0.1.83

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.
@@ -58,13 +58,11 @@ export declare class GitCommitManager {
58
58
  * 格式规范:
59
59
  * <type>: (TASK-XXX) 简短描述
60
60
  *
61
- * - 改动点1
62
- * - 改动点2
61
+ * <phase 描述>
63
62
  *
64
63
  * 影响范围: 模块/功能
65
- * 文件改动: 文件1, 文件2
66
64
  *
67
- * Run: run-xxx (可选)
65
+ * Run: run-xxx
68
66
  * Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
69
67
  */
70
68
  generateCommitMessage(info: CommitInfo): string;
@@ -157,13 +157,11 @@ class GitCommitManager {
157
157
  * 格式规范:
158
158
  * <type>: (TASK-XXX) 简短描述
159
159
  *
160
- * - 改动点1
161
- * - 改动点2
160
+ * <phase 描述>
162
161
  *
163
162
  * 影响范围: 模块/功能
164
- * 文件改动: 文件1, 文件2
165
163
  *
166
- * Run: run-xxx (可选)
164
+ * Run: run-xxx
167
165
  * Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
168
166
  */
169
167
  generateCommitMessage(info) {
@@ -173,43 +171,32 @@ class GitCommitManager {
173
171
  tdd: 'test',
174
172
  develop: 'feat',
175
173
  verify: 'test',
176
- accept: 'feat'
174
+ accept: 'chore'
177
175
  };
178
176
  const commitType = phaseToType[info.phase] || 'feat';
179
- // 标题行 - 限制 50 字符
177
+ // 标题行 - 限制 72 字符
180
178
  let title = info.taskTitle;
181
- if (title.length > 50) {
182
- title = title.slice(0, 47) + '...';
179
+ if (title.length > 60) {
180
+ title = title.slice(0, 57) + '...';
183
181
  }
184
- // 格式: feat: (TASK-001) 简短描述
185
- lines.push(`${commitType}: (${info.taskId}) ${title}`);
182
+ // 格式: feat(TASK-001): 简短描述
183
+ lines.push(`${commitType}(${info.taskId}): ${title}`);
186
184
  lines.push('');
187
- // 修改内容 - 使用文件名作为改动点
188
- if (info.changes.length > 0) {
189
- for (const change of info.changes.slice(0, 10)) {
190
- lines.push(`- ${change}`);
191
- }
192
- if (info.changes.length > 10) {
193
- lines.push(`- ... 及其他 ${info.changes.length - 10} 项修改`);
194
- }
195
- lines.push('');
196
- }
185
+ // Phase 描述
186
+ const phaseDescriptions = {
187
+ tdd: '编写测试用例',
188
+ develop: '实现功能代码',
189
+ verify: '运行测试验证',
190
+ accept: '验收检查通过'
191
+ };
192
+ lines.push(phaseDescriptions[info.phase] || '代码变更');
197
193
  // 影响范围
198
194
  if (info.impactScope.length > 0) {
195
+ lines.push('');
199
196
  lines.push(`影响范围: ${info.impactScope.join('、')}`);
200
197
  }
201
- // 文件改动 - 简化显示
202
- const changedFiles = info.changes.slice(0, 5).map(f => {
203
- const parts = f.split('/');
204
- return parts.length > 2 ? parts.slice(-2).join('/') : f;
205
- });
206
- if (changedFiles.length > 0) {
207
- const fileSummary = changedFiles.join(', ');
208
- const suffix = info.changes.length > 5 ? ` 等 ${info.changes.length} 个文件` : '';
209
- lines.push(`文件改动: ${fileSummary}${suffix}`);
210
- }
211
198
  lines.push('');
212
- // Run ID (可选)
199
+ // Run ID
213
200
  if (info.runId) {
214
201
  lines.push(`Run: ${info.runId}`);
215
202
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openmatrix",
3
- "version": "0.1.81",
3
+ "version": "0.1.83",
4
4
  "description": "AI Agent task orchestration system with Claude Code Skills integration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/skills/auto.md CHANGED
@@ -152,7 +152,7 @@ openmatrix complete TASK-XXX --success # 标记完成 + 更新统计(含
152
152
  # 提交验证(防止 commit 静默失败):
153
153
  git status --porcelain # 检查是否有未提交的文件
154
154
  # 如果有未提交文件 → 必须手动提交:
155
- git add -A && git commit -m "feat: (TASK-XXX) 任务标题"
155
+ git add -A && git commit -m "feat(TASK-XXX): 任务标题"
156
156
 
157
157
  openmatrix step --json # 获取下一个任务 + 检查是否全部完成
158
158
  ```
@@ -227,13 +227,9 @@ Agent-1 完成 → 写入 context.md → Agent-2 读取 Agent-1 的上下文 →
227
227
  ```
228
228
  ```bash
229
229
  git add -A && git commit -m "$(cat <<'EOF'
230
- feat: (TASK-XXX) 任务标题
231
-
232
- - 改动点1
233
- - 改动点2
230
+ feat(TASK-XXX): 任务标题
234
231
 
235
232
  影响范围: 模块名
236
- 文件改动: 文件1, 文件2
237
233
 
238
234
  Run: run-XXX
239
235
  Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
@@ -246,13 +242,9 @@ EOF
246
242
  **Git 提交格式规范(所有提交必须遵守):**
247
243
 
248
244
  ```
249
- <type>: (TASK-XXX) 简短描述
250
-
251
- - 改动点1
252
- - 改动点2
245
+ <type>(TASK-XXX): 简短描述
253
246
 
254
247
  影响范围: 模块名
255
- 文件改动: 文件1, 文件2
256
248
 
257
249
  Run: run-XXX
258
250
  Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
@@ -42,7 +42,9 @@ ls docs/ 2>/dev/null
42
42
  - 了解技术栈、项目结构、最近变更
43
43
  - 如果用户引用了文件(如 `docs/task.md`),读取该文件
44
44
 
45
- ## 步骤 2: 评估范围
45
+ ## 步骤 2: 评估范围与领域检测
46
+
47
+ **2.1 评估范围**
46
48
 
47
49
  **如果任务涉及多个独立子系统**(如"构建一个包含聊天、文件存储、计费和分析的平台"),立即提出分解:
48
50
 
@@ -61,6 +63,31 @@ AskUserQuestion({
61
63
  })
62
64
  ```
63
65
 
66
+ **2.2 领域检测与 Research 集成**
67
+
68
+ **如果任务涉及不熟悉的垂直领域**(如游戏开发、支付系统、区块链、AI 应用等),主动建议调用研究:
69
+
70
+ ```typescript
71
+ AskUserQuestion({
72
+ questions: [{
73
+ question: `这个任务涉及「${domain}」领域,建议先进行领域调研。\n研究可以帮助我们:\n• 了解行业标准和最佳实践\n• 识别关键技术选型\n• 发现常见陷阱和解决方案`,
74
+ header: "领域调研",
75
+ options: [
76
+ { label: "先调研 (推荐)", description: "调用 /om:research 深入了解领域" },
77
+ { label: "直接头脑风暴", description: "我对这个领域比较熟悉" }
78
+ ],
79
+ multiSelect: false
80
+ }]
81
+ })
82
+ ```
83
+
84
+ 用户选择「先调研」后:
85
+ ```
86
+ Skill 工具: skill = "om:research", args = "任务描述"
87
+ ```
88
+
89
+ 研究完成后,研究结论会作为头脑风暴的输入上下文,继续后续步骤。
90
+
64
91
  ## 步骤 3: 逐一澄清需求
65
92
 
66
93
  **核心原则:一次只问一个问题。每条消息只有一个问题。**
@@ -249,7 +276,69 @@ AskUserQuestion({
249
276
  })
250
277
  ```
251
278
 
252
- ## 步骤 7: 写入 tasks-input.json 并调用 /om:start
279
+ ## 步骤 7: 输出设计文档
280
+
281
+ 总结确认后,将设计写入文档,便于后续执行时参考:
282
+
283
+ ```bash
284
+ # 确保目录存在
285
+ mkdir -p docs/openmatrix
286
+ ```
287
+
288
+ **写入设计文档到 `docs/openmatrix/YYYY-MM-DD-<topic>-design.md`:**
289
+
290
+ ```markdown
291
+ # 设计方案: 任务标题
292
+
293
+ 日期: YYYY-MM-DD
294
+
295
+ ## 核心目标
296
+ - 目标 1
297
+ - 目标 2
298
+
299
+ ## 架构设计
300
+ (从步骤 5 确认的内容)
301
+
302
+ ## 数据模型 / 核心实体
303
+ (从步骤 5 确认的内容)
304
+
305
+ ## 关键接口 / API
306
+ (从步骤 5 确认的内容)
307
+
308
+ ## 技术方案
309
+ - 方案选择: 方案 X
310
+ - 理由: ...
311
+
312
+ ## 错误处理策略
313
+ (从步骤 5 确认的内容)
314
+
315
+ ## 测试策略
316
+ (从步骤 5 确认的内容)
317
+
318
+ ## 约束与风险
319
+ - 约束 1
320
+ - 风险 1 及应对
321
+
322
+ ## 验收标准
323
+ - 标准 1
324
+ - 标准 2
325
+ ```
326
+
327
+ ```typescript
328
+ AskUserQuestion({
329
+ questions: [{
330
+ question: `设计文档已写入 docs/openmatrix/${filename}\n\n下一步?`,
331
+ header: "下一步",
332
+ options: [
333
+ { label: "开始执行 (推荐)", description: "写入 tasks-input.json 并调用 /om:start" },
334
+ { label: "修改设计", description: "需要调整设计方案" }
335
+ ],
336
+ multiSelect: false
337
+ }]
338
+ })
339
+ ```
340
+
341
+ ## 步骤 8: 写入 tasks-input.json 并调用 /om:start
253
342
 
254
343
  用户选择"开始执行"后:
255
344
 
@@ -310,6 +399,20 @@ $ARGUMENTS
310
399
  - **问题要贴合任务** — 不问泛泛的问题,而是针对具体任务深入
311
400
  - **理解目的 > 理解实现** — 先搞清楚为什么做,再讨论怎么做
312
401
 
402
+ ## 领域调研集成
403
+
404
+ - 检测到垂直领域(游戏、支付、区块链等)时,主动建议 `/om:research`
405
+ - 研究完成后,研究结论作为后续提问和设计的输入上下文
406
+ - 如果用户对领域熟悉,可以跳过研究直接进入头脑风暴
407
+ - 研究产出的文档可引用在设计文档中
408
+
409
+ ## 设计文档
410
+
411
+ - 每次头脑风暴都会输出设计文档到 `docs/openmatrix/YYYY-MM-DD-<topic>-design.md`
412
+ - 文档包含:核心目标、架构、数据模型、接口、技术方案、错误处理、测试策略、风险、验收标准
413
+ - 设计文档是 `/om:start` 执行时的重要参考
414
+ - 文档内容来自步骤 5 逐节确认的设计
415
+
313
416
  ## 在已有代码库中工作
314
417
 
315
418
  - 提出变更前,先探索现有结构,遵循现有模式
@@ -342,6 +445,12 @@ $ARGUMENTS
342
445
 
343
446
 
344
447
  ┌─────────────────┐
448
+ │ 领域检测 │ YES → /om:research → 研究结论作为上下文
449
+ │ (是否需要调研) │──────────────────────────────────────────────┐
450
+ └────────┬────────┘ │
451
+ │ NO / 研究完成 │
452
+ ▼ ◀────────────────────────────────────────────────────┘
453
+ ┌─────────────────┐
345
454
  │ 逐一澄清需求 │◀─────┐
346
455
  │ (一次一个问题) │ │
347
456
  │ 深入理解目的/ │ │
@@ -367,6 +476,12 @@ $ARGUMENTS
367
476
 
368
477
  ┌─────────────────┐
369
478
  │ 总结 + 确认 │
479
+ └────────┬────────┘
480
+
481
+
482
+ ┌─────────────────┐
483
+ │ 写入设计文档 │
484
+ │ (docs/openmatrix/) │
370
485
  └────────┬────────┘
371
486
 
372
487
  开始执行
package/skills/start.md CHANGED
@@ -297,7 +297,7 @@ openmatrix complete TASK-XXX --success --summary "决策: xxx; 文件: xxx"
297
297
  # 提交验证(防止 commit 静默失败):
298
298
  git status --porcelain # 检查是否有未提交的文件
299
299
  # 如果有未提交文件 → 必须手动提交:
300
- git add -A && git commit -m "feat: (TASK-XXX) 任务标题"
300
+ git add -A && git commit -m "feat(TASK-XXX): 任务标题"
301
301
 
302
302
  openmatrix step --json # 获取下一个任务 + 检查是否全部完成
303
303
  ```
@@ -420,14 +420,9 @@ openmatrix meeting --list
420
420
  所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
421
421
  ```bash
422
422
  git add -A && git commit -m "$(cat <<'EOF'
423
- feat: 完成所有任务
424
-
425
- - 任务1标题
426
- - 任务2标题
427
- - ...
423
+ feat: 完成所有任务 - 任务总标题
428
424
 
429
425
  影响范围: 全部模块
430
- 文件改动: 统计变更文件数
431
426
 
432
427
  Run: run-XXX
433
428
  Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
@@ -438,13 +433,11 @@ EOF
438
433
  **Git 提交格式规范(所有提交必须遵守):**
439
434
 
440
435
  ```
441
- <type>: (TASK-XXX) 简短描述
436
+ <type>(TASK-XXX): 简短描述
442
437
 
443
- - 改动点1
444
- - 改动点2
438
+ 实现/修改内容一句话描述
445
439
 
446
440
  影响范围: 模块名
447
- 文件改动: 文件1, 文件2
448
441
 
449
442
  Run: run-XXX
450
443
  Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>