openmatrix 0.2.24 → 0.2.26

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
@@ -1,707 +1,621 @@
1
- ---
2
- name: om:start
3
- description: "Use when starting a new development task cycle with interactive questions. Triggers on TASK-EXECUTION intent: user wants to start implementing a clearly-defined task with full workflow support. DO NOT trigger on: vague ideas (use brainstorm), status checks, debugging, or pure questions. Intent signals: user describes a concrete task to build/fix/refactor, has clear goal, or wants to start execution workflow."
4
- ---
5
-
6
- <INTENT-JUDGMENT>
7
- ## 意图判断指南
8
-
9
- **AI 应根据用户语义判断意图:**
10
-
11
- ### 触发信号(任务执行意图)
12
-
13
- - 用户想开始明确的开发任务
14
- - 任务描述清晰可执行
15
- - 有具体的功能目标
16
- - 修复已知 bug(知道要改什么)
17
-
18
- ### 不触发信号
19
-
20
- | 用户意图 | 应调用 |
21
- |---------|--------|
22
- | 需求不明确 | /om:brainstorm |
23
- | 调查问题原因 | /om:debug |
24
- | 查看进度 | /om:status |
25
-
26
- ### 示例判断
27
-
28
- | 用户消息 | 判断 | 结果 |
29
- |---------|------|------|
30
- | "开始实现登录功能" | 任务执行意图 | 触发 ✓ |
31
- | "修复这个 bug"(明确位置)| 执行意图明确 | 触发 |
32
- | "重构 API 模块" | 任务意图 | 触发 |
33
- | "登录怎么设计" | 设计意图 | /om:brainstorm |
34
- | "为什么出错了" | 调查意图 | /om:debug |
35
- </INTENT-JUDGMENT>
36
-
37
- <NO-OTHER-SKILLS>
38
- **绝对禁止**调用以下任何技能或工具:
39
- - ❌ gsd-executor、gsd:* 等 GSD 相关技能
40
- - ❌ superpowers:* 等 superpowers 相关技能
41
- - 任何其他任务编排相关的 Agent 或工具
42
-
43
- **Step 11 只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
44
-
45
- 违规调用将导致执行失败。
46
-
47
- **相关技能**: `/om:brainstorm` (需求探索) | `/om:auto` (全自动) | `/om:meeting` (阻塞处理) | `/om:status` (状态查看) | `/om:report` (报告)
48
- </NO-OTHER-SKILLS>
49
-
50
- <MANDATORY-EXECUTION-ORDER>
51
- ## 执行顺序 - 必须严格按此顺序,不得跳过任何步骤
52
-
53
- ```
54
- Step 1: 初始化 .openmatrix 目录
55
- Step 2: 解析任务输入(文件或描述)
56
- Step 3: 智能分析任务类型(开发/非开发)
57
- Step 4: 提交文档(git add docs/ + 所有 .md 文件, commit)
58
- Step 5: 必选问题(开发任务:质量+E2E+模式; 非开发:仅模式)← 不可跳过
59
- Step 6: 可选问题(仅复杂开发任务)+ 展示执行计划
60
- Step 7: AI 提取 goals,生成 plan
61
- Step 8: 写入 .openmatrix/tasks-input.json ← 必须完成
62
- Step 9: 调用 openmatrix start --tasks-json 必须完成,不可跳过
63
- Step 10: 从 CLI 返回结果中读取 subagentTasks 列表 必须完成
64
- Step 11: 逐个执行 subagentTasks(调用 Agent 工具) 只有这步才能写代码
65
- ```
66
-
67
- **违反以下任一规则将导致任务执行失败:**
68
-
69
- **禁止在 Step 9 之前写任何业务代码** — 所有代码必须在 Step 11 通过 Agent 执行
70
- **禁止跳过 Step 5 必选问题** — 开发任务必须选质量/E2E/模式,非开发任务必须选模式
71
- **禁止跳过 Step 9** — 必须调用 CLI,不能用其他方式代替
72
- **禁止自行规划 Phase** — 任务由 CLI 的 TaskPlanner 拆分,AI 只提取 goals
73
- **禁止用 Bash/npm/write 直接写业务代码** — 业务代码只能通过 Step 11 的 Agent 执行
74
- **禁止调用 gsd-executor 或其他编排技能** — 必须用原生 Agent 工具
75
- </MANDATORY-EXECUTION-ORDER>
76
-
77
- <objective>
78
- 解析任务文档,通过必选问答确定执行模式(开发任务还需确定质量等级、E2E测试),确认后通过 CLI 拆分任务并执行。
79
-
80
- ⚠️ **Step 5 必选问题不可跳过** — 开发任务必须选择:
81
- 1. 质量等级 (strict/balanced/fast)
82
- 2. E2E 测试 (当选择 strict/balanced 时)
83
- 3. 执行模式 (全自动/关键节点确认/每阶段确认)
84
-
85
- 非开发任务(文档、配置等)只需选择执行模式。
86
- </objective>
87
-
88
- <process>
89
-
90
- ## === 准备阶段(此阶段不得写任何业务代码)===
91
-
92
- ### Step 1: 智能检测状态
93
-
94
- 检查 `.openmatrix/` 目录和 `state.json` 的状态:
95
-
96
- | 状态 | 处理方式 |
97
- |------|---------|
98
- | `.openmatrix/` 不存在 | 全新初始化: `openmatrix start --init-only` |
99
- | `status: initialized` | 正常继续(首次使用) |
100
- | `status: completed` | 提示用户:开始新任务会清理旧数据,确认后继续 |
101
- | `status: running` | 提示用户先完成或暂停当前任务,然后退出 |
102
- | `status: paused` | 询问用户:继续上次任务(→`/om:resume`)还是开始新任务 |
103
- | `status: failed` | 询问用户:重试失败任务(→`/om:retry`)还是开始新任务 |
104
-
105
- **如果是全新初始化:**
106
- ```bash
107
- openmatrix start --init-only
108
- ```
109
-
110
- **检查 Git 仓库(⚠️ 必须执行,不可跳过):**
111
-
112
- ```bash
113
- # 检查是否有 .git 目录(必须执行此命令)
114
- ls -la .git 2>/dev/null || echo "NOT_INITIALIZED"
115
- ```
116
-
117
- **根据检查结果处理:**
118
-
119
- | 检查结果 | 必须执行的操作 |
120
- |---------|--------------|
121
- | 目录不存在 | 使用 AskUserQuestion 询问用户是否初始化 git |
122
- | 目录存在 | 继续检查远程仓库 |
123
-
124
- **如果用户同意初始化,立即执行:**
125
- ```bash
126
- git init
127
- ```
128
-
129
- > ⚠️ **此步骤不可跳过** — 如果没有 git 仓库,后续自动提交会失败。
130
-
131
- ### Step 2: 解析任务输入
132
-
133
- **检查 `.openmatrix/tasks-input.json` 是否已存在:**
134
-
135
- | 情况 | 处理方式 |
136
- |------|---------|
137
- | 已存在(来自 `/om:brainstorm`) | 读取文件内容 → **立即执行 Step 5 必选问题**(质量等级、E2E、执行模式) |
138
- | 不存在,但 `.openmatrix/research/context.json` 存在 | 读取研究上下文 → 提取 goals/constraints/deliverables **执行 Step 5 必选问题** |
139
- | 均不存在 | 根据用户输入解析 |
140
-
141
- > ⚠️ **注意**: 即使 `tasks-input.json` 已存在,Step 5 必选问题仍然必须执行!
142
- > - 开发任务:质量等级、E2E、执行模式必须由用户选择
143
- > - 非开发任务:执行模式必须由用户选择
144
- - `$ARGUMENTS` 为任务描述 直接使用
145
- - 无参数 AskUserQuestion 询问任务内容
146
-
147
- **检测研究上下文(当 tasks-input.json 不存在时):**
148
-
149
- ```bash
150
- cat .openmatrix/research/context.json 2>/dev/null || echo "NO_RESEARCH"
151
- ```
152
-
153
- 如果检测到研究上下文:
154
- 1. 读取 `.openmatrix/research/context.json`,提取 `topic`、`domain`、`goals`、`constraints`、`deliverables`、`reportPath`
155
- 2. 读取 `RESEARCH.md` 内容作为领域知识
156
- 3. 告知用户:"🔬 检测到「${domain}」领域研究结果,将作为任务基础"
157
- 4. 在 Step 7 中,AI 只需**确认/补充** goals,而非从头提取
158
- 5. Step 8 写入 `tasks-input.json` 时,将研究 goals 与 AI 补充的 goals 合并
159
- 6. Step 9 的 CLI 调用必须增加 `--research-context @.openmatrix/research/context.json` 参数
160
-
161
- ### Step 3: 智能分析任务类型
162
-
163
- 判断是开发任务还是非开发任务,这决定 Step 5 需要问哪些问题。
164
-
165
- | 任务类型 | 定义 | Step 5 问题 |
166
- |---------|------|------------|
167
- | **开发任务** | 涉及代码编写、测试、Lint、构建等 | 质量等级 + E2E + 执行模式 |
168
- | **非开发任务** | 纯文档、配置、阅读、分析等 | 仅执行模式 |
169
-
170
- **常见任务分类:**
171
- - 开发任务:新功能、Bug修复、重构、添加测试、性能优化
172
- - 非开发任务:写README、更新文档、查看代码、分析日志
173
-
174
- ---
175
-
176
- ### Step 4: 提交文档(必须执行,不可跳过)
177
-
178
- 在开始任何新任务之前,先提交所有已变更的文档文件,确保文档和代码同步提交。
179
-
180
- ```bash
181
- git status --porcelain
182
- ```
183
-
184
- 检查是否有文档变更(包括 `docs/` 目录、所有 `.md` 文件、`.openmatrix/` 下的文档):
185
-
186
- ```bash
187
- git diff --name-only | grep -E '\.md$|^docs/' 2>/dev/null
188
- git ls-files --others --exclude-standard | grep -E '\.md$|^docs/' 2>/dev/null
189
- ```
190
-
191
- 如果有文档变更(未追踪或未提交),执行提交:
192
-
193
- ```bash
194
- git add docs/ .openmatrix/*.md CLAUDE.md README.md README_EN.md
195
- git commit -m "$(cat <<'EOF'
196
- docs: 更新项目文档
197
-
198
- 更新内容: ...
199
-
200
- Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
201
- EOF
202
- )"
203
- ```
204
-
205
- **如果没有文档变更,跳过此步骤继续。**
206
-
207
- > ⚠️ **此步骤不可跳过** — 避免"代码提交了但文档没提交"的情况。
208
-
209
- ---
210
-
211
- ### Step 5: 必选问题(不可跳过,不可使用默认值,必须通过 AskUserQuestion 让用户选择)
212
-
213
- 根据 `goalTypes` 字段判断需要询问哪些问题:
214
-
215
- | goalTypes | 需要询问 |
216
- |-----------|---------|
217
- | `development` | 4.1 质量等级 4.2 E2E → 4.3 执行模式 |
218
- | `testing` | 仅 4.3 执行模式 |
219
- | `documentation` / `other` | 仅 4.3 执行模式 |
220
-
221
- #### 4.1 质量等级(仅 `goalTypes: development`)
222
-
223
- AskUserQuestion: `header: "质量等级"`, `multiSelect: false`
224
-
225
- **question:** 选择质量等级(决定测试覆盖、Lint、安全扫描等要求)
226
-
227
- | label | description |
228
- |-------|-------------|
229
- | `strict` | TDD + >80%覆盖率 + 严格Lint + 安全扫描 生产级代码 |
230
- | `balanced (推荐)` | >60%覆盖率 + Lint + 安全扫描 — 日常开发 |
231
- | `fast` | 无质量门禁 — 快速原型/验证 |
232
-
233
- #### 4.2 E2E 测试(仅 `development` 且选 strict/balanced,选 `fast` 跳过)
234
-
235
- AskUserQuestion: `header: "E2E 测试"`, `multiSelect: false`
236
-
237
- **question:** 是否需要端到端 (E2E) 测试?(适用于 Web/Mobile/GUI 项目,耗时较长)
238
-
239
- | label | description |
240
- |-------|-------------|
241
- | `功能测试 (推荐)` | 验证业务流程正确性,无需浏览器可视化,速度快 |
242
- | `视觉验证` | 需要浏览器可视化验证,可检查页面样式和布局 |
243
- | `不需要` | 仅进行单元测试和集成测试,节省时间 |
244
-
245
- > 功能测试是默认推荐,适用于大多数场景(API/逻辑/数据处理)。
246
- > 视觉验证适用于前端/移动端项目,需要检查 UI 样式、布局、交互效果。
247
-
248
- #### 4.3 执行模式(所有任务必选)
249
-
250
- AskUserQuestion: `header: "执行模式"`, `multiSelect: false`
251
-
252
- **question:** 选择执行模式(控制 AI 执行过程中的审批节点)
253
-
254
- | label | description |
255
- |-------|-------------|
256
- | `全自动执行 (推荐)` | 全自动执行,无需人工审批,遇到阻塞自动 Meeting |
257
- | `关键节点确认` | plan/merge/deploy 时暂停确认 |
258
- | `每阶段确认` | 每个阶段(develop/verify/accept)完成后暂停 |
259
-
260
- ### Step 6: 可选问题(仅复杂任务)
261
-
262
- 根据任务类型,可能需要额外询问:
263
-
264
- - 技术栈偏好
265
- - 文档级别
266
- - 风险评估
267
- - 验收标准
268
-
269
- 展示 AI 生成的执行计划:
270
-
271
- ```
272
- 📋 执行计划
273
- (展示 plan 内容)
274
-
275
- 📊 统计
276
- Goals: N 个(将生成 N个开发 + N个测试 + 审查)
277
- 质量级别: xxx
278
- E2E 测试: 功能测试 / 视觉验证 / 不启用
279
- ```
280
-
281
- ### Step 7: AI 提取 goals + 生成 plan
282
-
283
- 从任务描述中提取:
284
- - **goals**: 至少 3-8 个明确功能目标,每个是独立可交付模块
285
- - **goalTypes**: 为每个 goal 标注类型,影响任务拆分策略:
286
- - `development` — 需要编写代码的功能/模块实现 → 拆分为"实现+测试"任务对
287
- - `testing` — 明确的测试任务(如"编写 E2E 测试"、"所有模块的单元测试")→ 单个测试任务
288
- - `documentation` — 文档编写(如"编写 API 文档"、"更新 README")→ 单个文档任务
289
- - `other` 配置、部署、优化等非编码任务 单个任务
290
- - **constraints**: 技术栈、兼容性等约束
291
- - **deliverables**: 交付物列表
292
- - **plan**: 技术方案、模块划分、接口设计、关键决策
293
-
294
- **研究上下文集成**: 如果已加载研究领域,AI 应基于 `RESEARCH.md` 中的领域知识确认/补充 goals,而非从零提取。`plan` 字段应包含领域技术栈、架构模式等知识。
295
-
296
- **plan 字段格式要求(供系统解析模块):**
297
-
298
- plan 中必须包含以下结构之一,系统将据此拆分为模块级任务:
299
-
300
- **中文格式(推荐):**
301
- ```
302
- ## 架构设计
303
- 1. 用户域:用户注册登录模块
304
- 2. 订单域:订单处理模块
305
- 3. 商品域:商品管理模块
306
- ```
307
-
308
- 或简洁格式:
309
- ```
310
- 3领域模块: 用户、订单、商品
311
- ```
312
-
313
- **英文格式:**
314
- ```
315
- ## Modules
316
- - User module: authentication and profile
317
- - Order module: order processing
318
- - Product module: catalog management
319
- ```
320
-
321
- 或:
322
- ```
323
- 3 modules: User, Order, Product
324
- ```
325
-
326
- > **重要**: 如果 plan 不包含可解析的模块结构,系统将从 goals 中推断模块(仅 `development` 类型 goal),或 fallback 到按 goal 拆分。包含模块结构可获得更精细的依赖分析和并行执行优化。
327
-
328
- **goalTypes 标注示例:**
329
-
330
- | Goal | Type | 理由 |
331
- |------|------|------|
332
- | "项目脚手架: Vite+TS 配置" | development | 需要写代码搭建 |
333
- | "GameLoop 60fps 游戏循环" | development | 功能实现 |
334
- | "所有核心模块的单元测试" | testing | 已是测试任务 |
335
- | "API 文档编写" | documentation | 文档类 |
336
- | "CI/CD 流水线配置" | other | 配置类 |
337
-
338
- ### Step 8: 写入 tasks-input.json
339
-
340
- Write 工具写入 `.openmatrix/tasks-input.json`:
341
-
342
- ```json
343
- {
344
- "title": "任务标题",
345
- "description": "整体描述",
346
- "goals": ["目标1", "目标2", "目标3"],
347
- "goalTypes": ["development", "testing", "documentation"],
348
- "constraints": ["约束1"],
349
- "deliverables": ["src/xxx.ts"],
350
- "plan": "## 技术方案\n1. ...\n2. ...",
351
- "e2eTests": true,
352
- "e2eType": "visual"
353
- }
354
- ```
355
-
356
- > **注意**: `quality`、`mode` 通过 CLI 参数传递。`e2eTests` 和 `e2eType` 可写入 tasks-input.json 或通过 CLI 参数传递。
357
- > **goalTypes** 必须与 goals 数组长度一致,一一对应。
358
- > **研究上下文集成**: 如果检测到 `.openmatrix/research/context.json`,将研究的 goals/constraints/deliverables 作为基础,与 AI 提取的内容合并(去重后)。
359
-
360
- ### Step 9: 调用 CLI 创建任务 ⚠️ 不可跳过
361
-
362
- **根据任务类型选择正确的 CLI 调用:**
363
-
364
- **开发任务**(有质量等级选择):
365
- ```bash
366
- openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality <质量等级> --mode <执行模式> --json
367
- ```
368
-
369
- 如果存在 `.openmatrix/research/context.json`,增加 `--research-context` 参数:
370
- ```bash
371
- openmatrix start --tasks-json @.openmatrix/tasks-input.json --research-context @.openmatrix/research/context.json --quality <质量等级> --mode <执行模式> --json
372
- ```
373
-
374
- 如果启用了 E2E 测试(功能测试),加上 `--e2e-tests`:
375
- ```bash
376
- openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality balanced --mode auto --e2e-tests --json
377
- ```
378
-
379
- 如果选择了视觉验证,加上 `--e2e-tests --e2e-type visual`:
380
- ```bash
381
- openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality balanced --mode auto --e2e-tests --e2e-type visual --json
382
- ```
383
-
384
- **非开发任务**(无质量等级):
385
- ```bash
386
- openmatrix start --tasks-json @.openmatrix/tasks-input.json --mode <执行模式> --json
387
- ```
388
-
389
- 此命令返回 JSON 包含 `subagentTasks` 列表。
390
-
391
- ### Step 10: 读取 subagentTasks
392
-
393
- CLI 返回 JSON 中 `subagentTasks` 数组包含待执行任务。
394
-
395
- ## === 执行阶段(只有此阶段才能写业务代码)===
396
-
397
- ### Step 11: 逐个执行 subagentTasks(禁止中断)
398
-
399
- <LOOP-ENFORCEMENT>
400
- **此步骤是执行循环,必须执行完所有任务后才能停止。**
401
-
402
- **禁止在还有未完成任务时停止** 即使 Agent 返回了大段输出,也必须继续下一个
403
- **禁止询问"是否继续"** 直接执行下一个任务
404
- ❌ **禁止输出"让我知道是否..."后停止** — 继续执行
405
- **禁止因为上下文压缩而忘记剩余任务** 通过 `openmatrix step --json` 重新获取状态
406
-
407
- **文件持久化循环(防止上下文压缩丢失状态):**
408
- ```bash
409
- # 每个 Agent 完成后执行:
410
- # --summary 传入执行摘要,自动追加到全局 context.md
411
- openmatrix complete TASK-XXX --success --summary "决策: xxx; 文件: xxx"
412
-
413
- # 提交验证(防止 commit 静默失败):
414
- git status --porcelain # 检查是否有未提交的文件
415
- # 如果有未提交文件 → 必须手动提交:
416
- git add . && git commit -m "feat(TASK-XXX): 任务标题"
417
-
418
- openmatrix step --json # 获取下一个任务 + 检查是否全部完成
419
- ```
420
- `openmatrix step` 会从磁盘读取真实状态,不依赖上下文记忆。
421
- </LOOP-ENFORCEMENT>
422
-
423
- #### 11.1 歧义检测机制
424
-
425
- **Agent 输出中可能包含歧义报告(JSON 格式):**
426
-
427
- Agent 输出包含以下标记时,表示检测到歧义:
428
- ```
429
- <AMBIGUITY_REPORT>
430
- {
431
- "ambiguities": [
432
- {
433
- "type": "missing_info" | "conflicting_req" | "unclear_scope" | "tech_choice" | "edge_case",
434
- "severity": "critical" | "high" | "medium" | "low",
435
- "description": "歧义描述",
436
- "suggestions": ["建议1", "建议2"]
437
- }
438
- ],
439
- "overallSeverity": "critical" | "high" | "medium" | "low"
440
- }
441
- </AMBIGUITY_REPORT>
442
- ```
443
-
444
- **5 种歧义类型说明:**
445
-
446
- | 类型 | 说明 | 示例 |
447
- |------|------|------|
448
- | `missing_info` | 缺失关键信息 | "未指定数据库类型" |
449
- | `conflicting_req` | 需求冲突 | "既要高性能又要低成本" |
450
- | `unclear_scope` | 范围不清晰 | "是否包含历史数据处理?" |
451
- | `tech_choice` | 技术选型歧义 | "用 REST 还是 GraphQL?" |
452
- | `edge_case` | 边界情况未定义 | "超过限制时如何处理?" |
453
-
454
- #### 11.2 歧义处理策略
455
-
456
- 根据 `overallSeverity` 和执行模式选择处理方式:
457
-
458
- | 执行模式 | Critical/High | Medium/Low |
459
- |---------|--------------|------------|
460
- | **全自动执行** | Meeting + 继续执行 | Meeting + 继续执行 |
461
- | **关键节点确认** | AskUserQuestion | Meeting + 继续执行 |
462
- | **每阶段确认** | AskUserQuestion | Meeting + 继续执行 |
463
-
464
- **Meeting 处理(写入阻塞记录):**
465
- ```bash
466
- # 将歧义信息写入 Meeting 记录,继续执行其他任务
467
- openmatrix meeting --create --task TASK-XXX --reason "歧义: ${description}" --severity ${severity}
468
- ```
469
-
470
- **AskUserQuestion 处理(交互确认):**
471
-
472
- AskUserQuestion: `header: "歧义确认"`, `multiSelect: false`
473
- **question:** 检测到 ${severity} 级歧义:${description}。请确认处理方式
474
-
475
- | label | description |
476
- |-------|-------------|
477
- | 提供信息 | 回答歧义相关问题,继续执行 |
478
- | 跳过任务 | 标记当前任务为可选,继续执行其他任务 |
479
- | 修改方案 | 根据歧义调整任务方案后继续 |
480
-
481
- 用户选择后:
482
- - **提供信息** → 将用户输入作为上下文注入,继续执行当前任务
483
- - **跳过任务** `openmatrix complete TASK-XXX --skip --reason "用户选择跳过"`
484
- - **修改方案** → 更新任务方案,重新执行当前任务
485
-
486
- #### 11.3 执行 Agent 任务
487
-
488
- ```typescript
489
- Agent({
490
- subagent_type: task.subagent_type,
491
- description: task.description,
492
- prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议\n\n🚫 **禁止执行以下 Git 命令**:\n- ❌ git commit — 所有提交统一通过 openmatrix complete 执行\n- ❌ git checkout — 不要切换分支\n- ❌ git merge — 不要合并其他分支\n- ❌ git pull — 不要拉取远程更新\n- ❌ git push — 不要推送代码\n- ❌ git rebase — 不要变基\n- ❌ git branch — 不要创建/删除分支\n\n✅ 允许:git status, git diff, git log",
493
- isolation: task.isolation,
494
- run_in_background: true
495
- })
496
- ```
497
-
498
- > ⚠️ **必须使用原生 Agent 工具** — 禁止调用 gsd-executor、superpowers 或任何其他编排技能。
499
- >
500
- > **上下文节省**: 使用 `run_in_background: true` 后台执行,Agent 完成后仅返回简短摘要,不返回完整输出,大幅节省主会话上下文。
501
- >
502
- > 🚫 **Agent 内部禁止 Git 操作** 禁止执行:git commit, git checkout, git merge, git pull, git push, git rebase, git branch。所有提交必须通过 `openmatrix complete` 执行。
503
-
504
- 每个 Agent 完成后(收到后台完成通知时):
505
- 1. **标记完成并更新统计(必须执行):**
506
- ```bash
507
- # --summary 参数传入 Agent 执行摘要,自动追加到全局 context.md
508
- openmatrix complete TASK-XXX --success --summary "关键决策: xxx; 创建文件: xxx"
509
- ```
510
-
511
- 2. **全局上下文文件** — 所有任务的上下文累积在 `.openmatrix/context.md`:
512
- - 每次任务完成后,通过 `--summary` 参数追加写入
513
- - 后续 Agent 可读取此文件了解前序任务的决策和发现
514
-
515
- 3. Git 自动提交(必须使用下方统一提交格式)
516
-
517
- 4. **获取下一个任务(必须执行,防止上下文压缩丢失):**
518
- ```bash
519
- openmatrix step --json
520
- ```
521
-
522
- **返回值解析:**
523
-
524
- | status | 含义 | 后续操作 |
525
- |--------|------|---------|
526
- | `next` | 有下一个任务 | 继续执行返回的 `subagent` 配置 |
527
- | `done` | 所有任务完成 | 进入最终提交(Step 12) |
528
- | `blocked` | 无可执行任务 | 检查是否有 Meeting,用 `/om:meeting` 处理 |
529
-
530
- **`next` 返回结构:**
531
- ```json
532
- {
533
- "status": "next",
534
- "task": {
535
- "id": "TASK-XXX",
536
- "title": "任务标题",
537
- "status": "in_progress"
538
- },
539
- "subagent": {
540
- "subagent_type": "general-purpose",
541
- "description": "任务描述",
542
- "prompt": "完整 prompt",
543
- "isolation": "worktree",
544
- "timeout": 120000
545
- },
546
- "statistics": {
547
- "total": 5,
548
- "completed": 2,
549
- "remaining": 3,
550
- "failed": 0
551
- }
552
- }
553
- ```
554
-
555
- **使用返回值执行下一个 Agent:**
556
- ```typescript
557
- // step 返回的 subagent 对象直接用于 Agent 工具
558
- const stepResult = JSON.parse(/* openmatrix step --json 输出 */);
559
- if (stepResult.status === 'next') {
560
- Agent({
561
- subagent_type: stepResult.subagent.subagent_type,
562
- description: stepResult.subagent.description,
563
- prompt: stepResult.subagent.prompt + "\n\n⚠️ ...",
564
- isolation: stepResult.subagent.isolation,
565
- run_in_background: true
566
- })
567
- }
568
- ```
569
-
570
- 5. 检查审批点(auto 模式自动批准,其他模式按配置暂停)
571
-
572
- 6. **审批点处理(根据执行模式):**
573
-
574
- 根据用户选择的执行模式处理审批:
575
-
576
- | 执行模式 | 审批点 | 处理方式 |
577
- |---------|--------|---------|
578
- | 全自动执行 | 无 | 自动批准所有操作 |
579
- | 关键节点确认 | plan, merge, deploy | 到达审批点时暂停,交互式确认 |
580
- | 每阶段确认 | develop, verify, accept | 每个阶段完成后暂停,交互式确认 |
581
-
582
- **交互式审批流程(非全自动模式):**
583
-
584
- 当到达审批点时,使用 `openmatrix approve --json`(不带 ID)查看待审批项,**先在界面展示审批内容摘要**,再用简短 AskUserQuestion 请求确认:
585
-
586
- AskUserQuestion: `header: "审批"`, `multiSelect: false`
587
- **question:** 是否批准此审批请求?(详情已展示在上方)
588
-
589
- | label | description |
590
- |-------|-------------|
591
- | 批准 | 同意继续执行 |
592
- | 拒绝 | 拒绝并停止执行 |
593
- | 查看详情 | 查看完整审批内容后再决定 |
594
-
595
- 用户选择后,执行对应命令:
596
- - 批准: `openmatrix approve <approval-id> -d approve --json`
597
- - 拒绝: `openmatrix approve <approval-id> -d reject --json`
598
- - 修改: `openmatrix approve <approval-id> -d modify -c "修改建议" --json`
599
- - 查看详情: 读取 `.openmatrix/approvals/<approval-id>.json` 并展示完整内容
600
-
601
-
602
- **Agent 上下文共享机制 (Agent Memory):**
603
-
604
- 每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
605
- 这确保 Agent 之间共享知识、避免重复工作、保持决策一致性。
606
-
607
- ```
608
- Agent-1 完成 → 写入 context.md → Agent-2 读取 Agent-1 的上下文 → 写入 context.md → ...
609
- ```
610
-
611
- **中断恢复:** 如果会话中断,再次执行 `/om:start` 时:
612
- 1. 读取 `.openmatrix/state.json`
613
- 2. 如果 `status === 'running'`,读取所有任务,找到 status 不是 completed 的任务
614
- 3. 从中断的任务继续执行,不需要重新开始
615
-
616
- **Meeting 处理(auto 模式):** 记录并跳过,执行完成后统一展示。
617
-
618
- **执行完成后:**
619
-
620
- ### Meeting 机制
621
-
622
- 在「全自动执行」模式下:
623
- - 遇到阻塞任务时,创建 Meeting 记录并跳过该任务
624
- - 继续执行其他独立任务,最大化并行度
625
- - 所有非阻塞任务完成后,提示用户使用 `/om:meeting` 统一处理阻塞问题
626
-
627
- ```bash
628
- openmatrix meeting --list
629
- ```
630
-
631
- 如有 pending Meeting,交互式处理。
632
-
633
- 所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
634
- ```bash
635
- git add . && git commit -m "$(cat <<'EOF'
636
- feat: 完成所有任务 - 任务总标题
637
-
638
- 改动点1
639
- 改动点2
640
-
641
- 影响范围: 全部模块
642
- 文件改动: src/xxx.ts, src/yyy.ts
643
-
644
- Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
645
- EOF
646
- )"
647
- ```
648
-
649
- **Git 提交格式规范(所有提交必须遵守):**
650
-
651
- ```
652
- <type>(TASK-XXX): 简短描述
653
-
654
- 改动点1
655
- 改动点2
656
-
657
- 影响范围: 模块名
658
- 文件改动: 文件1, 文件2
659
-
660
- Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
661
- ```
662
-
663
- **type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
664
- **禁止使用 emoji**,使用纯文本格式
665
-
666
- </process>
667
-
668
- <arguments>
669
- $ARGUMENTS
670
- </arguments>
671
-
672
- <examples>
673
- /om:start
674
- /om:start docs/task.md
675
- /om:start "实现用户登录功能"
676
- </examples>
677
-
678
- <notes>
679
- ## 质量级别
680
-
681
- | 级别 | TDD | 覆盖率 | Lint | 安全 |
682
- |------|:---:|:------:|:----:|:----:|
683
- | strict | ✅ | >80% | ✅ | ✅ |
684
- | balanced | ❌ | >60% | ✅ | ✅ |
685
- | fast | ❌ | 无 | ❌ | ❌ |
686
-
687
- ## 执行流程
688
-
689
- ```
690
- Step 1-3: 初始化 + 解析输入 + 分析类型 → Step 4: 提交文档 → Step 5-6: 问答 + 确认 → Step 7: 提取 goals + plan → Step 8: 写入 tasks-input.json
691
- → Step 9: openmatrix start --tasks-json (必须) → Step 10: 读取 subagentTasks
692
- → Step 11: Agent 逐个执行 (只有这里写代码)
693
- ```
694
-
695
- ## Git 提交格式
696
-
697
- ```
698
- <type>(TASK-XXX): 简短描述
699
-
700
- 改动点1 / 改动点2
701
- 影响范围: 模块名
702
- 文件改动: 文件1, 文件2
703
- Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
704
- ```
705
-
706
- type: feat/fix/test/refactor/docs。禁止 emoji。
707
- </notes>
1
+ ---
2
+ name: om:start
3
+ description: "Use when starting a new development task cycle with interactive questions. Triggers on TASK-EXECUTION intent: user wants to start implementing a clearly-defined task with full workflow support. Expects plan.md + tasks-input.json to already exist (generated by /om:plan). DO NOT trigger on: vague ideas (use brainstorm), status checks, debugging, or pure questions. Intent signals: user describes a concrete task to build/fix/refactor, has clear goal, or wants to start execution workflow."
4
+ ---
5
+
6
+ <INTENT-JUDGMENT>
7
+ ## 意图判断指南
8
+
9
+ **AI 应根据用户语义判断意图:**
10
+
11
+ ### 触发信号(任务执行意图)
12
+
13
+ - 用户想开始明确的开发任务
14
+ - 任务描述清晰可执行
15
+ - 有具体的功能目标
16
+ - 修复已知 bug(知道要改什么)
17
+
18
+ ### 不触发信号
19
+
20
+ | 用户意图 | 应调用 |
21
+ |---------|--------|
22
+ | 需求不明确 | /om:brainstorm |
23
+ | 需要生成技术方案 | /om:plan |
24
+ | 调查问题原因 | /om:debug |
25
+ | 查看进度 | /om:status |
26
+
27
+ ### 示例判断
28
+
29
+ | 用户消息 | 判断 | 结果 |
30
+ |---------|------|------|
31
+ | "开始实现登录功能" | 任务执行意图 | 触发 |
32
+ | "修复这个 bug"(明确位置)| 执行意图明确 | 触发 |
33
+ | "重构 API 模块" | 任务意图 | 触发 |
34
+ | "登录怎么设计" | 设计意图 | /om:brainstorm |
35
+ | "生成技术方案" | 方案生成 | /om:plan |
36
+ | "为什么出错了" | 调查意图 | /om:debug |
37
+ </INTENT-JUDGMENT>
38
+
39
+ <NO-OTHER-SKILLS>
40
+ **绝对禁止**调用以下任何技能或工具:
41
+ - gsd-executor、gsd:* GSD 相关技能
42
+ - superpowers:* 等 superpowers 相关技能
43
+ - 任何其他任务编排相关的 Agent 或工具
44
+
45
+ **Step 9 只能使用 Agent 工具** — 直接调用 Agent,不通过任何中间层。
46
+
47
+ 违规调用将导致执行失败。
48
+
49
+ **相关技能**: `/om:brainstorm` (需求探索) | `/om:plan` (方案生成) | `/om:auto` (全自动) | `/om:meeting` (阻塞处理) | `/om:status` (状态查看) | `/om:report` (报告)
50
+ </NO-OTHER-SKILLS>
51
+
52
+ <MANDATORY-EXECUTION-ORDER>
53
+ ## 执行顺序 - 必须严格按此顺序,不得跳过任何步骤
54
+
55
+ ```
56
+ Step 1: 初始化 .openmatrix 目录
57
+ Step 2: 验证前置条件(plan.md + tasks-input.json 必须已存在)
58
+ Step 3: 智能分析任务类型(开发/非开发)
59
+ Step 4: 提交文档(git add docs/ + 所有 .md 文件, commit)
60
+ Step 5: 必选问题(开发任务:质量等级; 严格模式可选E2E; 非开发:跳过)<- 不可跳过
61
+ Step 6: 可选问题(仅复杂开发任务)+ 展示执行计划
62
+ Step 7: 调用 openmatrix start --tasks-json <- 必须完成,不可跳过
63
+ Step 8: 从 CLI 返回结果中读取 subagentTasks 列表 <- 必须完成
64
+ Step 9: 逐个执行 subagentTasks(调用 Agent 工具) <- 只有这步才能写代码
65
+ ```
66
+
67
+ **违反以下任一规则将导致任务执行失败:**
68
+
69
+ - **禁止在 Step 9 之前写任何业务代码** — 所有代码必须在 Step 9 通过 Agent 执行
70
+ - **禁止跳过 Step 5 必选问题** — 开发任务必须选质量等级,非开发任务无需问答
71
+ - **禁止跳过 Step 7** — 必须调用 CLI,不能用其他方式代替
72
+ - **禁止自行规划 Phase** — 任务由 CLI 的 TaskPlanner 拆分,AI 只提取 goals
73
+ - **禁止用 Bash/npm/write 直接写业务代码** — 业务代码只能通过 Step 9 的 Agent 执行
74
+ - **禁止调用 gsd-executor 或其他编排技能** — 必须用原生 Agent 工具
75
+ - **禁止在 start 中生成 plan** — plan 由 /om:plan 生成,start 只负责执行
76
+ </MANDATORY-EXECUTION-ORDER>
77
+
78
+ <objective>
79
+ 读取已有的 plan.md + tasks-input.json,通过必选问答确定执行配置(开发任务还需确定质量等级、E2E测试),确认后通过 CLI 拆分任务并执行。
80
+
81
+ 本 Skill 只做执行,不做方案生成。如果 plan.md tasks-input.json 不存在,引导用户先执行 /om:plan。
82
+
83
+ **Step 5 必选问题(开发任务):**
84
+ 1. 质量等级(严格模式/平衡模式/快速模式)
85
+ 2. E2E 测试(仅严格模式可选,其他模式自动跳过)
86
+ 3. 执行模式根据质量等级自动推断(无需问答)
87
+
88
+ **非开发任务**(文档、配置等)无需问答,直接使用全自动执行。
89
+ </objective>
90
+
91
+ <process>
92
+
93
+ ## === 准备阶段(此阶段不得写任何业务代码)===
94
+
95
+ ### Step 1: 智能检测状态
96
+
97
+ 检查 `.openmatrix/` 目录和 `state.json` 的状态:
98
+
99
+ | 状态 | 处理方式 |
100
+ |------|---------|
101
+ | `.openmatrix/` 不存在 | 全新初始化: `openmatrix start --init-only` |
102
+ | `status: initialized` | 正常继续(首次使用) |
103
+ | `status: completed` | 提示用户:开始新任务会清理旧数据,确认后继续 |
104
+ | `status: running` | 提示用户先完成或暂停当前任务,然后退出 |
105
+ | `status: paused` | 询问用户:继续上次任务(->`/om:resume`)还是开始新任务 |
106
+ | `status: failed` | 询问用户:重试失败任务(->`/om:retry`)还是开始新任务 |
107
+
108
+ **如果是全新初始化:**
109
+ ```bash
110
+ openmatrix start --init-only
111
+ ```
112
+
113
+ **检查 Git 仓库(必须执行,不可跳过):**
114
+
115
+ ```bash
116
+ # 检查是否有 .git 目录(必须执行此命令)
117
+ ls -la .git 2>/dev/null || echo "NOT_INITIALIZED"
118
+ ```
119
+
120
+ **根据检查结果处理:**
121
+
122
+ | 检查结果 | 必须执行的操作 |
123
+ |---------|--------------|
124
+ | 目录不存在 | 使用 AskUserQuestion 询问用户是否初始化 git |
125
+ | 目录存在 | 继续检查远程仓库 |
126
+
127
+ **如果用户同意初始化,立即执行:**
128
+ ```bash
129
+ git init
130
+ ```
131
+
132
+ ### Step 2: 验证前置条件
133
+
134
+ **检查 plan.md 和 tasks-input.json 是否已存在:**
135
+
136
+ ```bash
137
+ cat .openmatrix/tasks-input.json 2>/dev/null || echo "NOT_FOUND"
138
+ cat .openmatrix/plan.md 2>/dev/null || echo "NOT_FOUND"
139
+ ```
140
+
141
+ | 情况 | 处理方式 |
142
+ |------|---------|
143
+ | 两个都存在 | 读取内容,继续 Step 3 |
144
+ | 只有 tasks-input.json | 继续执行(plan.md 可选) |
145
+ | 只有 plan.md | 提示:需要 tasks-input.json,引导执行 `/om:plan` |
146
+ | 都不存在,有 `$ARGUMENTS` | 自动调用 `/om:plan` 生成方案(传入参数) |
147
+ | 都不存在,无参数 | 引导执行 `/om:plan` |
148
+
149
+ **如果都存在,读取 tasks-input.json:**
150
+
151
+ ```bash
152
+ cat .openmatrix/tasks-input.json
153
+ ```
154
+
155
+ 提取关键字段:`title`、`goals`、`goalTypes`、`goalComplexity`。
156
+
157
+ **检测研究上下文:**
158
+
159
+ ```bash
160
+ cat .openmatrix/research/context.json 2>/dev/null || echo "NO_RESEARCH"
161
+ ```
162
+
163
+ 如果检测到研究上下文,告知用户并将 `--research-context` 参数传递给 CLI。
164
+
165
+ ### Step 3: 智能分析任务类型
166
+
167
+ 根据 `goalTypes` 字段判断是开发任务还是非开发任务,这决定 Step 5 需要问哪些问题。
168
+
169
+ | 任务类型 | 定义 | Step 5 问题 |
170
+ |---------|------|------------|
171
+ | **开发任务** | goalTypes 包含 `development` | 质量等级 + E2E + 执行模式 |
172
+ | **非开发任务** | goalTypes 仅有 `testing`/`documentation`/`other` | 仅执行模式 |
173
+
174
+ ---
175
+
176
+ ### Step 4: 提交文档(必须执行,不可跳过)
177
+
178
+ 在开始任何新任务之前,先提交所有已变更的文档文件,确保文档和代码同步提交。
179
+
180
+ ```bash
181
+ git status --porcelain
182
+ ```
183
+
184
+ 检查是否有文档变更(包括 `docs/` 目录、所有 `.md` 文件):
185
+
186
+ ```bash
187
+ git diff --name-only | grep -E '\.md$|^docs/' 2>/dev/null
188
+ git ls-files --others --exclude-standard | grep -E '\.md$|^docs/' 2>/dev/null
189
+ ```
190
+
191
+ 如果有文档变更(未追踪或未提交),执行提交:
192
+
193
+ ```bash
194
+ git add docs/ .openmatrix/*.md CLAUDE.md README.md README_EN.md
195
+ git commit -m "$(cat <<'EOF'
196
+ docs: 更新项目文档
197
+
198
+ 更新内容: ...
199
+
200
+ Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
201
+ EOF
202
+ )"
203
+ ```
204
+
205
+ **如果没有文档变更,跳过此步骤继续。**
206
+
207
+ ---
208
+
209
+ ### Step 5: 必选问题(不可跳过,不可使用默认值,必须通过 AskUserQuestion 让用户选择)
210
+
211
+ 根据 `goalTypes` 字段判断需要询问哪些问题:
212
+
213
+ | goalTypes | 需要询问 |
214
+ |-----------|---------|
215
+ | `development` | 5.1 质量等级 -> 5.2 E2E(仅严格模式可选) |
216
+ | `testing` | 无需问答,直接进入 Step 7 |
217
+ | `documentation` / `other` | 无需问答,直接进入 Step 7 |
218
+
219
+ #### 5.1 质量等级(仅 `goalTypes: development`)
220
+
221
+ AskUserQuestion: `header: "质量等级"`, `multiSelect: false`
222
+
223
+ **question:** 选择质量等级(决定测试覆盖、Lint、安全扫描等要求)
224
+
225
+ | label | description |
226
+ |-------|-------------|
227
+ | `严格模式` | TDD + >80%覆盖率 + 严格Lint + 安全扫描 — 生产级代码 |
228
+ | `平衡模式 (推荐)` | >60%覆盖率 + Lint + 安全扫描 — 日常开发 |
229
+ | `快速模式` | 无质量门禁快速原型/验证 |
230
+
231
+ **质量等级选择后的自动推断规则:**
232
+
233
+ | 模式 | E2E | AI 验收 | 执行方式 |
234
+ |-----|-----|---------|---------|
235
+ | 严格模式 | 可选问一句(Step 5.2) | 必须 | TDD(先测试后开发) |
236
+ | 平衡模式 | 不需要(自动跳过) | 必须 | 先开发后测试 |
237
+ | 快速模式 | 不需要(自动跳过) | 不需要 | 直接开发 |
238
+
239
+ #### 5.2 E2E 测试(仅 `严格模式` 可选,其他模式自动跳过)
240
+
241
+ **只有选择「严格模式」时才询问此问题,平衡模式和快速模式自动推断为「不需要」。**
242
+
243
+ AskUserQuestion: `header: "E2E 测试"`, `multiSelect: false`
244
+
245
+ **question:** 是否需要端到端 (E2E) 测试?(适用于 Web/Mobile/GUI 项目,耗时较长)
246
+
247
+ | label | description |
248
+ |-------|-------------|
249
+ | `功能测试 (推荐)` | 验证业务流程正确性,无需浏览器可视化,速度快 |
250
+ | `视觉验证` | 需要浏览器可视化验证,可检查页面样式和布局 |
251
+ | `不需要` | 仅进行单元测试和集成测试,节省时间 |
252
+
253
+ #### 执行模式自动推断
254
+
255
+ **执行模式不再通过问答选择,而是根据质量等级自动推断:**
256
+
257
+ - **严格模式** 全自动执行 + TDD 流程
258
+ - **平衡模式** 全自动执行 + 先开发后测试
259
+ - **快速模式** → 全自动执行 + 直接开发
260
+
261
+ **非开发任务**(testing/documentation/other)默认使用「全自动执行」。
262
+
263
+ ### Step 6: 可选问题(仅复杂任务)
264
+
265
+ 根据任务类型,可能需要额外询问:
266
+
267
+ - 技术栈偏好
268
+ - 文档级别
269
+ - 风险评估
270
+ - 验收标准
271
+
272
+ 展示执行计划:
273
+
274
+ ```
275
+ 执行计划
276
+
277
+ Goals:
278
+ 1. [development/high] 目标1
279
+ 2. [development/medium] 目标2
280
+ 3. [testing/medium] 目标3
281
+
282
+ 统计
283
+ Goals: N 个(将生成 N个开发 + N个测试 + 审查)
284
+ 质量级别: xxx
285
+ E2E 测试: 功能测试 / 视觉验证 / 不启用
286
+ 技术方案: .openmatrix/plan.md
287
+ ```
288
+
289
+ ### Step 7: 调用 CLI 创建任务(不可跳过)
290
+
291
+ **根据质量等级自动设置执行参数:**
292
+
293
+ | 质量等级 | CLI 参数 | 执行方式 |
294
+ |---------|---------|---------|
295
+ | 严格模式 | `--quality strict --mode auto` | TDD 流程 |
296
+ | 平衡模式 | `--quality balanced --mode auto` | 先开发后测试 |
297
+ | 快速模式 | `--quality fast --mode auto` | 直接开发 |
298
+
299
+ **开发任务**(有质量等级选择):
300
+ ```bash
301
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality <质量等级> --mode auto --json
302
+ ```
303
+
304
+ 如果存在 `.openmatrix/research/context.json`,增加 `--research-context` 参数:
305
+ ```bash
306
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --research-context @.openmatrix/research/context.json --quality <质量等级> --mode auto --json
307
+ ```
308
+
309
+ 如果启用了 E2E 测试(功能测试),加上 `--e2e-tests`:
310
+ ```bash
311
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality strict --mode auto --e2e-tests --json
312
+ ```
313
+
314
+ 如果选择了视觉验证,加上 `--e2e-tests --e2e-type visual`:
315
+ ```bash
316
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --quality strict --mode auto --e2e-tests --e2e-type visual --json
317
+ ```
318
+
319
+ **非开发任务**(无质量等级,默认全自动执行):
320
+ ```bash
321
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --mode auto --json
322
+ ```
323
+
324
+ 此命令返回 JSON 包含 `subagentTasks` 列表。
325
+
326
+ ### Step 8: 读取 subagentTasks
327
+
328
+ CLI 返回 JSON 中 `subagentTasks` 数组包含待执行任务。
329
+
330
+ ## === 执行阶段(只有此阶段才能写业务代码)===
331
+
332
+ ### Step 9: 逐个执行 subagentTasks(禁止中断)
333
+
334
+ <LOOP-ENFORCEMENT>
335
+ **此步骤是执行循环,必须执行完所有任务后才能停止。**
336
+
337
+ - **禁止在还有未完成任务时停止** — 即使 Agent 返回了大段输出,也必须继续下一个
338
+ - **禁止询问"是否继续"** 直接执行下一个任务
339
+ - **禁止输出"让我知道是否..."后停止** — 继续执行
340
+ - **禁止因为上下文压缩而忘记剩余任务** 通过 `openmatrix step --json` 重新获取状态
341
+
342
+ **文件持久化循环(防止上下文压缩丢失状态):**
343
+ ```bash
344
+ # 每个 Agent 完成后执行:
345
+ # --summary 传入执行摘要,自动追加到全局 context.md
346
+ openmatrix complete TASK-XXX --success --summary "决策: xxx; 文件: xxx"
347
+
348
+ # 提交验证(防止 commit 静默失败):
349
+ git status --porcelain # 检查是否有未提交的文件
350
+ # 如果有未提交文件 -> 必须手动提交:
351
+ git add . && git commit -m "feat(TASK-XXX): 任务标题"
352
+
353
+ openmatrix step --json # 获取下一个任务 + 检查是否全部完成
354
+ ```
355
+ `openmatrix step` 会从磁盘读取真实状态,不依赖上下文记忆。
356
+ </LOOP-ENFORCEMENT>
357
+
358
+ #### 9.1 歧义检测机制
359
+
360
+ **Agent 输出中可能包含歧义报告(JSON 格式):**
361
+
362
+ Agent 输出包含以下标记时,表示检测到歧义:
363
+ ```
364
+ <AMBIGUITY_REPORT>
365
+ {
366
+ "ambiguities": [
367
+ {
368
+ "type": "missing_info" | "conflicting_req" | "unclear_scope" | "tech_choice" | "edge_case",
369
+ "severity": "critical" | "high" | "medium" | "low",
370
+ "description": "歧义描述",
371
+ "suggestions": ["建议1", "建议2"]
372
+ }
373
+ ],
374
+ "overallSeverity": "critical" | "high" | "medium" | "low"
375
+ }
376
+ </AMBIGUITY_REPORT>
377
+ ```
378
+
379
+ #### 9.2 歧义处理策略
380
+
381
+ 根据 `overallSeverity` 和执行模式选择处理方式:
382
+
383
+ | 执行模式 | Critical/High | Medium/Low |
384
+ |---------|--------------|------------|
385
+ | **全自动执行** | Meeting + 继续执行 | Meeting + 继续执行 |
386
+ | **关键节点确认** | AskUserQuestion | Meeting + 继续执行 |
387
+ | **每阶段确认** | AskUserQuestion | Meeting + 继续执行 |
388
+
389
+ **Meeting 处理(写入阻塞记录):**
390
+ ```bash
391
+ openmatrix meeting --create --task TASK-XXX --reason "歧义: ${description}" --severity ${severity}
392
+ ```
393
+
394
+ **AskUserQuestion 处理(交互确认):**
395
+
396
+ AskUserQuestion: `header: "歧义确认"`, `multiSelect: false`
397
+ **question:** 检测到 ${severity} 级歧义:${description}。请确认处理方式
398
+
399
+ | label | description |
400
+ |-------|-------------|
401
+ | 提供信息 | 回答歧义相关问题,继续执行 |
402
+ | 跳过任务 | 标记当前任务为可选,继续执行其他任务 |
403
+ | 修改方案 | 根据歧义调整任务方案后继续 |
404
+
405
+ #### 9.3 执行 Agent 任务
406
+
407
+ **Skill 感知执行:**
408
+
409
+ 执行每个任务前,AI 应根据任务内容判断是否需要调用相关 skill 来增强执行质量。
410
+
411
+ 可用 skill 列表(AI 自行判断是否适用):
412
+ - `om:test` — 测试生成与验证循环
413
+ - `frontend-design` 前端/UI 设计与实现
414
+ - `om:research` 领域研究
415
+ - 其他已安装的 skill
416
+
417
+ **判断流程:**
418
+ 1. 读取任务的 `agentType`、`title`、`description`
419
+ 2. AI 自行判断该任务是否匹配某个 skill 的触发条件
420
+ 3. 如果匹配,在 Agent prompt 中注入该 skill 的核心指令或先调用对应 CLI 获取上下文数据
421
+ 4. 如果不匹配任何 skill,直接执行
422
+
423
+ **tester 任务验证循环(om:test 逻辑):**
424
+
425
+ AI 判断任务需要 om:test 流程时:
426
+
427
+ 1. 先调用 CLI 获取项目测试配置:
428
+ ```bash
429
+ openmatrix test --json
430
+ ```
431
+
432
+ 2. 调用 Agent 生成测试(prompt 中已包含原始扫描数据):
433
+ ```typescript
434
+ Agent({
435
+ subagent_type: task.subagent_type,
436
+ description: task.description,
437
+ prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议\n\n🚫 **禁止执行以下 Git 命令**:\n- ❌ git commit\n- ❌ git checkout/merge/pull/push/rebase/branch\n\n✅ 允许:git status, git diff, git log",
438
+ run_in_background: true
439
+ })
440
+ ```
441
+
442
+ 3. Agent 完成后,自动验证测试:
443
+ ```bash
444
+ npm test -- --run 2>&1
445
+ ```
446
+
447
+ 4. 验证失败时自动重试(最多 3 次):
448
+ - 将失败输出传给新 Agent 修复测试
449
+ - 重新验证
450
+ - 3 次失败后标记为 blocked,创建 Meeting
451
+
452
+ **默认执行方式(无特殊 skill 匹配时):**
453
+
454
+ ```typescript
455
+ Agent({
456
+ subagent_type: task.subagent_type,
457
+ description: task.description,
458
+ prompt: task.prompt + "\n\n⚠️ 完成后请输出简短摘要(不超过3行):\n1. 关键决策\n2. 创建/修改的文件\n3. 对后续任务的建议\n\n🚫 **禁止执行以下 Git 命令**:\n- ❌ git commit — 所有提交统一通过 openmatrix complete 执行\n- ❌ git checkout — 不要切换分支\n- ❌ git merge — 不要合并其他分支\n- ❌ git pull — 不要拉取远程更新\n- ❌ git push — 不要推送代码\n- ❌ git rebase — 不要变基\n- ❌ git branch — 不要创建/删除分支\n\n✅ 允许:git status, git diff, git log",
459
+ isolation: task.isolation,
460
+ run_in_background: true
461
+ })
462
+ ```
463
+
464
+ 每个 Agent 完成后(收到后台完成通知时):
465
+ 1. **标记完成并更新统计(必须执行):**
466
+ ```bash
467
+ openmatrix complete TASK-XXX --success --summary "关键决策: xxx; 创建文件: xxx"
468
+ ```
469
+
470
+ 2. **全局上下文文件** — 所有任务的上下文累积在 `.openmatrix/context.md`:
471
+ - 每次任务完成后,通过 `--summary` 参数追加写入
472
+ - 后续 Agent 可读取此文件了解前序任务的决策和发现
473
+
474
+ 3. Git 自动提交(必须使用下方统一提交格式)
475
+
476
+ 4. **获取下一个任务(必须执行,防止上下文压缩丢失):**
477
+ ```bash
478
+ openmatrix step --json
479
+ ```
480
+
481
+ **返回值解析:**
482
+
483
+ | status | 含义 | 后续操作 |
484
+ |--------|------|---------|
485
+ | `next` | 有下一个任务 | 继续执行返回的 `subagent` 配置 |
486
+ | `done` | 所有任务完成 | 进入最终提交 |
487
+ | `blocked` | 无可执行任务 | 检查是否有 Meeting,用 `/om:meeting` 处理 |
488
+
489
+ 5. **审批点处理(根据执行模式):**
490
+
491
+ | 执行模式 | 审批点 | 处理方式 |
492
+ |---------|--------|---------|
493
+ | 全自动执行 | 无 | 自动批准所有操作 |
494
+ | 关键节点确认 | plan, merge, deploy | 到达审批点时暂停,交互式确认 |
495
+ | 每阶段确认 | develop, verify, accept | 每个阶段完成后暂停,交互式确认 |
496
+
497
+ **Agent 上下文共享机制 (Agent Memory):**
498
+
499
+ 每个 Agent 执行时会自动接收前序 Agent 的上下文信息(通过 `context.md` 文件)。
500
+
501
+ ```
502
+ Agent-1 完成 -> 写入 context.md -> Agent-2 读取 Agent-1 的上下文 -> 写入 context.md -> ...
503
+ ```
504
+
505
+ **中断恢复:** 如果会话中断,再次执行 `/om:start` 时:
506
+ 1. 读取 `.openmatrix/state.json`
507
+ 2. 如果 `status === 'running'`,读取所有任务,找到 status 不是 completed 的任务
508
+ 3. 从中断的任务继续执行,不需要重新开始
509
+
510
+ **Meeting 处理(auto 模式):** 记录并跳过,执行完成后统一展示。
511
+
512
+ **执行完成后:**
513
+
514
+ ### Meeting 机制
515
+
516
+ 在「全自动执行」模式下:
517
+ - 遇到阻塞任务时,创建 Meeting 记录并跳过该任务
518
+ - 继续执行其他独立任务,最大化并行度
519
+ - 所有非阻塞任务完成后,提示用户使用 `/om:meeting` 统一处理阻塞问题
520
+
521
+ ```bash
522
+ openmatrix meeting --list
523
+ ```
524
+
525
+ 如有 pending Meeting,交互式处理。
526
+
527
+ 所有任务完成后,执行最终 Git 提交(**必须使用 HEREDOC 格式**):
528
+ ```bash
529
+ git add . && git commit -m "$(cat <<'EOF'
530
+ feat: 完成所有任务 - 任务总标题
531
+
532
+ 改动点1
533
+ 改动点2
534
+
535
+ 影响范围: 全部模块
536
+ 文件改动: src/xxx.ts, src/yyy.ts
537
+
538
+ Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
539
+ EOF
540
+ )"
541
+ ```
542
+
543
+ **Git 提交格式规范(所有提交必须遵守):**
544
+
545
+ ```
546
+ <type>(TASK-XXX): 简短描述
547
+
548
+ 改动点1
549
+ 改动点2
550
+
551
+ 影响范围: 模块名
552
+ 文件改动: 文件1, 文件2
553
+
554
+ Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
555
+ ```
556
+
557
+ **type 映射:** feat(新功能) / fix(修复) / test(测试) / refactor(重构) / docs(文档)
558
+ **禁止使用 emoji**,使用纯文本格式
559
+
560
+ </process>
561
+
562
+ <arguments>
563
+ $ARGUMENTS
564
+ </arguments>
565
+
566
+ <examples>
567
+ /om:start
568
+ /om:start "实现用户登录功能"
569
+ </examples>
570
+
571
+ <notes>
572
+ ## 流程定位
573
+
574
+ ```
575
+ 需求 -> brainstorm (澄清需求) -> plan (生成方案) -> start (执行) -> end
576
+ 需求 -> brainstorm (澄清需求) -> plan (生成方案) -> auto (全自动执行) -> end
577
+ ```
578
+
579
+ start auto 在同一位置,区别在于 start 有交互审批,auto 零交互。前置条件:
580
+ - `.openmatrix/plan.md` 技术方案(由 /om:plan 生成)
581
+ - `.openmatrix/tasks-input.json` — 结构化元数据(由 /om:plan 生成)
582
+
583
+ 如果前置条件不满足,引导用户执行 `/om:plan`。
584
+
585
+ ## 质量级别
586
+
587
+ | 级别 | TDD | 覆盖率 | Lint | 安全 | 执行方式 |
588
+ |------|:---:|:------:|:----:|:----:|:--------:|
589
+ | 严格模式 | Y | >80% | Y | Y | TDD |
590
+ | 平衡模式 | N | >60% | Y | Y | 先开发后测试 |
591
+ | 快速模式 | N | 无 | N | N | 直接开发 |
592
+
593
+ ## 执行流程
594
+
595
+ ```
596
+ Step 1-2: 初始化 + 验证前置条件 -> Step 3-4: 分析类型 + 提交文档 -> Step 5-6: 问答 + 确认
597
+ -> Step 7: openmatrix start --tasks-json (必须) -> Step 8: 读取 subagentTasks
598
+ -> Step 9: Agent 逐个执行 (只有这里写代码)
599
+ ```
600
+
601
+ ## 自动推断规则
602
+
603
+ | 质量等级 | E2E 问题 | AI 验收 | 执行模式 |
604
+ |---------|---------|---------|---------|
605
+ | 严格模式 | 可选问一句 | 必须 | 全自动 + TDD |
606
+ | 平衡模式 | 不需要 | 必须 | 全自动 + 先开发后测试 |
607
+ | 快速模式 | 不需要 | 不需要 | 全自动 + 直接开发 |
608
+
609
+ ## Git 提交格式
610
+
611
+ ```
612
+ <type>(TASK-XXX): 简短描述
613
+
614
+ 改动点1 / 改动点2
615
+ 影响范围: 模块名
616
+ 文件改动: 文件1, 文件2
617
+ Co-Authored-By: OpenMatrix https://github.com/bigfish1913/openmatrix
618
+ ```
619
+
620
+ type: feat/fix/test/refactor/docs。禁止 emoji。
621
+ </notes>