sdd-skills 1.1.6 → 1.1.8
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/docs/workflow-guide.md +35 -33
- package/package.json +1 -1
- package/skills/backend-engineer/SKILL.md +24 -28
- package/skills/code-reviewer/SKILL.md +20 -29
- package/skills/frontend-engineer/SKILL.md +24 -28
- package/skills/git-engineer/SKILL.md +22 -14
- package/skills/notifier/SKILL.md +8 -15
- package/skills/sae/SKILL.md +8 -8
- package/skills/tester/SKILL.md +15 -21
package/docs/workflow-guide.md
CHANGED
|
@@ -42,16 +42,18 @@ SAE (需求分析 + 架构设计)
|
|
|
42
42
|
↓
|
|
43
43
|
(前后端并行开发)
|
|
44
44
|
↓
|
|
45
|
-
|
|
45
|
+
Code Reviewer (代码审查) ← 先审查代码质量
|
|
46
46
|
↓
|
|
47
|
-
|
|
47
|
+
Tester (测试验证) ← 再进行功能测试
|
|
48
48
|
↓
|
|
49
49
|
Git Engineer (预检测 + 提交 + MR)
|
|
50
50
|
↓
|
|
51
51
|
完成 (等待 MR 批准)
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
**注意**:
|
|
54
|
+
**注意**:
|
|
55
|
+
- Backend 和 Frontend Engineer 可以并行开发,通过 API 契约协作,无需等待对方完成
|
|
56
|
+
- **先 Code Review 后提测**:确保代码质量后再进行功能测试,避免测试通过但代码有设计缺陷的情况
|
|
55
57
|
|
|
56
58
|
---
|
|
57
59
|
|
|
@@ -273,33 +275,9 @@ SAE (需求分析 + 架构设计)
|
|
|
273
275
|
- Pinia stores
|
|
274
276
|
- 单元测试
|
|
275
277
|
|
|
276
|
-
### 阶段 4:
|
|
278
|
+
### 阶段 4: 代码审查 (Code Reviewer)
|
|
277
279
|
|
|
278
|
-
**输入**:
|
|
279
|
-
|
|
280
|
-
**工作流程**:
|
|
281
|
-
1. 读取需求规格和 OpenSpec
|
|
282
|
-
2. 执行后端测试:
|
|
283
|
-
- 单元测试
|
|
284
|
-
- 集成测试
|
|
285
|
-
- 覆盖率检查 (>= 90%)
|
|
286
|
-
3. 执行前端测试:
|
|
287
|
-
- 单元测试
|
|
288
|
-
- E2E 测试 (Playwright)
|
|
289
|
-
- 覆盖率检查 (>= 70%)
|
|
290
|
-
4. 验收标准检查
|
|
291
|
-
5. 生成测试报告
|
|
292
|
-
|
|
293
|
-
**成功**: 交给 Code Reviewer
|
|
294
|
-
**失败**: 返回对应 Engineer + 发送钉钉通知
|
|
295
|
-
|
|
296
|
-
**输出**:
|
|
297
|
-
- 测试报告
|
|
298
|
-
- 覆盖率报告
|
|
299
|
-
|
|
300
|
-
### 阶段 5: 代码审查 (Code Reviewer)
|
|
301
|
-
|
|
302
|
-
**输入**: 通过测试的代码
|
|
280
|
+
**输入**: 前后端代码实现
|
|
303
281
|
|
|
304
282
|
**工作流程**:
|
|
305
283
|
1. 读取需求规格和 OpenSpec
|
|
@@ -314,16 +292,40 @@ SAE (需求分析 + 架构设计)
|
|
|
314
292
|
- 可维护性
|
|
315
293
|
5. 生成审查报告
|
|
316
294
|
|
|
317
|
-
**成功**: 交给
|
|
318
|
-
**失败**: 返回对应 Engineer
|
|
295
|
+
**成功**: 交给 Tester
|
|
296
|
+
**失败**: 返回对应 Engineer 修复 → 重新审查
|
|
319
297
|
|
|
320
298
|
**输出**:
|
|
321
299
|
- 代码审查报告
|
|
322
300
|
- 问题清单 (如有)
|
|
323
301
|
|
|
302
|
+
### 阶段 5: 测试验证 (Tester)
|
|
303
|
+
|
|
304
|
+
**输入**: 审查通过的代码
|
|
305
|
+
|
|
306
|
+
**工作流程**:
|
|
307
|
+
1. 读取需求规格和 OpenSpec
|
|
308
|
+
2. 执行后端测试:
|
|
309
|
+
- 单元测试
|
|
310
|
+
- 集成测试
|
|
311
|
+
- 覆盖率检查 (>= 90%)
|
|
312
|
+
3. 执行前端测试:
|
|
313
|
+
- 单元测试
|
|
314
|
+
- E2E 测试 (Playwright)
|
|
315
|
+
- 覆盖率检查 (>= 90%)
|
|
316
|
+
4. 验收标准检查
|
|
317
|
+
5. 生成测试报告
|
|
318
|
+
|
|
319
|
+
**成功**: 交给 Git Engineer
|
|
320
|
+
**失败**: 返回对应 Engineer 修复 → Code Reviewer → Tester
|
|
321
|
+
|
|
322
|
+
**输出**:
|
|
323
|
+
- 测试报告
|
|
324
|
+
- 覆盖率报告
|
|
325
|
+
|
|
324
326
|
### 阶段 6: 提交和 MR (Git Engineer)
|
|
325
327
|
|
|
326
|
-
**输入**:
|
|
328
|
+
**输入**: 测试通过的代码
|
|
327
329
|
|
|
328
330
|
**工作流程**:
|
|
329
331
|
1. 执行预检测:
|
|
@@ -335,7 +337,7 @@ SAE (需求分析 + 架构设计)
|
|
|
335
337
|
5. 指定审查人和标签
|
|
336
338
|
|
|
337
339
|
**成功**: 工作流完成 + 发送钉钉通知 (可选)
|
|
338
|
-
**失败**: 返回对应 Engineer
|
|
340
|
+
**失败**: 返回对应 Engineer 修复 → Code Reviewer → Tester → Git Engineer
|
|
339
341
|
|
|
340
342
|
**输出**:
|
|
341
343
|
- Git 提交
|
package/package.json
CHANGED
|
@@ -101,15 +101,16 @@ description: 高级Golang后端工程师,负责后端API设计与实现。当
|
|
|
101
101
|
- 提交所有实现文件和测试文件
|
|
102
102
|
- 确保已通过所有验证检查
|
|
103
103
|
|
|
104
|
-
### 阶段3:修复模式(来自 Tester 的修复请求)
|
|
104
|
+
### 阶段3:修复模式(来自 Code Reviewer 或 Tester 的修复请求)
|
|
105
105
|
|
|
106
|
-
⚠️
|
|
106
|
+
⚠️ **当收到修复请求时,执行此流程**
|
|
107
107
|
|
|
108
108
|
#### 1. 分析问题
|
|
109
109
|
|
|
110
|
-
-
|
|
110
|
+
- 仔细阅读提供的错误信息
|
|
111
111
|
- 定位问题代码文件和行号
|
|
112
|
-
-
|
|
112
|
+
- 理解失败原因和预期行为
|
|
113
|
+
- **识别修复来源**:来自 Code Reviewer 还是 Tester
|
|
113
114
|
|
|
114
115
|
#### 2. 修复问题
|
|
115
116
|
|
|
@@ -122,6 +123,8 @@ description: 高级Golang后端工程师,负责后端API设计与实现。当
|
|
|
122
123
|
| 编译错误 | 修复语法和类型错误 |
|
|
123
124
|
| Lint 错误 | 按规范修正代码风格 |
|
|
124
125
|
| API 响应错误 | 修复 Handler/Service 逻辑 |
|
|
126
|
+
| 安全问题 | 修复 SQL 注入、密码明文等问题 |
|
|
127
|
+
| 性能问题 | 修复 N+1 查询、缓存策略等问题 |
|
|
125
128
|
|
|
126
129
|
#### 3. 本地验证
|
|
127
130
|
|
|
@@ -137,12 +140,12 @@ go test ./... -coverprofile=coverage.out
|
|
|
137
140
|
go tool cover -func=coverage.out | grep total # 确保 >= 90%
|
|
138
141
|
```
|
|
139
142
|
|
|
140
|
-
#### 4.
|
|
143
|
+
#### 4. 自动重新提交审查
|
|
141
144
|
|
|
142
|
-
✅ **修复并验证通过后,必须自动调用 `/
|
|
145
|
+
✅ **修复并验证通过后,必须自动调用 `/code-reviewer` 重新审查**:
|
|
143
146
|
|
|
144
147
|
```
|
|
145
|
-
/
|
|
148
|
+
/code-reviewer 后端修复已完成,请重新执行代码审查:
|
|
146
149
|
|
|
147
150
|
修复内容:
|
|
148
151
|
- [具体修复的问题描述]
|
|
@@ -155,7 +158,7 @@ go tool cover -func=coverage.out | grep total # 确保 >= 90%
|
|
|
155
158
|
- 覆盖率:✅ XX% (>= 90%)
|
|
156
159
|
```
|
|
157
160
|
|
|
158
|
-
⚠️ **重要**:修复完成后 **必须自动调用 `/
|
|
161
|
+
⚠️ **重要**:修复完成后 **必须自动调用 `/code-reviewer`**,无需等待人工指令!
|
|
159
162
|
|
|
160
163
|
## 代码规范
|
|
161
164
|
|
|
@@ -402,32 +405,25 @@ mockRepo.EXPECT().FindByEmail("test@example.com").Return(&user, nil)
|
|
|
402
405
|
|
|
403
406
|
1. **上游**: 接收 SAE 生成的需求规格
|
|
404
407
|
2. **并行**: 与 Frontend Engineer 并行工作,通过 API 契约协作
|
|
405
|
-
3. **下游**: 代码完成后交给
|
|
408
|
+
3. **下游**: 代码完成后交给 Code Reviewer 进行代码审查
|
|
406
409
|
4. **修复循环**:
|
|
407
|
-
- 收到 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/
|
|
408
|
-
-
|
|
410
|
+
- 收到 Code Reviewer 或 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/code-reviewer` 重新审查
|
|
411
|
+
- Code Reviewer 通过后流转到 Tester,Tester 通过后流转到 Git Engineer
|
|
409
412
|
|
|
410
413
|
## 会话管理
|
|
411
414
|
|
|
412
|
-
⚠️
|
|
415
|
+
⚠️ **注意**:Backend Engineer **不触发** `/compact` 命令。
|
|
413
416
|
|
|
414
|
-
###
|
|
417
|
+
### 为什么不触发 /compact
|
|
415
418
|
|
|
416
|
-
|
|
417
|
-
-
|
|
418
|
-
-
|
|
419
|
+
- Backend Engineer 不是工作流的终点,后续还有 Code Reviewer → Tester → Git Engineer
|
|
420
|
+
- 在修复循环中保持上下文连续性很重要(修复轮次、错误历史等)
|
|
421
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
419
422
|
|
|
420
|
-
###
|
|
423
|
+
### 何时会触发 /compact
|
|
421
424
|
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
```
|
|
425
|
-
|
|
426
|
-
### 目的
|
|
427
|
-
|
|
428
|
-
- 清理会话中的冗余上下文(代码实现细节、验证输出等)
|
|
429
|
-
- 为下一个角色(Tester)提供干净的起点
|
|
430
|
-
- 保持会话响应速度和质量
|
|
425
|
+
- 当整个工作流完成时(Git Engineer MR 创建成功)
|
|
426
|
+
- 当达到最大修复轮次需要人工介入时
|
|
431
427
|
|
|
432
428
|
## 在 Pre-Execution Review 中的角色
|
|
433
429
|
|
|
@@ -476,9 +472,9 @@ mockRepo.EXPECT().FindByEmail("test@example.com").Return(&user, nil)
|
|
|
476
472
|
- backend/internal/model/user.go
|
|
477
473
|
- backend/tests/auth_test.go
|
|
478
474
|
|
|
479
|
-
测试覆盖率:
|
|
475
|
+
测试覆盖率:92%
|
|
480
476
|
|
|
481
477
|
代码已提交到分支:feature/user-login
|
|
482
478
|
|
|
483
|
-
下一步请
|
|
479
|
+
下一步请 Code Reviewer 进行代码审查。
|
|
484
480
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: code-reviewer
|
|
3
|
-
description:
|
|
3
|
+
description: 代码审查专家,负责代码质量、安全审查和规范检查。当代码实现完成需要代码审查时激活。检查代码风格、最佳实践、安全漏洞、性能问题,审查不通过时触发钉钉通知。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Code Reviewer
|
|
@@ -211,7 +211,7 @@ const HeavyComponent = defineAsyncComponent(() =>
|
|
|
211
211
|
- [ ] 避免魔法数字,使用常量
|
|
212
212
|
- [ ] 避免重复代码(DRY 原则)
|
|
213
213
|
- [ ] 复杂逻辑有注释说明
|
|
214
|
-
- [ ] 测试覆盖率达标(后端 >= 90%, 前端 >=
|
|
214
|
+
- [ ] 测试覆盖率达标(后端 >= 90%, 前端 >= 90%)
|
|
215
215
|
|
|
216
216
|
```go
|
|
217
217
|
// ❌ 可维护性问题:魔法数字
|
|
@@ -281,7 +281,7 @@ npm audit
|
|
|
281
281
|
2. 数据库查询使用了预加载,避免 N+1 问题
|
|
282
282
|
3. 前端组件设计合理,可复用性强
|
|
283
283
|
|
|
284
|
-
下一步请
|
|
284
|
+
下一步请 Tester 进行测试验证。
|
|
285
285
|
```
|
|
286
286
|
|
|
287
287
|
**审查不通过**:
|
|
@@ -311,9 +311,7 @@ npm audit
|
|
|
311
311
|
- 中等问题:1 个
|
|
312
312
|
- 轻微问题:1 个
|
|
313
313
|
|
|
314
|
-
|
|
315
|
-
1. 返回 Backend Engineer 修复安全和性能问题
|
|
316
|
-
2. 返回 Frontend Engineer 修复类型定义问题
|
|
314
|
+
🔄 自动修复:调用对应 Engineer 修复问题...
|
|
317
315
|
|
|
318
316
|
📢 已发送钉钉通知(审查不通过)
|
|
319
317
|
```
|
|
@@ -393,7 +391,7 @@ npm audit
|
|
|
393
391
|
- [ ] Pinia store 设计合理
|
|
394
392
|
- [ ] 类型定义完整
|
|
395
393
|
- [ ] 复杂逻辑有注释
|
|
396
|
-
- [ ] 测试覆盖率 >=
|
|
394
|
+
- [ ] 测试覆盖率 >= 90%
|
|
397
395
|
```
|
|
398
396
|
|
|
399
397
|
## 钉钉通知集成
|
|
@@ -415,33 +413,26 @@ npm audit
|
|
|
415
413
|
|
|
416
414
|
## 与其他 Skills 的协作
|
|
417
415
|
|
|
418
|
-
1. **上游**: 接收
|
|
416
|
+
1. **上游**: 接收 Backend Engineer 和 Frontend Engineer 的代码实现
|
|
419
417
|
2. **下游**:
|
|
420
|
-
- 审查通过 → 交给
|
|
421
|
-
- 审查不通过 →
|
|
418
|
+
- 审查通过 → 交给 Tester 进行测试验证
|
|
419
|
+
- 审查不通过 → **自动调用** 对应 Engineer 修复 → 重新审查
|
|
422
420
|
3. **并行**: 无
|
|
423
421
|
|
|
424
422
|
## 会话管理
|
|
425
423
|
|
|
426
|
-
⚠️
|
|
427
|
-
|
|
428
|
-
### 触发时机
|
|
424
|
+
⚠️ **注意**:Code Reviewer **不触发** `/compact` 命令。
|
|
429
425
|
|
|
430
|
-
|
|
431
|
-
- **审查通过**:代码审查通过,已交付给 Git Engineer
|
|
432
|
-
- **审查不通过**:已发送钉钉通知,问题已反馈给对应的 Engineer 修复
|
|
426
|
+
### 为什么不触发 /compact
|
|
433
427
|
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
/compact
|
|
438
|
-
```
|
|
428
|
+
- Code Reviewer 不是工作流的终点,后续还有 Tester → Git Engineer
|
|
429
|
+
- 在修复循环中保持上下文连续性很重要(审查问题、修复历史等)
|
|
430
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
439
431
|
|
|
440
|
-
###
|
|
432
|
+
### 何时会触发 /compact
|
|
441
433
|
|
|
442
|
-
-
|
|
443
|
-
-
|
|
444
|
-
- 保持会话响应速度和质量
|
|
434
|
+
- 当整个工作流完成时(Git Engineer MR 创建成功)
|
|
435
|
+
- 当达到最大修复轮次需要人工介入时
|
|
445
436
|
|
|
446
437
|
## 在 Pre-Execution Review 中的角色
|
|
447
438
|
|
|
@@ -518,12 +509,12 @@ npm audit
|
|
|
518
509
|
```
|
|
519
510
|
|
|
520
511
|
建议操作:
|
|
521
|
-
|
|
522
|
-
|
|
512
|
+
🔄 自动调用 /backend-engineer 修复密码加密和 N+1 查询问题
|
|
513
|
+
🔄 自动调用 /frontend-engineer 添加 TypeScript 类型定义
|
|
523
514
|
|
|
524
515
|
📢 已发送钉钉通知(审查不通过)
|
|
525
516
|
|
|
526
|
-
[Backend Engineer 和 Frontend Engineer
|
|
517
|
+
[Backend Engineer 和 Frontend Engineer 修复后重新提交审查]
|
|
527
518
|
|
|
528
519
|
重新审查...
|
|
529
520
|
|
|
@@ -541,7 +532,7 @@ npm audit
|
|
|
541
532
|
2. 数据库查询优化到位,使用了预加载
|
|
542
533
|
3. TypeScript 类型定义完整,类型安全
|
|
543
534
|
|
|
544
|
-
下一步请
|
|
535
|
+
下一步请 Tester 进行测试验证。
|
|
545
536
|
```
|
|
546
537
|
|
|
547
538
|
## 参考资源
|
|
@@ -116,15 +116,16 @@ description: 高级前端工程师,擅长Vue和React多个框架。当需要
|
|
|
116
116
|
- 提交所有实现文件和测试文件
|
|
117
117
|
- 确保已通过所有验证检查
|
|
118
118
|
|
|
119
|
-
### 阶段3:修复模式(来自 Tester 的修复请求)
|
|
119
|
+
### 阶段3:修复模式(来自 Code Reviewer 或 Tester 的修复请求)
|
|
120
120
|
|
|
121
|
-
⚠️
|
|
121
|
+
⚠️ **当收到修复请求时,执行此流程**
|
|
122
122
|
|
|
123
123
|
#### 1. 分析问题
|
|
124
124
|
|
|
125
|
-
-
|
|
125
|
+
- 仔细阅读提供的错误信息
|
|
126
126
|
- 定位问题代码文件和行号
|
|
127
|
-
-
|
|
127
|
+
- 理解失败原因和预期行为
|
|
128
|
+
- **识别修复来源**:来自 Code Reviewer 还是 Tester
|
|
128
129
|
|
|
129
130
|
#### 2. 修复问题
|
|
130
131
|
|
|
@@ -138,6 +139,8 @@ description: 高级前端工程师,擅长Vue和React多个框架。当需要
|
|
|
138
139
|
| TypeScript 类型错误 | 修复类型定义和类型断言 |
|
|
139
140
|
| 构建失败 | 修复编译错误和依赖问题 |
|
|
140
141
|
| Lint 错误 | 按规范修正代码风格 |
|
|
142
|
+
| 安全问题 | 修复 XSS、输入验证等问题 |
|
|
143
|
+
| 性能问题 | 修复懒加载、虚拟滚动等问题 |
|
|
141
144
|
|
|
142
145
|
#### 3. 本地验证
|
|
143
146
|
|
|
@@ -153,12 +156,12 @@ npm run test:unit
|
|
|
153
156
|
npm run test:coverage # 确保 >= 90%
|
|
154
157
|
```
|
|
155
158
|
|
|
156
|
-
#### 4.
|
|
159
|
+
#### 4. 自动重新提交审查
|
|
157
160
|
|
|
158
|
-
✅ **修复并验证通过后,必须自动调用 `/
|
|
161
|
+
✅ **修复并验证通过后,必须自动调用 `/code-reviewer` 重新审查**:
|
|
159
162
|
|
|
160
163
|
```
|
|
161
|
-
/
|
|
164
|
+
/code-reviewer 前端修复已完成,请重新执行代码审查:
|
|
162
165
|
|
|
163
166
|
修复内容:
|
|
164
167
|
- [具体修复的问题描述]
|
|
@@ -172,7 +175,7 @@ npm run test:coverage # 确保 >= 90%
|
|
|
172
175
|
- 覆盖率:✅ XX% (>= 90%)
|
|
173
176
|
```
|
|
174
177
|
|
|
175
|
-
⚠️ **重要**:修复完成后 **必须自动调用 `/
|
|
178
|
+
⚠️ **重要**:修复完成后 **必须自动调用 `/code-reviewer`**,无需等待人工指令!
|
|
176
179
|
|
|
177
180
|
## 代码规范
|
|
178
181
|
|
|
@@ -596,32 +599,25 @@ test('user can login', async ({ page }) => {
|
|
|
596
599
|
|
|
597
600
|
1. **上游**: 接收 SAE 生成的需求规格
|
|
598
601
|
2. **并行**: 与 Backend Engineer 并行工作,通过 API 契约协作
|
|
599
|
-
3. **下游**: 代码完成后交给
|
|
602
|
+
3. **下游**: 代码完成后交给 Code Reviewer 进行代码审查
|
|
600
603
|
4. **修复循环**:
|
|
601
|
-
- 收到 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/
|
|
602
|
-
-
|
|
604
|
+
- 收到 Code Reviewer 或 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/code-reviewer` 重新审查
|
|
605
|
+
- Code Reviewer 通过后流转到 Tester,Tester 通过后流转到 Git Engineer
|
|
603
606
|
|
|
604
607
|
## 会话管理
|
|
605
608
|
|
|
606
|
-
⚠️
|
|
609
|
+
⚠️ **注意**:Frontend Engineer **不触发** `/compact` 命令。
|
|
607
610
|
|
|
608
|
-
###
|
|
611
|
+
### 为什么不触发 /compact
|
|
609
612
|
|
|
610
|
-
|
|
611
|
-
-
|
|
612
|
-
-
|
|
613
|
+
- Frontend Engineer 不是工作流的终点,后续还有 Code Reviewer → Tester → Git Engineer
|
|
614
|
+
- 在修复循环中保持上下文连续性很重要(修复轮次、错误历史等)
|
|
615
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
613
616
|
|
|
614
|
-
###
|
|
617
|
+
### 何时会触发 /compact
|
|
615
618
|
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
```
|
|
619
|
-
|
|
620
|
-
### 目的
|
|
621
|
-
|
|
622
|
-
- 清理会话中的冗余上下文(组件代码、样式细节、验证输出等)
|
|
623
|
-
- 为下一个角色(Tester)提供干净的起点
|
|
624
|
-
- 保持会话响应速度和质量
|
|
619
|
+
- 当整个工作流完成时(Git Engineer MR 创建成功)
|
|
620
|
+
- 当达到最大修复轮次需要人工介入时
|
|
625
621
|
|
|
626
622
|
## 在 Pre-Execution Review 中的角色
|
|
627
623
|
|
|
@@ -670,9 +666,9 @@ test('user can login', async ({ page }) => {
|
|
|
670
666
|
- frontend/src/api/auth.ts
|
|
671
667
|
- frontend/tests/unit/LoginForm.spec.ts
|
|
672
668
|
|
|
673
|
-
测试覆盖率:
|
|
669
|
+
测试覆盖率:92%
|
|
674
670
|
|
|
675
671
|
代码已提交到分支:feature/user-login
|
|
676
672
|
|
|
677
|
-
下一步请
|
|
673
|
+
下一步请 Code Reviewer 进行代码审查。
|
|
678
674
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git-engineer
|
|
3
|
-
description: Git工程师,负责代码提交、版本管理和MR
|
|
3
|
+
description: Git工程师,负责代码提交、版本管理和MR创建。当测试通过需要提交代码时激活。执行预检测(lint/build/test)、规范化提交、创建GitLab MR,失败时触发钉钉通知。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Git Engineer
|
|
@@ -56,7 +56,7 @@ npm run test:unit
|
|
|
56
56
|
|
|
57
57
|
# 6. 检查覆盖率
|
|
58
58
|
npm run test:coverage
|
|
59
|
-
# 要求: >=
|
|
59
|
+
# 要求: >= 90%
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
✅ **预检测通过标准**:
|
|
@@ -74,8 +74,8 @@ npm run test:coverage
|
|
|
74
74
|
- Lint 检查失败:5 个错误
|
|
75
75
|
- 单元测试失败:2/15 测试用例
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
🔄 自动修复:调用对应 Engineer 修复问题...
|
|
78
|
+
修复完成后将走完整流程:Engineer → Code Reviewer → Tester → Git Engineer
|
|
79
79
|
|
|
80
80
|
📢 已发送钉钉通知(预检测失败)
|
|
81
81
|
```
|
|
@@ -202,7 +202,7 @@ glab mr create \
|
|
|
202
202
|
|
|
203
203
|
## 测试结果
|
|
204
204
|
- 后端覆盖率:92% (>= 90%)
|
|
205
|
-
- 前端覆盖率:
|
|
205
|
+
- 前端覆盖率:92% (>= 90%)
|
|
206
206
|
- E2E 测试:3/3 通过
|
|
207
207
|
|
|
208
208
|
## 验收标准
|
|
@@ -244,7 +244,7 @@ glab mr create
|
|
|
244
244
|
|
|
245
245
|
## 测试结果
|
|
246
246
|
- 后端覆盖率:XX% (>= 90%)
|
|
247
|
-
- 前端覆盖率:XX% (>=
|
|
247
|
+
- 前端覆盖率:XX% (>= 90%)
|
|
248
248
|
- E2E 测试:X/X 通过
|
|
249
249
|
|
|
250
250
|
## 验收标准
|
|
@@ -410,21 +410,29 @@ glab mr status
|
|
|
410
410
|
|
|
411
411
|
## 与其他 Skills 的协作
|
|
412
412
|
|
|
413
|
-
1. **上游**: 接收
|
|
413
|
+
1. **上游**: 接收 Tester 测试通过的代码
|
|
414
414
|
2. **下游**:
|
|
415
415
|
- 预检测通过 + MR 创建成功 → 工作流完成
|
|
416
|
-
- 预检测失败 →
|
|
416
|
+
- 预检测失败 → **自动调用** 对应 Engineer 修复 → 走完整流程回来(Code Reviewer → Tester → Git Engineer)
|
|
417
417
|
3. **并行**: 无
|
|
418
418
|
|
|
419
419
|
## 会话管理
|
|
420
420
|
|
|
421
|
-
⚠️
|
|
421
|
+
⚠️ **重要**:Git Engineer 是工作流的**终点**,在特定情况下触发 `/compact` 命令。
|
|
422
422
|
|
|
423
423
|
### 触发时机
|
|
424
424
|
|
|
425
|
-
|
|
425
|
+
**仅在以下情况触发 `/compact`**:
|
|
426
426
|
- **MR 创建成功**:预检测通过,MR 已创建,整个 SDD 工作流完成
|
|
427
|
-
|
|
427
|
+
|
|
428
|
+
**不触发 /compact 的情况**:
|
|
429
|
+
- **预检测失败**:问题自动反馈给 Engineer 修复,需要保持上下文以便后续修复循环
|
|
430
|
+
|
|
431
|
+
### 为什么这样设计
|
|
432
|
+
|
|
433
|
+
- Git Engineer 是工作流的终点,MR 成功代表整个工作流完成
|
|
434
|
+
- 预检测失败时需要返回 Engineer 修复,保持上下文有助于追踪修复历史
|
|
435
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
428
436
|
|
|
429
437
|
### 执行方式
|
|
430
438
|
|
|
@@ -434,8 +442,8 @@ glab mr status
|
|
|
434
442
|
|
|
435
443
|
### 目的
|
|
436
444
|
|
|
437
|
-
-
|
|
438
|
-
-
|
|
445
|
+
- 清理整个工作流的冗余上下文(需求分析、代码实现、测试、审查等)
|
|
446
|
+
- 为下一个工作流或新任务提供干净的起点
|
|
439
447
|
- 保持会话响应速度和质量
|
|
440
448
|
|
|
441
449
|
## 在 Pre-Execution Review 中的角色
|
|
@@ -467,7 +475,7 @@ glab mr status
|
|
|
467
475
|
✅ 类型检查:通过
|
|
468
476
|
✅ 编译检查:通过
|
|
469
477
|
✅ 单元测试:8/8 通过
|
|
470
|
-
✅ 覆盖率:
|
|
478
|
+
✅ 覆盖率:92% (>= 90%)
|
|
471
479
|
|
|
472
480
|
✅ 所有预检测通过!
|
|
473
481
|
|
package/skills/notifier/SKILL.md
CHANGED
|
@@ -454,25 +454,18 @@ chmod +x test_notification.sh
|
|
|
454
454
|
|
|
455
455
|
## 会话管理
|
|
456
456
|
|
|
457
|
-
⚠️
|
|
457
|
+
⚠️ **注意**:Notifier **不触发** `/compact` 命令。
|
|
458
458
|
|
|
459
|
-
###
|
|
459
|
+
### 为什么不触发 /compact
|
|
460
460
|
|
|
461
|
-
|
|
462
|
-
-
|
|
463
|
-
-
|
|
461
|
+
- Notifier 是辅助角色,不是主工作流的一部分
|
|
462
|
+
- 通知发送后通常会返回到调用它的 Skill 继续执行
|
|
463
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
464
464
|
|
|
465
|
-
###
|
|
465
|
+
### 何时会触发 /compact
|
|
466
466
|
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
```
|
|
470
|
-
|
|
471
|
-
### 目的
|
|
472
|
-
|
|
473
|
-
- 清理会话中的冗余上下文(Webhook 请求/响应、配置读取等)
|
|
474
|
-
- 为调用者或下一个角色提供干净的起点
|
|
475
|
-
- 保持会话响应速度和质量
|
|
467
|
+
- 当整个工作流完成时(Git Engineer MR 创建成功)
|
|
468
|
+
- 当达到最大修复轮次需要人工介入时
|
|
476
469
|
|
|
477
470
|
## 在 Pre-Execution Review 中的角色
|
|
478
471
|
|
package/skills/sae/SKILL.md
CHANGED
|
@@ -185,7 +185,7 @@ Response (401):
|
|
|
185
185
|
## 决策原则
|
|
186
186
|
|
|
187
187
|
遵循以下技术决策优先级:
|
|
188
|
-
1.
|
|
188
|
+
1. **安全性 > 稳定性 > 性能 > 成本**
|
|
189
189
|
2. **技术选型标准**:
|
|
190
190
|
- 成熟度高,社区活跃
|
|
191
191
|
- 团队熟悉程度
|
|
@@ -244,9 +244,15 @@ Response (401):
|
|
|
244
244
|
|
|
245
245
|
⚠️ **重要**:当 SAE 角色流程完成后,**必须执行 `/compact` 命令**压缩会话上下文。
|
|
246
246
|
|
|
247
|
+
### 为什么 SAE 需要触发 /compact
|
|
248
|
+
|
|
249
|
+
SAE 是工作流的**起点**,完成需求分析后:
|
|
250
|
+
- 需求分析阶段的探索和讨论内容较多
|
|
251
|
+
- 后续进入实现阶段,是相对独立的新阶段
|
|
252
|
+
- 压缩后为 Engineer 提供干净的起点
|
|
253
|
+
|
|
247
254
|
### 触发时机
|
|
248
255
|
|
|
249
|
-
在以下情况完成时触发 `/compact`:
|
|
250
256
|
- 需求规格文档已生成并保存
|
|
251
257
|
- Spec 文档、Proposal 文档、Tasks 文档已全部创建
|
|
252
258
|
- 已向用户确认下一步交给 Backend Engineer 和 Frontend Engineer
|
|
@@ -257,12 +263,6 @@ Response (401):
|
|
|
257
263
|
/compact
|
|
258
264
|
```
|
|
259
265
|
|
|
260
|
-
### 目的
|
|
261
|
-
|
|
262
|
-
- 清理会话中的冗余上下文
|
|
263
|
-
- 为下一个角色(Backend/Frontend Engineer)提供干净的起点
|
|
264
|
-
- 保持会话响应速度和质量
|
|
265
|
-
|
|
266
266
|
## 示例对话
|
|
267
267
|
|
|
268
268
|
```
|
package/skills/tester/SKILL.md
CHANGED
|
@@ -167,7 +167,7 @@ npm run test:e2e -- --project=chromium
|
|
|
167
167
|
|
|
168
168
|
✅ 验收标准:5/5 满足
|
|
169
169
|
|
|
170
|
-
下一步请
|
|
170
|
+
下一步请 Git Engineer 进行预检测和提交。
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
**测试失败(自动修复中)**:
|
|
@@ -480,37 +480,31 @@ lhci autorun
|
|
|
480
480
|
|
|
481
481
|
## 与其他 Skills 的协作
|
|
482
482
|
|
|
483
|
-
1. **上游**: 接收
|
|
483
|
+
1. **上游**: 接收 Code Reviewer 审查通过的代码
|
|
484
484
|
2. **自动修复循环**:
|
|
485
|
-
- 后端测试失败 → **自动调用** `/backend-engineer` 修复
|
|
486
|
-
- 前端测试失败 → **自动调用** `/frontend-engineer` 修复
|
|
485
|
+
- 后端测试失败 → **自动调用** `/backend-engineer` 修复
|
|
486
|
+
- 前端测试失败 → **自动调用** `/frontend-engineer` 修复
|
|
487
|
+
- Engineer 修复后会重新提交给 Code Reviewer → 审查通过后流转回 Tester
|
|
487
488
|
- 循环直到全部通过或达到最大修复轮次(3轮)
|
|
488
489
|
3. **下游**:
|
|
489
|
-
- 测试通过 → 交给
|
|
490
|
+
- 测试通过 → 交给 Git Engineer
|
|
490
491
|
- 超过 3 轮仍失败 → 发送钉钉通知,请求人工介入
|
|
491
492
|
4. **并行**: 无
|
|
492
493
|
|
|
493
494
|
## 会话管理
|
|
494
495
|
|
|
495
|
-
⚠️
|
|
496
|
+
⚠️ **注意**:Tester **不触发** `/compact` 命令。
|
|
496
497
|
|
|
497
|
-
###
|
|
498
|
+
### 为什么不触发 /compact
|
|
498
499
|
|
|
499
|
-
|
|
500
|
-
-
|
|
501
|
-
-
|
|
500
|
+
- Tester 不是工作流的终点,后续还有 Git Engineer
|
|
501
|
+
- 在修复循环中保持上下文连续性很重要(测试输出、错误日志、修复轮次记录等)
|
|
502
|
+
- `/compact` 只在工作流的**起点**(SAE)和**终点**(Git Engineer MR 成功)触发
|
|
502
503
|
|
|
503
|
-
###
|
|
504
|
+
### 何时会触发 /compact
|
|
504
505
|
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
### 目的
|
|
510
|
-
|
|
511
|
-
- 清理会话中的冗余上下文(测试输出、错误日志、修复循环记录等)
|
|
512
|
-
- 为下一个角色(Code Reviewer)提供干净的起点
|
|
513
|
-
- 保持会话响应速度和质量
|
|
506
|
+
- 当整个工作流完成时(Git Engineer MR 创建成功)
|
|
507
|
+
- 当达到最大修复轮次需要人工介入时
|
|
514
508
|
|
|
515
509
|
## 在 Pre-Execution Review 中的角色
|
|
516
510
|
|
|
@@ -603,5 +597,5 @@ lhci autorun
|
|
|
603
597
|
- E2E 测试:3/3 通过
|
|
604
598
|
- 验收标准:5/5 满足
|
|
605
599
|
|
|
606
|
-
下一步请
|
|
600
|
+
下一步请 Git Engineer 进行预检测和提交。
|
|
607
601
|
```
|