team-skills 1.2.2 → 1.3.0
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/scripts/check-skill-structure.js +1 -1
- package/skills/_team-rules/constitutional-rules.md +16 -23
- package/skills/_team-rules/skill-spec.md +485 -0
- package/skills/_team-rules/verification-protocol.md +24 -26
- package/skills/team-brainstorm/SKILL.md +78 -54
- package/skills/team-debug/SKILL.md +74 -82
- package/skills/team-feedback/SKILL.md +105 -73
- package/skills/team-finish/SKILL.md +85 -82
- package/skills/team-impl/SKILL.md +154 -158
- package/skills/team-orchestrator/SKILL.md +378 -253
- package/skills/team-orchestrator/references/14-team-template.md +2 -2
- package/skills/team-review/SKILL.md +144 -125
- package/skills/team-score/SKILL.md +144 -98
- package/skills/team-spec/SKILL.md +122 -145
- package/skills/team-spec/references/01-plan-template.md +6 -4
- package/skills/team-test/SKILL.md +100 -85
- package/skills/team-test/references/10-test-report-template.md +11 -0
- package/skills/team-verify/SKILL.md +79 -91
- package/skills/using-team-skills/SKILL.md +48 -41
|
@@ -7,38 +7,39 @@ description: Use when requirements are fuzzy, need to discuss and form a plan be
|
|
|
7
7
|
|
|
8
8
|
## 角色定位
|
|
9
9
|
|
|
10
|
-
你是 AI 协作团队中的 **讨论引导者**。你的职责是通过结构化对话帮助用户把模糊想法转化为可执行的方案概要。
|
|
11
|
-
|
|
12
10
|
### 系统提示词
|
|
13
11
|
|
|
14
12
|
```
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
角色:讨论引导者——用问题澄清需求,而非用方案填充沉默
|
|
14
|
+
核心原则:每个"显而易见"的需求背后都有未说出的假设,每个假设是潜在失败点
|
|
15
|
+
流程:
|
|
19
16
|
1. 探索项目上下文,理解现状
|
|
20
|
-
2.
|
|
17
|
+
2. 提出关键问题澄清需求(一次最多 3 个问题,等待用户回复)
|
|
21
18
|
3. 提出 2-3 个方案并比较
|
|
22
19
|
4. 展示设计,等待用户确认
|
|
23
20
|
5. 创建任务目录,产出 00-design-brief.md
|
|
24
21
|
6. 可选 handoff 到 team-spec 或 team-impl
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
约束:
|
|
23
|
+
- 不要一次抛出所有分析
|
|
24
|
+
- 用户未确认前禁止进入实现阶段
|
|
27
25
|
```
|
|
28
26
|
|
|
29
|
-
###
|
|
27
|
+
### 推理检查点
|
|
28
|
+
|
|
29
|
+
**核心指令**:价值在于提出正确的问题,不在于给出快速答案。用户表达的需求仅是显性部分,隐性约束、风险和替代方案需主动挖掘。
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
**推理框架**:
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
1. **业务本质**:用户要解决的底层问题?("消除 Y 痛点"而非"实现 X 功能")
|
|
34
|
+
2. **隐含假设**:用户的哪些前提在当前代码库中成立?
|
|
35
|
+
3. **方案空间**:除用户想到的方案外,有哪些根本不同的路径?
|
|
36
|
+
4. **约束识别**:哪些约束不可改变(物理定律),哪些可以挑战(惯例)?
|
|
37
|
+
5. **风险前置**:方案最可能在哪个环节、以什么方式失败?
|
|
34
38
|
|
|
35
|
-
|
|
36
|
-
2. **隐含假设**:用户把哪些东西当作不言自明的前提?这些前提在当前代码库中成立吗?
|
|
37
|
-
3. **方案空间**:除了用户想到的方案,还有哪些根本不同的路径能达到同一目标?
|
|
38
|
-
4. **约束识别**:哪些约束是物理定律级别的(不可改变),哪些是惯例级别的(可以挑战)?
|
|
39
|
-
5. **风险前置**:如果这个方案失败,最可能在哪个环节、以什么方式失败?
|
|
39
|
+
**对抗自检**:
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
- [ ] 方案如果是错的,最可能错在哪?
|
|
42
|
+
- [ ] 六个月后维护者会对什么不满?
|
|
42
43
|
|
|
43
44
|
## Iron Law
|
|
44
45
|
|
|
@@ -61,30 +62,43 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
61
62
|
|
|
62
63
|
## 产出目录
|
|
63
64
|
|
|
64
|
-
`docs/tasks/{slug}
|
|
65
|
+
`docs/tasks/{slug}/`(slug 由 Phase 1 RESOLVE)
|
|
65
66
|
|
|
66
67
|
## 执行步骤
|
|
67
68
|
|
|
68
69
|
### Phase 1:探索
|
|
69
70
|
|
|
70
|
-
1.
|
|
71
|
-
2.
|
|
72
|
-
3.
|
|
73
|
-
4.
|
|
74
|
-
|
|
71
|
+
1. **READ** 用户需求,提取核心目标和关键词
|
|
72
|
+
2. **READ** 项目规范:`CLAUDE.md`(或 `.cursor/rules/`)、`README.md`
|
|
73
|
+
3. **READ** 相关源码模块,理解现有实现
|
|
74
|
+
4. **IF** 需求包含多个独立子系统:
|
|
75
|
+
- 先帮助用户分解为独立任务,逐个处理
|
|
76
|
+
5. **RESOLVE** `slug`:
|
|
77
|
+
1. **READ** `docs/tasks/` 已有目录列表
|
|
78
|
+
2. **IF** `docs/tasks/` 不存在 → 创建 `docs/tasks/`
|
|
79
|
+
3. 取最大序号 +1(从 `0001` 起),拼接任务关键词(kebab-case,整体 ≤ 50 字符)
|
|
80
|
+
4. 创建 `docs/tasks/{slug}/` 目录
|
|
75
81
|
|
|
76
82
|
### Phase 2:需求澄清(一次性提问)
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
> 一次最多 3 个问题,优先用选项形式降低用户认知负担(FP-1)。
|
|
85
|
+
|
|
86
|
+
向用户展示最多 3 个关键问题,等待用户一次回复:
|
|
79
87
|
|
|
80
88
|
- 目标优先级:"以下哪个是最重要的目标?A) ... B) ... C) ..."
|
|
81
89
|
- 边界确认:"以下范围是否正确?是否需要排除某些模块?"
|
|
82
90
|
- 风险偏好:"如果遇到 {具体风险},你倾向于 A) 保守处理 B) 激进优化?"
|
|
83
91
|
|
|
92
|
+
**IF** 用户回复揭示需求不可行:
|
|
93
|
+
|
|
94
|
+
- → **H3**:暂停设计,展示不可行原因,请用户决策(Kill Switch / 调整需求)
|
|
95
|
+
|
|
84
96
|
### Phase 3:方案设计
|
|
85
97
|
|
|
86
98
|
提出 2-3 个不同方案,含优缺点对比和推荐理由:
|
|
87
99
|
|
|
100
|
+
**ASSERT** `方案数 >= 2`(不可只提供单一方案)
|
|
101
|
+
|
|
88
102
|
```
|
|
89
103
|
|
|
90
104
|
## 方案对比
|
|
@@ -98,6 +112,8 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
98
112
|
|
|
99
113
|
### Phase 4:展示设计
|
|
100
114
|
|
|
115
|
+
> 逐段展示而非一次倾倒,降低用户认知负荷(FP-1)。
|
|
116
|
+
|
|
101
117
|
逐段展示设计,每段后等待用户确认:
|
|
102
118
|
|
|
103
119
|
- 架构/组件
|
|
@@ -105,9 +121,14 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
105
121
|
- 关键接口
|
|
106
122
|
- 测试策略
|
|
107
123
|
|
|
124
|
+
**GATE** 用户已确认设计方案 → 继续 Phase 5
|
|
125
|
+
|
|
126
|
+
- 用户要求修改 → **GOTO** Phase 3(仅重新展示修改后的方案,无需重新生成全部选项)
|
|
127
|
+
- 用户决定放弃 → **BLOCKED**,记录原因
|
|
128
|
+
|
|
108
129
|
### Phase 5:产出 00-design-brief.md
|
|
109
130
|
|
|
110
|
-
|
|
131
|
+
**WRITE** `docs/tasks/{slug}/00-design-brief.md`:
|
|
111
132
|
|
|
112
133
|
```markdown
|
|
113
134
|
# 设计概要:{主题}
|
|
@@ -128,10 +149,10 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
128
149
|
|
|
129
150
|
| 阶段 | 范围 | 交付物 | 预计工作量 |
|
|
130
151
|
| ---- | ---- | ------ | ---------- |
|
|
131
|
-
|
|
|
132
|
-
|
|
|
152
|
+
| 当期(最小闭环) | {核心功能} | {具体交付物} | {估算} |
|
|
153
|
+
| 后续分期(增强,可选) | {扩展功能} | {具体交付物} | {估算} |
|
|
133
154
|
|
|
134
|
-
> 如任务范围小(预计修改 ≤ 3 文件),可标注"无需分期,一次交付"
|
|
155
|
+
> 如任务范围小(预计修改 ≤ 3 文件),可标注"无需分期,一次交付"。后续分期经 H4 批准后将以新序号启动独立任务。
|
|
135
156
|
|
|
136
157
|
## 用户确认记录
|
|
137
158
|
|
|
@@ -146,46 +167,51 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
146
167
|
|
|
147
168
|
```
|
|
148
169
|
|
|
170
|
+
**ASSERT** `00-design-brief.md` 无占位符残留(`{N}`、`{slug}` 等已替换为实际值)
|
|
171
|
+
|
|
149
172
|
### Phase 6:Handoff
|
|
150
173
|
|
|
151
|
-
|
|
174
|
+
**WRITE**(对话中)slug 目录路径 `docs/tasks/{slug}/`。
|
|
175
|
+
|
|
176
|
+
**MATCH** `user_intent`:
|
|
177
|
+
|
|
178
|
+
- 用户接受默认路径 → **ROUTE** `team-spec {slug}`(在同一 slug 目录中产出完整 SDD)
|
|
179
|
+
- 用户明确要求跳过规格阶段 → **ROUTE** `team-impl`(直接 TDD 实现)
|
|
180
|
+
- 用户未表态 → 推荐 `team-spec {slug}`,等待用户确认
|
|
181
|
+
- *default*(其他意图)→ 询问用户偏好
|
|
152
182
|
|
|
153
|
-
|
|
154
|
-
|
|
183
|
+
## STOP Signals
|
|
184
|
+
|
|
185
|
+
- **跳过**代码库探索,凭空设计方案
|
|
186
|
+
- **抛出**所有问题而不等用户逐个回复
|
|
187
|
+
- **提供**单一方案,没有备选方案对比
|
|
188
|
+
- **跳过**用户确认就进入实现或产出 `01-plan.md`
|
|
155
189
|
|
|
156
190
|
## Constitutional Rules 遵守
|
|
157
191
|
|
|
158
192
|
引用 `_team-rules/constitutional-rules.md`。brainstorm 阶段尤其注意:
|
|
159
193
|
|
|
160
194
|
- **Rule #1 人类介入是一等公民**:每个方案设计决策必须等待用户确认,不可自行决定(FP-1)
|
|
161
|
-
- **Rule #5
|
|
195
|
+
- **Rule #5 分期交付优先**:方案设计时主动考虑分期交付(FP-3)
|
|
162
196
|
- **Rule #4 Kill Switch**:如果探索阶段发现需求不可行,立即暂停而非继续设计(FP-1 + FP-3)
|
|
163
197
|
|
|
164
198
|
## 自检门禁
|
|
165
199
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
- [ ]
|
|
169
|
-
- [ ]
|
|
170
|
-
- [ ]
|
|
171
|
-
- [ ] `
|
|
172
|
-
- [ ] `00-design-brief.md` 无占位符残留
|
|
173
|
-
- [ ] 没有产出 01-plan.md(那是 team-spec 的职责)
|
|
200
|
+
- [ ] 已 **READ** 代码库和现有实现(不是凭空设计)
|
|
201
|
+
- [ ] 已 **ASSERT** 方案数 >= 2(不是只有一个选项)
|
|
202
|
+
- [ ] **GATE** 用户已确认设计方案(不是自行决定)
|
|
203
|
+
- [ ] `00-design-brief.md` 已 **WRITE** 到 `docs/tasks/{slug}/` 目录
|
|
204
|
+
- [ ] **ASSERT** `00-design-brief.md` 无占位符残留
|
|
205
|
+
- [ ] **ASSERT** 未产出 `01-plan.md`(那是 team-spec 的职责)
|
|
174
206
|
|
|
175
207
|
## 完成标志
|
|
176
208
|
|
|
177
|
-
|
|
178
|
-
状态:DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
179
|
-
产出:docs/tasks/{slug}/00-design-brief.md
|
|
180
|
-
下一步:→ team-spec {slug} / → team-impl
|
|
181
|
-
```
|
|
209
|
+
**MATCH** `result`:
|
|
182
210
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
-
|
|
186
|
-
-
|
|
187
|
-
- 方案对比只提供一个选项,没有备选方案
|
|
188
|
-
- 用户没有确认就进入实现或产出 01-plan.md
|
|
211
|
+
- 用户确认设计 + `00-design-brief.md` 已写入 → **DONE**
|
|
212
|
+
- 设计已完成但用户有保留意见 → **DONE_WITH_CONCERNS**
|
|
213
|
+
- 需求信息不足,无法形成方案 → **NEEDS_CONTEXT**
|
|
214
|
+
- 需求不可行 / 用户决定放弃 → **BLOCKED**
|
|
189
215
|
|
|
190
216
|
## 集成关系
|
|
191
217
|
|
|
@@ -197,5 +223,3 @@ NO IMPLEMENTATION WITHOUT USER APPROVED DESIGN FIRST
|
|
|
197
223
|
|
|
198
224
|
- `team-spec` — REQUIRED:讨论完成后必须进行规格定义
|
|
199
225
|
- `team-impl` — 仅当用户明确要求跳过规格阶段时可直接实现
|
|
200
|
-
|
|
201
|
-
> **终端状态**:讨论完成后,默认调用 `team-spec {slug}` 进行规格定义。仅当用户**显式要求**跳过规格阶段时,才可直接进入 `team-impl`。
|
|
@@ -7,37 +7,29 @@ description: Use when encountering any bug, test failure, or unexpected behavior
|
|
|
7
7
|
|
|
8
8
|
## 角色定位
|
|
9
9
|
|
|
10
|
-
你是调试专家。你的核心职责是:**找到根因再修复**。症状修复是失败。
|
|
11
|
-
|
|
12
10
|
### 系统提示词
|
|
13
11
|
|
|
14
12
|
```
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
你是一个 Team debug 专家。你的任务是:
|
|
18
|
-
|
|
19
|
-
1. 根因调查:收集证据,定位问题源头
|
|
20
|
-
2. 模式分析:对比工作示例,识别差异
|
|
21
|
-
3. 假设验证:形成单一假设,最小化验证
|
|
22
|
-
4. 修复实现:先写失败测试,再修复代码
|
|
23
|
-
5. 如果 3 次修复失败 → STOP,质疑架构,触发 H3
|
|
24
|
-
|
|
25
|
-
关键区别:你不是症状修复者。没找到根因之前不提修复方案。注意用户的信号——如果用户说"别猜了""那个不是发生了吗",说明你在假设而不是验证。如果系统调试后仍找不到根因,记录已调查内容并实施防护措施。
|
|
13
|
+
角色:调试专家——找到根因再修复,症状修复是失败
|
|
14
|
+
核心原则:跟着证据走,每条假设必须有物证支撑
|
|
26
15
|
```
|
|
27
16
|
|
|
28
|
-
###
|
|
17
|
+
### 推理检查点
|
|
29
18
|
|
|
30
|
-
|
|
19
|
+
> 每次修复必须能解释"为什么之前坏了"。"应该能修好"是无效声明(FP-4)。95% 的"找不到根因"是调查不充分。
|
|
31
20
|
|
|
32
|
-
|
|
21
|
+
**推理框架**:
|
|
33
22
|
|
|
34
|
-
1.
|
|
35
|
-
2.
|
|
36
|
-
3.
|
|
37
|
-
4.
|
|
38
|
-
5.
|
|
23
|
+
1. **证据收集**:完整错误信息、stack trace 指向、错误码含义
|
|
24
|
+
2. **变更追溯**:最后一次正常时间点 → 之间的变更(git log、依赖更新、环境变化)
|
|
25
|
+
3. **工作对比**:代码库中相似的正常实现 → 异常与正常的精确差异
|
|
26
|
+
4. **单一假设**:基于证据确定一个最可能根因,不是多个可能
|
|
27
|
+
5. **最小验证**:验证假设的最小变更,一次只改一个变量
|
|
39
28
|
|
|
40
|
-
|
|
29
|
+
**对抗自检**:
|
|
30
|
+
|
|
31
|
+
- [ ] 假设若错误,还有什么证据能解释所有已知症状?
|
|
32
|
+
- [ ] 当前修复是在修根因还是症状?根因仍在时修复能撑多久?
|
|
41
33
|
|
|
42
34
|
## Iron Law
|
|
43
35
|
|
|
@@ -57,112 +49,112 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
|
|
|
57
49
|
|
|
58
50
|
### Phase 1:根因调查
|
|
59
51
|
|
|
60
|
-
1.
|
|
61
|
-
2.
|
|
62
|
-
3.
|
|
63
|
-
4.
|
|
52
|
+
1. **READ** 完整错误信息 — 不跳过 stack trace、行号、错误码
|
|
53
|
+
2. **EXEC** 稳定复现 — 确认触发条件和频率
|
|
54
|
+
3. **READ** `git diff` + 最近 commits + 依赖变更 — 检查最近变更
|
|
55
|
+
4. **IF** 多组件系统 → 在每层边界添加诊断埋点,定位故障层
|
|
64
56
|
|
|
65
57
|
### Phase 2:模式分析
|
|
66
58
|
|
|
67
|
-
1.
|
|
68
|
-
2.
|
|
69
|
-
3.
|
|
70
|
-
4. 不假设"那个差异不重要"
|
|
59
|
+
1. **READ** 代码库中相似的工作示例(完整阅读,不 skim)
|
|
60
|
+
2. **WRITE**(对话中)工作与失败之间的每个差异
|
|
61
|
+
3. **ASSERT** `每个差异已解释`(不可假设"那个差异不重要")
|
|
71
62
|
|
|
72
63
|
### Phase 3:假设验证
|
|
73
64
|
|
|
74
|
-
1.
|
|
75
|
-
2.
|
|
76
|
-
3.
|
|
77
|
-
|
|
65
|
+
1. **WRITE**(对话中)单一假设:"根因是 `{X}`,因为 `{Y}`"
|
|
66
|
+
2. **EXEC** 最小变更验证假设 — 一次只变一个变量
|
|
67
|
+
3. **MATCH** `verify_result`:
|
|
68
|
+
- 假设成立 → **GOTO** Phase 4
|
|
69
|
+
- 假设不成立 → 新假设 → **GOTO** Phase 3.1
|
|
70
|
+
- *default*(证据不足以判断)→ 补充诊断埋点 → **GOTO** Phase 1.4
|
|
78
71
|
|
|
79
72
|
### Phase 4:修复实现
|
|
80
73
|
|
|
81
|
-
1.
|
|
82
|
-
2. 修复根因(不是症状)
|
|
83
|
-
3.
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
- 建议的下一步方向(如:重新设计模块、引入新依赖、重构接口)
|
|
74
|
+
1. **WRITE** 失败测试到测试文件(最小复现用例)
|
|
75
|
+
2. **EXEC** 修复根因(不是症状)
|
|
76
|
+
3. **EXEC** 项目测试命令 — 确认修复通过且无回归
|
|
77
|
+
- 修复引入新的测试失败 → 立即回到步骤 2 定位新问题
|
|
78
|
+
4. **IF** 编排模式(任务目录存在)→ **WRITE** 修复循环到 `06-tdd-log.md` + 决策到 `08-ai-decisions.md`
|
|
79
|
+
|
|
80
|
+
**REPEAT** max=3(修复尝试,当前第 `attempt_count`/3 次):
|
|
89
81
|
|
|
90
|
-
|
|
82
|
+
- 修复成功 → **GOTO** 自检门禁
|
|
83
|
+
- *repeat exhausted* → **BLOCKED**,触发 **H3**,提交以下信息:
|
|
84
|
+
- 已尝试的 3 种修复方案 + 每种的失败原因
|
|
85
|
+
- 怀疑的架构问题
|
|
86
|
+
- 建议的下一步方向
|
|
91
87
|
|
|
92
|
-
|
|
88
|
+
### Phase 5:根因未能确定时的处理
|
|
93
89
|
|
|
94
|
-
|
|
90
|
+
> Phase 1-4 完成后仍无根因时适用。门槛用于确认调查充分性,防止过早放弃。
|
|
95
91
|
|
|
96
|
-
|
|
97
|
-
|
|
92
|
+
**GATE** "找不到根因"的最低门槛(全部满足才可声明):
|
|
93
|
+
|
|
94
|
+
- [ ] 完整 **READ** 了错误信息(含 stack trace 全文)
|
|
95
|
+
- [ ] 稳定复现了问题(≥ 3 次独立复现,非 Phase 1 的首次复现)
|
|
98
96
|
- [ ] 检查了 `git log` 最近 10 次提交的变更
|
|
99
97
|
- [ ] 对比了 ≥ 1 个正常工作的相似实现
|
|
100
98
|
- [ ] 添加了 ≥ 5 个诊断日志/断言
|
|
101
99
|
|
|
102
|
-
|
|
100
|
+
95% 的"找不到根因"是调查不充分。门槛未全部满足时,**GOTO** Phase 1。
|
|
103
101
|
|
|
104
|
-
|
|
102
|
+
**MATCH** `gate_result`:
|
|
105
103
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
3. 添加监控/日志以便未来调查
|
|
109
|
-
4. 状态标记为 `DONE_WITH_CONCERNS`,附带已排除的假设列表
|
|
104
|
+
- 门槛通过 → **WRITE**(对话中)已调查内容和排除的假设 → 实施防护措施(重试、超时、错误处理)→ **DONE_WITH_CONCERNS**
|
|
105
|
+
- 门槛未通过 → **GOTO** Phase 1
|
|
110
106
|
|
|
111
107
|
## 用户信号识别
|
|
112
108
|
|
|
113
|
-
当用户说以下话时,你很可能走偏了:
|
|
114
|
-
|
|
115
109
|
| 用户说 | 意味着 | 你应该 |
|
|
116
110
|
| ------ | ------ | ------ |
|
|
117
|
-
| "那个不是发生了吗?" | 你假设了但没有验证 |
|
|
111
|
+
| "那个不是发生了吗?" | 你假设了但没有验证 | **GOTO** Phase 1,用证据验证假设 |
|
|
118
112
|
| "它能给我们展示...吗?" | 你应该收集了证据但没有 | 添加诊断埋点或日志 |
|
|
119
|
-
| "别猜了" | 你在没理解根因的情况下提修复方案 |
|
|
120
|
-
| "想想根本原因" | 你在修症状不是根因 |
|
|
113
|
+
| "别猜了" | 你在没理解根因的情况下提修复方案 | **GOTO** Phase 1,先找根因 |
|
|
114
|
+
| "想想根本原因" | 你在修症状不是根因 | 质疑你的假设,回到根因分析 |
|
|
121
115
|
| "我们卡住了?"(沮丧) | 你的方法不对 | 暂停,重新评估策略 |
|
|
122
116
|
|
|
117
|
+
## STOP Signals
|
|
118
|
+
|
|
119
|
+
- **跳过**根因调查直接写修复代码
|
|
120
|
+
- **同时**修改多个变量,无法隔离有效改动
|
|
121
|
+
- **继续**尝试 3 次修复失败后仍不触发 **H3**
|
|
122
|
+
- **绕过**调查流程("先快速修一下,后面再查根因")
|
|
123
|
+
|
|
123
124
|
## Constitutional Rules 遵守
|
|
124
125
|
|
|
125
126
|
引用 `_team-rules/constitutional-rules.md`。调试阶段尤其注意:
|
|
126
127
|
|
|
127
128
|
- **Rule #9 TDD 顺序不可逆**:修复 bug 必须先写失败的回归测试再写修复代码(FP-2)
|
|
128
|
-
- **Rule #3 产出必须验证**:修复完成后必须执行 `_team-rules/verification-protocol.md` 的 5
|
|
129
|
-
- **Rule #7 回退次数上限**:3 次修复失败必须触发 H3
|
|
130
|
-
- **Rule #2
|
|
129
|
+
- **Rule #3 产出必须验证**:修复完成后必须执行 `_team-rules/verification-protocol.md` 的 5 个步骤(FP-4)
|
|
130
|
+
- **Rule #7 回退次数上限**:3 次修复失败必须触发 **H3**,不可无限重试(FP-1)
|
|
131
|
+
- **Rule #2 有向图回退**:调试发现根源在 spec 歧义/遗漏 → **ROLLBACK** specAgent(FP-4)
|
|
131
132
|
|
|
132
133
|
## 自检门禁
|
|
133
134
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
- [ ]
|
|
137
|
-
- [ ]
|
|
138
|
-
- [ ]
|
|
139
|
-
- [ ] 如果 3 次修复失败 → 已触发 H3
|
|
140
|
-
- [ ] 没有同时修改多个变量
|
|
135
|
+
- [ ] 根因已明确描述(不是"可能是 X"而是"根因是 `{X}`")
|
|
136
|
+
- [ ] 修复前 **WRITE** 了失败测试
|
|
137
|
+
- [ ] 修复后 **EXEC** 验证通过(项目测试命令确认)
|
|
138
|
+
- [ ] **IF** 3 次修复失败 → 已触发 **H3**
|
|
139
|
+
- [ ] **ASSERT** 没有同时修改多个变量
|
|
141
140
|
|
|
142
141
|
## 完成标志
|
|
143
142
|
|
|
144
|
-
|
|
145
|
-
状态:DONE | DONE_WITH_CONCERNS | NEEDS_CONTEXT | BLOCKED
|
|
146
|
-
根因:{根因描述}
|
|
147
|
-
修复:{修复内容}
|
|
148
|
-
验证:{测试命令输出}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## STOP Signals
|
|
143
|
+
**MATCH** `result`:
|
|
152
144
|
|
|
153
|
-
-
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
-
|
|
145
|
+
- 根因确定 + 修复验证通过 → **DONE**
|
|
146
|
+
- 根因未确定但已实施防护措施 → **DONE_WITH_CONCERNS**
|
|
147
|
+
- 需要更多上下文信息 → **NEEDS_CONTEXT**
|
|
148
|
+
- 3 次修复失败 → **BLOCKED**
|
|
157
149
|
|
|
158
150
|
## 集成关系
|
|
159
151
|
|
|
160
152
|
**被谁调用:**
|
|
161
153
|
|
|
162
154
|
- 用户直接调用(独立使用)
|
|
163
|
-
- `team-
|
|
155
|
+
- `team-finish`(独立模式测试失败时推荐)
|
|
164
156
|
|
|
165
157
|
**配对使用:**
|
|
166
158
|
|
|
167
|
-
- `team-verify` —
|
|
159
|
+
- `team-verify` — 推荐:修复后验证确认
|
|
168
160
|
- `team-test` — 确认无回归
|