openmatrix 0.2.8 → 0.2.10
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/package.json +1 -1
- package/skills/debug.md +130 -6
- package/skills/feature.md +66 -12
package/package.json
CHANGED
package/skills/debug.md
CHANGED
|
@@ -114,12 +114,67 @@ Agent({
|
|
|
114
114
|
- 问题描述: ${description}
|
|
115
115
|
${relatedTaskId ? `- 关联任务: ${relatedTaskId}` : ''}
|
|
116
116
|
|
|
117
|
-
##
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
117
|
+
## 调查步骤(必须按顺序执行)
|
|
118
|
+
|
|
119
|
+
### 1. 仔细阅读错误信息
|
|
120
|
+
- 不要跳过任何警告或错误
|
|
121
|
+
- 错误信息往往包含解决方案
|
|
122
|
+
- 完整阅读堆栈跟踪
|
|
123
|
+
- 记录行号、文件路径、错误代码
|
|
124
|
+
|
|
125
|
+
### 2. 稳定复现
|
|
126
|
+
- 能否可靠触发?
|
|
127
|
+
- 精确步骤是什么?
|
|
128
|
+
- 每次都会发生吗?
|
|
129
|
+
- 不能复现 → 收集更多数据,不要猜测
|
|
130
|
+
|
|
131
|
+
### 3. 检查近期变更
|
|
132
|
+
- git diff、最近提交
|
|
133
|
+
- 新依赖、配置变更
|
|
134
|
+
- 环境差异
|
|
135
|
+
|
|
136
|
+
### 4. 多组件系统诊断(如有多个组件)
|
|
137
|
+
**当系统有多个组件(CI → build → signing, API → service → database):**
|
|
138
|
+
|
|
139
|
+
**在提出修复之前,添加诊断日志:**
|
|
140
|
+
\`\`\`
|
|
141
|
+
对每个组件边界:
|
|
142
|
+
- 记录什么数据进入组件
|
|
143
|
+
- 记录什么数据退出组件
|
|
144
|
+
- 验证环境/配置传递
|
|
145
|
+
- 检查每层状态
|
|
146
|
+
|
|
147
|
+
运行一次收集证据,显示哪里断裂
|
|
148
|
+
然后分析证据识别失败组件
|
|
149
|
+
然后深入调查该组件
|
|
150
|
+
\`\`\`
|
|
151
|
+
|
|
152
|
+
**示例(多层系统):**
|
|
153
|
+
\`\`\`bash
|
|
154
|
+
# Layer 1: Workflow
|
|
155
|
+
echo "=== Secrets in workflow: ==="
|
|
156
|
+
echo "IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}"
|
|
157
|
+
|
|
158
|
+
# Layer 2: Build script
|
|
159
|
+
echo "=== Env vars in build: ==="
|
|
160
|
+
env | grep IDENTITY || echo "IDENTITY not in env"
|
|
161
|
+
|
|
162
|
+
# Layer 3: Signing script
|
|
163
|
+
echo "=== Keychain state: ==="
|
|
164
|
+
security list-keychains
|
|
165
|
+
|
|
166
|
+
# Layer 4: Actual signing
|
|
167
|
+
codesign --sign "$IDENTITY" --verbose=4 "$APP"
|
|
168
|
+
\`\`\`
|
|
169
|
+
|
|
170
|
+
这揭示:哪层失败(secrets → workflow ✓, workflow → build ✗)
|
|
171
|
+
|
|
172
|
+
### 5. 追踪数据流
|
|
173
|
+
**当错误在调用栈深处:**
|
|
174
|
+
- 错误值从哪里产生?
|
|
175
|
+
- 谁传入的这个错误值?
|
|
176
|
+
- 继续向上追踪直到源头
|
|
177
|
+
- 在源头修复,不是症状处
|
|
123
178
|
|
|
124
179
|
## 输出格式
|
|
125
180
|
请按以下格式输出:
|
|
@@ -136,6 +191,10 @@ ${relatedTaskId ? `- 关联任务: ${relatedTaskId}` : ''}
|
|
|
136
191
|
- 提交1: 描述
|
|
137
192
|
- 提交2: 描述
|
|
138
193
|
|
|
194
|
+
### 多组件诊断结果(如适用)
|
|
195
|
+
- Layer N 状态: ...
|
|
196
|
+
- 断裂点: ...
|
|
197
|
+
|
|
139
198
|
### 根因分析
|
|
140
199
|
[详细描述问题根源]
|
|
141
200
|
|
|
@@ -448,4 +507,69 @@ Step 10: 写入 Debug Report
|
|
|
448
507
|
- 不修改未关联的文件
|
|
449
508
|
- 单一修复原则
|
|
450
509
|
- 修复前必须有验证方法
|
|
510
|
+
|
|
511
|
+
## 红旗警告 - 停止并回归流程
|
|
512
|
+
|
|
513
|
+
**如果发现自己在想:**
|
|
514
|
+
- "先快速修复,之后再调查"
|
|
515
|
+
- "试试改 X 看看能不能工作"
|
|
516
|
+
- "一次改多处,跑测试"
|
|
517
|
+
- "跳过测试,手动验证就行"
|
|
518
|
+
- "大概是 X 问题,直接修吧"
|
|
519
|
+
- "不太懂但这可能有用"
|
|
520
|
+
- "模式说 X 但我要改动一下"
|
|
521
|
+
- "这里列出主要问题:[未经调查直接列修复]"
|
|
522
|
+
- 提出解决方案前没有追踪数据流
|
|
523
|
+
- **"再试一次修复"(已经试过 2+ 次)**
|
|
524
|
+
- 每次修复揭示新地方的问题
|
|
525
|
+
|
|
526
|
+
**所有这些意味着:停止。回到 Step 3。**
|
|
527
|
+
|
|
528
|
+
## 常见借口 vs 真实情况
|
|
529
|
+
|
|
530
|
+
| 借口 | 真实情况 |
|
|
531
|
+
|------|---------|
|
|
532
|
+
| "问题简单,不需要流程" | 简单问题也有根因。流程处理简单 bug 很快。 |
|
|
533
|
+
| "紧急情况,没时间走流程" | 系统化调试比瞎猜乱试更快。 |
|
|
534
|
+
| "先试试这个,再调查" | 第一次修复定基调。从一开始就做对。 |
|
|
535
|
+
| "确认修复有效后再写测试" | 没测试的修复不牢靠。先写测试证明它。 |
|
|
536
|
+
| "一次改多处节省时间" | 无法隔离哪个有效。还会引入新 bug。 |
|
|
537
|
+
| "参考文档太长,我按模式改改" | 一知半解必然有 bug。完整阅读。 |
|
|
538
|
+
| "我看到问题了,直接修吧" | 看到症状 ≠ 理解根因。 |
|
|
539
|
+
| "再试一次修复"(失败 2+ 次后) | 3+ 次失败 = 架构问题。质疑模式,不要继续修。 |
|
|
540
|
+
|
|
541
|
+
## 3+ 次修复失败:质疑架构
|
|
542
|
+
|
|
543
|
+
**指示架构问题的模式:**
|
|
544
|
+
- 每次修复揭示新共享状态/耦合/其他地方的问题
|
|
545
|
+
- 修复需要"大规模重构"才能实现
|
|
546
|
+
- 每次修复在其他地方产生新症状
|
|
547
|
+
|
|
548
|
+
**停止并质疑根本问题:**
|
|
549
|
+
- 这个模式根本上是否合理?
|
|
550
|
+
- 我们是否"靠惯性硬撑"?
|
|
551
|
+
- 应该重构架构还是继续修补症状?
|
|
552
|
+
|
|
553
|
+
**在尝试更多修复之前与用户讨论。**
|
|
554
|
+
|
|
555
|
+
这不是假设失败 — 这是架构错误。
|
|
556
|
+
|
|
557
|
+
## 无根因的情况
|
|
558
|
+
|
|
559
|
+
如果系统化调查揭示问题确实是环境、时序依赖或外部因素:
|
|
560
|
+
|
|
561
|
+
1. 你已完成流程
|
|
562
|
+
2. 记录调查了什么
|
|
563
|
+
3. 实现适当处理(重试、超时、错误消息)
|
|
564
|
+
4. 添加监控/日志以便未来调查
|
|
565
|
+
|
|
566
|
+
**但:** 95% 的"无根因"情况是调查不完整。
|
|
567
|
+
|
|
568
|
+
## 实际影响
|
|
569
|
+
|
|
570
|
+
来自调试实践:
|
|
571
|
+
- 系统化方法:15-30 分钟修复
|
|
572
|
+
- 随机修复方法:2-3 小时折腾
|
|
573
|
+
- 首次修复率:95% vs 40%
|
|
574
|
+
- 引入新 bug:接近零 vs 常见
|
|
451
575
|
</notes>
|
package/skills/feature.md
CHANGED
|
@@ -21,7 +21,7 @@ priority: high
|
|
|
21
21
|
|
|
22
22
|
```
|
|
23
23
|
Step 1: 接收任务输入(参数、文件、或询问用户)
|
|
24
|
-
Step 2:
|
|
24
|
+
Step 2: AI 自动判断任务边界(不符合条件才询问切换)
|
|
25
25
|
Step 3: AI 拆分为 2-5 个小任务块
|
|
26
26
|
Step 4: 用 TodoWrite 管理任务状态
|
|
27
27
|
Step 5: 问答确认(质量等级、E2E测试、执行计划)
|
|
@@ -65,22 +65,35 @@ AskUserQuestion: `header: "任务描述"`, `multiSelect: false`
|
|
|
65
65
|
| 从文件读取 | 指定任务文件路径 |
|
|
66
66
|
| 取消 | 退出 |
|
|
67
67
|
|
|
68
|
-
## Step 2:
|
|
68
|
+
## Step 2: AI 判断任务边界
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
**AI 自动判断任务是否适合本 skill:**
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
72
|
+
检查以下条件(全部满足才继续,否则建议切换):
|
|
73
|
+
|
|
74
|
+
| 条件 | 检查方式 |
|
|
75
|
+
|------|---------|
|
|
76
|
+
| 描述长度 ≤ 100 字 | 字数统计 |
|
|
77
|
+
| 单一功能点 | 无"和"、"同时"、"另外"等连接词 |
|
|
78
|
+
| 无架构设计 | 无"架构"、"设计"、"从零"、"重构"关键词 |
|
|
79
|
+
| 无多子系统 | 无多个独立模块描述 |
|
|
80
|
+
|
|
81
|
+
**判断结果处理:**
|
|
82
|
+
|
|
83
|
+
| 结果 | 处理 |
|
|
84
|
+
|------|------|
|
|
85
|
+
| ✅ 全部满足 | 继续执行 Step 3 |
|
|
86
|
+
| ❌ 不满足 | 输出建议并询问是否切换到 `/om:start` |
|
|
87
|
+
|
|
88
|
+
**如果需要切换,询问:**
|
|
89
|
+
|
|
90
|
+
AskUserQuestion: `header: "任务复杂度"`, `multiSelect: false`
|
|
91
|
+
**question:** 任务可能需要完整追踪,建议使用 `/om:start`。是否切换?
|
|
74
92
|
|
|
75
93
|
| label | description |
|
|
76
94
|
|-------|-------------|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
80
|
-
**如果用户选择"不确定/复杂":**
|
|
81
|
-
- 展示建议:任务可能需要完整追踪,建议使用 `/om:start`
|
|
82
|
-
- 询问是否切换
|
|
83
|
-
- 如果坚持使用本 skill,继续但记录风险
|
|
95
|
+
| 切换到 /om:start | 使用完整流程 |
|
|
96
|
+
| 继续用 /om:feature | 强制使用轻量流程(可能无法完整追踪) |
|
|
84
97
|
|
|
85
98
|
## Step 3: AI 拆分为 2-5 个小任务块
|
|
86
99
|
|
|
@@ -364,6 +377,29 @@ $ARGUMENTS
|
|
|
364
377
|
- 不得跳过任务边界确认
|
|
365
378
|
- 不得在 Agent 内部执行 git commit
|
|
366
379
|
|
|
380
|
+
## 红旗警告 - 停止并回归流程
|
|
381
|
+
|
|
382
|
+
**如果发现自己在想:**
|
|
383
|
+
- "验证麻烦,先提交再说"
|
|
384
|
+
- "任务块小,一次改两个吧"
|
|
385
|
+
- "顺便重构下这个代码"
|
|
386
|
+
- "跳过质量确认,直接开始"
|
|
387
|
+
- "测试失败没关系,手动验证就行"
|
|
388
|
+
- "这个小改动不会影响其他"
|
|
389
|
+
|
|
390
|
+
**所有这些意味着:停止。回到流程执行。**
|
|
391
|
+
|
|
392
|
+
## 常见借口 vs 真实情况
|
|
393
|
+
|
|
394
|
+
| 借口 | 真实情况 |
|
|
395
|
+
|------|---------|
|
|
396
|
+
| "验证太慢,先提交" | 未验证的提交会污染仓库,回头排查更慢。 |
|
|
397
|
+
| "一次改两个任务块效率高" | 无法隔离哪个改动有问题。引入新 bug。 |
|
|
398
|
+
| "顺便重构没问题" | "顺便"是 bug 的温床。任务聚焦。 |
|
|
399
|
+
| "质量确认麻烦" | 3 秒的选择防止后续数小时排查。 |
|
|
400
|
+
| "手动验证就行" | 手动验证不可重复。自动化测试才可靠。 |
|
|
401
|
+
| "小改动不会出错" | 小改动也有根因。系统性验证。 |
|
|
402
|
+
|
|
367
403
|
## 与其他指令的区别
|
|
368
404
|
|
|
369
405
|
| 指令 | 适用场景 | 任务文件 | 问答 | 验证 |
|
|
@@ -394,6 +430,24 @@ $ARGUMENTS
|
|
|
394
430
|
| Agent 超时 | 询问重试或跳过 |
|
|
395
431
|
| Git 失败 | 提示手动处理 |
|
|
396
432
|
|
|
433
|
+
## 3+ 次验证失败:质疑任务拆分
|
|
434
|
+
|
|
435
|
+
**如果同一任务块验证失败 3 次以上:**
|
|
436
|
+
|
|
437
|
+
**指示拆分问题的模式:**
|
|
438
|
+
- 每次修复产生新的测试失败
|
|
439
|
+
- 任务块范围模糊,边界不清
|
|
440
|
+
- 修改影响多个不相关文件
|
|
441
|
+
|
|
442
|
+
**停止并质疑拆分方案:**
|
|
443
|
+
- 任务块是否过于复杂?
|
|
444
|
+
- 是否需要重新拆分?
|
|
445
|
+
- 是否应该切换到 `/om:start` 使用完整流程?
|
|
446
|
+
|
|
447
|
+
**在继续执行之前与用户讨论拆分方案。**
|
|
448
|
+
|
|
449
|
+
这不是执行失败 — 这是拆分策略问题。
|
|
450
|
+
|
|
397
451
|
## Git 提交格式
|
|
398
452
|
|
|
399
453
|
```
|