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/start.md CHANGED
@@ -39,15 +39,24 @@ Step 10: 逐个执行 subagentTasks(调用 Agent 工具) ← 只有这步
39
39
 
40
40
  ## === 准备阶段(此阶段不得写任何业务代码)===
41
41
 
42
- ### Step 1: 初始化
42
+ ### Step 1: 智能检测状态
43
43
 
44
- 检查 `.openmatrix/` 目录是否存在,不存在则初始化:
44
+ 检查 `.openmatrix/` 目录和 `state.json` 的状态:
45
+
46
+ | 状态 | 处理方式 |
47
+ |------|---------|
48
+ | `.openmatrix/` 不存在 | 全新初始化: `openmatrix start --init-only` |
49
+ | `status: initialized` | 正常继续(首次使用) |
50
+ | `status: completed` | 提示用户:开始新任务会清理旧数据,确认后继续 |
51
+ | `status: running` | 提示用户先完成或暂停当前任务,然后退出 |
52
+ | `status: paused` | 询问用户:继续上次任务(→`/om:resume`)还是开始新任务 |
53
+ | `status: failed` | 询问用户:重试失败任务(→`/om:retry`)还是开始新任务 |
54
+
55
+ **如果是全新初始化:**
45
56
  ```bash
46
57
  openmatrix start --init-only
47
58
  ```
48
59
 
49
- 读取 `.openmatrix/state.json`,如果 `status === 'running'`,提示用户先完成或暂停。
50
-
51
60
  检查 Git 仓库:
52
61
  - 无 `.git` → 询问用户是否初始化
53
62
  - 无远程仓库 → 提示用户添加
@@ -87,6 +96,15 @@ AskUserQuestion({
87
96
  { label: "fast", description: "无质量门禁" }
88
97
  ],
89
98
  multiSelect: false
99
+ },
100
+ {
101
+ question: "是否启用 E2E 测试? (Web/Mobile/GUI 项目推荐)",
102
+ header: "E2E",
103
+ options: [
104
+ { label: "跳过 (推荐)", description: "E2E 测试耗时较长,大多数项目不需要" },
105
+ { label: "启用", description: "适合 Web 应用 (Playwright/Cypress)、Mobile (Appium/Detox)" }
106
+ ],
107
+ multiSelect: false
90
108
  }
91
109
  ]
92
110
  })
@@ -113,16 +131,16 @@ AskUserQuestion({
113
131
  question: "请选择执行模式:",
114
132
  header: "执行模式",
115
133
  options: [
116
- { label: "每阶段确认", description: "每个阶段完成后暂停" },
117
- { label: "关键节点确认", description: "plan/merge/deploy 时暂停" },
118
- { label: "全自动执行", description: "无需确认,自动完成" }
134
+ { label: "全自动执行 (推荐)", description: "无需确认,自动完成" },
135
+ { label: "关键节点确认", description: "plan/merge 时暂停确认" },
136
+ { label: "每阶段确认", description: "每个阶段完成后暂停" }
119
137
  ],
120
138
  multiSelect: false
121
- }]
139
+ ]
122
140
  })
123
141
  ```
124
142
 
125
- **如果用户选择"全自动执行",进入 BYPASS 模式(所有操作自动批准)。**
143
+ **默认进入 BYPASS 模式(全自动执行),用户可选其他模式。**
126
144
 
127
145
  ### Step 6: AI 提取 goals + 生成 plan
128
146
 
@@ -150,6 +168,12 @@ AskUserQuestion({
150
168
  }
151
169
  ```
152
170
 
171
+ **E2E 测试:** 如果用户在 Step 4 选择了"启用 E2E",在 quality 后面加上:
172
+ ```
173
+ "e2eTests": true
174
+ ```
175
+ 这会让 CLI 的 TaskPlanner 在任务拆分时生成额外的 E2E 测试任务。
176
+
153
177
  ### Step 8: 调用 CLI 创建任务 ⚠️ 不可跳过
154
178
 
155
179
  **必须执行此命令,禁止跳过:**
@@ -174,18 +198,15 @@ CLI 返回 JSON 中 `subagentTasks` 数组包含待执行任务。
174
198
  ❌ **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
175
199
  ❌ **禁止询问"是否继续"** — 直接执行下一个任务
176
200
  ❌ **禁止输出"让我知道是否..."后停止** — 继续执行
177
- ❌ **禁止因为上下文压缩而忘记剩余任务** — 每完成一个任务后,重新读取 state.json 确认剩余任务
201
+ ❌ **禁止因为上下文压缩而忘记剩余任务** — 通过 `openmatrix step --json` 重新获取状态
178
202
 
179
- **执行循环伪代码:**
180
- ```
181
- remaining = subagentTasks 中 status !== 'completed' 的任务
182
- while (remaining.length > 0) {
183
- task = remaining[0]
184
- result = Agent(task) // 执行
185
- 更新任务状态为 completed
186
- remaining = 从 state.json 重新读取未完成任务
187
- }
203
+ **文件持久化循环(防止上下文压缩丢失状态):**
204
+ ```bash
205
+ # 每个 Agent 完成后执行:
206
+ openmatrix complete TASK-XXX --success # 标记完成 + 更新统计
207
+ openmatrix step --json # 获取下一个任务 + 检查是否全部完成
188
208
  ```
209
+ `openmatrix step` 会从磁盘读取真实状态,不依赖上下文记忆。
189
210
  </LOOP-ENFORCEMENT>
190
211
 
191
212
  对每个任务调用 Agent 工具:
@@ -200,7 +221,11 @@ Agent({
200
221
  ```
201
222
 
202
223
  每个 Agent 完成后:
203
- 1. **保存 Agent 上下文** — 将执行结果摘要写入 `.openmatrix/tasks/TASK-XXX/context.md`,格式如下:
224
+ 1. **标记完成并更新统计(必须执行):**
225
+ ```bash
226
+ openmatrix complete TASK-XXX --success
227
+ ```
228
+ 2. **保存 Agent 上下文** — 将执行结果摘要写入 `.openmatrix/tasks/TASK-XXX/context.md`,格式如下:
204
229
 
205
230
  ```markdown
206
231
  ## 任务: TASK-XXX 任务标题
@@ -219,9 +244,14 @@ Agent({
219
244
  - [下一个 Agent 应该注意什么]
220
245
  ```
221
246
 
222
- 2. 更新任务状态: `openmatrix complete <taskId>` 或更新 state
223
247
  3. Git 自动提交(必须使用下方统一提交格式)
224
- 4. **立即检查是否还有未完成任务** — 读取 `.openmatrix/state.json` 中的 statistics,如果 completed < totalTasks,继续执行下一个
248
+ 4. **获取下一个任务(防止上下文压缩丢失):**
249
+ ```bash
250
+ openmatrix step --json
251
+ ```
252
+ 如果返回 `status: "next"` → 继续执行返回的 task
253
+ 如果返回 `status: "done"` → 所有任务完成,进入最终提交
254
+ 如果返回 `status: "blocked"` → 有阻塞任务,处理 Meeting
225
255
  5. 检查审批点(auto 模式自动批准,其他模式按配置暂停)
226
256
 
227
257
  **Agent 上下文共享机制 (Agent Memory):**