openmatrix 0.2.31 → 0.2.33
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/README.md +154 -154
- package/dist/cli/commands/approve.js +35 -1
- package/dist/cli/commands/auto.js +2 -2
- package/dist/cli/commands/check-gitignore.js +34 -30
- package/dist/cli/commands/check.js +1 -1
- package/dist/cli/commands/complete.js +35 -7
- package/dist/cli/commands/debug.js +2 -1
- package/dist/cli/commands/deploy.js +1 -1
- package/dist/cli/commands/install-skills.js +3 -0
- package/dist/cli/commands/meeting.js +37 -1
- package/dist/cli/commands/report.js +1 -1
- package/dist/cli/commands/resume.js +35 -1
- package/dist/cli/commands/retry.js +130 -56
- package/dist/cli/commands/start.js +1 -1
- package/dist/cli/commands/status.js +32 -29
- package/dist/cli/commands/step.js +4 -1
- package/dist/orchestrator/ai-reviewer.d.ts +5 -0
- package/dist/orchestrator/ai-reviewer.js +9 -2
- package/dist/orchestrator/context-collector.js +17 -5
- package/dist/orchestrator/executor.d.ts +8 -0
- package/dist/orchestrator/executor.js +24 -5
- package/dist/orchestrator/phase-executor.d.ts +4 -0
- package/dist/orchestrator/phase-executor.js +21 -4
- package/dist/storage/file-store.js +8 -0
- package/dist/storage/state-manager.js +52 -19
- package/dist/test/generator.js +113 -113
- package/dist/utils/error-handler.d.ts +18 -0
- package/dist/utils/error-handler.js +32 -0
- package/dist/utils/worktree-sync.js +24 -3
- package/package.json +61 -61
- package/skills/SKILL.md +53 -53
- package/skills/auto.md +410 -413
- package/skills/brainstorm.md +19 -12
- package/skills/debug.md +694 -691
- package/skills/deploy.md +658 -658
- package/skills/feature.md +713 -686
- package/skills/plan.md +298 -296
- package/skills/report.md +9 -5
- package/skills/resume.md +292 -287
- package/skills/start.md +32 -20
- package/skills/status.md +5 -4
- package/skills/test.md +875 -875
- package/dist/agents/base-agent.d.ts +0 -46
- package/dist/agents/base-agent.js +0 -17
- package/dist/cli/commands/analyze.d.ts +0 -2
- package/dist/cli/commands/analyze.js +0 -50
- package/dist/orchestrator/smart-question-analyzer.d.ts +0 -90
- package/dist/orchestrator/smart-question-analyzer.js +0 -512
package/skills/resume.md
CHANGED
|
@@ -1,288 +1,293 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:resume
|
|
3
|
-
description: "恢复中断的任务执行。智能检测数据源:轻量流程 (feature-session.json) 或完整流程 (state.json)。Triggers on RESUME intent: user wants to continue interrupted task execution, resume paused tasks, or recover from session interruption. DO NOT trigger on: starting new tasks, debugging, or status checks. Intent signals: user mentions 'resume', 'continue', '中断了', '暂停', or refers to interrupted execution."
|
|
4
|
-
priority: high
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
<INTENT-JUDGMENT>
|
|
8
|
-
## 意图判断指南
|
|
9
|
-
|
|
10
|
-
**AI 应根据用户语义判断意图:**
|
|
11
|
-
|
|
12
|
-
### 触发信号(恢复意图)
|
|
13
|
-
|
|
14
|
-
- 用户想恢复中断的执行
|
|
15
|
-
- 继续之前的任务
|
|
16
|
-
- 从暂停状态恢复
|
|
17
|
-
|
|
18
|
-
### 不触发信号
|
|
19
|
-
|
|
20
|
-
| 用户意图 | 应调用 |
|
|
21
|
-
|---------|--------|
|
|
22
|
-
| 开始新任务 | /om:start |
|
|
23
|
-
| 调查问题 | /om:debug |
|
|
24
|
-
| 查看状态 | /om:status |
|
|
25
|
-
|
|
26
|
-
### 示例判断
|
|
27
|
-
|
|
28
|
-
| 用户消息 | 判断 | 结果 |
|
|
29
|
-
|---------|------|------|
|
|
30
|
-
| "恢复执行" | 恢复意图 | 触发 ✓ |
|
|
31
|
-
| "继续刚才的任务" | 继续意图 | 触发 ✓ |
|
|
32
|
-
| "中断了怎么恢复" | 恢复意图 | 触发 ✓ |
|
|
33
|
-
| "开始新功能" | 开发意图 | /om:start |
|
|
34
|
-
| "为什么卡住了" | 调查意图 | /om:debug |
|
|
35
|
-
</INTENT-JUDGMENT>
|
|
36
|
-
|
|
37
|
-
<NO-OTHER-SKILLS>
|
|
38
|
-
本 skill 与其他任务编排技能功能重叠,请勿同时使用。
|
|
39
|
-
|
|
40
|
-
本 skill 是恢复流程,不调用 /om:start 或 /om:auto 完整流程。
|
|
41
|
-
</NO-OTHER-SKILLS>
|
|
42
|
-
|
|
43
|
-
<objective>
|
|
44
|
-
智能恢复中断的任务执行:自动检测轻量流程或完整流程,继续执行剩余任务。
|
|
45
|
-
</objective>
|
|
46
|
-
|
|
47
|
-
<process>
|
|
48
|
-
|
|
49
|
-
## Step 1: 检测数据源类型
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
#
|
|
53
|
-
ls -la .openmatrix/feature-session.json 2>/dev/null && echo "FEATURE_SESSION" || \
|
|
54
|
-
|
|
55
|
-
echo "
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
- `
|
|
77
|
-
- `
|
|
78
|
-
- `
|
|
79
|
-
- `
|
|
80
|
-
- `
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- `.openmatrix/feature-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
})
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
-
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
-
|
|
159
|
-
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
❌ 执行 git
|
|
167
|
-
❌
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
| `
|
|
180
|
-
| `
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
-
|
|
185
|
-
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
-
|
|
264
|
-
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
/om:
|
|
286
|
-
|
|
287
|
-
|
|
1
|
+
---
|
|
2
|
+
name: om:resume
|
|
3
|
+
description: "恢复中断的任务执行。智能检测数据源:轻量流程 (feature-session.json) 或完整流程 (state.json)。Triggers on RESUME intent: user wants to continue interrupted task execution, resume paused tasks, or recover from session interruption. DO NOT trigger on: starting new tasks, debugging, or status checks. Intent signals: user mentions 'resume', 'continue', '中断了', '暂停', or refers to interrupted execution."
|
|
4
|
+
priority: high
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
<INTENT-JUDGMENT>
|
|
8
|
+
## 意图判断指南
|
|
9
|
+
|
|
10
|
+
**AI 应根据用户语义判断意图:**
|
|
11
|
+
|
|
12
|
+
### 触发信号(恢复意图)
|
|
13
|
+
|
|
14
|
+
- 用户想恢复中断的执行
|
|
15
|
+
- 继续之前的任务
|
|
16
|
+
- 从暂停状态恢复
|
|
17
|
+
|
|
18
|
+
### 不触发信号
|
|
19
|
+
|
|
20
|
+
| 用户意图 | 应调用 |
|
|
21
|
+
|---------|--------|
|
|
22
|
+
| 开始新任务 | /om:start |
|
|
23
|
+
| 调查问题 | /om:debug |
|
|
24
|
+
| 查看状态 | /om:status |
|
|
25
|
+
|
|
26
|
+
### 示例判断
|
|
27
|
+
|
|
28
|
+
| 用户消息 | 判断 | 结果 |
|
|
29
|
+
|---------|------|------|
|
|
30
|
+
| "恢复执行" | 恢复意图 | 触发 ✓ |
|
|
31
|
+
| "继续刚才的任务" | 继续意图 | 触发 ✓ |
|
|
32
|
+
| "中断了怎么恢复" | 恢复意图 | 触发 ✓ |
|
|
33
|
+
| "开始新功能" | 开发意图 | /om:start |
|
|
34
|
+
| "为什么卡住了" | 调查意图 | /om:debug |
|
|
35
|
+
</INTENT-JUDGMENT>
|
|
36
|
+
|
|
37
|
+
<NO-OTHER-SKILLS>
|
|
38
|
+
本 skill 与其他任务编排技能功能重叠,请勿同时使用。
|
|
39
|
+
|
|
40
|
+
本 skill 是恢复流程,不调用 /om:start 或 /om:auto 完整流程。
|
|
41
|
+
</NO-OTHER-SKILLS>
|
|
42
|
+
|
|
43
|
+
<objective>
|
|
44
|
+
智能恢复中断的任务执行:自动检测轻量流程或完整流程,继续执行剩余任务。
|
|
45
|
+
</objective>
|
|
46
|
+
|
|
47
|
+
<process>
|
|
48
|
+
|
|
49
|
+
## Step 1: 检测数据源类型
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 优先检查轻量流程(根目录)
|
|
53
|
+
ls -la .openmatrix/feature-session.json 2>/dev/null && echo "FEATURE_SESSION" || \
|
|
54
|
+
# 检查完整流程(需要先获取 runId)
|
|
55
|
+
(cat .openmatrix/current.json 2>/dev/null && ls -la .openmatrix/*/. 2>/dev/null | head -1 && echo "STATE_JSON") || \
|
|
56
|
+
echo "NOT_FOUND"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
| 检查结果 | 处理 |
|
|
60
|
+
|---------|------|
|
|
61
|
+
| `FEATURE_SESSION` | 执行轻量流程恢复(Step 2A) |
|
|
62
|
+
| `STATE_JSON` | 执行完整流程恢复(Step 2B) |
|
|
63
|
+
| `NOT_FOUND` | 提示"未找到持久化文件,请使用 /om:feature 或 /om:start 重新开始"并退出 |
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Step 2A: 轻量流程恢复(feature-session.json)
|
|
68
|
+
|
|
69
|
+
### 读取会话状态
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
cat .openmatrix/feature-session.json
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
解析以下信息:
|
|
76
|
+
- `sessionId` - 会话 ID
|
|
77
|
+
- `status` - 当前状态(running/paused/failed)
|
|
78
|
+
- `tasks` - 任务列表
|
|
79
|
+
- `currentTaskIndex` - 当前任务索引
|
|
80
|
+
- `quality` - 质量等级
|
|
81
|
+
- `failureCount` - 各任务失败次数统计
|
|
82
|
+
|
|
83
|
+
同时读取:
|
|
84
|
+
- `.openmatrix/feature-context.md` - 项目上下文
|
|
85
|
+
- `.openmatrix/feature-progress.md` - Agent 执行进度
|
|
86
|
+
|
|
87
|
+
### 恢复 TodoWrite 状态
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
TodoWrite({
|
|
91
|
+
todos: tasks.map((task, index) => ({
|
|
92
|
+
activeForm: `正在执行 ${task.content}`,
|
|
93
|
+
content: task.content,
|
|
94
|
+
status: index < currentTaskIndex ? "completed" :
|
|
95
|
+
index === currentTaskIndex ? "in_progress" : "pending"
|
|
96
|
+
}))
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### 展示恢复状态
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
🔄 恢复轻量会话:${sessionId}
|
|
104
|
+
|
|
105
|
+
📊 当前状态:
|
|
106
|
+
- 质量等级:${quality}
|
|
107
|
+
- 已完成任务:${completedCount}/${totalCount}
|
|
108
|
+
- 当前任务:${currentTask.content}
|
|
109
|
+
- 失败次数:${failureCount[currentTaskIndex] || 0}
|
|
110
|
+
|
|
111
|
+
📝 已完成的决策(来自 feature-progress.md):
|
|
112
|
+
${显示前序任务的关键决策}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 继续执行当前任务
|
|
116
|
+
|
|
117
|
+
从 `currentTaskIndex` 位置继续:
|
|
118
|
+
|
|
119
|
+
**如果当前任务是 in_progress 状态(之前失败):**
|
|
120
|
+
|
|
121
|
+
AskUserQuestion: `header: "继续方式"`, `multiSelect: false`
|
|
122
|
+
**question:** 当前任务之前验证失败,如何继续?
|
|
123
|
+
|
|
124
|
+
| label | description |
|
|
125
|
+
|-------|-------------|
|
|
126
|
+
| `重试当前任务` | 重新执行当前任务块 |
|
|
127
|
+
| `跳过当前任务` | 标记为完成,继续下一任务(风险较高) |
|
|
128
|
+
| `重新拆分` | 返回 /om:feature 重新规划 |
|
|
129
|
+
|
|
130
|
+
**如果当前任务是 pending 状态(正常恢复):**
|
|
131
|
+
|
|
132
|
+
调用 Agent 执行:
|
|
133
|
+
|
|
134
|
+
```typescript
|
|
135
|
+
Agent({
|
|
136
|
+
subagent_type: "general-purpose",
|
|
137
|
+
description: currentTask.content,
|
|
138
|
+
prompt: `你是实现专家。执行以下任务块。
|
|
139
|
+
|
|
140
|
+
## 项目上下文(请读取文件)
|
|
141
|
+
请先读取 .openmatrix/feature-context.md 了解项目上下文。
|
|
142
|
+
|
|
143
|
+
## 前序任务结果(请读取文件)
|
|
144
|
+
请读取 .openmatrix/feature-progress.md 了解前序 Agent 的决策和发现。
|
|
145
|
+
|
|
146
|
+
## 当前任务
|
|
147
|
+
- 任务名称:${currentTask.content}
|
|
148
|
+
- 预估文件:${currentTask.files}
|
|
149
|
+
- 质量等级:${quality}
|
|
150
|
+
|
|
151
|
+
## 质量要求
|
|
152
|
+
${quality === 'strict' ? `
|
|
153
|
+
- 必须使用 TDD:先写测试,再写实现
|
|
154
|
+
- 测试覆盖率要求:>80%
|
|
155
|
+
- 必须通过严格 Lint
|
|
156
|
+
- 必须通过安全扫描
|
|
157
|
+
` : quality === 'balanced' ? `
|
|
158
|
+
- 测试覆盖率要求:>60%
|
|
159
|
+
- 必须通过 Lint
|
|
160
|
+
- 必须通过安全扫描
|
|
161
|
+
` : `
|
|
162
|
+
- 无质量门禁要求
|
|
163
|
+
`}
|
|
164
|
+
|
|
165
|
+
## 禁止行为
|
|
166
|
+
❌ 执行 git commit(由主流程处理)
|
|
167
|
+
❌ 执行 git checkout/merge/pull/push/rebase/branch
|
|
168
|
+
❌ 修改与当前任务无关的文件
|
|
169
|
+
|
|
170
|
+
✅ 允许:git status, git diff, git log`,
|
|
171
|
+
run_in_background: true
|
|
172
|
+
})
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### 验证(按质量等级)
|
|
176
|
+
|
|
177
|
+
| 质量等级 | 验证命令 |
|
|
178
|
+
|---------|---------|
|
|
179
|
+
| `strict` | `npm test -- --run && npm run lint && npm audit --audit-level=moderate` |
|
|
180
|
+
| `balanced` | `npm test -- --run && npm run lint && npm audit --audit-level=moderate` |
|
|
181
|
+
| `fast` | 跳过验证 |
|
|
182
|
+
|
|
183
|
+
验证失败处理:
|
|
184
|
+
- 更新 `failureCount`
|
|
185
|
+
- 同一任务失败 3 次,提示质疑拆分方案
|
|
186
|
+
- 停止执行,提示再次使用 `/om:resume`
|
|
187
|
+
|
|
188
|
+
### Git 提交与状态更新
|
|
189
|
+
|
|
190
|
+
验证通过后提交并更新 `currentTaskIndex`。
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Step 2B: 完整流程恢复(state.json)
|
|
195
|
+
|
|
196
|
+
### 获取 runId 并读取全局状态
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# 获取当前 runId
|
|
200
|
+
cat .openmatrix/current.json 2>/dev/null
|
|
201
|
+
|
|
202
|
+
# 读取对应目录的 state.json
|
|
203
|
+
cat .openmatrix/${runId}/state.json
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### 识别可恢复的任务
|
|
207
|
+
|
|
208
|
+
- status=in_progress (中断)
|
|
209
|
+
- status=retry_queue (等待重试)
|
|
210
|
+
- status=failed (可重试)
|
|
211
|
+
- 全局 status=paused
|
|
212
|
+
|
|
213
|
+
### 展示可恢复任务列表
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
🔄 可恢复任务
|
|
217
|
+
|
|
218
|
+
[1] TASK-001: 任务名称 (中断)
|
|
219
|
+
[2] TASK-003: 任务名称 (重试队列, 已重试2次)
|
|
220
|
+
[3] TASK-005: 任务名称 (失败: 错误信息)
|
|
221
|
+
|
|
222
|
+
选择要恢复的任务 [1-3] 或 [A] 全部: _
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### 用户选择后
|
|
226
|
+
|
|
227
|
+
调用 CLI 恢复执行: `openmatrix resume {taskId}`
|
|
228
|
+
|
|
229
|
+
CLI 会从上次暂停点继续。
|
|
230
|
+
|
|
231
|
+
### 显示恢复结果
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
</process>
|
|
236
|
+
|
|
237
|
+
<arguments>
|
|
238
|
+
$ARGUMENTS
|
|
239
|
+
|
|
240
|
+
如果提供任务ID,直接恢复指定任务。
|
|
241
|
+
如果无参数,自动检测数据源并列出可恢复任务供选择。
|
|
242
|
+
</arguments>
|
|
243
|
+
|
|
244
|
+
<notes>
|
|
245
|
+
|
|
246
|
+
## 数据源检测优先级
|
|
247
|
+
|
|
248
|
+
| 优先级 | 数据源 | 来源 skill |
|
|
249
|
+
|-------|--------|-----------|
|
|
250
|
+
| 1 | `.openmatrix/feature-session.json` | /om:feature |
|
|
251
|
+
| 2 | `.openmatrix/state.json` | /om:start |
|
|
252
|
+
|
|
253
|
+
## 与 /om:approve 的区别
|
|
254
|
+
|
|
255
|
+
| 命令 | 用途 | 场景 |
|
|
256
|
+
|------|------|------|
|
|
257
|
+
| /om:approve | 人工决策 | plan/merge/deploy 审批, Meeting |
|
|
258
|
+
| /om:resume | 继续执行 | 中断、超时、失败重试 |
|
|
259
|
+
|
|
260
|
+
## 恢复后行为
|
|
261
|
+
|
|
262
|
+
**轻量流程**:
|
|
263
|
+
- 从断点继续执行任务块
|
|
264
|
+
- 验证失败可重试
|
|
265
|
+
|
|
266
|
+
**完整流程**:
|
|
267
|
+
- 中断任务:从断点继续
|
|
268
|
+
- 重试任务:重新执行
|
|
269
|
+
- 失败任务:根据重试策略决定
|
|
270
|
+
|
|
271
|
+
## 失败次数限制
|
|
272
|
+
|
|
273
|
+
同一任务失败 3 次以上:
|
|
274
|
+
- 建议用户质疑拆分方案
|
|
275
|
+
- 提示可能需要切换到 `/om:start`
|
|
276
|
+
|
|
277
|
+
## 持久化文件说明
|
|
278
|
+
|
|
279
|
+
| 文件 | 来源 | 内容 |
|
|
280
|
+
|-----|------|------|
|
|
281
|
+
| `feature-session.json` | /om:feature | 会话状态、任务列表、质量等级、失败次数 |
|
|
282
|
+
| `feature-context.md` | /om:feature | 项目上下文 |
|
|
283
|
+
| `feature-progress.md` | /om:feature | Agent 执行决策 |
|
|
284
|
+
| `state.json` | /om:start | 全局状态、任务状态、配置 |
|
|
285
|
+
| `tasks/*.json` | /om:start | 单个任务详情 |
|
|
286
|
+
|
|
287
|
+
</notes>
|
|
288
|
+
|
|
289
|
+
<examples>
|
|
290
|
+
/om:resume # 自动检测数据源,列出可恢复任务
|
|
291
|
+
/om:resume TASK-001 # 恢复指定任务(完整流程)
|
|
292
|
+
/om:resume --all # 恢复所有可恢复任务
|
|
288
293
|
</examples>
|