kld-sdd 2.6.2 → 2.6.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 +2 -2
- package/skywalk-sdd/context-client.cjs +54 -14
- package/skywalk-sdd/ontology/archive-package.cjs +35 -4
- package/skywalk-sdd/ontology/artifact-parser.cjs +119 -5
- package/skywalk-sdd/ontology/identity-index.cjs +11 -0
- package/skywalk-sdd/ontology/normalizer.cjs +11 -0
- package/skywalk-sdd/ontology/runtime.cjs +5 -0
- package/skywalk-sdd/ontology/schema.cjs +5 -0
- package/skywalk-sdd/ontology/traceability-validator.cjs +156 -0
- package/templates/openspec/continuity-resolution.example.json +32 -0
- package/templates/openspec/proposal.md +18 -0
- package/templates/openspec/spec.md +3 -0
- package/templates/skills/kld-sdd/opsx-apply/SKILL.md +2 -1
- package/templates/skills/kld-sdd/opsx-apply/checklist.md +2 -2
- package/templates/skills/kld-sdd/opsx-archive/SKILL.md +5 -1
- package/templates/skills/kld-sdd/opsx-check/SKILL.md +15 -1
- package/templates/skills/kld-sdd/opsx-check/checklist.md +5 -1
- package/templates/skills/kld-sdd/opsx-propose/SKILL.md +21 -0
- package/templates/skills/kld-sdd/opsx-spec/SKILL.md +21 -11
- package/templates/skills/kld-sdd/opsx-spec/checklist.md +1 -0
- package/templates/skills/kld-sdd/opsx-task/SKILL.md +2 -1
- package/templates/skills/kld-sdd/opsx-task/checklist.md +1 -1
- package/templates/skills/kld-sdd/opsx-task/reference.md +7 -5
- package/templates/skills/kld-sdd/opsx-tdd-anti-patterns/SKILL.md +5 -0
- package/templates/skills/kld-sdd/opsx-tdd-core/SKILL.md +64 -4
- package/templates/skills/kld-sdd/opsx-tdd-core/checklist.md +3 -1
- package/templates/skills/kld-sdd/opsx-tdd-core/reference.md +13 -9
- package/templates/skills/kld-sdd/opsx-tdd-metrics/SKILL.md +1 -0
- package/templates/skills/kld-sdd/opsx-tdd-review/SKILL.md +39 -0
- package/templates/skills/kld-sdd/opsx-tdd-rules/rules/controller-strategy.md +33 -11
- package/templates/skills/kld-sdd/opsx-tdd-rules/rules/dag-generation-rules.md +13 -0
- package/templates/skills/kld-sdd/opsx-tdd-rules/rules/non-tdd-modules.md +4 -3
- package/templates/skills/kld-sdd/opsx-tdd-rules/rules/task-type-definitions.md +7 -0
- package/templates/skills/kld-sdd/opsx-test/SKILL.md +1 -1
|
@@ -82,16 +82,19 @@ description: "opsx-tdd-core 详细参考 — 执行步骤、拆分示例、DAG
|
|
|
82
82
|
|
|
83
83
|
**策略 A**(Controller 拆 RED→GREEN,使用 @WebMvcTest):
|
|
84
84
|
|
|
85
|
-
| TASK-ID | 行为点 | 类型 | 验收标准 |
|
|
86
|
-
|
|
87
|
-
| TASK-CTRL-RED-1 | POST /api/v1/auth/login 返回 Token | 测试-RED | @WebMvcTest
|
|
88
|
-
| TASK-CTRL-GREEN-1 | AuthController 接线 | 实现-GREEN | RED 测试通过 |
|
|
85
|
+
| TASK-ID | 行为点 | 类型 | 依赖 | 验收标准 |
|
|
86
|
+
|---------|--------|------|------|---------|
|
|
87
|
+
| TASK-CTRL-RED-1 | POST /api/v1/auth/login 返回 Token | 测试-RED | TASK-05-GREEN-1 | @WebMvcTest 测试运行失败,失败原因:Controller 未实现 |
|
|
88
|
+
| TASK-CTRL-GREEN-1 | AuthController.login() 接线 | 实现-GREEN | TASK-CTRL-RED-1 | RED 测试通过 |
|
|
89
|
+
|
|
90
|
+
**策略 B**(Controller 先接线,再写 @WebMvcTest 验证):
|
|
89
91
|
|
|
90
|
-
|
|
92
|
+
| TASK-ID | 行为点 | 类型 | 依赖 | 验收标准 |
|
|
93
|
+
|---------|--------|------|------|---------|
|
|
94
|
+
| TASK-CTRL-IMPL | AuthController 3 个接口接线 | 接口层 | TASK-05-GREEN-6 | Controller 编译通过,调用对应 Service 方法,返回 Result |
|
|
95
|
+
| TASK-CTRL-TEST | AuthController HTTP 契约验证 | 接口测试 | TASK-CTRL-IMPL | @WebMvcTest 通过:URL 映射、请求绑定、响应 JSON 结构、错误处理 |
|
|
91
96
|
|
|
92
|
-
|
|
93
|
-
|---------|------|---------|
|
|
94
|
-
| TASK-CTRL | 接口层(非 TDD) | Controller 编译通过,调用对应 Service 方法,返回 Result |
|
|
97
|
+
> 策略 B 本质是对 Controller 层单独应用 impl-first 模式:先实现接线,再写测试验证 HTTP 契约。
|
|
95
98
|
|
|
96
99
|
## §6 DAG 生成规则
|
|
97
100
|
|
|
@@ -112,7 +115,8 @@ description: "opsx-tdd-core 详细参考 — 执行步骤、拆分示例、DAG
|
|
|
112
115
|
- 项目脚手架/配置 → 配置任务
|
|
113
116
|
- 数据库迁移脚本(SQL DDL)→ 数据层任务
|
|
114
117
|
- 前端路由/状态管理/API 封装 → UI层任务
|
|
115
|
-
|
|
118
|
+
|
|
119
|
+
> Controller 层不属于非 TDD 模块,必须通过策略 A 或策略 B 生成测试。
|
|
116
120
|
|
|
117
121
|
## §8 Telemetry 模板
|
|
118
122
|
|
|
@@ -7,6 +7,7 @@ description: "度量分析层 — 测试质量量化度量:隔离评分、命
|
|
|
7
7
|
|
|
8
8
|
> **定位**:测试质量的量化度量,提供可计算的评分。
|
|
9
9
|
> **参考来源**:tdd-guide `metrics_calculator.py`
|
|
10
|
+
> **引用方式**:**可选引用**。本技能不参与强制流程,仅在需要量化评估测试质量时按需读取。`opsx-check` 和 `opsx-apply` 的强制检查引用 `opsx-tdd-core/checklist.md` 和 `opsx-tdd-review`,不引用本技能。
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
@@ -64,3 +64,42 @@ description: "测试审查层 — 从审查者角度检测'测试通过但没测
|
|
|
64
64
|
| 不确定 | 举证责任在期望方(默认 FAIL) |
|
|
65
65
|
|
|
66
66
|
> 不给予部分分数。每个断言要么通过要么失败。
|
|
67
|
+
|
|
68
|
+
## §7 子代理审查提示模板
|
|
69
|
+
|
|
70
|
+
> 当 `opsx-apply` 在 GREEN 任务完成后派发独立审查子代理时使用此模板。参考 Superpowers `subagent-driven-development` 的 task-reviewer 模式:implementer 自审查 ≠ 独立审查。
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
Agent (general-purpose):
|
|
74
|
+
description: "TDD 审查任务 [TASK-ID]: [任务描述]"
|
|
75
|
+
prompt: |
|
|
76
|
+
你是 TDD 测试质量审查者。你的职责是审查 implementer 的测试代码和实现代码,
|
|
77
|
+
检测"测试通过但没测到关键点"的问题。
|
|
78
|
+
|
|
79
|
+
## 审查范围
|
|
80
|
+
|
|
81
|
+
- 任务 ID: [TASK-ID]
|
|
82
|
+
- 任务类型: [测试-RED / 实现-GREEN / 重构-REFACTOR]
|
|
83
|
+
- 审审查文件: [implementer 修改的文件列表]
|
|
84
|
+
|
|
85
|
+
## 审查清单
|
|
86
|
+
|
|
87
|
+
执行 opsx-tdd-review/SKILL.md §3(8 项质量审查)+ §4(缺失测试检测)+ §5(测试异味检测)。
|
|
88
|
+
对于 GREEN 任务,额外检查:
|
|
89
|
+
- GREEN Scope: 生产代码中是否有未被当前 RED 断言覆盖的逻辑分支?
|
|
90
|
+
- YAGNI 围栏: 是否提前实现了后续 RED 的行为?
|
|
91
|
+
- 反模式: 执行 opsx-tdd-anti-patterns/SKILL.md §4(12 种 GREEN 后反模式)
|
|
92
|
+
|
|
93
|
+
## 审查标准
|
|
94
|
+
|
|
95
|
+
- PASS: 需明确证据且证据反映真实任务完成
|
|
96
|
+
- FAIL: 无证据、证据矛盾、证据表面化、巧合满足
|
|
97
|
+
- 不确定: 举证责任在期望方(默认 FAIL)
|
|
98
|
+
|
|
99
|
+
## 报告格式
|
|
100
|
+
|
|
101
|
+
- **审查结果**: PASS / FAIL / 不确定
|
|
102
|
+
- **通过项**: [列表]
|
|
103
|
+
- **失败项**: [列表,含具体文件:行号和问题描述]
|
|
104
|
+
- **建议修复**: [具体修复方案]
|
|
105
|
+
```
|
|
@@ -2,30 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
> 影响等级:HIGH
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 核心原则
|
|
6
|
+
|
|
7
|
+
Controller 层**必须**有测试。两种策略的区别在于测试方式(TDD 红绿循环 vs impl-first 验证),而非"有无测试"。
|
|
8
|
+
|
|
9
|
+
## 策略 A:TDD 红绿循环
|
|
6
10
|
|
|
7
11
|
为每个 Controller 接口生成 RED 测试(使用 @WebMvcTest),拆为 RED→GREEN 对。
|
|
8
12
|
|
|
9
|
-
适用:Controller
|
|
13
|
+
适用:Controller 含业务逻辑(参数校验、条件转发、响应转换等)。
|
|
10
14
|
|
|
11
15
|
示例任务表:
|
|
12
16
|
|
|
13
|
-
| TASK-ID | 行为点 | 类型 | 验收标准 |
|
|
14
|
-
|
|
15
|
-
| CTRL-RED-1 | POST /api/v1/auth/login 返回 Token | 测试-RED | @WebMvcTest
|
|
16
|
-
| CTRL-GREEN-1 | AuthController 接线 | 实现-GREEN | RED 测试通过 |
|
|
17
|
+
| TASK-ID | 行为点 | 类型 | 依赖 | 验收标准 |
|
|
18
|
+
|---------|--------|------|------|---------|
|
|
19
|
+
| CTRL-RED-1 | POST /api/v1/auth/login 返回 Token | 测试-RED | GREEN-Service | @WebMvcTest 测试运行失败,失败原因:Controller 未实现 |
|
|
20
|
+
| CTRL-GREEN-1 | AuthController.login() 接线 | 实现-GREEN | CTRL-RED-1 | RED 测试通过 |
|
|
17
21
|
|
|
18
|
-
## 策略 B
|
|
22
|
+
## 策略 B:Impl-First 接线测试
|
|
19
23
|
|
|
20
|
-
Controller
|
|
24
|
+
Controller 先实现接线,再写 @WebMvcTest 验证 HTTP 契约。不拆 RED→GREEN 循环,但**必须生成测试任务**。
|
|
21
25
|
|
|
22
26
|
适用:Controller 为纯接线(调用 Service + 返回 Result)。
|
|
23
27
|
|
|
24
28
|
示例任务表:
|
|
25
29
|
|
|
26
|
-
| TASK-ID | 类型 | 验收标准 |
|
|
27
|
-
|
|
28
|
-
| CTRL |
|
|
30
|
+
| TASK-ID | 行为点 | 类型 | 依赖 | 验收标准 |
|
|
31
|
+
|---------|--------|------|------|---------|
|
|
32
|
+
| CTRL-IMPL | AuthController 3 个接口接线 | 接口层 | GREEN-Service | Controller 编译通过,调用对应 Service 方法,返回 Result |
|
|
33
|
+
| CTRL-TEST | AuthController HTTP 契约验证 | 接口测试 | CTRL-IMPL | @WebMvcTest 通过:URL 映射正确、请求体绑定正确、响应 JSON 结构正确、错误响应正确 |
|
|
34
|
+
|
|
35
|
+
### 策略 B 测试范围
|
|
36
|
+
|
|
37
|
+
@WebMvcTest 必须覆盖以下 HTTP 契约点:
|
|
38
|
+
|
|
39
|
+
1. **URL 映射**:请求路径和 HTTP 方法正确
|
|
40
|
+
2. **请求绑定**:`@RequestBody`/`@RequestParam`/`@PathVariable` 正确反序列化
|
|
41
|
+
3. **响应结构**:`jsonPath()` 断言响应 JSON 字段
|
|
42
|
+
4. **状态码**:200/201/400/401/403/404 等正确返回
|
|
43
|
+
5. **错误处理**:`@ControllerAdvice`/`@ExceptionHandler` 响应正确
|
|
44
|
+
|
|
45
|
+
### 策略 B 与 impl-first 的关系
|
|
46
|
+
|
|
47
|
+
策略 B 本质上是**对 Controller 层单独应用 impl-first 模式**:
|
|
48
|
+
- 实现任务在前(CTRL-IMPL)
|
|
49
|
+
- 测试任务 Depends-On 实现任务(CTRL-TEST)
|
|
50
|
+
- 测试使用 @WebMvcTest(非 @SpringBootTest)
|
|
29
51
|
|
|
30
52
|
## 声明要求
|
|
31
53
|
|
|
@@ -18,3 +18,16 @@
|
|
|
18
18
|
4. GREEN 任务依赖对应的 RED 任务
|
|
19
19
|
5. 可选每 3-5 个行为点后插入 REFACTOR
|
|
20
20
|
6. 模块末尾可保留 VERIFY 任务
|
|
21
|
+
|
|
22
|
+
## Controller 层 DAG 规则
|
|
23
|
+
|
|
24
|
+
Controller 层根据策略生成不同的 DAG 结构:
|
|
25
|
+
|
|
26
|
+
| 策略 | DAG 结构 | 说明 |
|
|
27
|
+
|------|----------|------|
|
|
28
|
+
| 策略 A | CTRL-RED → CTRL-GREEN | 与 Service 层相同的红绿循环 |
|
|
29
|
+
| 策略 B | CTRL-IMPL → CTRL-TEST | impl-first 模式:先接线,再测试 |
|
|
30
|
+
|
|
31
|
+
- 策略 A 的 CTRL-RED 依赖对应 Service 的 GREEN 任务
|
|
32
|
+
- 策略 B 的 CTRL-IMPL 依赖对应 Service 的 GREEN 任务
|
|
33
|
+
- 两种策略都生成测试任务,区别是测试时序(先测试 vs 先实现)
|
|
@@ -10,8 +10,9 @@
|
|
|
10
10
|
- 项目脚手架/配置 → 配置任务
|
|
11
11
|
- 数据库迁移脚本(SQL DDL)→ 数据层任务
|
|
12
12
|
- 前端路由/状态管理/API 封装 → UI层任务
|
|
13
|
-
- Controller 层(可选)→ 接口层任务(当选择策略 B 时)
|
|
14
13
|
|
|
15
|
-
## Controller
|
|
14
|
+
## Controller 层说明
|
|
16
15
|
|
|
17
|
-
Controller
|
|
16
|
+
Controller 层**不属于**非 TDD 模块。Controller 必须有测试,通过策略 A(TDD 红绿循环)或策略 B(impl-first 接线测试)实现。
|
|
17
|
+
|
|
18
|
+
> Controller 策略选择见 `opsx-tdd-rules/rules/controller-strategy.md`,必须在 tasks.md §2.0 中声明。
|
|
@@ -11,6 +11,13 @@
|
|
|
11
11
|
| 重构-REFACTOR | 测试全绿下的代码清理 | 所有测试仍绿,代码结构改善 |
|
|
12
12
|
| 测试-验证 | 全量测试运行验证 | 全部测试通过 |
|
|
13
13
|
|
|
14
|
+
## Controller 策略 B 任务类型
|
|
15
|
+
|
|
16
|
+
| 类型 | 说明 | 验收标准要求 |
|
|
17
|
+
|------|------|-------------|
|
|
18
|
+
| 接口层 | Controller 接线实现 | Controller 编译通过,调用对应 Service 方法,返回 Result |
|
|
19
|
+
| 接口测试 | Controller HTTP 契约验证 | @WebMvcTest 通过:URL 映射、请求绑定、响应结构、错误处理 |
|
|
20
|
+
|
|
14
21
|
## RED 任务额外必填字段
|
|
15
22
|
|
|
16
23
|
- 测试方法名(`{method}_{state}_{outcome}` 格式)
|
|
@@ -146,7 +146,7 @@ node skywalk-sdd/log.cjs record --type=test_result --command=test --project=. --
|
|
|
146
146
|
- [ ] 无"生产类中加测试专用方法"
|
|
147
147
|
- [ ] 无"不理解依赖就 mock"
|
|
148
148
|
|
|
149
|
-
> 完整
|
|
149
|
+
> 完整 12 项反模式检测见 opsx-tdd-anti-patterns/SKILL.md §4
|
|
150
150
|
> TDD 报告模式见 opsx-tdd-review/SKILL.md §3
|
|
151
151
|
|
|
152
152
|
### 6. 【交互引导】根据结果引导下一步
|