kld-sdd 2.6.10 → 2.6.12
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/lib/hook-gate-core.js +41 -5
- package/lib/init.js +154 -31
- package/package.json +1 -1
- package/skywalk-sdd/ontology/naming-diagnose.cjs +26 -3
- package/templates/git-hooks/commit-msg-sdd-trailer.cjs +11 -1
- package/templates/hooks/claude/hooks/sdd-prompt.cjs +23 -5
- package/templates/hooks/codebuddy/hooks/sdd-prompt.cjs +22 -3
- package/templates/skills/kld-sdd/opsx-apply/SKILL.md +3 -3
- package/templates/skills/kld-sdd/opsx-apply/checklist.md +3 -3
- package/templates/skills/kld-sdd/opsx-apply/reference.md +13 -13
- package/templates/skills/kld-sdd/opsx-apply/worktree-setup.md +3 -3
- package/templates/skills/kld-sdd/opsx-archive/SKILL.md +14 -14
- package/templates/skills/kld-sdd/opsx-archive/checklist.md +2 -2
- package/templates/skills/kld-sdd/opsx-check/SKILL.md +13 -13
- package/templates/skills/kld-sdd/opsx-design/SKILL.md +4 -4
- package/templates/skills/kld-sdd/opsx-design/reference.md +2 -2
- package/templates/skills/kld-sdd/opsx-explore/SKILL.md +5 -5
- package/templates/skills/kld-sdd/opsx-propose/SKILL.md +11 -11
- package/templates/skills/kld-sdd/opsx-propose/reference.md +2 -2
- package/templates/skills/kld-sdd/opsx-rules/SKILL.md +3 -3
- package/templates/skills/kld-sdd/opsx-spec/SKILL.md +5 -5
- package/templates/skills/kld-sdd/opsx-spec/reference.md +2 -2
- package/templates/skills/kld-sdd/opsx-task/SKILL.md +4 -4
- package/templates/skills/kld-sdd/opsx-task/reference.md +2 -2
- package/templates/skills/kld-sdd/opsx-tdd-core/reference.md +3 -3
- package/templates/skills/kld-sdd/opsx-tdd-rules/rules/test-skeleton-telemetry.md +2 -2
- package/templates/skills/kld-sdd/opsx-test/SKILL.md +5 -5
|
@@ -32,7 +32,7 @@ allowed-tools:
|
|
|
32
32
|
> 1. 检查 proposal.md frontmatter `kb-status`:若 `degraded(by-user-choice)` → 跳过 KB,仅用本地上下文。
|
|
33
33
|
> 2. 否则运行 KB 就绪检查:
|
|
34
34
|
> ```bash
|
|
35
|
-
> node skywalk-sdd/context-client.cjs --check-only
|
|
35
|
+
> node "$(cat .sdd-spec-root)/skywalk-sdd/context-client.cjs" --check-only
|
|
36
36
|
> ```
|
|
37
37
|
> - `"available": true` → 若需查历史任务参考,先 `Read` `opsx-ontology-query/phase-2-during.md` §2
|
|
38
38
|
> - `"available": false` → **KB 不可用不阻塞 task 流程**,仅跳过历史任务追溯参考
|
|
@@ -48,8 +48,8 @@ allowed-tools:
|
|
|
48
48
|
|
|
49
49
|
> **🖥️ 跨平台执行规则**
|
|
50
50
|
> - **SDD 文档根** = `*-sdd-specs` 包裹包(含 `openspec/`、`modules.yaml`),不是 Git 根或工作区根。
|
|
51
|
-
> - `openspec` 命令:优先 `node skywalk-sdd/openspec-shim.cjs list`(自动 cd 到包裹包),或先 `cd` 到包裹包再执行。
|
|
52
|
-
> -
|
|
51
|
+
> - `openspec` 命令:优先 `node "$(cat .sdd-spec-root)/skywalk-sdd/openspec-shim.cjs" list`(自动 cd 到包裹包),或先 `cd` 到包裹包再执行。
|
|
52
|
+
> - Telemetry / ontology:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" …`(Git 根无 skywalk-sdd/);`spec-root` 可用 `node "$(cat .sdd-spec-root)/skywalk-sdd/ontology/cli.cjs" spec-root`。
|
|
53
53
|
> - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
|
|
54
54
|
> - ${SHELL_GUIDANCE}
|
|
55
55
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
@@ -236,7 +236,7 @@ Simple 模式或单文件能力域下,**不要拆成多个同文件任务**。
|
|
|
236
236
|
- 每个 TASK 必须同时写 `entity-id`、`version-id` 和 `delta-state`;新增任务调用 `semantic-identity --delta-state=added`,不得复用其他任务 UUID。
|
|
237
237
|
- 每个 TASK 必须写 `**implements**: DES-*` 或 `**covers**: STMT-*`,不得生成无上游来源任务。
|
|
238
238
|
- 任务依赖必须写 `**dependsOn**: TASK-*`;无依赖显式写“无”,所有依赖必须构成 DAG。
|
|
239
|
-
- 生成结束后必须运行 `node skywalk-sdd/log.cjs semantic-reconcile --project=. --change=<name>`。
|
|
239
|
+
- 生成结束后必须运行 `node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" semantic-reconcile --project=. --change=<name>`。
|
|
240
240
|
- reconcile 必须立即生成 `openspec/changes/<name>/artifacts/.../tasks.ontology.json`,包含 TASK、implements/covers/dependsOn 及原文 source;不得推迟到 check/archive。
|
|
241
241
|
- 阶段 `stage_end` 会在无 Hook 环境下幂等执行同步兜底。
|
|
242
242
|
|
|
@@ -11,8 +11,8 @@ description: opsx-task 的详细模板:telemetry 命令、DAG 生成规则表
|
|
|
11
11
|
|
|
12
12
|
## 📊 Telemetry 命令模板(必做,不得跳过)
|
|
13
13
|
|
|
14
|
-
> 阶段开始:`node skywalk-sdd/log.cjs start --command=task --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
15
|
-
> 阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=task --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
14
|
+
> 阶段开始:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" start --command=task --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
15
|
+
> 阶段结束:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" end --event-id=<event_id> --command=task --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -123,13 +123,13 @@ description: "opsx-tdd-core 详细参考 — 执行步骤、拆分示例、DAG
|
|
|
123
123
|
**TDD 测试骨架任务**(`task_kind:"test-skeleton"`):
|
|
124
124
|
|
|
125
125
|
```bash
|
|
126
|
-
node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 测试骨架完成(TDD 红灯)" --details-json='{"task_kind":"test-skeleton","test_results":{"command":"<实际测试命令>","passed":0,"failed":<红灯数>,"skipped":0,"duration_ms":0}}'
|
|
126
|
+
node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 测试骨架完成(TDD 红灯)" --details-json='{"task_kind":"test-skeleton","test_results":{"command":"<实际测试命令>","passed":0,"failed":<红灯数>,"skipped":0,"duration_ms":0}}'
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
**实现任务**(不带 `task_kind`):
|
|
130
130
|
|
|
131
131
|
```bash
|
|
132
|
-
node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 完成" --details-json='{"files_changed":[],"test_results":{"command":"<实际测试命令>","passed":<通过数>,"failed":0,"skipped":0,"duration_ms":0}}'
|
|
132
|
+
node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 完成" --details-json='{"files_changed":[],"test_results":{"command":"<实际测试命令>","passed":<通过数>,"failed":0,"skipped":0,"duration_ms":0}}'
|
|
133
133
|
```
|
|
134
134
|
|
|
135
135
|
## §9 单元测试真实执行
|
|
@@ -138,7 +138,7 @@ node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. -
|
|
|
138
138
|
|
|
139
139
|
1. 在结束 apply 或执行收尾之前,必须真实运行单元测试命令
|
|
140
140
|
2. 须留下可核验 telemetry 证据(任选其一):
|
|
141
|
-
- `node skywalk-sdd/log.cjs record --type=test_result ...`(`test_results.command` 非空,且 `passed`/`failed`/`duration_ms` 有实际值)
|
|
141
|
+
- `node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=test_result ...`(`test_results.command` 非空,且 `passed`/`failed`/`duration_ms` 有实际值)
|
|
142
142
|
- `task_update` 的 `details-json` 中 `test_results` 含真实执行数据
|
|
143
143
|
- 或单独运行 `/opsx-test` 并完成 `command=test` 的 `stage_end`
|
|
144
144
|
3. `sdd-apply-test-gate.cjs` 会在 `log.cjs end`、`apply-worktree-finish`、会话 Stop 时自动校验,无证据则阻断
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
当任务是"测试骨架"(仅编写测试用例、实现尚未编写,测试预期失败/红灯)时,`task_update` 必须在 `--details-json` 中带 `"task_kind":"test-skeleton"`,`--result=success`(骨架按 TDD 计划完成即成功),`test_results.failed` 如实记录红灯数。
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 测试骨架完成(TDD 红灯)" --details-json='{"task_kind":"test-skeleton","test_results":{"command":"<实际测试命令>","passed":0,"failed":<红灯数>,"skipped":0,"duration_ms":0}}'
|
|
10
|
+
node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 测试骨架完成(TDD 红灯)" --details-json='{"task_kind":"test-skeleton","test_results":{"command":"<实际测试命令>","passed":0,"failed":<红灯数>,"skipped":0,"duration_ms":0}}'
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## 实现任务
|
|
@@ -15,5 +15,5 @@ node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. -
|
|
|
15
15
|
实现任务不带 `task_kind`(默认 implementation),按真实测试结果记录。
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
node skywalk-sdd/log.cjs record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 完成" --details-json='{"files_changed":[],"test_results":{"command":"<实际测试命令>","passed":<通过数>,"failed":0,"skipped":0,"duration_ms":0}}'
|
|
18
|
+
node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=task_update --command=apply --project=. --change=<变更名称> --capability=<capability-name> --task-id=<TASK-ID> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=completed --result=success --summary="<TASK-ID> 完成" --details-json='{"files_changed":[],"test_results":{"command":"<实际测试命令>","passed":<通过数>,"failed":0,"skipped":0,"duration_ms":0}}'
|
|
19
19
|
```
|
|
@@ -25,14 +25,14 @@ allowed-tools:
|
|
|
25
25
|
|
|
26
26
|
> **🖥️ 跨平台执行规则**
|
|
27
27
|
> - **SDD 文档根** = `*-sdd-specs` 包裹包(含 `openspec/`、`modules.yaml`),不是 Git 根或工作区根。
|
|
28
|
-
> - `openspec` 命令:优先 `node skywalk-sdd/openspec-shim.cjs list`(自动 cd 到包裹包),或先 `cd` 到包裹包再执行。
|
|
29
|
-
> -
|
|
28
|
+
> - `openspec` 命令:优先 `node "$(cat .sdd-spec-root)/skywalk-sdd/openspec-shim.cjs" list`(自动 cd 到包裹包),或先 `cd` 到包裹包再执行。
|
|
29
|
+
> - Telemetry / ontology:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" …`(Git 根无 skywalk-sdd/);`spec-root` 可用 `node "$(cat .sdd-spec-root)/skywalk-sdd/ontology/cli.cjs" spec-root`。
|
|
30
30
|
> - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
|
|
31
31
|
> - ${SHELL_GUIDANCE}
|
|
32
32
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
33
33
|
> **📊 Telemetry(必做,不得跳过)**
|
|
34
|
-
> - 阶段开始:`node skywalk-sdd/log.cjs start --command=test --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
35
|
-
> - 阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=test --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
34
|
+
> - 阶段开始:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" start --command=test --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
35
|
+
> - 阶段结束:`node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" end --event-id=<event_id> --command=test --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
@@ -108,7 +108,7 @@ allowed-tools:
|
|
|
108
108
|
测试执行完成后,在 stage_end 之前记录 `test_result` 事件:
|
|
109
109
|
|
|
110
110
|
```bash
|
|
111
|
-
node skywalk-sdd/log.cjs record --type=test_result --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="[passed]/[total] passed" --details-json="{\"test_results\":{\"command\":\"<实际测试命令>\",\"passed\":<passed>,\"failed\":<failed>,\"skipped\":<skipped>,\"coverage\":<coverage>,\"duration_ms\":<duration_ms>}}"
|
|
111
|
+
node "$(cat .sdd-spec-root)/skywalk-sdd/log.cjs" record --type=test_result --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="[passed]/[total] passed" --details-json="{\"test_results\":{\"command\":\"<实际测试命令>\",\"passed\":<passed>,\"failed\":<failed>,\"skipped\":<skipped>,\"coverage\":<coverage>,\"duration_ms\":<duration_ms>}}"
|
|
112
112
|
```
|
|
113
113
|
|
|
114
114
|
此事件供 report 的 `test_pass_summary` 采集(M3),确保报告能显示真实测试通过率。
|