openmatrix 0.1.55 → 0.1.57

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/skills/auto.md CHANGED
@@ -126,23 +126,21 @@ CLI 返回的 JSON 中 `subagentTasks` 数组包含每个待执行任务:
126
126
  ❌ **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
127
127
  ❌ **禁止询问"是否继续"** — 直接执行下一个任务
128
128
  ❌ **禁止输出"让我知道是否..."后停止** — 继续执行
129
- ❌ **禁止因为上下文压缩而忘记剩余任务** — 每完成一个任务后,重新读取 state.json 确认剩余任务
129
+ ❌ **禁止因为上下文压缩而忘记剩余任务** — 通过 CLI 命令从磁盘获取真实状态
130
130
 
131
- **执行循环伪代码:**
132
- ```
133
- remaining = subagentTasks 中 status !== 'completed' 的任务
134
- while (remaining.length > 0) {
135
- task = remaining[0]
136
- result = Agent(task) // 执行
137
- 更新任务状态为 completed
138
- remaining = 从 state.json 重新读取未完成任务
139
- }
131
+ **文件持久化循环(防止上下文压缩丢失状态):**
132
+ ```bash
133
+ # 每个 Agent 完成后执行:
134
+ openmatrix complete TASK-XXX --success # 标记完成 + 更新统计
135
+ openmatrix step --json # 获取下一个任务 + 检查是否全部完成
140
136
  ```
137
+ `openmatrix step` 从磁盘读取真实状态,不依赖上下文记忆。
141
138
 
142
139
  **中断恢复:** 如果会话中断,再次执行 `/om:auto` 时:
143
- 1. 读取 `.openmatrix/state.json`
144
- 2. 如果 `status === 'running'`,读取所有任务,找到 status 不是 completed 的任务
145
- 3. 从中断的任务继续执行,不需要重新开始
140
+ 1. 执行 `openmatrix step --json`
141
+ 2. 如果返回 `status: "next"` 从返回的任务继续执行
142
+ 3. 如果返回 `status: "done"` → 所有任务已完成
143
+ 4. 如果返回 `status: "blocked"` → 有阻塞任务需要处理
146
144
  </LOOP-ENFORCEMENT>
147
145
 
148
146
  对 `subagentTasks` 列表中的每个任务,调用 Agent 工具执行:
@@ -176,8 +174,17 @@ Agent({
176
174
  - [下一个 Agent 应该注意什么]
177
175
  ```
178
176
 
179
- 2. 更新任务状态
180
- 3. **立即检查是否还有未完成任务** — 读取 `.openmatrix/state.json` 中的 statistics,如果 completed < totalTasks,继续执行下一个
177
+ 2. **标记完成并更新统计(必须执行):**
178
+ ```bash
179
+ openmatrix complete TASK-XXX --success
180
+ ```
181
+ 3. **获取下一个任务(防止上下文压缩丢失):**
182
+ ```bash
183
+ openmatrix step --json
184
+ ```
185
+ 如果返回 `status: "next"` → 继续执行返回的 task
186
+ 如果返回 `status: "done"` → 所有任务完成,进入最终提交
187
+ 如果返回 `status: "blocked"` → 有阻塞任务,处理 Meeting
181
188
  4. Git 自动提交(**必须使用 HEREDOC 格式**):
182
189
 
183
190
  **Agent 上下文共享机制 (Agent Memory):**
@@ -25,20 +25,37 @@ description: 头脑风暴 - 探索需求和设计后再执行任务
25
25
  "status": "brainstorming",
26
26
  "message": "开始头脑风暴",
27
27
  "taskTitle": "任务标题",
28
- "questions": [
29
- {
30
- "id": "core_objective",
31
- "question": "这个任务的核心目标是什么?",
32
- "header": "核心目标",
33
- "options": [...],
34
- "multiSelect": false
35
- }
36
- ],
28
+ "questions": [...],
29
+ "suggestResearch": "游戏开发",
30
+ "researchHint": "检测到垂直领域「游戏开发」,建议先进行领域调研",
37
31
  "hint": "请逐一回答问题,完成后再调用 --complete"
38
32
  }
39
33
  ```
40
34
 
41
- 2. **交互式问答**
35
+ 2. **检测垂直领域** (如果 suggestResearch 存在)
36
+
37
+ 如果 CLI 返回了 `suggestResearch` 字段,说明检测到垂直领域:
38
+
39
+ ```typescript
40
+ if (result.suggestResearch) {
41
+ AskUserQuestion({
42
+ questions: [{
43
+ question: `检测到垂直领域「${result.suggestResearch}」,建议先进行领域调研。\n\n领域调研可以帮助您:\n• 了解行业最佳实践\n• 获取技术方案建议\n• 生成领域专属文档 (如 GDD/PRD)\n\n是否进入领域调研?`,
44
+ header: "领域调研",
45
+ options: [
46
+ { label: "进入调研 (推荐)", description: "启动 /om:research 进行深度调研" },
47
+ { label: "跳过调研", description: "直接进行头脑风暴问答" }
48
+ ],
49
+ multiSelect: false
50
+ }]
51
+ })
52
+ }
53
+ ```
54
+
55
+ - 如果用户选择"进入调研",调用 `/om:research`,研究完成后自动返回 start
56
+ - 如果用户选择"跳过调研",继续下面的问答流程
57
+
58
+ 3. **交互式问答**
42
59
 
43
60
  对每个问题使用 `AskUserQuestion` 进行提问:
44
61
 
@@ -58,7 +75,7 @@ description: 头脑风暴 - 探索需求和设计后再执行任务
58
75
  - 记录可能的设计决策
59
76
  - 识别潜在风险
60
77
 
61
- 3. **深入追问** (可选)
78
+ 4. **深入追问** (可选)
62
79
 
63
80
  如果用户选择了"其他"或回答不够清晰,进行追问:
64
81
  ```typescript
@@ -71,7 +88,7 @@ description: 头脑风暴 - 探索需求和设计后再执行任务
71
88
  })
72
89
  ```
73
90
 
74
- 4. **总结头脑风暴结果**
91
+ 5. **总结头脑风暴结果**
75
92
 
76
93
  所有问题回答完成后,总结:
77
94
  - 核心目标
@@ -121,15 +138,64 @@ description: 头脑风暴 - 探索需求和设计后再执行任务
121
138
  })
122
139
  ```
123
140
 
124
- 6. **自动执行 start**
141
+ 6. **智能检测 .openmatrix 状态后执行**
142
+
143
+ **先检测当前状态:**
144
+ ```bash
145
+ # 检查 .openmatrix 目录是否存在
146
+ ls .openmatrix/state.json 2>/dev/null
147
+ ```
148
+
149
+ **根据状态走不同路径:**
150
+
151
+ | .openmatrix 状态 | 处理方式 |
152
+ |-----------------|---------|
153
+ | 不存在 | 全新开始 → init → 写 tasks-input → CLI start |
154
+ | 存在,`status: completed` | 清理旧数据后重新开始 → 写 tasks-input → CLI start |
155
+ | 存在,`status: running` | 提示用户先完成或暂停当前任务 |
156
+ | 存在,`status: paused` | 询问用户:继续上次任务 还是 开始新任务 |
157
+ | 存在,`status: initialized` | 直接写 tasks-input → CLI start |
158
+
159
+ **路径 A: 全新开始 / 重新开始**
160
+ ```bash
161
+ # 初始化 (如果不存在)
162
+ openmatrix start --init-only
163
+
164
+ # 如果是重新开始,清理旧数据
165
+ # rm -rf .openmatrix/tasks/ .openmatrix/approvals/ .openmatrix/meetings/
166
+ ```
167
+
168
+ **将头脑风暴结论转换为 goals:**
169
+ ```json
170
+ {
171
+ "title": "任务标题",
172
+ "description": "基于头脑风暴的整体描述",
173
+ "goals": [
174
+ "目标1: 独立功能模块",
175
+ "目标2: 独立功能模块",
176
+ "..."
177
+ ],
178
+ "constraints": ["约束"],
179
+ "deliverables": ["交付物"],
180
+ "answers": { "问答答案" },
181
+ "quality": "strict/balanced/fast",
182
+ "mode": "auto",
183
+ "plan": "## 技术方案\n..."
184
+ }
185
+ ```
186
+
187
+ 写入 `.openmatrix/tasks-input.json` 后执行:
188
+ ```bash
189
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --json
190
+ ```
191
+
192
+ **路径 B: 继续上次任务**
193
+ ```bash
194
+ openmatrix step --json
195
+ ```
196
+ 从返回的 next task 继续执行。
125
197
 
126
- 如果用户选择"开始执行":
127
- - 调用 CLI 标记头脑风暴完成:
128
- ```bash
129
- openmatrix brainstorm --complete --json
130
- ```
131
- - 自动调用 `/om:start` 开始执行任务
132
- - 将头脑风暴收集的洞察传递给 start
198
+ **最终:从 CLI 返回的 `subagentTasks` 开始逐个执行 Agent**
133
199
 
134
200
  </process>
135
201
 
package/skills/om.md CHANGED
@@ -1,21 +1,19 @@
1
1
  ---
2
2
  name: om
3
- description: "DEFAULT entry for OpenMatrix. Use for ANY task user wants done. Triggers on: 实现/添加/修复/重构/优化/写/做/开发. Example: '实现登录' /om:start 实现登录. When in doubt, use this."
3
+ description: "Use when starting any conversation - establishes OpenMatrix as the handler for development tasks. Routes /om:start automatically. Triggers on: implement, build, fix, create, refactor, 修复, 实现, 开发."
4
4
  priority: critical
5
5
  always_load: true
6
6
  ---
7
7
 
8
8
  <EXTREMELY-IMPORTANT>
9
- This is the DEFAULT action for ANY development task.
9
+ ## How to Use This Skill
10
10
 
11
- **Trigger immediately when user wants to:**
12
- - Build/create/implement something
13
- - Add new features or functionality
14
- - Fix bugs or resolve issues
15
- - Refactor or optimize code
16
- - Make changes to the codebase
11
+ This is the DEFAULT entry when the user wants to produce code changes.
17
12
 
18
- **If you're unsure → USE `/om` anyway. It gracefully handles all task types.**
13
+ **Analyze user INTENT:**
14
+ - "实现X" / "implement X" / "build X" → Development task → This skill
15
+ - "修复X" / "fix X" → Development task → This skill
16
+ - "怎么实现?" / "how to?" → Question → NOT this skill (just answer)
19
17
  </EXTREMELY-IMPORTANT>
20
18
 
21
19
  <NO-OTHER-SKILLS>
@@ -23,79 +21,61 @@ This is the DEFAULT action for ANY development task.
23
21
  </NO-OTHER-SKILLS>
24
22
 
25
23
  <objective>
26
- OpenMatrix 的默认入口 - 自动启动任务编排。
27
-
28
- **核心价值:**
29
- - 用户无需记忆命令,直接描述任务即可
30
- - 自动识别任务类型并启动相应流程
31
- - 支持中英文混合输入
32
-
33
- **触发优先级:最高**
34
- - 任何"要做事情"的输入都应触发此技能
35
- - 系统会自动判断是执行任务还是回答问题
24
+ OpenMatrix 默认入口 - 用户无需记忆命令,直接描述任务即可。
36
25
  </objective>
37
26
 
38
27
  <process>
39
- 1. **解析用户输入**
28
+ 1. **Parse user input**
40
29
 
41
- 用户输入 `$ARGUMENTS` 可能是:
42
- - 任务描述 (如 "实现用户登录功能")
43
- - 文件路径 (如 "docs/task.md")
44
- - 空输入
30
+ `$ARGUMENTS` can be:
31
+ - Task description: "实现用户登录功能"
32
+ - File path: "docs/task.md"
33
+ - Empty input
45
34
 
46
- 2. **判断输入类型**
35
+ 2. **Route input**
47
36
 
48
- **如果是任务描述或文件路径**:
49
- 直接调用 `/om:start` 并传递参数
37
+ **Task description or file path**:
38
+ Invoke `/om:start` with arguments
50
39
 
51
- **如果是空输入**:
52
- 显示帮助信息
40
+ **Empty input**:
41
+ Show help
53
42
 
54
- 3. **自动启动 /om:start**
55
-
56
- 无论用户输入什么,都自动转换为 `/om:start` 调用:
43
+ 3. **Auto-route to /om:start**
57
44
 
58
45
  ```
59
- 用户输入: "实现用户登录"
60
- 系统执行: /om:start 实现用户登录
61
-
62
- 用户输入: "docs/task.md"
63
- 系统执行: /om:start docs/task.md
64
-
65
- 用户输入: (空)
66
- 系统显示: 帮助信息
46
+ "实现用户登录" → /om:start 实现用户登录
47
+ "docs/task.md" → /om:start docs/task.md
48
+ (empty) → Show help
67
49
  ```
68
50
 
69
- 4. **帮助信息**
70
-
71
- 如果用户输入为空或输入 `--help`,显示:
51
+ 4. **Help**
72
52
 
53
+ If empty or `--help`:
73
54
  ```
74
- 📦 OpenMatrix - AI 任务编排系统
55
+ OpenMatrix - AI task orchestration
75
56
 
76
- 用法:
77
- /om <任务描述> 直接启动任务
78
- /om:brainstorm <任务> 先头脑风暴,再执行
79
- /om:start <任务> 交互式启动 (可选质量级别)
80
- /om:auto <任务> 全自动执行
57
+ Usage:
58
+ /om <task> Start task
59
+ /om:brainstorm <task> Brainstorm first
60
+ /om:start <task> Interactive start
61
+ /om:auto <task> Full auto
81
62
 
82
- 示例:
63
+ Examples:
83
64
  /om 实现用户登录功能
84
65
  /om 修复登录页面的样式问题
85
66
  /om 添加 API 接口
86
67
 
87
- 质量级别:
88
- 🚀 strict - TDD + 80%覆盖率 (生产代码)
89
- ⚖️ balanced - 60%覆盖率 (日常开发)
90
- fast - 无质量门禁 (快速原型)
68
+ Quality:
69
+ strict - TDD + 80% coverage
70
+ balanced - 60% coverage
71
+ fast - No gates
91
72
 
92
- 其他命令:
93
- /om:brainstorm - 头脑风暴后再执行
94
- /om:status - 查看状态
95
- /om:meeting - 处理阻塞
96
- /om:report - 生成报告
73
+ Commands:
74
+ /om:brainstorm - Brainstorm then execute
75
+ /om:status - View status
76
+ /om:meeting - Handle blockers
77
+ /om:report - Generate report
97
78
  ```
98
-
99
79
  </process>
100
80
 
101
81
  <arguments>
@@ -103,48 +83,14 @@ $ARGUMENTS
103
83
  </arguments>
104
84
 
105
85
  <examples>
106
- /om 实现用户登录功能 # 自动启动任务编排
107
- /om 修复登录页面的样式问题 # 直接描述任务
108
- /om docs/task.md # 从文件读取任务
109
- /om # 显示帮助
86
+ /om 实现用户登录功能 # Auto start
87
+ /om 修复登录页面的样式问题 # Direct description
88
+ /om docs/task.md # From file
89
+ /om # Show help
110
90
  </examples>
111
91
 
112
92
  <notes>
113
- ## 工作原理
114
-
115
- ```
116
- 用户输入: /om 实现登录
117
-
118
-
119
- ┌─────────────────┐
120
- │ 检测到任务描述 │
121
- └────────┬────────┘
122
-
123
-
124
- ┌─────────────────┐
125
- │ 自动调用 │
126
- │ /om:start │
127
- │ 实现登录 │
128
- └─────────────────┘
129
- ```
130
-
131
- ## 与 /om:start 的关系
132
-
133
- `/om` 是 `/om:start` 的快捷方式:
134
- - `/om <任务>` ≡ `/om:start <任务>`
135
- - 用户体验更简洁
136
- - 功能完全相同
137
-
138
- ## 推荐用法
139
-
140
- ```bash
141
- # 快速启动 (推荐)
142
- /om 实现用户登录
143
-
144
- # 等价于
145
- /om:start 实现用户登录
146
-
147
- # 全自动模式
148
- /om:auto 实现用户登录
149
- ```
93
+ `/om` is a shortcut for `/om:start`:
94
+ - `/om <task>` ≡ `/om:start <task>`
95
+ - Same functionality, simpler UX
150
96
  </notes>