openmatrix 0.2.16 → 0.2.18

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/resume.md CHANGED
@@ -1,68 +1,260 @@
1
- ---
2
- name: om:resume
3
- description: "Use when resuming interrupted or paused task execution. Triggers on: 恢复, resume, continue task, 继续执行, interrupted, 中断, paused, 暂停, retry from checkpoint, 从断点继续."
4
- ---
5
-
6
- <NO-OTHER-SKILLS>
7
- 执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。OpenMatrix 独立运行,不依赖外部任务编排系统。
8
- </NO-OTHER-SKILLS>
9
-
10
- <objective>
11
- 恢复因中断、超时、失败等原因暂停的任务。
12
- </objective>
13
-
14
- <process>
15
- 1. 读取 `.openmatrix/state.json` 获取当前状态
16
- 2. 识别可恢复的任务:
17
- - status=in_progress (中断)
18
- - status=retry_queue (等待重试)
19
- - status=failed (可重试)
20
- - 全局 status=paused
21
-
22
- 3. 展示可恢复任务列表:
23
-
24
- ```
25
- 🔄 可恢复任务
26
-
27
- [1] TASK-001: 任务名称 (中断)
28
- [2] TASK-003: 任务名称 (重试队列, 已重试2次)
29
- [3] TASK-005: 任务名称 (失败: 错误信息)
30
-
31
- 选择要恢复的任务 [1-3] 或 [A] 全部: _
32
- ```
33
-
34
- 4. 用户选择后:
35
- - 调用 CLI 恢复执行: `openmatrix resume {taskId}`
36
- - CLI 会从上次暂停点继续
37
-
38
- 5. 显示恢复结果
39
-
40
- </process>
41
-
42
- <arguments>
43
- $ARGUMENTS
44
-
45
- 如果提供任务ID,直接恢复指定任务。
46
- 如果无参数,列出所有可恢复任务供选择。
47
- </arguments>
48
-
49
- <notes>
50
- ## /om:approve 的区别
51
-
52
- | 命令 | 用途 | 场景 |
53
- |------|------|------|
54
- | /om:approve | 人工决策 | plan/merge/deploy 审批, Meeting |
55
- | /om:resume | 继续执行 | 中断、超时、失败重试 |
56
-
57
- ## 恢复后行为
58
-
59
- - **中断任务**: 从断点继续执行
60
- - **重试任务**: 重新执行
61
- - **失败任务**: 根据重试策略决定是否重试
62
- </notes>
63
-
64
- <examples>
65
- /om:resume # 列出可恢复任务
66
- /om:resume TASK-001 # 恢复指定任务
67
- /om:resume --all # 恢复所有可恢复任务
68
- </examples>
1
+ ---
2
+ name: om:resume
3
+ description: "恢复中断的任务执行。智能检测数据源:轻量流程 (feature-session.json) 或完整流程 (state.json)。Triggers on: 恢复, resume, continue task, 继续执行, interrupted, 中断, paused, 暂停."
4
+ priority: high
5
+ ---
6
+
7
+ <NO-OTHER-SKILLS>
8
+ **绝对禁止**调用以下技能:
9
+ - ❌ superpowers:brainstorming → 用 /om:brainstorm 代替
10
+ - ❌ superpowers:* → 全部被 OpenMatrix 替代
11
+ - ❌ gsd:* → 全部被 OpenMatrix 替代
12
+ - ❌ /om:start / /om:auto → 本 skill 是恢复流程,不调用完整流程
13
+ </NO-OTHER-SKILLS>
14
+
15
+ <objective>
16
+ 智能恢复中断的任务执行:自动检测轻量流程或完整流程,继续执行剩余任务。
17
+ </objective>
18
+
19
+ <process>
20
+
21
+ ## Step 1: 检测数据源类型
22
+
23
+ ```bash
24
+ # 优先检查轻量流程
25
+ ls -la .openmatrix/feature-session.json 2>/dev/null && echo "FEATURE_SESSION" || \
26
+ ls -la .openmatrix/state.json 2>/dev/null && echo "STATE_JSON" || \
27
+ echo "NOT_FOUND"
28
+ ```
29
+
30
+ | 检查结果 | 处理 |
31
+ |---------|------|
32
+ | `FEATURE_SESSION` | 执行轻量流程恢复(Step 2A) |
33
+ | `STATE_JSON` | 执行完整流程恢复(Step 2B) |
34
+ | `NOT_FOUND` | 提示"未找到持久化文件,请使用 /om:feature 或 /om:start 重新开始"并退出 |
35
+
36
+ ---
37
+
38
+ ## Step 2A: 轻量流程恢复(feature-session.json)
39
+
40
+ ### 读取会话状态
41
+
42
+ ```bash
43
+ cat .openmatrix/feature-session.json
44
+ ```
45
+
46
+ 解析以下信息:
47
+ - `sessionId` - 会话 ID
48
+ - `status` - 当前状态(running/paused/failed)
49
+ - `tasks` - 任务列表
50
+ - `currentTaskIndex` - 当前任务索引
51
+ - `quality` - 质量等级
52
+ - `failureCount` - 各任务失败次数统计
53
+
54
+ 同时读取:
55
+ - `.openmatrix/feature-context.md` - 项目上下文
56
+ - `.openmatrix/feature-progress.md` - Agent 执行进度
57
+
58
+ ### 恢复 TodoWrite 状态
59
+
60
+ ```typescript
61
+ TodoWrite({
62
+ todos: tasks.map((task, index) => ({
63
+ activeForm: `正在执行 ${task.content}`,
64
+ content: task.content,
65
+ status: index < currentTaskIndex ? "completed" :
66
+ index === currentTaskIndex ? "in_progress" : "pending"
67
+ }))
68
+ })
69
+ ```
70
+
71
+ ### 展示恢复状态
72
+
73
+ ```
74
+ 🔄 恢复轻量会话:${sessionId}
75
+
76
+ 📊 当前状态:
77
+ - 质量等级:${quality}
78
+ - 已完成任务:${completedCount}/${totalCount}
79
+ - 当前任务:${currentTask.content}
80
+ - 失败次数:${failureCount[currentTaskIndex] || 0}
81
+
82
+ 📝 已完成的决策(来自 feature-progress.md):
83
+ ${显示前序任务的关键决策}
84
+ ```
85
+
86
+ ### 继续执行当前任务
87
+
88
+ 从 `currentTaskIndex` 位置继续:
89
+
90
+ **如果当前任务是 in_progress 状态(之前失败):**
91
+
92
+ AskUserQuestion: `header: "继续方式"`, `multiSelect: false`
93
+ **question:** 当前任务之前验证失败,如何继续?
94
+
95
+ | label | description |
96
+ |-------|-------------|
97
+ | `重试当前任务` | 重新执行当前任务块 |
98
+ | `跳过当前任务` | 标记为完成,继续下一任务(风险较高) |
99
+ | `重新拆分` | 返回 /om:feature 重新规划 |
100
+
101
+ **如果当前任务是 pending 状态(正常恢复):**
102
+
103
+ 调用 Agent 执行:
104
+
105
+ ```typescript
106
+ Agent({
107
+ subagent_type: "general-purpose",
108
+ description: currentTask.content,
109
+ prompt: `你是实现专家。执行以下任务块。
110
+
111
+ ## 项目上下文(请读取文件)
112
+ 请先读取 .openmatrix/feature-context.md 了解项目上下文。
113
+
114
+ ## 前序任务结果(请读取文件)
115
+ 请读取 .openmatrix/feature-progress.md 了解前序 Agent 的决策和发现。
116
+
117
+ ## 当前任务
118
+ - 任务名称:${currentTask.content}
119
+ - 预估文件:${currentTask.files}
120
+ - 质量等级:${quality}
121
+
122
+ ## 质量要求
123
+ ${quality === 'strict' ? `
124
+ - 必须使用 TDD:先写测试,再写实现
125
+ - 测试覆盖率要求:>80%
126
+ - 必须通过严格 Lint
127
+ - 必须通过安全扫描
128
+ ` : quality === 'balanced' ? `
129
+ - 测试覆盖率要求:>60%
130
+ - 必须通过 Lint
131
+ - 必须通过安全扫描
132
+ ` : `
133
+ - 无质量门禁要求
134
+ `}
135
+
136
+ ## 禁止行为
137
+ ❌ 执行 git commit(由主流程处理)
138
+ ❌ 执行 git checkout/merge/pull/push/rebase/branch
139
+ ❌ 修改与当前任务无关的文件
140
+
141
+ ✅ 允许:git status, git diff, git log`,
142
+ run_in_background: true
143
+ })
144
+ ```
145
+
146
+ ### 验证(按质量等级)
147
+
148
+ | 质量等级 | 验证命令 |
149
+ |---------|---------|
150
+ | `strict` | `npm test -- --run && npm run lint && npm audit --audit-level=moderate` |
151
+ | `balanced` | `npm test -- --run && npm run lint && npm audit --audit-level=moderate` |
152
+ | `fast` | 跳过验证 |
153
+
154
+ 验证失败处理:
155
+ - 更新 `failureCount`
156
+ - 同一任务失败 3 次,提示质疑拆分方案
157
+ - 停止执行,提示再次使用 `/om:resume`
158
+
159
+ ### Git 提交与状态更新
160
+
161
+ 验证通过后提交并更新 `currentTaskIndex`。
162
+
163
+ ---
164
+
165
+ ## Step 2B: 完整流程恢复(state.json)
166
+
167
+ ### 读取全局状态
168
+
169
+ ```bash
170
+ cat .openmatrix/state.json
171
+ ```
172
+
173
+ ### 识别可恢复的任务
174
+
175
+ - status=in_progress (中断)
176
+ - status=retry_queue (等待重试)
177
+ - status=failed (可重试)
178
+ - 全局 status=paused
179
+
180
+ ### 展示可恢复任务列表
181
+
182
+ ```
183
+ 🔄 可恢复任务
184
+
185
+ [1] TASK-001: 任务名称 (中断)
186
+ [2] TASK-003: 任务名称 (重试队列, 已重试2次)
187
+ [3] TASK-005: 任务名称 (失败: 错误信息)
188
+
189
+ 选择要恢复的任务 [1-3] 或 [A] 全部: _
190
+ ```
191
+
192
+ ### 用户选择后
193
+
194
+ 调用 CLI 恢复执行: `openmatrix resume {taskId}`
195
+
196
+ CLI 会从上次暂停点继续。
197
+
198
+ ### 显示恢复结果
199
+
200
+ ---
201
+
202
+ </process>
203
+
204
+ <arguments>
205
+ $ARGUMENTS
206
+
207
+ 如果提供任务ID,直接恢复指定任务。
208
+ 如果无参数,自动检测数据源并列出可恢复任务供选择。
209
+ </arguments>
210
+
211
+ <notes>
212
+
213
+ ## 数据源检测优先级
214
+
215
+ | 优先级 | 数据源 | 来源 skill |
216
+ |-------|--------|-----------|
217
+ | 1 | `.openmatrix/feature-session.json` | /om:feature |
218
+ | 2 | `.openmatrix/state.json` | /om:start |
219
+
220
+ ## 与 /om:approve 的区别
221
+
222
+ | 命令 | 用途 | 场景 |
223
+ |------|------|------|
224
+ | /om:approve | 人工决策 | plan/merge/deploy 审批, Meeting |
225
+ | /om:resume | 继续执行 | 中断、超时、失败重试 |
226
+
227
+ ## 恢复后行为
228
+
229
+ **轻量流程**:
230
+ - 从断点继续执行任务块
231
+ - 验证失败可重试
232
+
233
+ **完整流程**:
234
+ - 中断任务:从断点继续
235
+ - 重试任务:重新执行
236
+ - 失败任务:根据重试策略决定
237
+
238
+ ## 失败次数限制
239
+
240
+ 同一任务失败 3 次以上:
241
+ - 建议用户质疑拆分方案
242
+ - 提示可能需要切换到 `/om:start`
243
+
244
+ ## 持久化文件说明
245
+
246
+ | 文件 | 来源 | 内容 |
247
+ |-----|------|------|
248
+ | `feature-session.json` | /om:feature | 会话状态、任务列表、质量等级、失败次数 |
249
+ | `feature-context.md` | /om:feature | 项目上下文 |
250
+ | `feature-progress.md` | /om:feature | Agent 执行决策 |
251
+ | `state.json` | /om:start | 全局状态、任务状态、配置 |
252
+ | `tasks/*.json` | /om:start | 单个任务详情 |
253
+
254
+ </notes>
255
+
256
+ <examples>
257
+ /om:resume # 自动检测数据源,列出可恢复任务
258
+ /om:resume TASK-001 # 恢复指定任务(完整流程)
259
+ /om:resume --all # 恢复所有可恢复任务
260
+ </examples>
@@ -1,227 +0,0 @@
1
- ---
2
- name: om:resume-feature
3
- description: "恢复中断的 /om:feature 流程。读取 .openmatrix/feature-session.json 状态文件,继续执行剩余任务。"
4
- priority: high
5
- ---
6
-
7
- <NO-OTHER-SKILLS>
8
- **绝对禁止**调用以下技能:
9
- - ❌ superpowers:brainstorming → 用 /om:brainstorm 代替
10
- - ❌ superpowers:* → 全部被 OpenMatrix 替代
11
- - ❌ gsd:* → 全部被 OpenMatrix 替代
12
- - ❌ /om:start / /om:auto → 本 skill 是轻量恢复,不调用完整流程
13
- </NO-OTHER-SKILLS>
14
-
15
- <objective>
16
- 恢复中断的轻量级小需求开发流程:读取持久化状态,继续执行剩余任务块。
17
- </objective>
18
-
19
- <process>
20
-
21
- ## Step 1: 检查持久化文件是否存在
22
-
23
- ```bash
24
- ls -la .openmatrix/feature-session.json 2>/dev/null || echo "NOT_FOUND"
25
- ```
26
-
27
- | 检查结果 | 处理 |
28
- |---------|------|
29
- | `NOT_FOUND` | 提示"未找到持久化文件,请使用 /om:feature 重新开始"并退出 |
30
- | 存在 | 继续执行 |
31
-
32
- ## Step 2: 读取会话状态
33
-
34
- ```bash
35
- cat .openmatrix/feature-session.json
36
- ```
37
-
38
- 读取并解析以下信息:
39
- - `sessionId` - 会话 ID
40
- - `status` - 当前状态(running/paused/failed)
41
- - `tasks` - 任务列表
42
- - `currentTaskIndex` - 当前任务索引
43
- - `quality` - 质量等级
44
- - `failureCount` - 各任务失败次数统计
45
-
46
- 同时读取:
47
- - `.openmatrix/feature-context.md` - 项目上下文
48
- - `.openmatrix/feature-progress.md` - Agent 执行进度
49
-
50
- ## Step 3: 恢复 TodoWrite 状态
51
-
52
- 根据读取的任务列表,恢复 TodoWrite 状态:
53
-
54
- ```typescript
55
- TodoWrite({
56
- todos: tasks.map((task, index) => ({
57
- activeForm: `正在执行 ${task.content}`,
58
- content: task.content,
59
- status: index < currentTaskIndex ? "completed" :
60
- index === currentTaskIndex ? "in_progress" : "pending"
61
- }))
62
- })
63
- ```
64
-
65
- ## Step 4: 展示恢复状态
66
-
67
- ```
68
- 🔄 恢复会话:${sessionId}
69
-
70
- 📊 当前状态:
71
- - 质量等级:${quality}
72
- - 已完成任务:${completedCount}/${totalCount}
73
- - 当前任务:${currentTask.content}
74
- - 失败次数:${failureCount[currentTaskIndex] || 0}
75
-
76
- 📝 已完成的决策(来自 feature-progress.md):
77
- ${显示前序任务的关键决策}
78
- ```
79
-
80
- ## Step 5: 继续执行当前任务
81
-
82
- 从 `currentTaskIndex` 位置继续执行:
83
-
84
- **5.1 如果当前任务是 in_progress 状态(之前失败):**
85
-
86
- 询问用户:
87
- AskUserQuestion: `header: "继续方式"`, `multiSelect: false`
88
- **question:** 当前任务之前验证失败,如何继续?
89
-
90
- | label | description |
91
- |-------|-------------|
92
- | `重试当前任务` | 重新执行当前任务块 |
93
- | `跳过当前任务` | 标记为完成,继续下一任务(风险较高) |
94
- | `重新拆分` | 返回 /om:feature 重新规划 |
95
-
96
- **5.2 如果当前任务是 pending 状态(正常恢复):**
97
-
98
- 直接调用 Agent 执行:
99
-
100
- ```typescript
101
- Agent({
102
- subagent_type: "general-purpose",
103
- description: currentTask.content,
104
- prompt: `你是实现专家。执行以下任务块。
105
-
106
- ## 项目上下文(请读取文件)
107
- 请先读取 .openmatrix/feature-context.md 了解项目上下文。
108
-
109
- ## 前序任务结果(请读取文件)
110
- 请读取 .openmatrix/feature-progress.md 了解前序 Agent 的决策和发现。
111
-
112
- ## 当前任务
113
- - 任务名称:${currentTask.content}
114
- - 预估文件:${currentTask.files}
115
- - 质量等级:${quality}
116
-
117
- ## 质量要求
118
- ${quality === 'strict' ? `
119
- - 必须使用 TDD:先写测试,再写实现
120
- - 测试覆盖率要求:>80%
121
- - 必须通过严格 Lint
122
- - 必须通过安全扫描
123
- ` : quality === 'balanced' ? `
124
- - 测试覆盖率要求:>60%
125
- - 必须通过 Lint
126
- - 必须通过安全扫描
127
- ` : `
128
- - 无质量门禁要求
129
- `}
130
-
131
- ## 实施原则
132
- 1. 先阅读预估文件中的现有代码,理解上下文后再动手
133
- 2. 只修改当前任务相关的文件
134
- 3. 不做"顺便"的重构或优化
135
-
136
- ## 禁止行为
137
- ❌ 执行 git commit(由主流程处理)
138
- ❌ 执行 git checkout/merge/pull/push/rebase/branch
139
- ❌ 修改与当前任务无关的文件
140
-
141
- ✅ 允许:git status, git diff, git log`,
142
- run_in_background: true
143
- })
144
- ```
145
-
146
- ## Step 6: 验证(按质量等级)
147
-
148
- | 质量等级 | 验证命令 |
149
- |---------|---------|
150
- | `strict` | `npm test -- --run && npm run lint && npm run test:coverage && npm audit --audit-level=moderate` |
151
- | `balanced` | `npm test -- --run && npm run lint && npm audit --audit-level=moderate` |
152
- | `fast` | 跳过验证 |
153
-
154
- 验证失败处理:
155
- - 更新 `.openmatrix/feature-session.json` 的 `failureCount`
156
- - 如果同一任务失败 3 次,提示用户质疑拆分方案
157
- - 停止执行,提示再次使用 `/om:resume-feature`
158
-
159
- ## Step 7: Git 提交
160
-
161
- 验证通过后:
162
-
163
- ```bash
164
- git status --porcelain
165
- git add ${modifiedFiles}
166
- git commit -m "feat(feature): ${sessionId} - ${currentTask.content}"
167
- ```
168
-
169
- ## Step 8: 更新持久化状态
170
-
171
- ```bash
172
- # 更新 currentTaskIndex
173
- cat > .openmatrix/feature-session.json << EOF
174
- {
175
- "sessionId": "${sessionId}",
176
- "status": "running",
177
- "tasks": ${tasks},
178
- "currentTaskIndex": ${currentTaskIndex + 1},
179
- "quality": "${quality}",
180
- "failureCount": ${failureCount}
181
- }
182
- EOF
183
-
184
- # 更新进度文件
185
- echo "## 任务 ${currentTaskIndex}: ${currentTask.content}" >> .openmatrix/feature-progress.md
186
- echo "${agentOutput}" >> .openmatrix/feature-progress.md
187
- ```
188
-
189
- ## Step 9: 继续下一任务或完成
190
-
191
- - 如果还有 pending 任务:回到 Step 5
192
- - 如果所有任务完成:执行 Step 10
193
-
194
- ## Step 10: 全部任务完成
195
-
196
- ```bash
197
- # 最终整体验证
198
- npm test -- --run
199
-
200
- # 清理持久化文件(可选)
201
- # 用户可选择保留或删除
202
- ```
203
-
204
- 输出执行摘要并更新状态为 `completed`。
205
-
206
- </process>
207
-
208
- <notes>
209
- ## 恢复条件
210
-
211
- - 必须存在 `.openmatrix/feature-session.json`
212
- - 必须由 `/om:feature` 启用持久化后产生
213
-
214
- ## 失败次数限制
215
-
216
- 同一任务失败 3 次以上:
217
- - 建议用户质疑拆分方案
218
- - 提示可能需要切换到 `/om:start`
219
-
220
- ## 持久化文件说明
221
-
222
- | 文件 | 内容 |
223
- |-----|------|
224
- | `feature-session.json` | 会话状态、任务列表、当前索引、质量等级、失败次数 |
225
- | `feature-context.md` | 项目上下文(技术栈、目录结构、CLAUDE.md) |
226
- | `feature-progress.md` | 各 Agent 的执行决策和发现 |
227
- </notes>