sdd-full 1.0.0 → 1.2.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/README.md +84 -39
- package/index.js +163 -29
- package/package.json +27 -11
- package/skills/README.md +75 -0
- package/skills/brainstorming/SKILL.md +164 -0
- package/skills/claudeception/SKILL.md +94 -0
- package/skills/competitive-brief/SKILL.md +119 -0
- package/skills/finishing-a-development-branch/SKILL.md +200 -0
- package/skills/market-research/SKILL.md +141 -0
- package/skills/mempalace-auto-saver/SKILL.md +300 -0
- package/skills/prd-write/SKILL.md +109 -0
- package/skills/quality-gate/SKILL.md +348 -0
- package/skills/receiving-code-review/SKILL.md +213 -0
- package/skills/release-flow/SKILL.md +402 -0
- package/skills/requesting-code-review/SKILL.md +105 -0
- package/skills/requirement-completion-officer/SKILL.md +122 -0
- package/skills/sdd/SKILL.md +1042 -0
- package/skills/sdd-add/SKILL.md +538 -0
- package/skills/sdd-code/SKILL.md +345 -0
- package/skills/sdd-deploy/SKILL.md +499 -0
- package/skills/sdd-full/SKILL.md +734 -0
- package/skills/sdd-ops/SKILL.md +304 -0
- package/skills/sdd-test/SKILL.md +381 -0
- package/skills/security-audit/SKILL.md +384 -0
- package/skills/systematic-debugging/SKILL.md +296 -0
- package/skills/test-driven-development/SKILL.md +371 -0
- package/skills/ui-sdd/SKILL.md +290 -0
- package/skills/unified-flow/SKILL.md +146 -0
- package/skills/using-superpowers/SKILL.md +115 -0
- package/skills/verification-before-completion/SKILL.md +139 -0
- package/skills/writing-plans/SKILL.md +142 -0
- package/skills//345/256/214/346/225/264/345/274/200/345/217/221/346/265/201/347/250/213/346/211/213/345/206/214.md +349 -0
- package/skills//346/212/200/350/203/275/344/275/223/347/263/273/345/256/214/345/226/204/345/273/272/350/256/256.md +244 -0
- package/skills//346/212/200/350/203/275/344/275/277/347/224/250/346/214/207/345/215/227.md +225 -0
- package/skills//346/212/200/350/203/275/345/206/263/347/255/226/346/240/221.md +235 -0
- package/skills-data.js +0 -107
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: "quality-gate"
|
|
3
|
+
description: "质量门禁技能,执行质量检查确保代码质量。Invoke when you need to run quality checks before deployment."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# quality-gate - 质量门禁技能
|
|
7
|
+
|
|
8
|
+
## 概述
|
|
9
|
+
|
|
10
|
+
本技能专注于执行质量检查,确保代码质量、测试覆盖、性能基准、安全标准等达到要求,作为发布前的最后一道关卡。
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 与其他技能的衔接
|
|
15
|
+
|
|
16
|
+
### 前置技能
|
|
17
|
+
- **sdd-code** - 代码已完成
|
|
18
|
+
- **sdd-test** - 测试已完成
|
|
19
|
+
|
|
20
|
+
### 后置技能
|
|
21
|
+
- **sdd-deploy** - 部署执行
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 核心功能
|
|
26
|
+
|
|
27
|
+
### 1. 代码质量检查
|
|
28
|
+
- 代码规范检查
|
|
29
|
+
- 静态代码分析
|
|
30
|
+
- 代码复杂度分析
|
|
31
|
+
- 代码重复检查
|
|
32
|
+
|
|
33
|
+
### 2. 测试覆盖率检查
|
|
34
|
+
- 单元测试覆盖率
|
|
35
|
+
- 集成测试覆盖率
|
|
36
|
+
- E2E测试覆盖率
|
|
37
|
+
- 覆盖率趋势分析
|
|
38
|
+
|
|
39
|
+
### 3. 性能基准检查
|
|
40
|
+
- 响应时间基准
|
|
41
|
+
- 吞吐量基准
|
|
42
|
+
- 资源使用基准
|
|
43
|
+
- 性能回归检查
|
|
44
|
+
|
|
45
|
+
### 4. 安全漏洞扫描
|
|
46
|
+
- 依赖安全检查
|
|
47
|
+
- 静态安全扫描
|
|
48
|
+
- 动态安全扫描
|
|
49
|
+
- 安全配置检查
|
|
50
|
+
|
|
51
|
+
### 5. 代码评审检查
|
|
52
|
+
- 代码评审覆盖率
|
|
53
|
+
- 评审意见处理
|
|
54
|
+
- 评审流程合规性
|
|
55
|
+
- 评审质量评估
|
|
56
|
+
|
|
57
|
+
### 6. 文档完整性检查
|
|
58
|
+
- 需求文档完整性
|
|
59
|
+
- 设计文档完整性
|
|
60
|
+
- API文档完整性
|
|
61
|
+
- 用户文档完整性
|
|
62
|
+
|
|
63
|
+
### 7. 发布前预检清单
|
|
64
|
+
- 综合质量评估
|
|
65
|
+
- 风险评估
|
|
66
|
+
- 发布准备检查
|
|
67
|
+
- 最终决策支持
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## 检查清单模板
|
|
72
|
+
|
|
73
|
+
### 代码质量检查清单
|
|
74
|
+
```markdown
|
|
75
|
+
# 代码质量检查清单
|
|
76
|
+
|
|
77
|
+
## 代码规范检查
|
|
78
|
+
- [ ] 代码符合项目编码规范
|
|
79
|
+
- [ ] 命名规范(变量、函数、类)
|
|
80
|
+
- [ ] 代码注释充分
|
|
81
|
+
- [ ] 代码格式统一
|
|
82
|
+
|
|
83
|
+
## 静态代码分析
|
|
84
|
+
- [ ] 无高危告警
|
|
85
|
+
- [ ] 无严重bug
|
|
86
|
+
- [ ] 代码复杂度合理
|
|
87
|
+
- [ ] 无潜在性能问题
|
|
88
|
+
|
|
89
|
+
## 代码复杂度
|
|
90
|
+
- [ ] 函数圈复杂度 < 10
|
|
91
|
+
- [ ] 类职责单一
|
|
92
|
+
- [ ] 模块耦合度低
|
|
93
|
+
- [ ] 代码可读性良好
|
|
94
|
+
|
|
95
|
+
## 代码重复检查
|
|
96
|
+
- [ ] 代码重复率 < 5%
|
|
97
|
+
- [ ] 无大面积重复代码
|
|
98
|
+
- [ ] 公共逻辑已抽取
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
### 测试覆盖率检查清单
|
|
104
|
+
```markdown
|
|
105
|
+
# 测试覆盖率检查清单
|
|
106
|
+
|
|
107
|
+
## 单元测试覆盖
|
|
108
|
+
- [ ] 语句覆盖率 ≥ 80%
|
|
109
|
+
- [ ] 分支覆盖率 ≥ 75%
|
|
110
|
+
- [ ] 函数覆盖率 ≥ 90%
|
|
111
|
+
- [ ] 核心模块覆盖率 ≥ 95%
|
|
112
|
+
|
|
113
|
+
## 集成测试覆盖
|
|
114
|
+
- [ ] 主要接口都有测试
|
|
115
|
+
- [ ] 核心业务流程有测试
|
|
116
|
+
- [ ] 异常场景有测试
|
|
117
|
+
|
|
118
|
+
## E2E测试覆盖
|
|
119
|
+
- [ ] 核心用户旅程有测试
|
|
120
|
+
- [ ] 关键功能路径有测试
|
|
121
|
+
- [ ] 兼容性测试已完成
|
|
122
|
+
|
|
123
|
+
## 覆盖率趋势
|
|
124
|
+
- [ ] 覆盖率不低于上次发布
|
|
125
|
+
- [ ] 无明显覆盖率下降
|
|
126
|
+
- [ ] 新增代码有测试覆盖
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### 性能基准检查清单
|
|
132
|
+
```markdown
|
|
133
|
+
# 性能基准检查清单
|
|
134
|
+
|
|
135
|
+
## 响应时间
|
|
136
|
+
- [ ] API响应时间 ≤ 500ms(P95)
|
|
137
|
+
- [ ] 页面加载时间 ≤ 2s
|
|
138
|
+
- [ ] 数据库查询时间 ≤ 100ms
|
|
139
|
+
- [ ] 关键操作响应时间达标
|
|
140
|
+
|
|
141
|
+
## 吞吐量
|
|
142
|
+
- [ ] 系统吞吐量 ≥ 100 TPS
|
|
143
|
+
- [ ] 数据库吞吐量达标
|
|
144
|
+
- [ ] 缓存命中率 ≥ 90%
|
|
145
|
+
|
|
146
|
+
## 资源使用
|
|
147
|
+
- [ ] CPU使用率 ≤ 70%(峰值)
|
|
148
|
+
- [ ] 内存使用率 ≤ 80%(峰值)
|
|
149
|
+
- [ ] 磁盘IO正常
|
|
150
|
+
- [ ] 网络带宽正常
|
|
151
|
+
|
|
152
|
+
## 性能回归
|
|
153
|
+
- [ ] 性能不低于上一版本
|
|
154
|
+
- [ ] 无明显性能下降
|
|
155
|
+
- [ ] 性能瓶颈已识别
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### 安全漏洞扫描清单
|
|
161
|
+
```markdown
|
|
162
|
+
# 安全漏洞扫描清单
|
|
163
|
+
|
|
164
|
+
## 依赖安全
|
|
165
|
+
- [ ] 无已知高危漏洞
|
|
166
|
+
- [ ] 依赖版本较新
|
|
167
|
+
- [ ] 不再使用的依赖已移除
|
|
168
|
+
|
|
169
|
+
## 静态安全扫描
|
|
170
|
+
- [ ] 无高危安全问题
|
|
171
|
+
- [ ] 输入验证完整
|
|
172
|
+
- [ ] SQL注入防护到位
|
|
173
|
+
- [ ] XSS防护到位
|
|
174
|
+
|
|
175
|
+
## 动态安全扫描
|
|
176
|
+
- [ ] 常见攻击测试通过
|
|
177
|
+
- [ ] 认证授权机制安全
|
|
178
|
+
- [ ] 数据传输加密
|
|
179
|
+
- [ ] 敏感数据保护到位
|
|
180
|
+
|
|
181
|
+
## 安全配置
|
|
182
|
+
- [ ] 安全配置符合规范
|
|
183
|
+
- [ ] 日志记录完整
|
|
184
|
+
- [ ] 权限设置合理
|
|
185
|
+
- [ ] 应急响应机制完善
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
### 代码评审检查清单
|
|
191
|
+
```markdown
|
|
192
|
+
# 代码评审检查清单
|
|
193
|
+
|
|
194
|
+
## 评审覆盖率
|
|
195
|
+
- [ ] 所有代码都已评审
|
|
196
|
+
- [ ] 核心代码多轮评审
|
|
197
|
+
- [ ] 跨团队代码有评审
|
|
198
|
+
|
|
199
|
+
## 评审意见处理
|
|
200
|
+
- [ ] 所有评审意见已回复
|
|
201
|
+
- [ ] 合理建议已采纳
|
|
202
|
+
- [ ] 有争议的问题已解决
|
|
203
|
+
|
|
204
|
+
## 评审流程合规性
|
|
205
|
+
- [ ] 评审流程按规范执行
|
|
206
|
+
- [ ] 评审记录完整
|
|
207
|
+
- [ ] 评审时间合理
|
|
208
|
+
|
|
209
|
+
## 评审质量
|
|
210
|
+
- [ ] 评审发现真实问题
|
|
211
|
+
- [ ] 评审建议有价值
|
|
212
|
+
- [ ] 评审者资质符合要求
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
### 文档完整性检查清单
|
|
218
|
+
```markdown
|
|
219
|
+
# 文档完整性检查清单
|
|
220
|
+
|
|
221
|
+
## 需求文档
|
|
222
|
+
- [ ] 需求描述清晰完整
|
|
223
|
+
- [ ] 验收标准明确
|
|
224
|
+
- [ ] 边界条件覆盖
|
|
225
|
+
- [ ] 依赖关系说明清晰
|
|
226
|
+
|
|
227
|
+
## 设计文档
|
|
228
|
+
- [ ] 架构设计文档完整
|
|
229
|
+
- [ ] 接口设计文档完整
|
|
230
|
+
- [ ] 数据库设计文档完整
|
|
231
|
+
- [ ] 关键设计决策有记录
|
|
232
|
+
|
|
233
|
+
## API文档
|
|
234
|
+
- [ ] API接口文档完整
|
|
235
|
+
- [ ] 请求响应示例齐全
|
|
236
|
+
- [ ] 错误码定义清晰
|
|
237
|
+
- [ ] 版本说明清晰
|
|
238
|
+
|
|
239
|
+
## 用户文档
|
|
240
|
+
- [ ] 用户使用说明完整
|
|
241
|
+
- [ ] 常见问题解答齐全
|
|
242
|
+
- [ ] 更新日志完整
|
|
243
|
+
- [ ] 文档与代码同步
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 质量门判定标准
|
|
249
|
+
|
|
250
|
+
### 通过标准
|
|
251
|
+
- [ ] 所有检查项通过(P0-P1)
|
|
252
|
+
- [ ] 测试覆盖率达标
|
|
253
|
+
- [ ] 性能指标达标
|
|
254
|
+
- [ ] 无高危安全漏洞
|
|
255
|
+
- [ ] 风险可控
|
|
256
|
+
|
|
257
|
+
### 条件通过标准
|
|
258
|
+
- [ ] 少数P2项未通过但不影响发布
|
|
259
|
+
- [ ] 有明确的后续修复计划
|
|
260
|
+
- [ ] 风险评估通过
|
|
261
|
+
- [ ] 相关负责人同意
|
|
262
|
+
|
|
263
|
+
### 不通过标准
|
|
264
|
+
- [ ] 任何P0项未通过
|
|
265
|
+
- [ ] 存在阻断性bug
|
|
266
|
+
- [ ] 测试覆盖率严重不足
|
|
267
|
+
- [ ] 存在高危安全漏洞
|
|
268
|
+
- [ ] 性能严重不达标
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 风险评估矩阵
|
|
273
|
+
|
|
274
|
+
| 风险等级 | 严重程度 | 可能性 | 处理策略 |
|
|
275
|
+
|---------|---------|--------|---------|
|
|
276
|
+
| P0 | 严重 | 高 | 必须修复 |
|
|
277
|
+
| P0 | 严重 | 中 | 必须修复 |
|
|
278
|
+
| P0 | 严重 | 低 | 评估后决策 |
|
|
279
|
+
| P1 | 重要 | 高 | 尽量修复 |
|
|
280
|
+
| P1 | 重要 | 中 | 评估后决策 |
|
|
281
|
+
| P1 | 重要 | 低 | 可后续修复 |
|
|
282
|
+
| P2 | 一般 | 高 | 可后续修复 |
|
|
283
|
+
| P2 | 一般 | 中 | 可后续修复 |
|
|
284
|
+
| P2 | 一般 | 低 | 可后续修复 |
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 使用步骤
|
|
289
|
+
|
|
290
|
+
### 步骤1:执行自动检查
|
|
291
|
+
- 运行代码质量工具
|
|
292
|
+
- 运行测试覆盖率工具
|
|
293
|
+
- 运行安全扫描工具
|
|
294
|
+
- 运行性能基准测试
|
|
295
|
+
|
|
296
|
+
### 步骤2:执行人工检查
|
|
297
|
+
- 代码评审检查
|
|
298
|
+
- 文档完整性检查
|
|
299
|
+
- 发布准备检查
|
|
300
|
+
|
|
301
|
+
### 步骤3:生成质量报告
|
|
302
|
+
- 汇总检查结果
|
|
303
|
+
- 识别问题
|
|
304
|
+
- 评估风险
|
|
305
|
+
- 生成报告
|
|
306
|
+
|
|
307
|
+
### 步骤4:质量门决策
|
|
308
|
+
- 根据检查结果
|
|
309
|
+
- 评估风险
|
|
310
|
+
- 做出决策(通过/条件通过/不通过)
|
|
311
|
+
- 通知相关团队
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
## 与其他技能的集成
|
|
316
|
+
|
|
317
|
+
### 与sdd-test集成
|
|
318
|
+
```
|
|
319
|
+
sdd-test → 测试结果 → quality-gate → 质量检查
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### 与sdd-deploy集成
|
|
323
|
+
```
|
|
324
|
+
quality-gate → 质量通过 → sdd-deploy → 部署执行
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## 最佳实践
|
|
330
|
+
|
|
331
|
+
1. 质量门禁要定期更新
|
|
332
|
+
2. 严格但不过于苛刻
|
|
333
|
+
3. 持续改进检查标准
|
|
334
|
+
4. 自动化为主人工为辅
|
|
335
|
+
5. 质量标准要与业务目标对齐
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## 常见问题
|
|
340
|
+
|
|
341
|
+
### Q:质量门禁不通过怎么办?
|
|
342
|
+
A:首先分析问题严重性,阻断性问题必须修复,其他问题评估风险后决策
|
|
343
|
+
|
|
344
|
+
### Q:如何平衡质量和发布速度?
|
|
345
|
+
A:优先级设置合理,P0必须通过,P1尽量通过,P2可后续修复
|
|
346
|
+
|
|
347
|
+
### Q:质量检查应该什么时候做?
|
|
348
|
+
A:开发过程中持续做,发布前集中做,定期回顾改进检查标准
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: receiving-code-review
|
|
3
|
+
description: 在收到代码审查反馈时使用,在实施建议之前,特别是如果反馈似乎不清楚或技术上有问题 - 需要技术严谨性和验证,而不是表演性同意或盲目实施
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 代码审查接收
|
|
7
|
+
|
|
8
|
+
## 概述
|
|
9
|
+
|
|
10
|
+
代码审查需要技术评估,而不是情感表演。
|
|
11
|
+
|
|
12
|
+
**核心原则:** 实施前验证。假设前询问。技术正确性优先于社交舒适度。
|
|
13
|
+
|
|
14
|
+
## 响应模式
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
收到代码审查反馈时:
|
|
18
|
+
|
|
19
|
+
1. 阅读:完整阅读反馈,不做出反应
|
|
20
|
+
2. 理解:用自己的话重述要求(或询问)
|
|
21
|
+
3. 验证:对照代码库现实进行检查
|
|
22
|
+
4. 评估:对这个代码库技术上是否合理?
|
|
23
|
+
5. 响应:技术确认或有理由的反驳
|
|
24
|
+
6. 实施:一次一个项目,测试每个项目
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 禁止的响应
|
|
28
|
+
|
|
29
|
+
**永远不要:**
|
|
30
|
+
- "你绝对正确!"(明确违反 CLAUDE.md)
|
|
31
|
+
- "好观点!" / "优秀的反馈!"(表演性的)
|
|
32
|
+
- "让我现在实施那个"(验证前)
|
|
33
|
+
|
|
34
|
+
**相反:**
|
|
35
|
+
- 重述技术要求
|
|
36
|
+
- 提出澄清问题
|
|
37
|
+
- 如果错误,用技术推理反驳
|
|
38
|
+
- 直接开始工作(行动 > 言语)
|
|
39
|
+
|
|
40
|
+
## 处理不清楚的反馈
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
如果任何项目不清楚:
|
|
44
|
+
停止 - 暂时不要实施任何内容
|
|
45
|
+
要求澄清不清楚的项目
|
|
46
|
+
|
|
47
|
+
原因:项目可能相关。部分理解 = 错误实施。
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**示例:**
|
|
51
|
+
```
|
|
52
|
+
你的人类伙伴:"修复 1-6"
|
|
53
|
+
你理解 1,2,3,6。对 4,5 不清楚。
|
|
54
|
+
|
|
55
|
+
❌ 错误:现在实施 1,2,3,6,稍后询问 4,5
|
|
56
|
+
✅ 正确:"我理解项目 1,2,3,6。在继续之前需要澄清 4 和 5。"
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## 特定来源处理
|
|
60
|
+
|
|
61
|
+
### 来自你的人类伙伴
|
|
62
|
+
- **可信** - 理解后实施
|
|
63
|
+
- **如果范围不清楚,仍要询问**
|
|
64
|
+
- **无表演性同意**
|
|
65
|
+
- **直接行动**或技术确认
|
|
66
|
+
|
|
67
|
+
### 来自外部审查者
|
|
68
|
+
```
|
|
69
|
+
实施前:
|
|
70
|
+
1. 检查:对这个代码库技术上是否正确?
|
|
71
|
+
2. 检查:是否破坏现有功能?
|
|
72
|
+
3. 检查:当前实现的原因?
|
|
73
|
+
4. 检查:是否在所有平台/版本上工作?
|
|
74
|
+
5. 检查:审查者是否理解完整上下文?
|
|
75
|
+
|
|
76
|
+
如果建议似乎错误:
|
|
77
|
+
用技术推理反驳
|
|
78
|
+
|
|
79
|
+
如果无法轻松验证:
|
|
80
|
+
说明:"没有 [X] 我无法验证这一点。我应该 [调查/询问/继续]?"
|
|
81
|
+
|
|
82
|
+
如果与你的人类伙伴之前的决定冲突:
|
|
83
|
+
先停止并与你的人类伙伴讨论
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**你的人类伙伴的规则:** "外部反馈 - 保持怀疑,但仔细检查"
|
|
87
|
+
|
|
88
|
+
## "专业"功能的 YAGNI 检查
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
如果审查者建议"正确实施":
|
|
92
|
+
在代码库中搜索实际使用
|
|
93
|
+
|
|
94
|
+
如果未使用:"这个端点没有被调用。移除它(YAGNI)?"
|
|
95
|
+
如果使用:则正确实施
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**你的人类伙伴的规则:** "你和审查者都向我报告。如果我们不需要这个功能,就不要添加它。"
|
|
99
|
+
|
|
100
|
+
## 实施顺序
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
对于多项反馈:
|
|
104
|
+
1. 首先澄清任何不清楚的内容
|
|
105
|
+
2. 然后按以下顺序实施:
|
|
106
|
+
- 阻塞问题(中断,安全)
|
|
107
|
+
- 简单修复(拼写错误,导入)
|
|
108
|
+
- 复杂修复(重构,逻辑)
|
|
109
|
+
3. 单独测试每个修复
|
|
110
|
+
4. 验证无回归
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## 何时反驳
|
|
114
|
+
|
|
115
|
+
当以下情况时反驳:
|
|
116
|
+
- 建议破坏现有功能
|
|
117
|
+
- 审查者缺乏完整上下文
|
|
118
|
+
- 违反 YAGNI(未使用的功能)
|
|
119
|
+
- 对这个技术栈技术上不正确
|
|
120
|
+
- 存在遗留/兼容性原因
|
|
121
|
+
- 与你的人类伙伴的架构决策冲突
|
|
122
|
+
|
|
123
|
+
**如何反驳:**
|
|
124
|
+
- 使用技术推理,而非防御性
|
|
125
|
+
- 提出具体问题
|
|
126
|
+
- 引用工作测试/代码
|
|
127
|
+
- 如果是架构问题,让你的人类伙伴参与
|
|
128
|
+
|
|
129
|
+
**如果不愿意大声反驳的信号:** "Circle K 有奇怪的事情发生"
|
|
130
|
+
|
|
131
|
+
## 确认正确的反馈
|
|
132
|
+
|
|
133
|
+
当反馈正确时:
|
|
134
|
+
```
|
|
135
|
+
✅ "已修复。[对更改的简要描述]"
|
|
136
|
+
✅ "好发现 - [具体问题]。在 [位置] 已修复。"
|
|
137
|
+
✅ [直接修复并在代码中显示]
|
|
138
|
+
|
|
139
|
+
❌ "你绝对正确!"
|
|
140
|
+
❌ "好观点!"
|
|
141
|
+
❌ "感谢发现那个!"
|
|
142
|
+
❌ "感谢 [任何内容]"
|
|
143
|
+
❌ 任何感谢表达
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**为什么不感谢:** 行动说话。直接修复。代码本身表明你听到了反馈。
|
|
147
|
+
|
|
148
|
+
**如果你发现自己要写"谢谢":** 删除它。改为说明修复。
|
|
149
|
+
|
|
150
|
+
## 优雅地纠正你的反驳
|
|
151
|
+
|
|
152
|
+
如果你反驳了但错了:
|
|
153
|
+
```
|
|
154
|
+
✅ "你是对的 - 我检查了 [X],它确实 [Y]。现在实施。"
|
|
155
|
+
✅ "验证了这一点,你是正确的。我最初的理解是错误的,因为 [原因]。正在修复。"
|
|
156
|
+
|
|
157
|
+
❌ 冗长的道歉
|
|
158
|
+
❌ 为你反驳的原因辩护
|
|
159
|
+
❌ 过度解释
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
事实陈述纠正并继续。
|
|
163
|
+
|
|
164
|
+
## 常见错误
|
|
165
|
+
|
|
166
|
+
| 错误 | 修复 |
|
|
167
|
+
|------|------|
|
|
168
|
+
| 表演性同意 | 说明要求或直接行动 |
|
|
169
|
+
| 盲目实施 | 首先对照代码库验证 |
|
|
170
|
+
| 批量实施而不测试 | 一次一个,测试每个 |
|
|
171
|
+
| 假设审查者是对的 | 检查是否破坏事物 |
|
|
172
|
+
| 避免反驳 | 技术正确性 > 舒适度 |
|
|
173
|
+
| 部分实施 | 首先澄清所有项目 |
|
|
174
|
+
| 无法验证,仍继续 | 说明限制,请求方向 |
|
|
175
|
+
|
|
176
|
+
## 真实示例
|
|
177
|
+
|
|
178
|
+
**表演性同意(错误):**
|
|
179
|
+
```
|
|
180
|
+
审查者:"移除遗留代码"
|
|
181
|
+
❌ "你绝对正确!让我移除那个..."
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
**技术验证(正确):**
|
|
185
|
+
```
|
|
186
|
+
审查者:"移除遗留代码"
|
|
187
|
+
✅ "检查中... 构建目标是 10.15+,此 API 需要 13+。需要遗留代码以保持向后兼容。当前实现的 bundle ID 错误 - 修复它还是放弃 13 之前的支持?"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**YAGNI(正确):**
|
|
191
|
+
```
|
|
192
|
+
审查者:"实施带有数据库、日期过滤器、CSV 导出的适当指标跟踪"
|
|
193
|
+
✅ "搜索代码库 - 没有调用此端点。移除它(YAGNI)?还是我遗漏了使用情况?"
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**不清楚的项目(正确):**
|
|
197
|
+
```
|
|
198
|
+
你的人类伙伴:"修复项目 1-6"
|
|
199
|
+
你理解 1,2,3,6。对 4,5 不清楚。
|
|
200
|
+
✅ "理解 1,2,3,6。在实施之前需要澄清 4 和 5。"
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
## GitHub 线程回复
|
|
204
|
+
|
|
205
|
+
在 GitHub 上回复内联审查评论时,在评论线程中回复(`gh api repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies`),而不是作为顶级 PR 评论。
|
|
206
|
+
|
|
207
|
+
## 底线
|
|
208
|
+
|
|
209
|
+
**外部反馈 = 要评估的建议,不是要遵循的命令。**
|
|
210
|
+
|
|
211
|
+
验证。提问。然后实施。
|
|
212
|
+
|
|
213
|
+
无表演性同意。始终保持技术严谨。
|