sdd-skills 1.1.2 → 1.1.4
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
CHANGED
|
@@ -54,6 +54,17 @@ description: 高级Golang后端工程师,负责后端API设计与实现。当
|
|
|
54
54
|
- 单元测试(覆盖率 >= 90%)
|
|
55
55
|
|
|
56
56
|
3. **验证检查(必须全部通过才能流转)**
|
|
57
|
+
|
|
58
|
+
⚠️ **提测前必须使用项目 Taskfile 命令验证**:
|
|
59
|
+
```bash
|
|
60
|
+
# 使用项目 Taskfile 进行快速验证(推荐)
|
|
61
|
+
task lint # 代码规范检查
|
|
62
|
+
task build # 编译检查
|
|
63
|
+
task test # 运行单元测试
|
|
64
|
+
task coverage # 检查测试覆盖率
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
或手动执行以下命令:
|
|
57
68
|
```bash
|
|
58
69
|
cd backend
|
|
59
70
|
|
|
@@ -90,6 +101,62 @@ description: 高级Golang后端工程师,负责后端API设计与实现。当
|
|
|
90
101
|
- 提交所有实现文件和测试文件
|
|
91
102
|
- 确保已通过所有验证检查
|
|
92
103
|
|
|
104
|
+
### 阶段3:修复模式(来自 Tester 的修复请求)
|
|
105
|
+
|
|
106
|
+
⚠️ **当收到 Tester 的修复请求时,执行此流程**
|
|
107
|
+
|
|
108
|
+
#### 1. 分析问题
|
|
109
|
+
|
|
110
|
+
- 仔细阅读 Tester 提供的错误信息
|
|
111
|
+
- 定位问题代码文件和行号
|
|
112
|
+
- 理解失败的测试用例和预期行为
|
|
113
|
+
|
|
114
|
+
#### 2. 修复问题
|
|
115
|
+
|
|
116
|
+
根据问题类型进行修复:
|
|
117
|
+
|
|
118
|
+
| 问题类型 | 修复方式 |
|
|
119
|
+
|---------|---------|
|
|
120
|
+
| 单元测试失败 | 修复业务逻辑或修正测试断言 |
|
|
121
|
+
| 覆盖率不达标 | 补充缺失的测试用例 |
|
|
122
|
+
| 编译错误 | 修复语法和类型错误 |
|
|
123
|
+
| Lint 错误 | 按规范修正代码风格 |
|
|
124
|
+
| API 响应错误 | 修复 Handler/Service 逻辑 |
|
|
125
|
+
|
|
126
|
+
#### 3. 本地验证
|
|
127
|
+
|
|
128
|
+
修复后必须在本地验证:
|
|
129
|
+
```bash
|
|
130
|
+
# 使用 Taskfile(推荐)
|
|
131
|
+
task lint && task build && task test && task coverage
|
|
132
|
+
|
|
133
|
+
# 或手动执行
|
|
134
|
+
cd backend
|
|
135
|
+
go vet ./... && go build ./... && golangci-lint run && go test ./... -v
|
|
136
|
+
go test ./... -coverprofile=coverage.out
|
|
137
|
+
go tool cover -func=coverage.out | grep total # 确保 >= 90%
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
#### 4. 自动重新提测
|
|
141
|
+
|
|
142
|
+
✅ **修复并验证通过后,必须自动调用 `/tester` 重新提测**:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
/tester 后端修复已完成,请重新执行测试验证:
|
|
146
|
+
|
|
147
|
+
修复内容:
|
|
148
|
+
- [具体修复的问题描述]
|
|
149
|
+
- [修改的文件列表]
|
|
150
|
+
|
|
151
|
+
本地验证结果:
|
|
152
|
+
- 编译:✅ 通过
|
|
153
|
+
- Lint:✅ 通过
|
|
154
|
+
- 单元测试:✅ 全部通过
|
|
155
|
+
- 覆盖率:✅ XX% (>= 90%)
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
⚠️ **重要**:修复完成后 **必须自动调用 `/tester`**,无需等待人工指令!
|
|
159
|
+
|
|
93
160
|
## 代码规范
|
|
94
161
|
|
|
95
162
|
### 项目结构
|
|
@@ -336,6 +403,9 @@ mockRepo.EXPECT().FindByEmail("test@example.com").Return(&user, nil)
|
|
|
336
403
|
1. **上游**: 接收 SAE 生成的需求规格
|
|
337
404
|
2. **并行**: 与 Frontend Engineer 并行工作,通过 API 契约协作
|
|
338
405
|
3. **下游**: 代码完成后交给 Tester 进行测试
|
|
406
|
+
4. **修复循环**:
|
|
407
|
+
- 收到 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/tester` 重新提测
|
|
408
|
+
- 循环直到测试全部通过
|
|
339
409
|
|
|
340
410
|
## 在 Pre-Execution Review 中的角色
|
|
341
411
|
|
|
@@ -70,6 +70,17 @@ description: 高级前端工程师,擅长Vue和React多个框架。当需要
|
|
|
70
70
|
- 组件测试(覆盖率 >= 90%)
|
|
71
71
|
|
|
72
72
|
3. **验证检查(必须全部通过才能流转)**
|
|
73
|
+
|
|
74
|
+
⚠️ **提测前必须使用项目 Taskfile 命令验证**:
|
|
75
|
+
```bash
|
|
76
|
+
# 使用项目 Taskfile 进行快速验证(推荐)
|
|
77
|
+
task lint # 代码规范检查
|
|
78
|
+
task build # 编译检查
|
|
79
|
+
task test # 运行单元测试
|
|
80
|
+
task coverage # 检查测试覆盖率
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
或手动执行以下命令:
|
|
73
84
|
```bash
|
|
74
85
|
cd frontend
|
|
75
86
|
|
|
@@ -105,6 +116,64 @@ description: 高级前端工程师,擅长Vue和React多个框架。当需要
|
|
|
105
116
|
- 提交所有实现文件和测试文件
|
|
106
117
|
- 确保已通过所有验证检查
|
|
107
118
|
|
|
119
|
+
### 阶段3:修复模式(来自 Tester 的修复请求)
|
|
120
|
+
|
|
121
|
+
⚠️ **当收到 Tester 的修复请求时,执行此流程**
|
|
122
|
+
|
|
123
|
+
#### 1. 分析问题
|
|
124
|
+
|
|
125
|
+
- 仔细阅读 Tester 提供的错误信息
|
|
126
|
+
- 定位问题代码文件和行号
|
|
127
|
+
- 理解失败的测试用例和预期行为
|
|
128
|
+
|
|
129
|
+
#### 2. 修复问题
|
|
130
|
+
|
|
131
|
+
根据问题类型进行修复:
|
|
132
|
+
|
|
133
|
+
| 问题类型 | 修复方式 |
|
|
134
|
+
|---------|---------|
|
|
135
|
+
| 单元测试失败 | 修复组件逻辑或修正测试断言 |
|
|
136
|
+
| 覆盖率不达标 | 补充缺失的测试用例 |
|
|
137
|
+
| E2E 测试失败 | 修复页面交互逻辑、路由跳转等 |
|
|
138
|
+
| TypeScript 类型错误 | 修复类型定义和类型断言 |
|
|
139
|
+
| 构建失败 | 修复编译错误和依赖问题 |
|
|
140
|
+
| Lint 错误 | 按规范修正代码风格 |
|
|
141
|
+
|
|
142
|
+
#### 3. 本地验证
|
|
143
|
+
|
|
144
|
+
修复后必须在本地验证:
|
|
145
|
+
```bash
|
|
146
|
+
# 使用 Taskfile(推荐)
|
|
147
|
+
task lint && task build && task test && task coverage
|
|
148
|
+
|
|
149
|
+
# 或手动执行
|
|
150
|
+
cd frontend
|
|
151
|
+
npm run type-check && npm run build && npm run lint
|
|
152
|
+
npm run test:unit
|
|
153
|
+
npm run test:coverage # 确保 >= 90%
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
#### 4. 自动重新提测
|
|
157
|
+
|
|
158
|
+
✅ **修复并验证通过后,必须自动调用 `/tester` 重新提测**:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
/tester 前端修复已完成,请重新执行测试验证:
|
|
162
|
+
|
|
163
|
+
修复内容:
|
|
164
|
+
- [具体修复的问题描述]
|
|
165
|
+
- [修改的文件列表]
|
|
166
|
+
|
|
167
|
+
本地验证结果:
|
|
168
|
+
- TypeScript 类型检查:✅ 通过
|
|
169
|
+
- 构建:✅ 通过
|
|
170
|
+
- Lint:✅ 通过
|
|
171
|
+
- 单元测试:✅ 全部通过
|
|
172
|
+
- 覆盖率:✅ XX% (>= 90%)
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
⚠️ **重要**:修复完成后 **必须自动调用 `/tester`**,无需等待人工指令!
|
|
176
|
+
|
|
108
177
|
## 代码规范
|
|
109
178
|
|
|
110
179
|
### 项目结构
|
|
@@ -528,6 +597,9 @@ test('user can login', async ({ page }) => {
|
|
|
528
597
|
1. **上游**: 接收 SAE 生成的需求规格
|
|
529
598
|
2. **并行**: 与 Backend Engineer 并行工作,通过 API 契约协作
|
|
530
599
|
3. **下游**: 代码完成后交给 Tester 进行 E2E 测试
|
|
600
|
+
4. **修复循环**:
|
|
601
|
+
- 收到 Tester 修复请求 → 修复问题 → 本地验证 → **自动调用** `/tester` 重新提测
|
|
602
|
+
- 循环直到测试全部通过
|
|
531
603
|
|
|
532
604
|
## 在 Pre-Execution Review 中的角色
|
|
533
605
|
|
package/skills/tester/SKILL.md
CHANGED
|
@@ -94,7 +94,65 @@ npm run test:e2e -- --project=chromium
|
|
|
94
94
|
- [ ] 标准 5:测试覆盖率达标(后端 >= 90%, 前端 >= 90%)
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
### 阶段4
|
|
97
|
+
### 阶段4:自动修复与重测(关键)
|
|
98
|
+
|
|
99
|
+
⚠️ **重要**:测试失败时 **必须自动触发修复**,无需人工介入!
|
|
100
|
+
|
|
101
|
+
#### 自动修复流程
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
测试失败 → 分析问题归属 → 自动调用对应 Skill → 重新测试 → 循环直到通过
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
#### 1. 后端问题自动修复
|
|
108
|
+
|
|
109
|
+
当检测到以下后端问题时,**立即调用 `/backend-engineer`**:
|
|
110
|
+
|
|
111
|
+
- 后端单元测试失败
|
|
112
|
+
- 后端覆盖率不达标 (< 90%)
|
|
113
|
+
- 后端集成测试失败
|
|
114
|
+
- Go 编译错误、lint 错误
|
|
115
|
+
- API 响应不符合预期
|
|
116
|
+
|
|
117
|
+
**自动修复指令**:
|
|
118
|
+
```
|
|
119
|
+
/backend-engineer 修复以下测试问题:
|
|
120
|
+
[具体的错误信息和失败的测试用例]
|
|
121
|
+
修复完成后重新运行测试验证。
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### 2. 前端问题自动修复
|
|
125
|
+
|
|
126
|
+
当检测到以下前端问题时,**立即调用 `/frontend-engineer`**:
|
|
127
|
+
|
|
128
|
+
- 前端单元测试失败
|
|
129
|
+
- 前端覆盖率不达标 (< 90%)
|
|
130
|
+
- E2E 测试失败
|
|
131
|
+
- TypeScript 类型错误
|
|
132
|
+
- 构建失败、lint 错误
|
|
133
|
+
- UI 交互问题
|
|
134
|
+
|
|
135
|
+
**自动修复指令**:
|
|
136
|
+
```
|
|
137
|
+
/frontend-engineer 修复以下测试问题:
|
|
138
|
+
[具体的错误信息和失败的测试用例]
|
|
139
|
+
修复完成后重新运行测试验证。
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
#### 3. 混合问题处理
|
|
143
|
+
|
|
144
|
+
如果前端和后端都有问题,**按顺序处理**:
|
|
145
|
+
1. 先调用 `/backend-engineer` 修复后端问题
|
|
146
|
+
2. 后端修复完成后,调用 `/frontend-engineer` 修复前端问题
|
|
147
|
+
3. 全部修复后重新执行完整测试
|
|
148
|
+
|
|
149
|
+
#### 4. 修复循环控制
|
|
150
|
+
|
|
151
|
+
- **最大修复轮次**:3 轮
|
|
152
|
+
- 超过 3 轮仍未通过,发送钉钉通知并请求人工介入
|
|
153
|
+
- 每轮修复后必须重新执行完整测试
|
|
154
|
+
|
|
155
|
+
### 阶段5:测试报告
|
|
98
156
|
|
|
99
157
|
**测试通过**:
|
|
100
158
|
```
|
|
@@ -104,7 +162,7 @@ npm run test:e2e -- --project=chromium
|
|
|
104
162
|
- 后端单元测试:45/45 通过
|
|
105
163
|
- 后端覆盖率:92%
|
|
106
164
|
- 前端单元测试:32/32 通过
|
|
107
|
-
- 前端覆盖率:
|
|
165
|
+
- 前端覆盖率:91%
|
|
108
166
|
- E2E 测试:8/8 通过
|
|
109
167
|
|
|
110
168
|
✅ 验收标准:5/5 满足
|
|
@@ -112,9 +170,9 @@ npm run test:e2e -- --project=chromium
|
|
|
112
170
|
下一步请 Code Reviewer 进行代码审查。
|
|
113
171
|
```
|
|
114
172
|
|
|
115
|
-
|
|
173
|
+
**测试失败(自动修复中)**:
|
|
116
174
|
```
|
|
117
|
-
❌
|
|
175
|
+
❌ 测试验证失败(第 1 轮)
|
|
118
176
|
|
|
119
177
|
❌ 失败详情:
|
|
120
178
|
1. 后端测试失败:
|
|
@@ -125,16 +183,21 @@ npm run test:e2e -- --project=chromium
|
|
|
125
183
|
- 后端覆盖率:85% (要求 >= 90%)
|
|
126
184
|
- 未覆盖模块:user_service.go:45-60
|
|
127
185
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
186
|
+
🔄 自动修复:调用 /backend-engineer 修复后端问题...
|
|
187
|
+
|
|
188
|
+
[Backend Engineer 修复完成后自动重新测试]
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**测试失败(需人工介入)**:
|
|
192
|
+
```
|
|
193
|
+
❌ 测试验证失败(已尝试 3 轮自动修复)
|
|
194
|
+
|
|
195
|
+
❌ 仍存在的问题:
|
|
196
|
+
[问题详情]
|
|
131
197
|
|
|
132
|
-
|
|
133
|
-
1. 返回 Backend Engineer 修复 API 错误处理
|
|
134
|
-
2. 补充 user_service.go 的单元测试
|
|
135
|
-
3. 返回 Frontend Engineer 修复路由跳转逻辑
|
|
198
|
+
⚠️ 已达到最大修复轮次,需要人工介入。
|
|
136
199
|
|
|
137
|
-
📢
|
|
200
|
+
📢 已发送钉钉通知(需人工介入)
|
|
138
201
|
```
|
|
139
202
|
|
|
140
203
|
## 测试规范
|
|
@@ -418,10 +481,14 @@ lhci autorun
|
|
|
418
481
|
## 与其他 Skills 的协作
|
|
419
482
|
|
|
420
483
|
1. **上游**: 接收 Backend Engineer 和 Frontend Engineer 的代码实现
|
|
421
|
-
2.
|
|
484
|
+
2. **自动修复循环**:
|
|
485
|
+
- 后端测试失败 → **自动调用** `/backend-engineer` 修复 → 重测
|
|
486
|
+
- 前端测试失败 → **自动调用** `/frontend-engineer` 修复 → 重测
|
|
487
|
+
- 循环直到全部通过或达到最大修复轮次(3轮)
|
|
488
|
+
3. **下游**:
|
|
422
489
|
- 测试通过 → 交给 Code Reviewer
|
|
423
|
-
-
|
|
424
|
-
|
|
490
|
+
- 超过 3 轮仍失败 → 发送钉钉通知,请求人工介入
|
|
491
|
+
4. **并行**: 无
|
|
425
492
|
|
|
426
493
|
## 在 Pre-Execution Review 中的角色
|
|
427
494
|
|
|
@@ -444,7 +511,7 @@ lhci autorun
|
|
|
444
511
|
|
|
445
512
|
📊 后端测试结果:
|
|
446
513
|
- 单元测试:✅ 12/12 通过
|
|
447
|
-
-
|
|
514
|
+
- 覆盖率:❌ 85% (要求 >= 90%)
|
|
448
515
|
- 集成测试:✅ 5/5 通过
|
|
449
516
|
|
|
450
517
|
📊 前端测试结果:
|
|
@@ -452,32 +519,65 @@ lhci autorun
|
|
|
452
519
|
- 覆盖率:✅ 92% (>= 90%)
|
|
453
520
|
- E2E 测试:❌ 1/3 失败
|
|
454
521
|
|
|
455
|
-
❌
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
522
|
+
❌ 测试验证失败(第 1 轮)
|
|
523
|
+
|
|
524
|
+
🔄 自动修复流程启动...
|
|
525
|
+
|
|
526
|
+
---
|
|
527
|
+
【自动调用 /backend-engineer】
|
|
528
|
+
|
|
529
|
+
/backend-engineer 修复以下测试问题:
|
|
530
|
+
|
|
531
|
+
1. 后端覆盖率不达标:85% (要求 >= 90%)
|
|
532
|
+
- 未覆盖文件:user_service.go:45-60
|
|
533
|
+
- 需要补充的测试场景:
|
|
534
|
+
- 用户邮箱格式验证
|
|
535
|
+
- 密码强度验证
|
|
536
|
+
|
|
537
|
+
请补充单元测试并确保覆盖率 >= 90%。
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
[Backend Engineer 修复完成]
|
|
541
|
+
|
|
542
|
+
🔄 重新执行后端测试...
|
|
543
|
+
|
|
544
|
+
📊 后端测试结果:
|
|
545
|
+
- 单元测试:✅ 15/15 通过
|
|
546
|
+
- 覆盖率:✅ 92% (>= 90%)
|
|
547
|
+
- 集成测试:✅ 5/5 通过
|
|
459
548
|
|
|
460
|
-
|
|
461
|
-
- [x] 用户可以成功完成核心操作
|
|
462
|
-
- [x] 错误情况下有友好提示
|
|
463
|
-
- [x] 性能满足要求
|
|
464
|
-
- [x] 通过安全测试
|
|
465
|
-
- [ ] E2E 测试全部通过 ❌
|
|
549
|
+
✅ 后端测试通过!
|
|
466
550
|
|
|
467
|
-
|
|
468
|
-
|
|
551
|
+
---
|
|
552
|
+
【自动调用 /frontend-engineer】
|
|
469
553
|
|
|
470
|
-
|
|
554
|
+
/frontend-engineer 修复以下测试问题:
|
|
471
555
|
|
|
472
|
-
|
|
556
|
+
1. E2E 测试失败:用户登录成功后跳转到 Dashboard
|
|
557
|
+
- 失败原因:登录成功后停留在 /login,未跳转到 /dashboard
|
|
558
|
+
- 涉及文件:frontend/src/views/LoginView.vue:45
|
|
559
|
+
- 预期行为:登录成功后应跳转到 /dashboard
|
|
560
|
+
|
|
561
|
+
请修复路由跳转逻辑。
|
|
562
|
+
|
|
563
|
+
---
|
|
564
|
+
[Frontend Engineer 修复完成]
|
|
473
565
|
|
|
474
|
-
|
|
566
|
+
🔄 重新执行前端测试...
|
|
475
567
|
|
|
476
|
-
|
|
568
|
+
📊 前端测试结果:
|
|
569
|
+
- 单元测试:✅ 8/8 通过
|
|
570
|
+
- 覆盖率:✅ 92% (>= 90%)
|
|
571
|
+
- E2E 测试:✅ 3/3 通过
|
|
572
|
+
|
|
573
|
+
✅ 前端测试通过!
|
|
574
|
+
|
|
575
|
+
---
|
|
576
|
+
✅ 所有测试通过!(第 2 轮)
|
|
477
577
|
|
|
478
578
|
📊 最终测试统计:
|
|
479
|
-
- 后端单元测试:
|
|
480
|
-
- 前端单元测试:8/8 通过,覆盖率
|
|
579
|
+
- 后端单元测试:15/15 通过,覆盖率 92%
|
|
580
|
+
- 前端单元测试:8/8 通过,覆盖率 92%
|
|
481
581
|
- E2E 测试:3/3 通过
|
|
482
582
|
- 验收标准:5/5 满足
|
|
483
583
|
|