openmatrix 0.2.16 → 0.2.18
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/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/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 +128 -0
- package/package.json +1 -1
- package/skills/debug.md +167 -32
- package/skills/deploy.md +404 -0
- package/skills/feature.md +16 -5
- package/skills/om.md +118 -77
- package/skills/resume.md +260 -68
- package/skills/resume-feature.md +0 -227
package/skills/deploy.md
ADDED
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: om:deploy
|
|
3
|
+
description: "智能部署助手:分析项目+系统环境 → 推荐最可行方案 → 执行部署 → 生成一键脚本。Triggers on: deploy, 部署, 发布, docker, kubernetes, 环境搭建, 开发环境, make, taskfile, pm2"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<NO-OTHER-SKILLS>
|
|
7
|
+
执行此技能时,不得调用 superpowers、gsd 或其他任务编排相关的技能。
|
|
8
|
+
</NO-OTHER-SKILLS>
|
|
9
|
+
|
|
10
|
+
<objective>
|
|
11
|
+
智能部署助手:自动分析项目文件和系统环境 → 推荐当前环境下最可行的部署方案 → 用户确认后执行 → 生成可复用的一键脚本。
|
|
12
|
+
</objective>
|
|
13
|
+
|
|
14
|
+
<process>
|
|
15
|
+
|
|
16
|
+
## Step 1: 读取历史部署配置
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
cat .openmatrix/deploy-config.json 2>/dev/null || echo "NO_HISTORY"
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**如果有历史配置:**
|
|
23
|
+
- 对比上次记录的关键文件和当前实际文件
|
|
24
|
+
- 判断是否有变更
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
# 对比关键文件是否存在变化
|
|
28
|
+
ls -la Dockerfile docker-compose.yml Makefile Taskfile.yml 2>/dev/null
|
|
29
|
+
cat package.json 2>/dev/null | grep -E '"(deploy|start|build)"'
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**变更检测结果:**
|
|
33
|
+
| 状态 | 处理 |
|
|
34
|
+
|------|------|
|
|
35
|
+
| 无历史配置 | 正常流程(分析+询问) |
|
|
36
|
+
| 无变更 | 直接使用上次配置,仅确认一次 |
|
|
37
|
+
| 有变更 | 重新分析并询问 |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Step 2: 分析项目文件
|
|
42
|
+
|
|
43
|
+
直接读取项目文件,不调用 CLI:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# 项目配置文件
|
|
47
|
+
ls -la Dockerfile docker-compose.yml docker-compose.yaml Makefile Taskfile.yml Taskfile.yaml 2>/dev/null
|
|
48
|
+
ls -la k8s/ helm/ .github/workflows/ 2>/dev/null
|
|
49
|
+
cat package.json 2>/dev/null
|
|
50
|
+
cat go.mod 2>/dev/null
|
|
51
|
+
cat Cargo.toml 2>/dev/null
|
|
52
|
+
cat requirements.txt pyproject.toml 2>/dev/null
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
提取关键信息:
|
|
56
|
+
- 项目类型(Node.js/Go/Python/Rust/Java 等)
|
|
57
|
+
- 已有部署配置(Dockerfile、docker-compose、Makefile、k8s 等)
|
|
58
|
+
- package.json 中的 scripts(build/start/deploy 等)
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Step 3: 检测系统环境
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# 检测已安装的工具
|
|
66
|
+
docker --version 2>/dev/null && echo "docker:ok" || echo "docker:missing"
|
|
67
|
+
docker-compose --version 2>/dev/null && echo "docker-compose:ok" || echo "docker-compose:missing"
|
|
68
|
+
kubectl version --client 2>/dev/null && echo "kubectl:ok" || echo "kubectl:missing"
|
|
69
|
+
make --version 2>/dev/null && echo "make:ok" || echo "make:missing"
|
|
70
|
+
task --version 2>/dev/null && echo "task:ok" || echo "task:missing"
|
|
71
|
+
pm2 --version 2>/dev/null && echo "pm2:ok" || echo "pm2:missing"
|
|
72
|
+
node --version 2>/dev/null && echo "node:ok" || echo "node:missing"
|
|
73
|
+
|
|
74
|
+
# 操作系统
|
|
75
|
+
uname -s 2>/dev/null || echo "Windows"
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 4: AI 分析并展示环境报告
|
|
81
|
+
|
|
82
|
+
基于收集到的信息,直接输出分析报告(不用 AskUserQuestion):
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
## 🔍 环境分析报告
|
|
86
|
+
|
|
87
|
+
**项目**: [名称] ([类型])
|
|
88
|
+
**操作系统**: [Linux/macOS/Windows]
|
|
89
|
+
|
|
90
|
+
### 已检测到的部署配置
|
|
91
|
+
- ✅ Dockerfile
|
|
92
|
+
- ✅ docker-compose.yml
|
|
93
|
+
- ❌ Makefile(未找到)
|
|
94
|
+
|
|
95
|
+
### 已安装的工具
|
|
96
|
+
- ✅ Docker 24.0.5
|
|
97
|
+
- ✅ make 4.3
|
|
98
|
+
- ❌ task(未安装)
|
|
99
|
+
- ❌ pm2(未安装)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Step 5: 推荐部署方案(带理由)
|
|
105
|
+
|
|
106
|
+
AI 根据"项目配置 × 已安装工具"交叉分析,用 AskUserQuestion 展示推荐方案:
|
|
107
|
+
|
|
108
|
+
**推荐逻辑(AI 自行判断,不是硬编码):**
|
|
109
|
+
- 有 Dockerfile + docker 已安装 → Docker 是最直接的选择
|
|
110
|
+
- 有 docker-compose + 多服务 → Docker Compose 更合适
|
|
111
|
+
- 有 k8s 配置 + kubectl 已安装 → Kubernetes
|
|
112
|
+
- 有 Makefile + make 已安装 → 直接用 make
|
|
113
|
+
- Node.js + pm2 已安装 → PM2 轻量方案
|
|
114
|
+
- 什么都没有 → AI 根据项目类型推荐创建配置
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
AskUserQuestion:
|
|
118
|
+
header: "部署方案"
|
|
119
|
+
question: "基于你的环境分析,推荐以下方案(已标注推荐原因):"
|
|
120
|
+
|
|
121
|
+
options:
|
|
122
|
+
- label: "Docker (推荐)"
|
|
123
|
+
description: "已有 Dockerfile + Docker 已安装,直接可用,环境隔离好"
|
|
124
|
+
- label: "Docker Compose"
|
|
125
|
+
description: "检测到 docker-compose.yml,适合多服务编排"
|
|
126
|
+
- label: "Make"
|
|
127
|
+
description: "已有 Makefile + make 已安装,运行 make deploy"
|
|
128
|
+
- label: "npm scripts"
|
|
129
|
+
description: "无需额外工具,直接用 package.json 中的 scripts"
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## Step 6: 确认部署环境
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
AskUserQuestion:
|
|
138
|
+
header: "目标环境"
|
|
139
|
+
question: "部署到哪个环境?"
|
|
140
|
+
|
|
141
|
+
options:
|
|
142
|
+
- label: "本地开发 (推荐)"
|
|
143
|
+
description: "快速启动,用于开发调试"
|
|
144
|
+
- label: "测试环境"
|
|
145
|
+
description: "模拟生产配置,用于验证"
|
|
146
|
+
- label: "生产环境"
|
|
147
|
+
description: "需要完整配置和安全检查"
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## Step 7: 执行部署
|
|
153
|
+
|
|
154
|
+
根据用户选择,AI 执行对应命令:
|
|
155
|
+
|
|
156
|
+
**Docker 本地:**
|
|
157
|
+
```bash
|
|
158
|
+
docker build -t <project-name> .
|
|
159
|
+
docker run -d -p <port>:<port> --name <project-name> <project-name>
|
|
160
|
+
docker ps | grep <project-name>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
**Docker Compose:**
|
|
164
|
+
```bash
|
|
165
|
+
docker-compose up -d --build
|
|
166
|
+
docker-compose ps
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
**Make:**
|
|
170
|
+
```bash
|
|
171
|
+
make deploy
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**npm scripts:**
|
|
175
|
+
```bash
|
|
176
|
+
npm run build
|
|
177
|
+
npm run start
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
执行后验证:
|
|
181
|
+
```bash
|
|
182
|
+
# 检查服务是否正常运行
|
|
183
|
+
docker ps 2>/dev/null | grep <name>
|
|
184
|
+
curl -s http://localhost:<port>/health 2>/dev/null || echo "服务已启动"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
输出执行结果,告知用户服务状态。
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Step 8: 询问是否生成一键脚本
|
|
192
|
+
|
|
193
|
+
```
|
|
194
|
+
AskUserQuestion:
|
|
195
|
+
header: "一键脚本"
|
|
196
|
+
question: "部署完成!是否生成一键脚本方便后续开发调试?"
|
|
197
|
+
|
|
198
|
+
options:
|
|
199
|
+
- label: "生成 Taskfile.yml (推荐)"
|
|
200
|
+
description: "task 已安装 / 现代化工具,YAML 格式简洁,跨平台"
|
|
201
|
+
- label: "生成 Makefile"
|
|
202
|
+
description: "make 已安装 / 经典工具,已有 Makefile 时保持一致"
|
|
203
|
+
- label: "添加到 npm scripts"
|
|
204
|
+
description: "Node.js 项目,无需额外工具"
|
|
205
|
+
- label: "不需要"
|
|
206
|
+
description: "已有足够配置"
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
## Step 9: 生成一键脚本
|
|
212
|
+
|
|
213
|
+
根据用户选择和项目实际情况,用 Write 工具生成脚本。
|
|
214
|
+
|
|
215
|
+
**Taskfile.yml 示例(根据实际项目定制):**
|
|
216
|
+
```yaml
|
|
217
|
+
version: '3'
|
|
218
|
+
|
|
219
|
+
vars:
|
|
220
|
+
APP: '{{.APP | default "app"}}'
|
|
221
|
+
PORT: '{{.PORT | default "3000"}}'
|
|
222
|
+
|
|
223
|
+
tasks:
|
|
224
|
+
setup:
|
|
225
|
+
desc: 安装依赖
|
|
226
|
+
cmds:
|
|
227
|
+
- npm install
|
|
228
|
+
|
|
229
|
+
build:
|
|
230
|
+
desc: 构建项目
|
|
231
|
+
cmds:
|
|
232
|
+
- npm run build
|
|
233
|
+
|
|
234
|
+
test:
|
|
235
|
+
desc: 运行测试
|
|
236
|
+
cmds:
|
|
237
|
+
- npm test
|
|
238
|
+
|
|
239
|
+
dev:
|
|
240
|
+
desc: 本地开发(热重载)
|
|
241
|
+
cmds:
|
|
242
|
+
- npm run dev
|
|
243
|
+
|
|
244
|
+
deploy:local:
|
|
245
|
+
desc: 本地 Docker 部署
|
|
246
|
+
cmds:
|
|
247
|
+
- docker build -t {{.APP}} .
|
|
248
|
+
- docker run -d -p {{.PORT}}:{{.PORT}} --name {{.APP}} {{.APP}}
|
|
249
|
+
- echo "✅ 服务已启动 http://localhost:{{.PORT}}"
|
|
250
|
+
|
|
251
|
+
deploy:prod:
|
|
252
|
+
desc: 生产部署
|
|
253
|
+
cmds:
|
|
254
|
+
- docker build -t {{.APP}}:{{.VERSION}} .
|
|
255
|
+
- docker push {{.REGISTRY}}/{{.APP}}:{{.VERSION}}
|
|
256
|
+
|
|
257
|
+
logs:
|
|
258
|
+
desc: 查看日志
|
|
259
|
+
cmds:
|
|
260
|
+
- docker logs -f {{.APP}}
|
|
261
|
+
|
|
262
|
+
stop:
|
|
263
|
+
desc: 停止服务
|
|
264
|
+
cmds:
|
|
265
|
+
- docker stop {{.APP}} && docker rm {{.APP}}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
**Makefile 示例(根据实际项目定制):**
|
|
269
|
+
```makefile
|
|
270
|
+
APP ?= app
|
|
271
|
+
PORT ?= 3000
|
|
272
|
+
|
|
273
|
+
.PHONY: setup build test dev deploy-local deploy-prod logs stop
|
|
274
|
+
|
|
275
|
+
setup:
|
|
276
|
+
npm install
|
|
277
|
+
|
|
278
|
+
build:
|
|
279
|
+
npm run build
|
|
280
|
+
|
|
281
|
+
test:
|
|
282
|
+
npm test
|
|
283
|
+
|
|
284
|
+
dev:
|
|
285
|
+
npm run dev
|
|
286
|
+
|
|
287
|
+
deploy-local:
|
|
288
|
+
docker build -t $(APP) .
|
|
289
|
+
docker run -d -p $(PORT):$(PORT) --name $(APP) $(APP)
|
|
290
|
+
@echo "✅ 服务已启动 http://localhost:$(PORT)"
|
|
291
|
+
|
|
292
|
+
deploy-prod:
|
|
293
|
+
docker build -t $(APP):$(VERSION) .
|
|
294
|
+
docker push $(REGISTRY)/$(APP):$(VERSION)
|
|
295
|
+
|
|
296
|
+
logs:
|
|
297
|
+
docker logs -f $(APP)
|
|
298
|
+
|
|
299
|
+
stop:
|
|
300
|
+
docker stop $(APP) && docker rm $(APP)
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
## Step 10: 保存部署配置
|
|
306
|
+
|
|
307
|
+
将用户选择的部署方式保存到 `.openmatrix/deploy-config.json`:
|
|
308
|
+
|
|
309
|
+
```json
|
|
310
|
+
{
|
|
311
|
+
"deployMethod": "docker",
|
|
312
|
+
"envType": "local",
|
|
313
|
+
"scriptTool": "taskfile",
|
|
314
|
+
"lastDetectedFiles": {
|
|
315
|
+
"Dockerfile": true,
|
|
316
|
+
"docker-compose.yml": false,
|
|
317
|
+
"Makefile": false,
|
|
318
|
+
"package.json": true
|
|
319
|
+
},
|
|
320
|
+
"lastDetectedTools": {
|
|
321
|
+
"docker": "24.0.5",
|
|
322
|
+
"make": "4.3",
|
|
323
|
+
"task": null
|
|
324
|
+
},
|
|
325
|
+
"timestamp": "2026-04-22T15:00:00Z"
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
下次运行时,对比 `lastDetectedFiles` 和当前实际文件状态,判断是否需要重新询问。
|
|
330
|
+
|
|
331
|
+
---
|
|
332
|
+
|
|
333
|
+
## Step 11: 输出总结
|
|
334
|
+
|
|
335
|
+
```markdown
|
|
336
|
+
## ✅ 部署完成
|
|
337
|
+
|
|
338
|
+
**方案**: Docker 本地部署
|
|
339
|
+
**环境**: 本地开发
|
|
340
|
+
**脚本**: 已生成 Taskfile.yml
|
|
341
|
+
|
|
342
|
+
### 常用命令
|
|
343
|
+
- `task dev` — 本地开发
|
|
344
|
+
- `task deploy:local` — Docker 本地部署
|
|
345
|
+
- `task deploy:prod` — 生产部署
|
|
346
|
+
- `task logs` — 查看日志
|
|
347
|
+
- `task stop` — 停止服务
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
</process>
|
|
351
|
+
|
|
352
|
+
<arguments>
|
|
353
|
+
$ARGUMENTS
|
|
354
|
+
</arguments>
|
|
355
|
+
|
|
356
|
+
<examples>
|
|
357
|
+
/om:deploy # 自动分析 → 推荐方案 → 执行 → 生成脚本
|
|
358
|
+
/om:deploy local # 直接指定本地环境
|
|
359
|
+
/om:deploy prod # 直接指定生产环境
|
|
360
|
+
</examples>
|
|
361
|
+
|
|
362
|
+
<notes>
|
|
363
|
+
## 核心原则
|
|
364
|
+
|
|
365
|
+
1. **AI 是分析者**:读取真实文件和系统状态,不靠硬编码规则推断
|
|
366
|
+
2. **AI 是执行者**:用户确认后直接运行命令,不只是给建议
|
|
367
|
+
3. **推荐最可行的**:基于"当前系统已有什么工具",不是"理论上最好的"
|
|
368
|
+
4. **产出可复用脚本**:最终生成 Taskfile/Makefile,方便后续开发调试
|
|
369
|
+
5. **记录上次选择**:保存部署配置,下次未变化时直接复用,减少重复询问
|
|
370
|
+
|
|
371
|
+
## 历史配置复用
|
|
372
|
+
|
|
373
|
+
`.openmatrix/deploy-config.json` 存储上次部署选择:
|
|
374
|
+
- 对比 `lastDetectedFiles` 和当前文件状态
|
|
375
|
+
- 状态一致 → 直接使用上次配置,仅确认一次
|
|
376
|
+
- 状态变化 → 重新分析并询问
|
|
377
|
+
|
|
378
|
+
变更检测:
|
|
379
|
+
- Dockerfile/docker-compose.yml/Makefile 新增或删除
|
|
380
|
+
- package.json scripts 变化
|
|
381
|
+
- 系统工具安装状态变化
|
|
382
|
+
|
|
383
|
+
## 推荐决策依据(AI 自行判断)
|
|
384
|
+
|
|
385
|
+
| 项目配置 | 系统工具 | 推荐方案 |
|
|
386
|
+
|---------|---------|---------|
|
|
387
|
+
| 有 Dockerfile | docker 已安装 | Docker |
|
|
388
|
+
| 有 docker-compose | docker-compose 已安装 | Docker Compose |
|
|
389
|
+
| 有 k8s/ | kubectl 已安装 | Kubernetes |
|
|
390
|
+
| 有 Makefile | make 已安装 | Make |
|
|
391
|
+
| Node.js | pm2 已安装 | PM2 |
|
|
392
|
+
| Node.js | 无特殊工具 | npm scripts |
|
|
393
|
+
| 无任何配置 | docker 已安装 | 生成 Dockerfile |
|
|
394
|
+
| 无任何配置 | 无工具 | npm scripts / shell 脚本 |
|
|
395
|
+
|
|
396
|
+
## 脚本工具选择依据
|
|
397
|
+
|
|
398
|
+
| 条件 | 推荐 |
|
|
399
|
+
|------|------|
|
|
400
|
+
| task 已安装 | Taskfile.yml |
|
|
401
|
+
| make 已安装 / 已有 Makefile | Makefile |
|
|
402
|
+
| Node.js 项目 / 无工具 | npm scripts |
|
|
403
|
+
| Windows + 无工具 | package.json scripts |
|
|
404
|
+
</notes>
|
package/skills/feature.md
CHANGED
|
@@ -231,18 +231,29 @@ TodoWrite({
|
|
|
231
231
|
|
|
232
232
|
**6.1 质量等级(必选)**
|
|
233
233
|
|
|
234
|
+
根据任务描述,Claude 直接推断推荐的质量等级,并在问题中标注推荐项:
|
|
235
|
+
|
|
236
|
+
- Bug 修复 / 重构 → 推荐 `balanced`
|
|
237
|
+
- 原型 / demo / 快速验证 → 推荐 `fast`
|
|
238
|
+
- 新功能 / 生产代码 / 涉及测试 → 推荐 `strict`
|
|
239
|
+
- 文档 / skill 文件 → 推荐 `fast`
|
|
240
|
+
|
|
234
241
|
AskUserQuestion: `header: "质量等级"`, `multiSelect: false`
|
|
235
242
|
|
|
236
|
-
**question:**
|
|
243
|
+
**question:** 选择质量等级(Claude 推荐:${inferredQuality},原因:${inferReason})
|
|
237
244
|
|
|
238
245
|
| label | description |
|
|
239
246
|
|-------|-------------|
|
|
240
247
|
| `strict` | TDD + >80%覆盖率 + 严格Lint + 安全扫描 — 生产级代码 |
|
|
241
|
-
| `balanced
|
|
248
|
+
| `balanced` | >60%覆盖率 + Lint + 安全扫描 — 日常开发 |
|
|
242
249
|
| `fast` | 无质量门禁 — 快速原型/验证 |
|
|
243
250
|
|
|
244
251
|
**6.2 E2E 测试(仅 strict/balanced)**
|
|
245
252
|
|
|
253
|
+
根据任务描述推断:若任务涉及前端页面/UI/Web,询问;否则默认跳过(不需要)。
|
|
254
|
+
|
|
255
|
+
如需询问:
|
|
256
|
+
|
|
246
257
|
AskUserQuestion: `header: "E2E 测试"`, `multiSelect: false`
|
|
247
258
|
|
|
248
259
|
**question:** 是否需要端到端 (E2E) 测试?(适用于 Web/Mobile/GUI 项目)
|
|
@@ -445,7 +456,7 @@ fi
|
|
|
445
456
|
**验证失败处理:**
|
|
446
457
|
- 自动展示验证失败详情(最后 30 行输出)
|
|
447
458
|
- 停止执行流程
|
|
448
|
-
- 提示用户修复后使用 `/om:resume
|
|
459
|
+
- 提示用户修复后使用 `/om:resume` 继续
|
|
449
460
|
|
|
450
461
|
**验证成功处理:**
|
|
451
462
|
- 继续执行 Step 9 Git 提交
|
|
@@ -586,7 +597,7 @@ $ARGUMENTS
|
|
|
586
597
|
## 错误处理流程
|
|
587
598
|
|
|
588
599
|
```
|
|
589
|
-
验证失败 → 停止执行 → 展示错误详情 → 提示用户修复 → 使用 /om:resume
|
|
600
|
+
验证失败 → 停止执行 → 展示错误详情 → 提示用户修复 → 使用 /om:resume 恢复
|
|
590
601
|
```
|
|
591
602
|
|
|
592
603
|
| 错误 | 处理 |
|
|
@@ -631,7 +642,7 @@ type: feat/fix/test/refactor/docs
|
|
|
631
642
|
|
|
632
643
|
如果验证失败需要修复:
|
|
633
644
|
|
|
634
|
-
使用 `/om:resume
|
|
645
|
+
使用 `/om:resume` 继续执行(自动检测 `.openmatrix/feature-session.json` 或 `state.json`)
|
|
635
646
|
|
|
636
647
|
## 挡久化文件说明
|
|
637
648
|
|
package/skills/om.md
CHANGED
|
@@ -15,8 +15,6 @@ always_load: true
|
|
|
15
15
|
- "实现X" / "implement X" / "build X" → Development task → This skill
|
|
16
16
|
- "修复X" / "fix X" → Development task → This skill
|
|
17
17
|
- "怎么实现?" / "how to?" → Question → NOT this skill (just answer)
|
|
18
|
-
|
|
19
|
-
Complex tasks route to `/om:brainstorm`, simple tasks route to `/om:start`.
|
|
20
18
|
</EXTREMELY-IMPORTANT>
|
|
21
19
|
|
|
22
20
|
<NO-OTHER-SKILLS>
|
|
@@ -31,72 +29,111 @@ OpenMatrix 默认入口 — 用户无需记忆命令,直接描述任务即可
|
|
|
31
29
|
</objective>
|
|
32
30
|
|
|
33
31
|
<process>
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
32
|
+
|
|
33
|
+
## Step 1: 解析用户输入
|
|
34
|
+
|
|
35
|
+
`$ARGUMENTS` 可以是:
|
|
36
|
+
- 任务描述: "实现用户登录功能"
|
|
37
|
+
- 文件路径: "docs/task.md"
|
|
38
|
+
- 空输入 → 显示帮助
|
|
39
|
+
|
|
40
|
+
**如果是文件路径,先读取文件内容作为任务描述。**
|
|
41
|
+
|
|
42
|
+
## Step 2: AI 评估复杂度(自动路由)
|
|
43
|
+
|
|
44
|
+
**Claude 根据以下条件自动判断路由目标:**
|
|
45
|
+
|
|
46
|
+
### 2.1 小需求 → `/om:feature`
|
|
47
|
+
|
|
48
|
+
**核心条件(语义判断):**
|
|
49
|
+
- 单一改动点(聚焦一个功能/组件/文件)
|
|
50
|
+
- 无架构设计关键词("架构"、"设计"、"从零"、"重构整个")
|
|
51
|
+
- 无多子系统描述
|
|
52
|
+
- 或包含小需求关键词:小需求、小功能、小改动、minor、quick、快速、简单、添加按钮、加个字段、轻量
|
|
53
|
+
|
|
54
|
+
**辅助参考(非硬性):**
|
|
55
|
+
- 描述较短(通常 ≤ 150 字)— 长描述也可能聚焦单一改动
|
|
56
|
+
|
|
57
|
+
**示例:**
|
|
58
|
+
- "给列表页添加搜索按钮" → /om:feature
|
|
59
|
+
- "小改动:调整按钮颜色" → /om:feature
|
|
60
|
+
- "加个字段存储用户头像" → /om:feature
|
|
61
|
+
|
|
62
|
+
### 2.2 复杂任务 → `/om:brainstorm`
|
|
63
|
+
|
|
64
|
+
**任一满足即路由:**
|
|
65
|
+
- 包含复杂关键词:从零搭建、重构整个、迁移、架构设计、多模块、系统
|
|
66
|
+
- 多个独立子系统("和"、"同时"、"另外"连接多个大模块)
|
|
67
|
+
- 需要技术选型决策
|
|
68
|
+
- 涉及非代码产出(文档、设计规范、调研报告)
|
|
69
|
+
|
|
70
|
+
**示例:**
|
|
71
|
+
- "从零搭建后台管理系统" → /om:brainstorm
|
|
72
|
+
- "重构整个认证模块,支持 OAuth 和 SAML" → /om:brainstorm
|
|
73
|
+
- "设计微服务架构并实现核心模块" → /om:brainstorm
|
|
74
|
+
|
|
75
|
+
### 2.3 标准任务 → `/om:start`
|
|
76
|
+
|
|
77
|
+
**不符合小需求和复杂任务的,默认路由:**
|
|
78
|
+
- 中等复杂度(单一功能但需要完整追踪)
|
|
79
|
+
- 包含标准关键词:实现、修复、添加功能、开发(非小改动)
|
|
80
|
+
- 需要质量门禁验证
|
|
81
|
+
|
|
82
|
+
**示例:**
|
|
83
|
+
- "实现用户登录功能" → /om:start
|
|
84
|
+
- "修复登录页面的样式问题" → /om:start
|
|
85
|
+
- "添加 API 接口返回用户列表" → /om:start
|
|
86
|
+
|
|
87
|
+
## Step 3: 用户确认路由(带 AI 推荐)
|
|
88
|
+
|
|
89
|
+
**AI 先判断推荐路由,再让用户确认:**
|
|
90
|
+
|
|
91
|
+
AskUserQuestion: `header: "任务流程"`, `multiSelect: false`
|
|
92
|
+
|
|
93
|
+
**question:** 选择执行流程(AI 推荐:${recommendedRoute},原因:${recommendReason})
|
|
94
|
+
|
|
95
|
+
| label | description |
|
|
96
|
+
|-------|-------------|
|
|
97
|
+
| `小需求流程 (推荐)` | 2-5 个任务块,轻量追踪,适合单一改动点 |
|
|
98
|
+
| `标准流程` | 完整追踪,质量门禁,适合中等复杂度 |
|
|
99
|
+
| `复杂流程` | 先设计后执行,适合架构/重构/多模块 |
|
|
100
|
+
|
|
101
|
+
**用户选择后,调用对应 Skill:**
|
|
102
|
+
- 选择 "小需求流程" → Skill("om:feature", args=任务描述)
|
|
103
|
+
- 选择 "标准流程" → Skill("om:start", args=任务描述)
|
|
104
|
+
- 选择 "复杂流程" → Skill("om:brainstorm", args=任务描述)
|
|
105
|
+
|
|
106
|
+
## Step 4: 空输入或 --help
|
|
107
|
+
|
|
108
|
+
显示帮助信息:
|
|
109
|
+
```
|
|
110
|
+
OpenMatrix - AI task orchestration
|
|
111
|
+
|
|
112
|
+
Usage:
|
|
113
|
+
/om <task> AI 推荐路由,用户确认后执行
|
|
114
|
+
/om:feature <task> 小需求快速流程(跳过推荐)
|
|
115
|
+
/om:start <task> 标准任务流程(跳过推荐)
|
|
116
|
+
/om:brainstorm <task> 复杂任务先设计后执行(跳过推荐)
|
|
117
|
+
/om:auto <task> 全自动执行
|
|
118
|
+
|
|
119
|
+
Examples:
|
|
120
|
+
/om 给列表页添加搜索按钮 → AI 推荐小需求流程
|
|
121
|
+
/om 实现用户登录功能 → AI 推荐标准流程
|
|
122
|
+
/om 从零搭建后台系统 → AI 推荐复杂流程
|
|
123
|
+
|
|
124
|
+
Quality:
|
|
125
|
+
strict - TDD + 80% coverage
|
|
126
|
+
balanced - 60% coverage
|
|
127
|
+
fast - No gates
|
|
128
|
+
|
|
129
|
+
Commands:
|
|
130
|
+
/om:status - 查看执行状态
|
|
131
|
+
/om:meeting - 处理阻塞任务
|
|
132
|
+
/om:report - 生成执行报告
|
|
133
|
+
/om:debug - 系统化调试
|
|
134
|
+
/om:resume - 恢复中断任务
|
|
135
|
+
```
|
|
136
|
+
|
|
100
137
|
</process>
|
|
101
138
|
|
|
102
139
|
<arguments>
|
|
@@ -104,16 +141,20 @@ $ARGUMENTS
|
|
|
104
141
|
</arguments>
|
|
105
142
|
|
|
106
143
|
<examples>
|
|
107
|
-
/om 给用户列表页添加搜索功能 →
|
|
108
|
-
/om 小改动:调整按钮颜色 →
|
|
109
|
-
/om 实现用户登录功能 →
|
|
110
|
-
/om 从零搭建后台系统 →
|
|
111
|
-
/om 修复登录页面的样式问题 →
|
|
112
|
-
/om docs/task.md →
|
|
113
|
-
/om →
|
|
144
|
+
/om 给用户列表页添加搜索功能 → AI 推荐小需求流程,用户确认
|
|
145
|
+
/om 小改动:调整按钮颜色 → AI 推荐小需求流程,用户确认
|
|
146
|
+
/om 实现用户登录功能 → AI 推荐标准流程,用户确认
|
|
147
|
+
/om 从零搭建后台系统 → AI 推荐复杂流程,用户确认
|
|
148
|
+
/om 修复登录页面的样式问题 → AI 推荐标准流程,用户确认
|
|
149
|
+
/om docs/task.md → 读取文件后 AI 推荐,用户确认
|
|
150
|
+
/om → 显示帮助
|
|
114
151
|
</examples>
|
|
115
152
|
|
|
116
153
|
<notes>
|
|
117
|
-
`/om`
|
|
118
|
-
|
|
154
|
+
`/om` 是 OpenMatrix 工作的简写。路由流程:
|
|
155
|
+
1. AI 评估任务复杂度,给出推荐路由和原因
|
|
156
|
+
2. AskUserQuestion 让用户确认(标注推荐选项)
|
|
157
|
+
3. 用户选择后调用对应 skill
|
|
158
|
+
|
|
159
|
+
可用命令: `/om:brainstorm`, `/om:start`, `/om:feature`, `/om:auto`, `/om:status`, `/om:meeting`, `/om:report`, `/om:resume`, `/om:retry`, `/om:research`, `/om:approve`, `/om:check`, `/om:debug`
|
|
119
160
|
</notes>
|