openmatrix 0.2.15 → 0.2.17
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 +83 -1
- package/dist/agents/agent-runner.d.ts +4 -0
- package/dist/agents/agent-runner.js +86 -0
- package/dist/cli/commands/brainstorm.d.ts +2 -2
- package/dist/cli/commands/brainstorm.js +2 -8
- package/dist/cli/commands/deploy.d.ts +16 -0
- package/dist/cli/commands/deploy.js +205 -0
- package/dist/cli/index.js +2 -2
- package/dist/orchestrator/answer-mapper.d.ts +0 -8
- package/dist/orchestrator/answer-mapper.js +1 -27
- package/dist/orchestrator/environment-detector.d.ts +51 -0
- package/dist/orchestrator/environment-detector.js +1110 -0
- package/dist/orchestrator/executor.d.ts +32 -2
- package/dist/orchestrator/executor.js +119 -1
- package/dist/orchestrator/meeting-manager.d.ts +16 -1
- package/dist/orchestrator/meeting-manager.js +113 -0
- package/dist/orchestrator/phase-executor.d.ts +1 -0
- package/dist/orchestrator/phase-executor.js +3 -0
- package/dist/orchestrator/smart-question-analyzer.js +38 -10
- package/dist/orchestrator/task-planner.js +19 -7
- package/dist/types/index.d.ts +194 -1
- package/package.json +2 -1
- package/skills/auto.md +64 -3
- package/skills/debug.md +168 -33
- package/skills/deploy.md +338 -0
- package/skills/feature.md +165 -53
- package/skills/resume.md +260 -68
- package/skills/start.md +66 -3
package/skills/resume.md
CHANGED
|
@@ -1,68 +1,260 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:resume
|
|
3
|
-
description: "
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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>
|
package/skills/start.md
CHANGED
|
@@ -382,14 +382,77 @@ openmatrix complete TASK-XXX --success --summary "决策: xxx; 文件: xxx"
|
|
|
382
382
|
# 提交验证(防止 commit 静默失败):
|
|
383
383
|
git status --porcelain # 检查是否有未提交的文件
|
|
384
384
|
# 如果有未提交文件 → 必须手动提交:
|
|
385
|
-
git add
|
|
385
|
+
git add . && git commit -m "feat(TASK-XXX): 任务标题"
|
|
386
386
|
|
|
387
387
|
openmatrix step --json # 获取下一个任务 + 检查是否全部完成
|
|
388
388
|
```
|
|
389
389
|
`openmatrix step` 会从磁盘读取真实状态,不依赖上下文记忆。
|
|
390
390
|
</LOOP-ENFORCEMENT>
|
|
391
391
|
|
|
392
|
-
|
|
392
|
+
#### 11.1 歧义检测机制
|
|
393
|
+
|
|
394
|
+
**Agent 输出中可能包含歧义报告(JSON 格式):**
|
|
395
|
+
|
|
396
|
+
当 Agent 输出包含以下标记时,表示检测到歧义:
|
|
397
|
+
```
|
|
398
|
+
<AMBIGUITY_REPORT>
|
|
399
|
+
{
|
|
400
|
+
"ambiguities": [
|
|
401
|
+
{
|
|
402
|
+
"type": "missing_info" | "conflicting_req" | "unclear_scope" | "tech_choice" | "edge_case",
|
|
403
|
+
"severity": "critical" | "high" | "medium" | "low",
|
|
404
|
+
"description": "歧义描述",
|
|
405
|
+
"suggestions": ["建议1", "建议2"]
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
"overallSeverity": "critical" | "high" | "medium" | "low"
|
|
409
|
+
}
|
|
410
|
+
</AMBIGUITY_REPORT>
|
|
411
|
+
```
|
|
412
|
+
|
|
413
|
+
**5 种歧义类型说明:**
|
|
414
|
+
|
|
415
|
+
| 类型 | 说明 | 示例 |
|
|
416
|
+
|------|------|------|
|
|
417
|
+
| `missing_info` | 缺失关键信息 | "未指定数据库类型" |
|
|
418
|
+
| `conflicting_req` | 需求冲突 | "既要高性能又要低成本" |
|
|
419
|
+
| `unclear_scope` | 范围不清晰 | "是否包含历史数据处理?" |
|
|
420
|
+
| `tech_choice` | 技术选型歧义 | "用 REST 还是 GraphQL?" |
|
|
421
|
+
| `edge_case` | 边界情况未定义 | "超过限制时如何处理?" |
|
|
422
|
+
|
|
423
|
+
#### 11.2 歧义处理策略
|
|
424
|
+
|
|
425
|
+
根据 `overallSeverity` 和执行模式选择处理方式:
|
|
426
|
+
|
|
427
|
+
| 执行模式 | Critical/High | Medium/Low |
|
|
428
|
+
|---------|--------------|------------|
|
|
429
|
+
| **全自动执行** | Meeting + 继续执行 | Meeting + 继续执行 |
|
|
430
|
+
| **关键节点确认** | AskUserQuestion | Meeting + 继续执行 |
|
|
431
|
+
| **每阶段确认** | AskUserQuestion | Meeting + 继续执行 |
|
|
432
|
+
|
|
433
|
+
**Meeting 处理(写入阻塞记录):**
|
|
434
|
+
```bash
|
|
435
|
+
# 将歧义信息写入 Meeting 记录,继续执行其他任务
|
|
436
|
+
openmatrix meeting --create --task TASK-XXX --reason "歧义: ${description}" --severity ${severity}
|
|
437
|
+
```
|
|
438
|
+
|
|
439
|
+
**AskUserQuestion 处理(交互确认):**
|
|
440
|
+
|
|
441
|
+
AskUserQuestion: `header: "歧义确认"`, `multiSelect: false`
|
|
442
|
+
**question:** 检测到 ${severity} 级歧义:${description}。请确认处理方式
|
|
443
|
+
|
|
444
|
+
| label | description |
|
|
445
|
+
|-------|-------------|
|
|
446
|
+
| 提供信息 | 回答歧义相关问题,继续执行 |
|
|
447
|
+
| 跳过任务 | 标记当前任务为可选,继续执行其他任务 |
|
|
448
|
+
| 修改方案 | 根据歧义调整任务方案后继续 |
|
|
449
|
+
|
|
450
|
+
用户选择后:
|
|
451
|
+
- **提供信息** → 将用户输入作为上下文注入,继续执行当前任务
|
|
452
|
+
- **跳过任务** → `openmatrix complete TASK-XXX --skip --reason "用户选择跳过"`
|
|
453
|
+
- **修改方案** → 更新任务方案,重新执行当前任务
|
|
454
|
+
|
|
455
|
+
#### 11.3 执行 Agent 任务
|
|
393
456
|
|
|
394
457
|
```typescript
|
|
395
458
|
Agent({
|
|
@@ -538,7 +601,7 @@ openmatrix meeting --list
|
|
|
538
601
|
|
|
539
602
|
所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
|
|
540
603
|
```bash
|
|
541
|
-
git add
|
|
604
|
+
git add . && git commit -m "$(cat <<'EOF'
|
|
542
605
|
feat: 完成所有任务 - 任务总标题
|
|
543
606
|
|
|
544
607
|
改动点1
|