openmatrix 0.1.49 → 0.1.51

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,171 +1,666 @@
1
- ---
2
- name: om:start
3
- description: 启动新的任务执行周期
4
- ---
5
-
6
- <EXTREMELY-IMPORTANT>
7
- **任何可以拆分为多个步骤的任务,都必须使用 /om:start 执行!**
8
-
9
- 禁止: 直接写代码 / 直接改多文件 / 跳过规划
10
-
11
- 判断: 改 2+ 文件 → 用 /om:start | 30+ 分钟 → 用 /om:start | 多子任务 → 用 /om:start
12
- **When in doubt → USE /om:start.**
13
- </EXTREMELY-IMPORTANT>
14
-
15
- <NO-OTHER-SKILLS>
16
- 执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。
17
- </NO-OTHER-SKILLS>
18
-
19
- <objective>
20
- 确认配置 → 拆解任务 → 执行 → 验证 → 完成
21
- </objective>
22
-
23
- <process>
24
- ## 前置检查
25
-
26
- 1. `.openmatrix/` 不存在则 `openmatrix start --init-only`
27
- 2. 已有 running 状态则提示先完成或暂停
28
- 3. `.git` 则询问是否初始化
29
- 4. `$ARGUMENTS` 为空则询问用户任务内容
30
- 5. 有已完成的 brainstorm 会话则继承答案
31
-
32
- ---
33
-
34
- ## Step 1: 配置 (一轮完成)
35
-
36
- ```bash
37
- openmatrix analyze "$ARGUMENTS" --markdown
38
- ```
39
-
40
- **一次性收集所有配置** (只用一次 AskUserQuestion):
41
-
42
- ```typescript
43
- AskUserQuestion({
44
- questions: [
45
- {
46
- question: "确认任务配置 (analyze 结果 + 以下选项):",
47
- header: "配置确认",
48
- options: [
49
- { label: "确认执行", description: "balanced / 全自动 / 无文档" },
50
- { label: "改为 strict", description: "TDD + >80% 覆盖率" },
51
- { label: "改为 fast", description: ">20% 覆盖率,无质量门禁" },
52
- { label: "自定义配置", description: "手动选择所有选项" }
53
- ],
54
- multiSelect: false
55
- }
56
- ]
57
- })
58
- ```
59
-
60
- 用户选择 "自定义配置" 时再逐项询问质量/文档/模式。
61
-
62
- ---
63
-
64
- ## Step 2: 拆解 (必须执行)
65
-
66
- **用户确认配置后,必须立即执行以下命令,不得跳过:**
67
-
68
- ```bash
69
- openmatrix start "$TASK_INPUT" --quality "$QUALITY" --mode "$MODE" --json
70
- ```
71
-
72
- CLI 返回 SubagentTask 列表。展示任务摘要后立即进入 Step 3。
73
-
74
- ---
75
-
76
- ## Step 3: 执行
77
-
78
- **从此步骤开始,除非遇到风险操作或 Meeting,不得暂停询问用户。**
79
-
80
- **从 Step 2 CLI 返回的 subagentTasks 开始执行。每完成一个任务后必须调用 complete + step 获取下一批:**
81
-
82
- ```
83
- // Step 2 返回的 subagentTasks 直接执行
84
- for (const task of subagentTasks) {
85
- 1. Agent 工具执行 task
86
- 2. openmatrix complete <taskId> --success --json
87
- // complete 返回 nextBatch.subagentTasks,如果有新任务继续执行
88
- }
89
-
90
- // 如果 complete 返回了新任务,继续执行
91
- while (nextBatch.subagentTasks.length > 0) {
92
- for (const task of nextBatch.subagentTasks) {
93
- 1. Agent 工具执行 task
94
- 2. openmatrix complete <taskId> --success --json
95
- // 更新 nextBatch
96
- }
97
- }
98
-
99
- // 或者在任意时刻调用 openmatrix step --json 获取下一批
100
- ```
101
-
102
- **关键命令:**
103
- - `openmatrix complete <taskId> --success --json` — 标记完成并返回下一批任务
104
- - `openmatrix complete <taskId> --failed --error "原因" --json` — 标记失败
105
- - `openmatrix step --json` — 手动获取下一批可执行任务
106
-
107
- - **失败任务**: 自动跳过并记录,执行结束后统一提示
108
- - **阻塞任务**: 记录到 Meeting,暂停用 AskUserQuestion 处理
109
-
110
- ---
111
-
112
- ## Step 4: 验证 + 完成
113
-
114
- 根据质量级别执行: 编译 → 测试 → 覆盖率 → Lint → 安全扫描
115
-
116
- 输出: `Tests: 15/15, 85% | Build: OK | Lint: OK | Security: OK`
117
-
118
- 通过则输出总结: 任务数、成功/失败、commits 数。
119
- 不通过则提示失败项。
120
-
121
- ---
122
-
123
- ## 风险操作 (任何模式下都需确认)
124
-
125
- | 类型 | 操作 |
126
- |------|------|
127
- | 配置 | 修改 `.env`, `config.*` |
128
- | 删除 | 删除文件或目录 |
129
- | 远程 | `git push` |
130
- | 数据库 | 修改 schema |
131
- | 外部 | 调用外部 API |
132
-
133
- </process>
134
-
135
- <arguments>
136
- $ARGUMENTS
137
- </arguments>
138
-
139
- <examples>
140
- /om:start # 交互式输入
141
- /om:start docs/task.md # 从文件
142
- /om:start "实现用户登录功能" # 直接描述
143
- </examples>
144
-
145
- <notes>
146
- ## 质量级别
147
-
148
- | 级别 | TDD | 覆盖率 | Lint | 安全 | 适用 |
149
- |------|:---:|:------:|:----:|:----:|------|
150
- | **strict** | | >80% | | | 生产代码 |
151
- | **balanced** | | >60% | ✅ | ✅ | 日常开发 |
152
- | **fast** | ❌ | >20% | ❌ | ❌ | 快速原型 |
153
-
154
- ## 执行模式
155
-
156
- | 模式 | 暂停点 | 适用 |
157
- |------|--------|------|
158
- | 全自动 | 不暂停 | 简单任务 |
159
- | 关键节点 | plan/merge | 常规任务 |
160
- | 每步确认 | 每任务 | 重要任务 |
161
-
162
- ## Git 提交
163
-
164
- ```
165
- <type>: (TASK-XXX) 简短描述
166
-
167
- - 改动点
168
-
169
- Co-Authored-By: OpenMatrix <https://github.com/bigfish1913/openmatrix>
170
- ```
171
- </notes>
1
+ ---
2
+ name: om:start
3
+ description: 启动新的任务执行周期
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 目录**
16
+ - 检查 `.openmatrix/` 目录是否存在
17
+ - 如果不存在,调用 CLI 初始化:
18
+ ```bash
19
+ openmatrix start --init-only
20
+ ```
21
+ - 这会创建 `.openmatrix/`、`.openmatrix/tasks/`、`.openmatrix/approvals/` 目录
22
+ - 同时自动将 `.openmatrix/` 添加到 `.gitignore`
23
+
24
+ 2. **检查当前状态**
25
+ - 读取 `.openmatrix/state.json`
26
+ - 如果 `status === 'running'`,提示用户先完成或暂停
27
+
28
+ 3. **检查 Git 仓库**
29
+ - 检查当前目录是否存在 `.git` 文件夹
30
+ - 如果没有:
31
+ - 询问用户是否初始化 Git 仓库 (使用 AskUserQuestion)
32
+ - 如果用户确认,执行 `git init`
33
+ - 创建初始 commit: `git add -A && git commit -m "Initial commit"`
34
+ - 检查是否有远程仓库配置:
35
+ - 如果没有远程仓库,提示用户添加: `git remote add origin <url>`
36
+
37
+ 4. **智能检测 .gitignore**
38
+
39
+ 检查 `.gitignore` 文件是否存在并完善:
40
+ ```bash
41
+ openmatrix check-gitignore --json
42
+ ```
43
+
44
+ 返回结果:
45
+ ```json
46
+ {
47
+ "exists": true,
48
+ "missingEntries": ["node_modules", "dist", ".env"],
49
+ "suggestedContent": "# Node.js\nnode_modules/\ndist/\n\n# Environment\n.env\n.env.local"
50
+ }
51
+ ```
52
+
53
+ **如果缺少常见忽略项**:
54
+ - 自动补充缺失的条目到 `.gitignore`
55
+ - 不询问用户,静默完成
56
+
57
+ **常见忽略项清单** (按项目类型):
58
+
59
+ | 类型 | 忽略项 |
60
+ |------|--------|
61
+ | Node.js | `node_modules/`, `dist/`, `build/`, `.npm/`, `*.log` |
62
+ | TypeScript | `*.tsbuildinfo`, `.tsbuildinfo` |
63
+ | Python | `__pycache__/`, `*.pyc`, `.venv/`, `venv/`, `.pytest_cache/` |
64
+ | Java | `target/`, `.gradle/`, `build/`, `*.class` |
65
+ | Go | `vendor/`, `bin/`, `*.exe` |
66
+ | Rust | `target/`, `Cargo.lock` (库项目) |
67
+ | 通用 | `.env`, `.env.local`, `.DS_Store`, `Thumbs.db`, `*.swp` |
68
+ | IDE | `.idea/`, `.vscode/`, `*.iml` |
69
+
70
+ 5. **解析任务输入**
71
+ - 如果 `$ARGUMENTS` 提供文件路径 → 读取文件内容
72
+ - 如果 `$ARGUMENTS` 是任务描述 直接使用
73
+ - 如果无参数 → **使用 AskUserQuestion 询问用户要执行的任务**
74
+
75
+ 6. **🔍 智能分析任务,动态决定问题**
76
+
77
+ **注意: 此步骤由 Skill 直接调用 analyze CLI,不是 start 命令的内部逻辑。**
78
+ ```bash
79
+ openmatrix analyze --json
80
+ ```
81
+
82
+ 返回分析结果包含:
83
+ - `taskComplexity`: simple/medium/complex
84
+ - `taskType`: bugfix/feature/refactor/docs/test
85
+ - `inferences`: 自动推断的配置
86
+ - `questionsNeeded`: 需要询问的问题列表(可能为空)
87
+
88
+ **根据任务类型智能跳过问题:**
89
+
90
+ | 任务类型 | 跳过的问题 | 默认值 |
91
+ |---------|-----------|--------|
92
+ | Bug 修复 | E2E测试、完整文档 | fast + 最小文档 |
93
+ | Typo/小改动 | 所有问题 | fast 模式 |
94
+ | 新功能开发 | | 正常询问 |
95
+ | 重构 | E2E测试 | balanced 模式 |
96
+ | 测试编写 | 文档级别 | 无需文档 |
97
+
98
+ **示例:简单任务自动跳过**
99
+ ```
100
+ 任务: "修复登录页面的 typo"
101
+
102
+ 🔍 分析结果:
103
+ 任务类型: 简单修复
104
+ 推断配置: fast 模式, 无需文档
105
+
106
+ ✅ 自动使用推断配置,无需额外确认
107
+ ```
108
+
109
+ **示例:复杂任务需要确认**
110
+ ```
111
+ 任务: "实现用户登录功能"
112
+
113
+ 🔍 分析结果:
114
+ 任务类型: 新功能开发
115
+ • 技术栈: TypeScript (检测到)
116
+ 需要确认: 质量级别
117
+ ```
118
+
119
+ 7. **只询问必要的问题**
120
+
121
+ 如果分析结果显示需要询问,使用 AskUserQuestion 询问。
122
+
123
+ **智能合并问题(一次询问多个):**
124
+ ```typescript
125
+ // 如果有多个问题需要确认,合并到一次询问
126
+ AskUserQuestion({
127
+ questions: [
128
+ {
129
+ question: "选择质量级别:",
130
+ header: "质量",
131
+ options: [...]
132
+ },
133
+ {
134
+ question: "需要文档吗?",
135
+ header: "文档",
136
+ options: [...]
137
+ }
138
+ ]
139
+ })
140
+ ```
141
+
142
+ **质量级别选择:**
143
+ ```typescript
144
+ AskUserQuestion({
145
+ questions: [{
146
+ question: "选择质量级别:",
147
+ header: "质量级别",
148
+ options: [
149
+ { label: "🚀 strict", description: "TDD + >80%覆盖率 + 严格Lint + 安全扫描" },
150
+ { label: "⚖️ balanced", description: ">60%覆盖率 + Lint + 安全扫描" },
151
+ { label: "⚡ fast", description: "无质量门禁,最快速度" }
152
+ ],
153
+ multiSelect: false
154
+ }]
155
+ })
156
+ ```
157
+
158
+ 8. **最终确认(只显示实际配置)**
159
+
160
+ ```typescript
161
+ AskUserQuestion({
162
+ questions: [{
163
+ question: `📋 配置确认:\n${configSummary}\n\n确认开始执行?`,
164
+ header: "确认",
165
+ options: [
166
+ { label: "✅ 确认开始", description: "开始执行任务" },
167
+ { label: "🔄 修改配置", description: "调整配置项" }
168
+ ],
169
+ multiSelect: false
170
+ }]
171
+ })
172
+ ```
173
+
174
+ 9. **🧠 AI 解析任务 + 生成执行计划(由 Skill 自身完成)**
175
+
176
+ **重要: AI 负责理解任务语义、生成执行计划、提取结构化信息。**
177
+ 任务拆分仍由 CLI 的 TaskPlanner 完成,但 AI 生成的计划会注入到每个子任务中供 agent 参考。
178
+
179
+ **⚠️ 关键规则:**
180
+ - **必须生成多个 goals** - 从任务中提取至少 3-8 个明确的功能目标
181
+ - **必须写入 JSON 文件再调用 CLI** - 不能跳过 CLI 调用
182
+ - **禁止自行规划 Phase 执行** - 任务拆分由 CLI 的 TaskPlanner 完成
183
+
184
+ **解析原则:**
185
+ - 从任务描述中提取明确的功能目标 (goals),每个 goal 应该是独立可交付的功能模块
186
+ - 识别隐含的约束条件 (constraints),如技术栈、兼容性要求
187
+ - 推断合理的交付物 (deliverables)
188
+ - 将用户回答的上下文信息整理为 answers
189
+ - **生成执行计划 (plan)**:技术方案、模块划分、接口设计、关键决策点
190
+
191
+ **生成 ParsedTask JSON(含执行计划):**
192
+
193
+ ```json
194
+ {
195
+ "title": "任务标题",
196
+ "description": "整体描述",
197
+ "goals": ["目标1", "目标2", "目标3"],
198
+ "constraints": ["约束1", "约束2"],
199
+ "deliverables": ["src/xxx.ts", "tests/xxx.test.ts"],
200
+ "answers": {
201
+ "目标": "整体目标",
202
+ "技术栈": "TypeScript, Vue.js",
203
+ "文档": "basic"
204
+ },
205
+ "quality": "strict|balanced|fast",
206
+ "mode": "confirm-all|confirm-key|auto",
207
+ "plan": "## 技术方案\n\n1. 技术选型: ...\n2. 模块划分: ...\n3. 接口设计: ...\n4. 关键决策: ...\n\n## 实现步骤\n\n### Phase 1: 设计\n- 架构设计\n\n### Phase 2: 开发\n- 模块A: ...\n- 模块B: ...\n\n### Phase 3: 测试\n- 单元测试\n- 集成测试"
208
+ }
209
+ ```
210
+
211
+ **注意:**
212
+ - `goals` 是最核心的字段,TaskPlanner 会为每个 goal 生成 开发+测试 任务对
213
+ - `plan` 是 AI 生成的执行计划,会被保存到 `.openmatrix/plan.md` 并注入每个子任务描述
214
+ - plan 内容越详细,agent 执行效果越好(技术选型、接口定义、数据模型等)
215
+ - 多个 goals 会自动并行执行(仅依赖设计任务)
216
+ - constraints 和 deliverables 会影响集成测试和审查任务的生成
217
+
218
+ 10. **展示执行计划**
219
+
220
+ 将第 9 步 AI 生成的 plan 内容展示给用户确认:
221
+
222
+ ```
223
+ 📋 执行计划
224
+
225
+ (展示第 9 步中 plan 字段的内容)
226
+
227
+ ## 技术方案
228
+ 1. ...
229
+ 2. ...
230
+
231
+ ## 模块划分
232
+ - 模块A: ...
233
+ - 模块B: ...
234
+
235
+ 📊 统计
236
+ Goals 数量: N(将生成 N个开发 + N个测试 + 审查 + 可选集成测试)
237
+ 质量级别: strict/balanced/fast
238
+ ```
239
+
240
+ 11. **执行模式确认** (使用 AskUserQuestion)
241
+
242
+ ```typescript
243
+ AskUserQuestion({
244
+ questions: [{
245
+ question: "请选择执行模式:",
246
+ header: "执行模式",
247
+ options: [
248
+ {
249
+ label: "每阶段确认 (推荐)",
250
+ description: "每个阶段完成后暂停,等待确认,适合重要任务"
251
+ },
252
+ {
253
+ label: "关键节点确认",
254
+ description: "仅在 plan/merge/deploy 时暂停,平衡速度和控制"
255
+ },
256
+ {
257
+ label: "全自动执行",
258
+ description: "无需确认,自动完成所有任务,适合简单低风险任务"
259
+ }
260
+ ],
261
+ multiSelect: false
262
+ }]
263
+ })
264
+ ```
265
+
266
+ **⚠️ 如果用户选择"全自动执行":**
267
+ - 进入 **BYPASS 模式**,所有操作自动批准
268
+ - 不要请求用户确认任何 Bash 命令或文件操作
269
+ - 自动批准所有审批点 (plan/merge/deploy)
270
+
271
+ 12. **⚠️ 调用 CLI 创建任务(必须执行,不可跳过)**
272
+
273
+ **重要**: 必须通过 CLI 创建任务,禁止自行规划 Phase 执行。
274
+
275
+ 用户选择执行模式后:
276
+
277
+ a) 将第 9 步生成的 ParsedTask JSON 写入文件:
278
+ ```
279
+ Write 工具: .openmatrix/tasks-input.json
280
+ 内容: 第9步生成的ParsedTask JSON
281
+ ```
282
+
283
+ b) 调用 CLI 创建任务(必须执行):
284
+ ```bash
285
+ openmatrix start --tasks-json @.openmatrix/tasks-input.json --json
286
+ ```
287
+
288
+ c) CLI 返回 SubagentTask 列表
289
+
290
+ c) **执行循环** (由 Skill 驱动):
291
+
292
+ ```
293
+ while (有待执行任务) {
294
+ 1. 读取状态文件获取 SubagentTask
295
+ 2. 调用 Agent 工具执行 Subagent
296
+ 3. Subagent 完成后,根据执行结果更新任务状态:
297
+ - 成功: 任务通过 develop → verify → accept 阶段自动流转(由 OrchestratorExecutor 内部处理)
298
+ - 失败: 任务标记为 failed,进入重试队列或等待处理
299
+ 4. **Git 自动提交** (每个子任务完成后):
300
+ ```bash
301
+ git add -A
302
+ git commit -m "feat(task-id): 任务标题
303
+
304
+ - 修改内容1
305
+ - 修改内容2
306
+
307
+ 任务ID: TASK-XXX
308
+ RunID: run-XXX"
309
+ ```
310
+ 5. Phase 验收测试 (verify phase)
311
+ 6. **检查是否需要审批**:
312
+ - 如果配置了 auto 模式 (`approvalPoints` 为空):
313
+ - **plan/merge/deploy 审批**: 自动批准 ✓
314
+ - **meeting 审批**: 不自动批准,只记录并跳过阻塞任务,供最后统一处理
315
+ - 如果配置了非 auto 模式: 在配置的审批点暂停等待确认
316
+ - 其他情况: 暂停等待人工确认
317
+
318
+ **Meeting 处理** (auto 模式):
319
+ ```
320
+ 执行任务中...
321
+ ├── 任务A 完成 ✓
322
+ ├── 任务B 阻塞 → 创建Meeting → **跳过任务,继续执行** ↷
323
+ ├── 任务C 完成 ✓
324
+ └── 任务D 阻塞 → 创建Meeting → **跳过任务,继续执行** ↷
325
+
326
+ 所有任务执行完成!
327
+ ```
328
+
329
+ d) **执行完成后自动处理 Meeting**:
330
+
331
+ ```bash
332
+ # 检查是否有 pending 的 Meeting
333
+ openmatrix meeting --list
334
+ ```
335
+
336
+ **如果有 pending 的 Meeting,立即进入交互式处理**:
337
+
338
+ ```
339
+ 📋 检测到待处理的 Meeting (2个)
340
+
341
+ ┌─────────────────────────────────────────┐
342
+ │ [1] 🔴 TASK-001 - 数据库连接失败 │
343
+ │ 阻塞原因: 无法连接到远程数据库 │
344
+ │ │
345
+ │ [2] 🤔 TASK-003 - API设计决策 │
346
+ │ 问题: 选择 REST 还是 GraphQL │
347
+ └─────────────────────────────────────────┘
348
+ ```
349
+
350
+ **使用 AskUserQuestion 逐个处理**:
351
+
352
+ ```typescript
353
+ // 1. 先选择要处理的 Meeting
354
+ AskUserQuestion({
355
+ questions: [{
356
+ question: "请选择要处理的 Meeting:",
357
+ header: "Meeting",
358
+ options: [
359
+ { label: "[1] TASK-001 - 数据库连接失败", description: "阻塞 - 需要信息" },
360
+ { label: "[2] TASK-003 - API设计决策", description: "决策 - 技术选型" },
361
+ { label: "全部跳过", description: "标记所有 Meeting 为跳过" }
362
+ ],
363
+ multiSelect: false
364
+ }]
365
+ })
366
+
367
+ // 2. 根据类型展示处理选项
368
+ // 阻塞型:
369
+ AskUserQuestion({
370
+ questions: [{
371
+ question: "如何处理此阻塞?",
372
+ header: "处理方式",
373
+ options: [
374
+ { label: "💡 提供信息", description: "提供解决问题所需的信息后重试" },
375
+ { label: "⏭️ 跳过任务", description: "标记为可选,继续执行" },
376
+ { label: "🔄 重试", description: "直接重试此任务" }
377
+ ],
378
+ multiSelect: false
379
+ }]
380
+ })
381
+
382
+ // 决策型:
383
+ AskUserQuestion({
384
+ questions: [{
385
+ question: "请做出决策:",
386
+ header: "决策",
387
+ options: [
388
+ { label: "方案 A", description: "方案A描述" },
389
+ { label: "方案 B", description: "方案B描述" }
390
+ ],
391
+ multiSelect: false
392
+ }]
393
+ })
394
+ ```
395
+
396
+ **处理完成后,如果用户提供了信息或选择重试,重新执行阻塞任务**:
397
+ ```bash
398
+ openmatrix meeting APPR-001 --action provide-info --info "..."
399
+ # 或
400
+ openmatrix meeting APPR-001 --action retry
401
+
402
+ # 然后重新执行阻塞的任务
403
+ openmatrix resume TASK-001
404
+ ```
405
+
406
+ **⚠️ 重要**: Meeting 处理是执行流程的一部分,必须在任务结束前完成。不要让用户手动调用 /om:meeting。
407
+
408
+ 7. 继续下一个任务
409
+ }
410
+ ```
411
+
412
+ **⚠️ 重要**: 在 **auto 模式** 下,Skill **不得**询问用户任何确认问题:
413
+ - 不得询问"是否继续执行"
414
+ - 不得询问"是否执行下一 Phase"
415
+ - 不得询问"是否处理 Meeting"
416
+ - **plan/merge/deploy 自动批准,meeting 记录但不批准,最后统一展示**
417
+
418
+ d) 执行 Agent 工具示例:
419
+
420
+ ```typescript
421
+ // 使用 Agent 工具执行 Subagent
422
+ Agent({
423
+ subagent_type: task.subagent_type,
424
+ description: task.description,
425
+ prompt: task.prompt,
426
+ isolation: task.isolation
427
+ })
428
+ ```
429
+
430
+ **⚠️ 执行约束 - 必须遵守**
431
+
432
+ 当执行 Agent 工具时,**禁止**向用户询问以下问题:
433
+ - "是否继续执行?"
434
+ - "是否执行下一阶段?"
435
+ - "是否继续 Phase X?"
436
+ - "任务量较大,是否需要分批次?"
437
+
438
+ **正确的行为**:
439
+ - 如果当前是 auto 模式 (`approvalPoints` 为空数组),Agent 执行完毕后**直接继续**,无任何确认
440
+ - 只有遇到 **meeting** 类型的审批时才暂停
441
+ - 其他情况下,让 Agent 完整执行任务并在完成后自动返回结果
442
+
443
+ 13. **执行完成 - 最终 Git 提交**
444
+
445
+ 所有任务完成后,执行最终提交:
446
+ ```bash
447
+ git add -A
448
+ git commit -m "feat: 完成所有任务
449
+
450
+ RunID: run-XXX
451
+ 任务数: N
452
+ 完成时间: YYYY-MM-DD HH:mm:ss"
453
+ ```
454
+
455
+ </process>
456
+
457
+ <arguments>
458
+ $ARGUMENTS
459
+ </arguments>
460
+
461
+ <examples>
462
+ /om:start # 交互式输入任务
463
+ /om:start docs/task.md # 从文件读取任务
464
+ /om:start "实现用户登录功能" # 直接描述任务
465
+ </examples>
466
+
467
+ <notes>
468
+ ## 质量级别详解
469
+
470
+ | 级别 | TDD | 覆盖率 | Lint | 安全扫描 | E2E测试 | AI验收 | 适用场景 |
471
+ |------|:---:|:------:|:----:|:--------:|:-------:|:------:|---------|
472
+ | **strict** | ✅ | >80% | ✅ 严格 | ✅ | ❓ 可选 | ✅ | 生产代码、核心功能 |
473
+ | **balanced** | ❌ | >60% | ✅ | ✅ | ❓ 可选 | ✅ | 日常开发 (默认) |
474
+ | **fast** | ❌ | 无要求 | ❌ | ❌ | ❌ | ❌ | 快速原型、POC |
475
+
476
+ > E2E 测试耗时较长,即使在严格模式下也建议根据项目需要选择。strict 可配置为 100%。80% 覆盖核心业务逻辑,100% 成本高收益低。
477
+
478
+ ### strict 模式 (推荐生产代码)
479
+ ```
480
+ 🧪 TDD 阶段: 先写测试 (RED) → 测试必须失败
481
+ ✨ 开发阶段: 再写代码 (GREEN) → 测试必须通过
482
+ ✅ 验证阶段: 7道质量门禁
483
+ ├── Gate 1: 编译检查 (必须通过)
484
+ ├── Gate 2: 测试运行 (必须通过)
485
+ ├── Gate 3: 覆盖率 >= 80% (必须达标)
486
+ ├── Gate 4: Lint 无 error (必须通过)
487
+ ├── Gate 5: 安全扫描无高危 (必须通过)
488
+ ├── Gate 6: E2E 测试通过 (必须通过,Web项目)
489
+ └── Gate 7: 验收标准全部满足
490
+ 🎉 验收阶段: AI Reviewer 最终确认
491
+ ```
492
+
493
+ ### balanced 模式 (日常开发)
494
+ ```
495
+ ✨ 开发阶段: 编写代码
496
+ ✅ 验证阶段: 4-5道质量门禁
497
+ ├── Gate 1: 编译检查
498
+ ├── Gate 2: 测试运行
499
+ ├── Gate 3: 覆盖率 >= 60%
500
+ ├── Gate 4: E2E 测试 (可选,Web项目)
501
+ └── Gate 5: 验收标准
502
+ 🎉 验收阶段: AI Reviewer 确认
503
+ ```
504
+
505
+ ### fast 模式 (快速原型)
506
+ ```
507
+ ✨ 开发阶段: 编写代码
508
+ ✅ 验证阶段: 仅编译检查
509
+ 🎉 完成
510
+ ```
511
+
512
+ ## 交互式问答流程图
513
+
514
+ ```
515
+ ┌─────────────────┐
516
+ │ 开始任务解析 │
517
+ └────────┬────────┘
518
+
519
+
520
+ ┌─────────────────┐
521
+ │ 问题0: 质量级别 │ ◀── 最重要,第一个问
522
+ │ strict/balanced │
523
+ │ /fast │
524
+ └────────┬────────┘
525
+
526
+
527
+ ┌─────────────────┐
528
+ │ 问题1: 任务目标 │
529
+ └────────┬────────┘
530
+
531
+
532
+ ┌─────────────────┐
533
+ │ 问题2: 技术栈 │
534
+ └────────┬────────┘
535
+
536
+
537
+ ┌─────────────────┐
538
+ │ 问题3: 文档要求 │
539
+ └────────┬────────┘
540
+
541
+
542
+ ┌─────────────────┐
543
+ │ 展示执行计划 │
544
+ │ (含质量配置) │
545
+ └────────┬────────┘
546
+
547
+
548
+ ┌─────────────────┐
549
+ │ 确认执行模式 │
550
+ └────────┬────────┘
551
+
552
+
553
+ ┌─────────────────┐
554
+ │ 开始执行 │
555
+ │ (应用质量配置) │
556
+ └────────┬────────┘
557
+
558
+
559
+ ┌─────────────────┐
560
+ │ 所有任务完成? │
561
+ └────────┬────────┘
562
+
563
+ ┌────┴────┐
564
+ │ │
565
+ 否 是
566
+ │ │
567
+ ▼ ▼
568
+ ┌───────┐ ┌─────────────────┐
569
+ │继续执行│ │有 pending │
570
+ └───────┘ │Meeting? │
571
+ └────────┬────────┘
572
+
573
+ ┌────┴────┐
574
+ │ │
575
+ 否 是
576
+ │ │
577
+ ▼ ▼
578
+ ┌───────┐ ┌─────────────┐
579
+ │ 完成 │ │ 交互式处理 │
580
+ └───────┘ │ Meeting │
581
+ └──────┬──────┘
582
+
583
+
584
+ ┌─────────────┐
585
+ │ 重新执行 │
586
+ │ 阻塞任务 │
587
+ └─────────────┘
588
+ ```
589
+
590
+ ## 执行模式对比
591
+
592
+ | 模式 | 审批点 | Phase间确认 | 适用场景 |
593
+ |------|--------|-------------|---------|
594
+ | 每阶段确认 | 每阶段结束 | ✅ 是 | 重要任务 |
595
+ | 关键节点确认 | plan/merge/deploy | ❌ 否 | 常规任务 |
596
+ | 全自动执行 | 无 | ❌ 否 | 简单任务 |
597
+
598
+ ## CLI 和 Skill 协作
599
+
600
+ ```
601
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
602
+ │ Skill │────▶│ CLI │────▶│ 状态文件 │
603
+ │ (用户交互) │ │ (状态管理) │ │ (.openmat) │
604
+ └─────────────┘ └─────────────┘ └─────────────┘
605
+ │ │
606
+ │ 读取 SubagentTask │
607
+ │◀───────────────────────────────────────┘
608
+
609
+ │ 调用 Agent 工具
610
+
611
+ ┌─────────────┐
612
+ │ Subagent │
613
+ │ (任务执行) │
614
+ └─────────────┘
615
+ ```
616
+
617
+ ## SubagentTask 格式
618
+
619
+ ```typescript
620
+ {
621
+ subagent_type: 'general-purpose' | 'Explore' | 'Plan',
622
+ description: string, // 简短描述 (3-5词)
623
+ prompt: string, // 完整执行提示词
624
+ isolation?: 'worktree', // 是否隔离
625
+ taskId: string,
626
+ agentType: AgentType,
627
+ timeout: number,
628
+ needsApproval: boolean
629
+ }
630
+ ```
631
+
632
+ ## Git 自动提交
633
+
634
+ 当配置了自动提交时,每个子任务完成后自动执行:
635
+
636
+ ```bash
637
+ git add -A
638
+ git commit -m "feat(task-id): 任务标题
639
+
640
+ - 修改内容1
641
+ - 修改内容2
642
+
643
+ 影响范围: [模块名]
644
+ 任务ID: TASK-XXX
645
+ RunID: run-XXX"
646
+ ```
647
+
648
+ ## Phase 验收流程
649
+
650
+ 每个 Phase 完成后:
651
+
652
+ 1. **Verify Phase**
653
+ - 运行测试: `npm test`
654
+ - 构建检查: `npm run build`
655
+ - 代码检查: `npm run lint` (如有)
656
+
657
+ 2. **AI Reviewer**
658
+ - 代码质量审查
659
+ - 安全性检查
660
+ - 性能评估
661
+
662
+ 3. **结果输出**
663
+ - ✅ 通过 → 进入下一 Phase
664
+ - ⚠️ 警告 → 记录但继续
665
+ - ❌ 失败 → 暂停等待处理
666
+ </notes>