openmatrix 0.1.98 → 0.2.1
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/dist/agents/impl/coder-agent.js +42 -42
- package/dist/agents/impl/executor-agent.js +75 -75
- package/dist/agents/impl/planner-agent.js +63 -63
- package/dist/agents/impl/reviewer-agent.js +66 -66
- package/dist/agents/impl/tester-agent.js +56 -56
- package/dist/cli/commands/report.js +45 -45
- package/dist/cli/commands/start.js +163 -34
- package/dist/cli/commands/step.js +62 -35
- package/dist/orchestrator/ai-reviewer.d.ts +29 -1
- package/dist/orchestrator/ai-reviewer.js +312 -207
- package/dist/orchestrator/approval-manager.js +14 -13
- package/dist/orchestrator/executor.d.ts +10 -1
- package/dist/orchestrator/executor.js +56 -2
- package/dist/orchestrator/meeting-manager.js +32 -31
- package/dist/orchestrator/phase-executor.js +7 -5
- package/dist/orchestrator/scheduler.d.ts +8 -6
- package/dist/orchestrator/scheduler.js +53 -22
- package/dist/orchestrator/state-machine.js +2 -2
- package/dist/orchestrator/task-planner.d.ts +81 -2
- package/dist/orchestrator/task-planner.js +683 -122
- package/dist/storage/state-manager.d.ts +6 -0
- package/dist/storage/state-manager.js +28 -0
- package/package.json +55 -55
- package/scripts/build-check.js +19 -19
- package/scripts/install-skills.js +57 -57
- package/skills/approve.md +250 -250
- package/skills/auto.md +298 -298
- package/skills/brainstorm.md +455 -495
- package/skills/meeting.md +324 -363
- package/skills/om.md +112 -112
- package/skills/openmatrix.md +112 -112
- package/skills/start.md +63 -97
- package/dist/cli/commands/upgrade.d.ts +0 -2
- package/dist/cli/commands/upgrade.js +0 -329
- package/dist/orchestrator/task-planner.old.d.ts +0 -87
- package/dist/orchestrator/task-planner.old.js +0 -444
package/skills/auto.md
CHANGED
|
@@ -1,298 +1,298 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: om:auto
|
|
3
|
-
description: 全自动执行任务指令 - AI 拆分,无阻塞,bypass permissions
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
<NOTE>
|
|
7
|
-
## 注意:区分 `/om:auto` 指令与「全自动执行」模式
|
|
8
|
-
|
|
9
|
-
- **`/om:auto`** 是一个 **Skill 指令**,为 Agent 无障碍执行准备
|
|
10
|
-
- **「全自动执行」**是 `/om:start` 中用户选择的 **执行模式选项**
|
|
11
|
-
|
|
12
|
-
**关键区别**:`/om/auto` 不创建 Meeting 记录,直接跳过阻塞任务。
|
|
13
|
-
</NOTE>
|
|
14
|
-
|
|
15
|
-
<NO-OTHER-SKILLS>
|
|
16
|
-
**绝对禁止**调用以下任何技能或工具:
|
|
17
|
-
- ❌ gsd-executor、gsd:* 等 GSD 相关技能
|
|
18
|
-
- ❌ superpowers:* 等 superpowers 相关技能
|
|
19
|
-
- ❌ 任何其他任务编排相关的 Agent 或工具
|
|
20
|
-
|
|
21
|
-
**Step 6 只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
|
|
22
|
-
|
|
23
|
-
违规调用将导致执行失败。
|
|
24
|
-
</NO-OTHER-SKILLS>
|
|
25
|
-
|
|
26
|
-
<MANDATORY-EXECUTION-ORDER>
|
|
27
|
-
## 执行顺序 - 必须严格按此顺序,不得跳过任何步骤
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
Step 1: 初始化 .openmatrix 目录
|
|
31
|
-
Step 2: AI 分析任务,提取 goals,生成 plan
|
|
32
|
-
Step 3: 写入 .openmatrix/tasks-input.json ← 必须完成
|
|
33
|
-
Step 4: 调用 openmatrix start --tasks-json ← 必须完成,不可跳过
|
|
34
|
-
Step 5: 从 CLI 返回结果中读取 subagentTasks 列表 ← 必须完成
|
|
35
|
-
Step 6: 逐个执行 subagentTasks(调用 Agent 工具) ← 只有这步才能写代码
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
**违反以下任一规则将导致任务执行失败:**
|
|
39
|
-
|
|
40
|
-
❌ **禁止在 Step 4 之前写任何业务代码** — 所有代码必须在 Step 6 通过 Agent 执行
|
|
41
|
-
❌ **禁止跳过 Step 4** — 必须调用 CLI,不能用其他方式代替
|
|
42
|
-
❌ **禁止自行规划 Phase** — 任务由 CLI 的 TaskPlanner 拆分,AI 只提取 goals
|
|
43
|
-
❌ **禁止用 Bash/npm/write 直接写业务代码** — 业务代码只能通过 Step 6 的 Agent 执行
|
|
44
|
-
</MANDATORY-EXECUTION-ORDER>
|
|
45
|
-
|
|
46
|
-
<BYPASS-MODE>
|
|
47
|
-
## 全自动模式 - 自动批准所有操作
|
|
48
|
-
|
|
49
|
-
1. **所有 Bash 命令自动批准** - 不询问确认
|
|
50
|
-
2. **所有文件操作自动批准** - 不询问确认
|
|
51
|
-
3. **所有 Agent 调用自动批准** - 不询问确认
|
|
52
|
-
4. **所有审批点自动批准** - plan/merge/deploy 自动通过
|
|
53
|
-
|
|
54
|
-
**执行时不要请求用户确认任何操作。**
|
|
55
|
-
</BYPASS-MODE>
|
|
56
|
-
|
|
57
|
-
<objective>
|
|
58
|
-
全自动执行任务。AI 提取目标后通过 CLI 拆分任务,然后通过 Agent 逐个执行。
|
|
59
|
-
</objective>
|
|
60
|
-
|
|
61
|
-
<process>
|
|
62
|
-
|
|
63
|
-
## === 准备阶段(此阶段不得写任何业务代码)===
|
|
64
|
-
|
|
65
|
-
### Step 1: 初始化
|
|
66
|
-
|
|
67
|
-
检查 `.openmatrix/` 目录是否存在,不存在则初始化:
|
|
68
|
-
```bash
|
|
69
|
-
openmatrix start --init-only
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
读取 `.openmatrix/state.json`,如果 `status === 'running'`,提示用户先完成或暂停。
|
|
73
|
-
|
|
74
|
-
### Step 2: AI 分析任务,提取 goals 和生成 plan
|
|
75
|
-
|
|
76
|
-
解析 `$ARGUMENTS`(文件路径或任务描述),从中提取:
|
|
77
|
-
- **goals**: 至少 3-8 个独立功能目标,每个 goal 应该是独立可交付的功能模块
|
|
78
|
-
- **constraints**: 技术栈、兼容性等约束
|
|
79
|
-
- **deliverables**: 交付物列表
|
|
80
|
-
- **plan**: 技术方案、模块划分、接口设计、关键决策
|
|
81
|
-
|
|
82
|
-
解析 `$ARGUMENTS` 中的 `--quality` 参数(默认 strict)。
|
|
83
|
-
|
|
84
|
-
### Step 3: 写入 tasks-input.json
|
|
85
|
-
|
|
86
|
-
用 Write 工具将以下 JSON 写入 `.openmatrix/tasks-input.json`:
|
|
87
|
-
|
|
88
|
-
```json
|
|
89
|
-
{
|
|
90
|
-
"title": "任务标题",
|
|
91
|
-
"description": "整体描述",
|
|
92
|
-
"goals": ["目标1", "目标2", "目标3"],
|
|
93
|
-
"constraints": ["约束1"],
|
|
94
|
-
"deliverables": ["src/xxx.ts"],
|
|
95
|
-
"answers": { "技术栈": "..." },
|
|
96
|
-
"quality": "strict",
|
|
97
|
-
"mode": "auto",
|
|
98
|
-
"plan": "## 技术方案\n1. ...\n2. ..."
|
|
99
|
-
}
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
**goals 是最核心的字段**,CLI 的 TaskPlanner 会为每个 goal 生成 开发+测试 任务对。
|
|
103
|
-
|
|
104
|
-
### Step 4: 调用 CLI 创建任务 ⚠️ 不可跳过
|
|
105
|
-
|
|
106
|
-
**这是最关键的步骤。必须执行以下命令,不能跳过:**
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
openmatrix start --tasks-json @.openmatrix/tasks-input.json --json
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
此命令会:
|
|
113
|
-
- 调用 TaskPlanner 将 goals 拆分为子任务
|
|
114
|
-
- 创建任务文件到 `.openmatrix/tasks/` 目录
|
|
115
|
-
- 返回 JSON 包含 `subagentTasks` 列表
|
|
116
|
-
|
|
117
|
-
### Step 5: 读取 subagentTasks
|
|
118
|
-
|
|
119
|
-
CLI 返回的 JSON 中 `subagentTasks` 数组包含每个待执行任务:
|
|
120
|
-
```json
|
|
121
|
-
{
|
|
122
|
-
"subagentTasks": [
|
|
123
|
-
{
|
|
124
|
-
"subagent_type": "Plan",
|
|
125
|
-
"description": "简短描述",
|
|
126
|
-
"prompt": "完整执行提示词",
|
|
127
|
-
"taskId": "TASK-001",
|
|
128
|
-
"agentType": "planner",
|
|
129
|
-
"timeout": 300000
|
|
130
|
-
}
|
|
131
|
-
]
|
|
132
|
-
}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
## === 执行阶段(只有此阶段才能写业务代码)===
|
|
136
|
-
|
|
137
|
-
### Step 6: 逐个执行 subagentTasks(禁止中断)
|
|
138
|
-
|
|
139
|
-
<LOOP-ENFORCEMENT>
|
|
140
|
-
**此步骤是执行循环,必须执行完所有任务后才能停止。**
|
|
141
|
-
|
|
142
|
-
❌ **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
|
|
143
|
-
❌ **禁止询问"是否继续"** — 直接执行下一个任务
|
|
144
|
-
❌ **禁止输出"让我知道是否..."后停止** — 继续执行
|
|
145
|
-
❌ **禁止因为上下文压缩而忘记剩余任务** — 通过 CLI 命令从磁盘获取真实状态
|
|
146
|
-
|
|
147
|
-
**文件持久化循环(防止上下文压缩丢失状态):**
|
|
148
|
-
```bash
|
|
149
|
-
# 每个 Agent 完成后执行:
|
|
150
|
-
openmatrix complete TASK-XXX --success # 标记完成 + 更新统计(含自动 git commit)
|
|
151
|
-
|
|
152
|
-
# 提交验证(防止 commit 静默失败):
|
|
153
|
-
git status --porcelain # 检查是否有未提交的文件
|
|
154
|
-
# 如果有未提交文件 → 必须手动提交:
|
|
155
|
-
git add -A && git commit -m "feat(TASK-XXX): 任务标题"
|
|
156
|
-
|
|
157
|
-
openmatrix step --json # 获取下一个任务 + 检查是否全部完成
|
|
158
|
-
```
|
|
159
|
-
`openmatrix step` 从磁盘读取真实状态,不依赖上下文记忆。
|
|
160
|
-
|
|
161
|
-
**中断恢复:** 如果会话中断,再次执行 `/om:auto` 时:
|
|
162
|
-
1. 执行 `openmatrix step --json`
|
|
163
|
-
2. 如果返回 `status: "next"` → 从返回的任务继续执行
|
|
164
|
-
3. 如果返回 `status: "done"` → 所有任务已完成
|
|
165
|
-
4. 如果返回 `status: "blocked"` → 有阻塞任务需要处理
|
|
166
|
-
</LOOP-ENFORCEMENT>
|
|
167
|
-
|
|
168
|
-
对 `subagentTasks` 列表中的每个任务,**必须使用 Agent 工具**(禁止用 gsd-executor 或其他技能替代):
|
|
169
|
-
|
|
170
|
-
```typescript
|
|
171
|
-
Agent({
|
|
172
|
-
subagent_type: task.subagent_type,
|
|
173
|
-
description: task.description,
|
|
174
|
-
prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议",
|
|
175
|
-
isolation: task.isolation,
|
|
176
|
-
run_in_background: true
|
|
177
|
-
})
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
> ⚠️ **必须使用原生 Agent 工具** — 禁止调用 gsd-executor、superpowers 或任何其他编排技能。
|
|
181
|
-
>
|
|
182
|
-
> **上下文节省**: 使用 `run_in_background: true` 后台执行,Agent 完成后仅返回简短摘要,大幅节省主会话上下文。
|
|
183
|
-
|
|
184
|
-
每个 Agent 完成后:
|
|
185
|
-
1. **保存 Agent 上下文** — 将执行结果摘要写入 `.openmatrix/tasks/TASK-XXX/context.md`,格式如下:
|
|
186
|
-
|
|
187
|
-
```markdown
|
|
188
|
-
## 任务: TASK-XXX 任务标题
|
|
189
|
-
|
|
190
|
-
### 关键决策
|
|
191
|
-
- [做出的重要决策]
|
|
192
|
-
|
|
193
|
-
### 创建/修改的文件
|
|
194
|
-
- `path/to/file1.ts` - 简述用途
|
|
195
|
-
- `path/to/file2.ts` - 简述用途
|
|
196
|
-
|
|
197
|
-
### 重要发现
|
|
198
|
-
- [发现的问题、模式、注意事项]
|
|
199
|
-
|
|
200
|
-
### 对后续任务的建议
|
|
201
|
-
- [下一个 Agent 应该注意什么]
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
2. **标记完成并更新统计(必须执行):**
|
|
205
|
-
```bash
|
|
206
|
-
openmatrix complete TASK-XXX --success
|
|
207
|
-
```
|
|
208
|
-
3. **获取下一个任务(防止上下文压缩丢失):**
|
|
209
|
-
```bash
|
|
210
|
-
openmatrix step --json
|
|
211
|
-
```
|
|
212
|
-
如果返回 `status: "next"` → 继续执行返回的 task
|
|
213
|
-
如果返回 `status: "done"` → 所有任务完成,进入最终提交
|
|
214
|
-
如果返回 `status: "blocked"` → 有阻塞任务,处理 Meeting
|
|
215
|
-
|
|
216
|
-
**Meeting 处理机制:**
|
|
217
|
-
`/om:auto` 不创建 Meeting 记录,直接跳过阻塞任务,无障碍执行。
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
**Agent 上下文共享机制 (Agent Memory):**
|
|
221
|
-
|
|
222
|
-
每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
|
|
223
|
-
这确保 Agent 之间共享知识、避免重复工作、保持决策一致性。
|
|
224
|
-
|
|
225
|
-
```
|
|
226
|
-
Agent-1 完成 → 写入 context.md → Agent-2 读取 Agent-1 的上下文 → 写入 context.md → ...
|
|
227
|
-
```
|
|
228
|
-
```bash
|
|
229
|
-
git add -A && git commit -m "$(cat <<'EOF'
|
|
230
|
-
feat: 任务标题
|
|
231
|
-
|
|
232
|
-
改动点1
|
|
233
|
-
改动点2
|
|
234
|
-
|
|
235
|
-
影响范围: 模块名
|
|
236
|
-
文件改动: 文件1, 文件2
|
|
237
|
-
|
|
238
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
239
|
-
EOF
|
|
240
|
-
)"
|
|
241
|
-
```
|
|
242
|
-
|
|
243
|
-
**在 auto 模式下不得询问用户确认,自动批准所有审批点。**
|
|
244
|
-
|
|
245
|
-
**Git 提交格式规范(所有提交必须遵守):**
|
|
246
|
-
|
|
247
|
-
```
|
|
248
|
-
<type>(TASK-XXX): 简短描述
|
|
249
|
-
|
|
250
|
-
改动点1
|
|
251
|
-
改动点2
|
|
252
|
-
|
|
253
|
-
影响范围: 模块名
|
|
254
|
-
文件改动: 文件1, 文件2
|
|
255
|
-
|
|
256
|
-
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
|
|
260
|
-
**禁止使用 emoji**,使用纯文本格式
|
|
261
|
-
|
|
262
|
-
</process>
|
|
263
|
-
|
|
264
|
-
<arguments>
|
|
265
|
-
$ARGUMENTS
|
|
266
|
-
</arguments>
|
|
267
|
-
|
|
268
|
-
<examples>
|
|
269
|
-
/om:auto "实现用户登录功能"
|
|
270
|
-
/om:auto task.md --quality fast
|
|
271
|
-
/om:auto task.md --quality balanced
|
|
272
|
-
</examples>
|
|
273
|
-
|
|
274
|
-
<notes>
|
|
275
|
-
## 质量级别
|
|
276
|
-
|
|
277
|
-
| 级别 | TDD | 覆盖率 | Lint | 安全扫描 |
|
|
278
|
-
|------|:---:|:------:|:----:|:--------:|
|
|
279
|
-
| **strict** | ✅ | >80% | ✅ | ✅ |
|
|
280
|
-
| **balanced** | ❌ | >60% | ✅ | ✅ |
|
|
281
|
-
| **fast** | ❌ | 无要求 | ❌ | ❌ |
|
|
282
|
-
|
|
283
|
-
## 执行流程
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
Step 1: 初始化 .openmatrix
|
|
287
|
-
↓
|
|
288
|
-
Step 2: AI 提取 goals + 生成 plan
|
|
289
|
-
↓
|
|
290
|
-
Step 3: 写入 tasks-input.json
|
|
291
|
-
↓
|
|
292
|
-
Step 4: openmatrix start --tasks-json ← 必须执行
|
|
293
|
-
↓
|
|
294
|
-
Step 5: 读取 subagentTasks
|
|
295
|
-
↓
|
|
296
|
-
Step 6: Agent 逐个执行 ← 只有这里写代码
|
|
297
|
-
```
|
|
298
|
-
</notes>
|
|
1
|
+
---
|
|
2
|
+
name: om:auto
|
|
3
|
+
description: 全自动执行任务指令 - AI 拆分,无阻塞,bypass permissions
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<NOTE>
|
|
7
|
+
## 注意:区分 `/om:auto` 指令与「全自动执行」模式
|
|
8
|
+
|
|
9
|
+
- **`/om:auto`** 是一个 **Skill 指令**,为 Agent 无障碍执行准备
|
|
10
|
+
- **「全自动执行」**是 `/om:start` 中用户选择的 **执行模式选项**
|
|
11
|
+
|
|
12
|
+
**关键区别**:`/om/auto` 不创建 Meeting 记录,直接跳过阻塞任务。
|
|
13
|
+
</NOTE>
|
|
14
|
+
|
|
15
|
+
<NO-OTHER-SKILLS>
|
|
16
|
+
**绝对禁止**调用以下任何技能或工具:
|
|
17
|
+
- ❌ gsd-executor、gsd:* 等 GSD 相关技能
|
|
18
|
+
- ❌ superpowers:* 等 superpowers 相关技能
|
|
19
|
+
- ❌ 任何其他任务编排相关的 Agent 或工具
|
|
20
|
+
|
|
21
|
+
**Step 6 只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
|
|
22
|
+
|
|
23
|
+
违规调用将导致执行失败。
|
|
24
|
+
</NO-OTHER-SKILLS>
|
|
25
|
+
|
|
26
|
+
<MANDATORY-EXECUTION-ORDER>
|
|
27
|
+
## 执行顺序 - 必须严格按此顺序,不得跳过任何步骤
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
Step 1: 初始化 .openmatrix 目录
|
|
31
|
+
Step 2: AI 分析任务,提取 goals,生成 plan
|
|
32
|
+
Step 3: 写入 .openmatrix/tasks-input.json ← 必须完成
|
|
33
|
+
Step 4: 调用 openmatrix start --tasks-json ← 必须完成,不可跳过
|
|
34
|
+
Step 5: 从 CLI 返回结果中读取 subagentTasks 列表 ← 必须完成
|
|
35
|
+
Step 6: 逐个执行 subagentTasks(调用 Agent 工具) ← 只有这步才能写代码
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
**违反以下任一规则将导致任务执行失败:**
|
|
39
|
+
|
|
40
|
+
❌ **禁止在 Step 4 之前写任何业务代码** — 所有代码必须在 Step 6 通过 Agent 执行
|
|
41
|
+
❌ **禁止跳过 Step 4** — 必须调用 CLI,不能用其他方式代替
|
|
42
|
+
❌ **禁止自行规划 Phase** — 任务由 CLI 的 TaskPlanner 拆分,AI 只提取 goals
|
|
43
|
+
❌ **禁止用 Bash/npm/write 直接写业务代码** — 业务代码只能通过 Step 6 的 Agent 执行
|
|
44
|
+
</MANDATORY-EXECUTION-ORDER>
|
|
45
|
+
|
|
46
|
+
<BYPASS-MODE>
|
|
47
|
+
## 全自动模式 - 自动批准所有操作
|
|
48
|
+
|
|
49
|
+
1. **所有 Bash 命令自动批准** - 不询问确认
|
|
50
|
+
2. **所有文件操作自动批准** - 不询问确认
|
|
51
|
+
3. **所有 Agent 调用自动批准** - 不询问确认
|
|
52
|
+
4. **所有审批点自动批准** - plan/merge/deploy 自动通过
|
|
53
|
+
|
|
54
|
+
**执行时不要请求用户确认任何操作。**
|
|
55
|
+
</BYPASS-MODE>
|
|
56
|
+
|
|
57
|
+
<objective>
|
|
58
|
+
全自动执行任务。AI 提取目标后通过 CLI 拆分任务,然后通过 Agent 逐个执行。
|
|
59
|
+
</objective>
|
|
60
|
+
|
|
61
|
+
<process>
|
|
62
|
+
|
|
63
|
+
## === 准备阶段(此阶段不得写任何业务代码)===
|
|
64
|
+
|
|
65
|
+
### Step 1: 初始化
|
|
66
|
+
|
|
67
|
+
检查 `.openmatrix/` 目录是否存在,不存在则初始化:
|
|
68
|
+
```bash
|
|
69
|
+
openmatrix start --init-only
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
读取 `.openmatrix/state.json`,如果 `status === 'running'`,提示用户先完成或暂停。
|
|
73
|
+
|
|
74
|
+
### Step 2: AI 分析任务,提取 goals 和生成 plan
|
|
75
|
+
|
|
76
|
+
解析 `$ARGUMENTS`(文件路径或任务描述),从中提取:
|
|
77
|
+
- **goals**: 至少 3-8 个独立功能目标,每个 goal 应该是独立可交付的功能模块
|
|
78
|
+
- **constraints**: 技术栈、兼容性等约束
|
|
79
|
+
- **deliverables**: 交付物列表
|
|
80
|
+
- **plan**: 技术方案、模块划分、接口设计、关键决策
|
|
81
|
+
|
|
82
|
+
解析 `$ARGUMENTS` 中的 `--quality` 参数(默认 strict)。
|
|
83
|
+
|
|
84
|
+
### Step 3: 写入 tasks-input.json
|
|
85
|
+
|
|
86
|
+
用 Write 工具将以下 JSON 写入 `.openmatrix/tasks-input.json`:
|
|
87
|
+
|
|
88
|
+
```json
|
|
89
|
+
{
|
|
90
|
+
"title": "任务标题",
|
|
91
|
+
"description": "整体描述",
|
|
92
|
+
"goals": ["目标1", "目标2", "目标3"],
|
|
93
|
+
"constraints": ["约束1"],
|
|
94
|
+
"deliverables": ["src/xxx.ts"],
|
|
95
|
+
"answers": { "技术栈": "..." },
|
|
96
|
+
"quality": "strict",
|
|
97
|
+
"mode": "auto",
|
|
98
|
+
"plan": "## 技术方案\n1. ...\n2. ..."
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**goals 是最核心的字段**,CLI 的 TaskPlanner 会为每个 goal 生成 开发+测试 任务对。
|
|
103
|
+
|
|
104
|
+
### Step 4: 调用 CLI 创建任务 ⚠️ 不可跳过
|
|
105
|
+
|
|
106
|
+
**这是最关键的步骤。必须执行以下命令,不能跳过:**
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
openmatrix start --tasks-json @.openmatrix/tasks-input.json --json
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
此命令会:
|
|
113
|
+
- 调用 TaskPlanner 将 goals 拆分为子任务
|
|
114
|
+
- 创建任务文件到 `.openmatrix/tasks/` 目录
|
|
115
|
+
- 返回 JSON 包含 `subagentTasks` 列表
|
|
116
|
+
|
|
117
|
+
### Step 5: 读取 subagentTasks
|
|
118
|
+
|
|
119
|
+
CLI 返回的 JSON 中 `subagentTasks` 数组包含每个待执行任务:
|
|
120
|
+
```json
|
|
121
|
+
{
|
|
122
|
+
"subagentTasks": [
|
|
123
|
+
{
|
|
124
|
+
"subagent_type": "Plan",
|
|
125
|
+
"description": "简短描述",
|
|
126
|
+
"prompt": "完整执行提示词",
|
|
127
|
+
"taskId": "TASK-001",
|
|
128
|
+
"agentType": "planner",
|
|
129
|
+
"timeout": 300000
|
|
130
|
+
}
|
|
131
|
+
]
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## === 执行阶段(只有此阶段才能写业务代码)===
|
|
136
|
+
|
|
137
|
+
### Step 6: 逐个执行 subagentTasks(禁止中断)
|
|
138
|
+
|
|
139
|
+
<LOOP-ENFORCEMENT>
|
|
140
|
+
**此步骤是执行循环,必须执行完所有任务后才能停止。**
|
|
141
|
+
|
|
142
|
+
❌ **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
|
|
143
|
+
❌ **禁止询问"是否继续"** — 直接执行下一个任务
|
|
144
|
+
❌ **禁止输出"让我知道是否..."后停止** — 继续执行
|
|
145
|
+
❌ **禁止因为上下文压缩而忘记剩余任务** — 通过 CLI 命令从磁盘获取真实状态
|
|
146
|
+
|
|
147
|
+
**文件持久化循环(防止上下文压缩丢失状态):**
|
|
148
|
+
```bash
|
|
149
|
+
# 每个 Agent 完成后执行:
|
|
150
|
+
openmatrix complete TASK-XXX --success # 标记完成 + 更新统计(含自动 git commit)
|
|
151
|
+
|
|
152
|
+
# 提交验证(防止 commit 静默失败):
|
|
153
|
+
git status --porcelain # 检查是否有未提交的文件
|
|
154
|
+
# 如果有未提交文件 → 必须手动提交:
|
|
155
|
+
git add -A && git commit -m "feat(TASK-XXX): 任务标题"
|
|
156
|
+
|
|
157
|
+
openmatrix step --json # 获取下一个任务 + 检查是否全部完成
|
|
158
|
+
```
|
|
159
|
+
`openmatrix step` 从磁盘读取真实状态,不依赖上下文记忆。
|
|
160
|
+
|
|
161
|
+
**中断恢复:** 如果会话中断,再次执行 `/om:auto` 时:
|
|
162
|
+
1. 执行 `openmatrix step --json`
|
|
163
|
+
2. 如果返回 `status: "next"` → 从返回的任务继续执行
|
|
164
|
+
3. 如果返回 `status: "done"` → 所有任务已完成
|
|
165
|
+
4. 如果返回 `status: "blocked"` → 有阻塞任务需要处理
|
|
166
|
+
</LOOP-ENFORCEMENT>
|
|
167
|
+
|
|
168
|
+
对 `subagentTasks` 列表中的每个任务,**必须使用 Agent 工具**(禁止用 gsd-executor 或其他技能替代):
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
Agent({
|
|
172
|
+
subagent_type: task.subagent_type,
|
|
173
|
+
description: task.description,
|
|
174
|
+
prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议",
|
|
175
|
+
isolation: task.isolation,
|
|
176
|
+
run_in_background: true
|
|
177
|
+
})
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
> ⚠️ **必须使用原生 Agent 工具** — 禁止调用 gsd-executor、superpowers 或任何其他编排技能。
|
|
181
|
+
>
|
|
182
|
+
> **上下文节省**: 使用 `run_in_background: true` 后台执行,Agent 完成后仅返回简短摘要,大幅节省主会话上下文。
|
|
183
|
+
|
|
184
|
+
每个 Agent 完成后:
|
|
185
|
+
1. **保存 Agent 上下文** — 将执行结果摘要写入 `.openmatrix/tasks/TASK-XXX/context.md`,格式如下:
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
## 任务: TASK-XXX 任务标题
|
|
189
|
+
|
|
190
|
+
### 关键决策
|
|
191
|
+
- [做出的重要决策]
|
|
192
|
+
|
|
193
|
+
### 创建/修改的文件
|
|
194
|
+
- `path/to/file1.ts` - 简述用途
|
|
195
|
+
- `path/to/file2.ts` - 简述用途
|
|
196
|
+
|
|
197
|
+
### 重要发现
|
|
198
|
+
- [发现的问题、模式、注意事项]
|
|
199
|
+
|
|
200
|
+
### 对后续任务的建议
|
|
201
|
+
- [下一个 Agent 应该注意什么]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
2. **标记完成并更新统计(必须执行):**
|
|
205
|
+
```bash
|
|
206
|
+
openmatrix complete TASK-XXX --success
|
|
207
|
+
```
|
|
208
|
+
3. **获取下一个任务(防止上下文压缩丢失):**
|
|
209
|
+
```bash
|
|
210
|
+
openmatrix step --json
|
|
211
|
+
```
|
|
212
|
+
如果返回 `status: "next"` → 继续执行返回的 task
|
|
213
|
+
如果返回 `status: "done"` → 所有任务完成,进入最终提交
|
|
214
|
+
如果返回 `status: "blocked"` → 有阻塞任务,处理 Meeting
|
|
215
|
+
|
|
216
|
+
**Meeting 处理机制:**
|
|
217
|
+
`/om:auto` 不创建 Meeting 记录,直接跳过阻塞任务,无障碍执行。
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
**Agent 上下文共享机制 (Agent Memory):**
|
|
221
|
+
|
|
222
|
+
每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
|
|
223
|
+
这确保 Agent 之间共享知识、避免重复工作、保持决策一致性。
|
|
224
|
+
|
|
225
|
+
```
|
|
226
|
+
Agent-1 完成 → 写入 context.md → Agent-2 读取 Agent-1 的上下文 → 写入 context.md → ...
|
|
227
|
+
```
|
|
228
|
+
```bash
|
|
229
|
+
git add -A && git commit -m "$(cat <<'EOF'
|
|
230
|
+
feat: 任务标题
|
|
231
|
+
|
|
232
|
+
改动点1
|
|
233
|
+
改动点2
|
|
234
|
+
|
|
235
|
+
影响范围: 模块名
|
|
236
|
+
文件改动: 文件1, 文件2
|
|
237
|
+
|
|
238
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
239
|
+
EOF
|
|
240
|
+
)"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**在 auto 模式下不得询问用户确认,自动批准所有审批点。**
|
|
244
|
+
|
|
245
|
+
**Git 提交格式规范(所有提交必须遵守):**
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
<type>(TASK-XXX): 简短描述
|
|
249
|
+
|
|
250
|
+
改动点1
|
|
251
|
+
改动点2
|
|
252
|
+
|
|
253
|
+
影响范围: 模块名
|
|
254
|
+
文件改动: 文件1, 文件2
|
|
255
|
+
|
|
256
|
+
Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
**type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
|
|
260
|
+
**禁止使用 emoji**,使用纯文本格式
|
|
261
|
+
|
|
262
|
+
</process>
|
|
263
|
+
|
|
264
|
+
<arguments>
|
|
265
|
+
$ARGUMENTS
|
|
266
|
+
</arguments>
|
|
267
|
+
|
|
268
|
+
<examples>
|
|
269
|
+
/om:auto "实现用户登录功能"
|
|
270
|
+
/om:auto task.md --quality fast
|
|
271
|
+
/om:auto task.md --quality balanced
|
|
272
|
+
</examples>
|
|
273
|
+
|
|
274
|
+
<notes>
|
|
275
|
+
## 质量级别
|
|
276
|
+
|
|
277
|
+
| 级别 | TDD | 覆盖率 | Lint | 安全扫描 |
|
|
278
|
+
|------|:---:|:------:|:----:|:--------:|
|
|
279
|
+
| **strict** | ✅ | >80% | ✅ | ✅ |
|
|
280
|
+
| **balanced** | ❌ | >60% | ✅ | ✅ |
|
|
281
|
+
| **fast** | ❌ | 无要求 | ❌ | ❌ |
|
|
282
|
+
|
|
283
|
+
## 执行流程
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
Step 1: 初始化 .openmatrix
|
|
287
|
+
↓
|
|
288
|
+
Step 2: AI 提取 goals + 生成 plan
|
|
289
|
+
↓
|
|
290
|
+
Step 3: 写入 tasks-input.json
|
|
291
|
+
↓
|
|
292
|
+
Step 4: openmatrix start --tasks-json ← 必须执行
|
|
293
|
+
↓
|
|
294
|
+
Step 5: 读取 subagentTasks
|
|
295
|
+
↓
|
|
296
|
+
Step 6: Agent 逐个执行 ← 只有这里写代码
|
|
297
|
+
```
|
|
298
|
+
</notes>
|