openmatrix 0.2.16 → 0.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,338 @@
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
+ 直接读取项目文件,不调用 CLI:
19
+
20
+ ```bash
21
+ # 项目配置文件
22
+ ls -la Dockerfile docker-compose.yml docker-compose.yaml Makefile Taskfile.yml Taskfile.yaml 2>/dev/null
23
+ ls -la k8s/ helm/ .github/workflows/ 2>/dev/null
24
+ cat package.json 2>/dev/null
25
+ cat go.mod 2>/dev/null
26
+ cat Cargo.toml 2>/dev/null
27
+ cat requirements.txt pyproject.toml 2>/dev/null
28
+ ```
29
+
30
+ 提取关键信息:
31
+ - 项目类型(Node.js/Go/Python/Rust/Java 等)
32
+ - 已有部署配置(Dockerfile、docker-compose、Makefile、k8s 等)
33
+ - package.json 中的 scripts(build/start/deploy 等)
34
+
35
+ ---
36
+
37
+ ## Step 2: 检测系统环境
38
+
39
+ ```bash
40
+ # 检测已安装的工具
41
+ docker --version 2>/dev/null && echo "docker:ok" || echo "docker:missing"
42
+ docker-compose --version 2>/dev/null && echo "docker-compose:ok" || echo "docker-compose:missing"
43
+ kubectl version --client 2>/dev/null && echo "kubectl:ok" || echo "kubectl:missing"
44
+ make --version 2>/dev/null && echo "make:ok" || echo "make:missing"
45
+ task --version 2>/dev/null && echo "task:ok" || echo "task:missing"
46
+ pm2 --version 2>/dev/null && echo "pm2:ok" || echo "pm2:missing"
47
+ node --version 2>/dev/null && echo "node:ok" || echo "node:missing"
48
+
49
+ # 操作系统
50
+ uname -s 2>/dev/null || echo "Windows"
51
+ ```
52
+
53
+ ---
54
+
55
+ ## Step 3: AI 分析并展示环境报告
56
+
57
+ 基于收集到的信息,直接输出分析报告(不用 AskUserQuestion):
58
+
59
+ ```markdown
60
+ ## 🔍 环境分析报告
61
+
62
+ **项目**: [名称] ([类型])
63
+ **操作系统**: [Linux/macOS/Windows]
64
+
65
+ ### 已检测到的部署配置
66
+ - ✅ Dockerfile
67
+ - ✅ docker-compose.yml
68
+ - ❌ Makefile(未找到)
69
+
70
+ ### 已安装的工具
71
+ - ✅ Docker 24.0.5
72
+ - ✅ make 4.3
73
+ - ❌ task(未安装)
74
+ - ❌ pm2(未安装)
75
+ ```
76
+
77
+ ---
78
+
79
+ ## Step 4: 推荐部署方案(带理由)
80
+
81
+ AI 根据"项目配置 × 已安装工具"交叉分析,用 AskUserQuestion 展示推荐方案:
82
+
83
+ **推荐逻辑(AI 自行判断,不是硬编码):**
84
+ - 有 Dockerfile + docker 已安装 → Docker 是最直接的选择
85
+ - 有 docker-compose + 多服务 → Docker Compose 更合适
86
+ - 有 k8s 配置 + kubectl 已安装 → Kubernetes
87
+ - 有 Makefile + make 已安装 → 直接用 make
88
+ - Node.js + pm2 已安装 → PM2 轻量方案
89
+ - 什么都没有 → AI 根据项目类型推荐创建配置
90
+
91
+ ```
92
+ AskUserQuestion:
93
+ header: "部署方案"
94
+ question: "基于你的环境分析,推荐以下方案(已标注推荐原因):"
95
+
96
+ options:
97
+ - label: "Docker (推荐)"
98
+ description: "已有 Dockerfile + Docker 已安装,直接可用,环境隔离好"
99
+ - label: "Docker Compose"
100
+ description: "检测到 docker-compose.yml,适合多服务编排"
101
+ - label: "Make"
102
+ description: "已有 Makefile + make 已安装,运行 make deploy"
103
+ - label: "npm scripts"
104
+ description: "无需额外工具,直接用 package.json 中的 scripts"
105
+ ```
106
+
107
+ ---
108
+
109
+ ## Step 5: 确认部署环境
110
+
111
+ ```
112
+ AskUserQuestion:
113
+ header: "目标环境"
114
+ question: "部署到哪个环境?"
115
+
116
+ options:
117
+ - label: "本地开发 (推荐)"
118
+ description: "快速启动,用于开发调试"
119
+ - label: "测试环境"
120
+ description: "模拟生产配置,用于验证"
121
+ - label: "生产环境"
122
+ description: "需要完整配置和安全检查"
123
+ ```
124
+
125
+ ---
126
+
127
+ ## Step 6: 执行部署
128
+
129
+ 根据用户选择,AI 执行对应命令:
130
+
131
+ **Docker 本地:**
132
+ ```bash
133
+ docker build -t <project-name> .
134
+ docker run -d -p <port>:<port> --name <project-name> <project-name>
135
+ docker ps | grep <project-name>
136
+ ```
137
+
138
+ **Docker Compose:**
139
+ ```bash
140
+ docker-compose up -d --build
141
+ docker-compose ps
142
+ ```
143
+
144
+ **Make:**
145
+ ```bash
146
+ make deploy
147
+ ```
148
+
149
+ **npm scripts:**
150
+ ```bash
151
+ npm run build
152
+ npm run start
153
+ ```
154
+
155
+ 执行后验证:
156
+ ```bash
157
+ # 检查服务是否正常运行
158
+ docker ps 2>/dev/null | grep <name>
159
+ curl -s http://localhost:<port>/health 2>/dev/null || echo "服务已启动"
160
+ ```
161
+
162
+ 输出执行结果,告知用户服务状态。
163
+
164
+ ---
165
+
166
+ ## Step 7: 询问是否生成一键脚本
167
+
168
+ ```
169
+ AskUserQuestion:
170
+ header: "一键脚本"
171
+ question: "部署完成!是否生成一键脚本方便后续开发调试?"
172
+
173
+ options:
174
+ - label: "生成 Taskfile.yml (推荐)"
175
+ description: "task 已安装 / 现代化工具,YAML 格式简洁,跨平台"
176
+ - label: "生成 Makefile"
177
+ description: "make 已安装 / 经典工具,已有 Makefile 时保持一致"
178
+ - label: "添加到 npm scripts"
179
+ description: "Node.js 项目,无需额外工具"
180
+ - label: "不需要"
181
+ description: "已有足够配置"
182
+ ```
183
+
184
+ ---
185
+
186
+ ## Step 8: 生成一键脚本
187
+
188
+ 根据用户选择和项目实际情况,用 Write 工具生成脚本。
189
+
190
+ **Taskfile.yml 示例(根据实际项目定制):**
191
+ ```yaml
192
+ version: '3'
193
+
194
+ vars:
195
+ APP: '{{.APP | default "app"}}'
196
+ PORT: '{{.PORT | default "3000"}}'
197
+
198
+ tasks:
199
+ setup:
200
+ desc: 安装依赖
201
+ cmds:
202
+ - npm install
203
+
204
+ build:
205
+ desc: 构建项目
206
+ cmds:
207
+ - npm run build
208
+
209
+ test:
210
+ desc: 运行测试
211
+ cmds:
212
+ - npm test
213
+
214
+ dev:
215
+ desc: 本地开发(热重载)
216
+ cmds:
217
+ - npm run dev
218
+
219
+ deploy:local:
220
+ desc: 本地 Docker 部署
221
+ cmds:
222
+ - docker build -t {{.APP}} .
223
+ - docker run -d -p {{.PORT}}:{{.PORT}} --name {{.APP}} {{.APP}}
224
+ - echo "✅ 服务已启动 http://localhost:{{.PORT}}"
225
+
226
+ deploy:prod:
227
+ desc: 生产部署
228
+ cmds:
229
+ - docker build -t {{.APP}}:{{.VERSION}} .
230
+ - docker push {{.REGISTRY}}/{{.APP}}:{{.VERSION}}
231
+
232
+ logs:
233
+ desc: 查看日志
234
+ cmds:
235
+ - docker logs -f {{.APP}}
236
+
237
+ stop:
238
+ desc: 停止服务
239
+ cmds:
240
+ - docker stop {{.APP}} && docker rm {{.APP}}
241
+ ```
242
+
243
+ **Makefile 示例(根据实际项目定制):**
244
+ ```makefile
245
+ APP ?= app
246
+ PORT ?= 3000
247
+
248
+ .PHONY: setup build test dev deploy-local deploy-prod logs stop
249
+
250
+ setup:
251
+ npm install
252
+
253
+ build:
254
+ npm run build
255
+
256
+ test:
257
+ npm test
258
+
259
+ dev:
260
+ npm run dev
261
+
262
+ deploy-local:
263
+ docker build -t $(APP) .
264
+ docker run -d -p $(PORT):$(PORT) --name $(APP) $(APP)
265
+ @echo "✅ 服务已启动 http://localhost:$(PORT)"
266
+
267
+ deploy-prod:
268
+ docker build -t $(APP):$(VERSION) .
269
+ docker push $(REGISTRY)/$(APP):$(VERSION)
270
+
271
+ logs:
272
+ docker logs -f $(APP)
273
+
274
+ stop:
275
+ docker stop $(APP) && docker rm $(APP)
276
+ ```
277
+
278
+ ---
279
+
280
+ ## Step 9: 输出总结
281
+
282
+ ```markdown
283
+ ## ✅ 部署完成
284
+
285
+ **方案**: Docker 本地部署
286
+ **环境**: 本地开发
287
+ **脚本**: 已生成 Taskfile.yml
288
+
289
+ ### 常用命令
290
+ - `task dev` — 本地开发
291
+ - `task deploy:local` — Docker 本地部署
292
+ - `task deploy:prod` — 生产部署
293
+ - `task logs` — 查看日志
294
+ - `task stop` — 停止服务
295
+ ```
296
+
297
+ </process>
298
+
299
+ <arguments>
300
+ $ARGUMENTS
301
+ </arguments>
302
+
303
+ <examples>
304
+ /om:deploy # 自动分析 → 推荐方案 → 执行 → 生成脚本
305
+ /om:deploy local # 直接指定本地环境
306
+ /om:deploy prod # 直接指定生产环境
307
+ </examples>
308
+
309
+ <notes>
310
+ ## 核心原则
311
+
312
+ 1. **AI 是分析者**:读取真实文件和系统状态,不靠硬编码规则推断
313
+ 2. **AI 是执行者**:用户确认后直接运行命令,不只是给建议
314
+ 3. **推荐最可行的**:基于"当前系统已有什么工具",不是"理论上最好的"
315
+ 4. **产出可复用脚本**:最终生成 Taskfile/Makefile,方便后续开发调试
316
+
317
+ ## 推荐决策依据(AI 自行判断)
318
+
319
+ | 项目配置 | 系统工具 | 推荐方案 |
320
+ |---------|---------|---------|
321
+ | 有 Dockerfile | docker 已安装 | Docker |
322
+ | 有 docker-compose | docker-compose 已安装 | Docker Compose |
323
+ | 有 k8s/ | kubectl 已安装 | Kubernetes |
324
+ | 有 Makefile | make 已安装 | Make |
325
+ | Node.js | pm2 已安装 | PM2 |
326
+ | Node.js | 无特殊工具 | npm scripts |
327
+ | 无任何配置 | docker 已安装 | 生成 Dockerfile |
328
+ | 无任何配置 | 无工具 | npm scripts / shell 脚本 |
329
+
330
+ ## 脚本工具选择依据
331
+
332
+ | 条件 | 推荐 |
333
+ |------|------|
334
+ | task 已安装 | Taskfile.yml |
335
+ | make 已安装 / 已有 Makefile | Makefile |
336
+ | Node.js 项目 / 无工具 | npm scripts |
337
+ | Windows + 无工具 | package.json scripts |
338
+ </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:** 选择质量等级(决定测试覆盖、Lint、安全扫描等要求)
243
+ **question:** 选择质量等级(Claude 推荐:${inferredQuality},原因:${inferReason})
237
244
 
238
245
  | label | description |
239
246
  |-------|-------------|
240
247
  | `strict` | TDD + >80%覆盖率 + 严格Lint + 安全扫描 — 生产级代码 |
241
- | `balanced (推荐)` | >60%覆盖率 + Lint + 安全扫描 — 日常开发 |
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-feature` 继续
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-feature 恢复
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-feature` 继续执行(读取 `.openmatrix/feature-session.json`)
645
+ 使用 `/om:resume` 继续执行(自动检测 `.openmatrix/feature-session.json` 或 `state.json`)
635
646
 
636
647
  ## 挡久化文件说明
637
648