kld-sdd 2.4.9 → 2.4.11
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 +9 -6
- package/lib/init.js +76 -21
- package/lib/skills-bundle.js +32 -0
- package/package.json +3 -3
- package/skywalk-sdd/{index.js → index.cjs} +31 -25
- package/templates/ci/github-actions-sdd.yml +3 -3
- package/templates/ci/gitlab-ci-sdd.yml +3 -3
- package/templates/git-hooks/{pre-push-sdd-check.js → pre-push-sdd-check.cjs} +1 -1
- package/templates/hooks/claude/hooks/{sdd-prompt.js → sdd-prompt.cjs} +2 -2
- package/templates/hooks/claude/hooks/{sdd-stop.js → sdd-stop.cjs} +1 -1
- package/templates/hooks/claude/settings.json +4 -4
- package/templates/opsx-commands/apply.md +11 -9
- package/templates/opsx-commands/archive.md +8 -8
- package/templates/opsx-commands/check.md +8 -8
- package/templates/opsx-commands/design.md +3 -3
- package/templates/opsx-commands/explore.md +3 -3
- package/templates/opsx-commands/propose.md +3 -3
- package/templates/opsx-commands/spec.md +3 -3
- package/templates/opsx-commands/task.md +3 -3
- package/templates/opsx-commands/test.md +5 -5
- package/templates/skills/kld-sdd/SKILLS.md +28 -0
- package/templates/skills/{opsx-apply → kld-sdd/opsx-apply}/SKILL.md +12 -4
- package/templates/skills/{opsx-archive → kld-sdd/opsx-archive}/SKILL.md +8 -8
- package/templates/skills/{opsx-check → kld-sdd/opsx-check}/SKILL.md +6 -6
- package/templates/skills/{opsx-design → kld-sdd/opsx-design}/SKILL.md +6 -2
- package/templates/skills/{opsx-explore → kld-sdd/opsx-explore}/SKILL.md +2 -2
- package/templates/skills/kld-sdd/opsx-knowledge/SKILL.md +132 -0
- package/templates/skills/kld-sdd/opsx-knowledge/references/modules.md +26 -0
- package/templates/skills/kld-sdd/opsx-knowledge/scripts/config.json +39 -0
- package/templates/skills/kld-sdd/opsx-knowledge/scripts/retrieve.cjs +199 -0
- package/templates/skills/{opsx-propose → kld-sdd/opsx-propose}/SKILL.md +6 -2
- package/templates/skills/{opsx-spec → kld-sdd/opsx-spec}/SKILL.md +6 -2
- package/templates/skills/{opsx-task → kld-sdd/opsx-task}/SKILL.md +2 -2
- package/templates/skills/{opsx-test → kld-sdd/opsx-test}/SKILL.md +2 -2
- /package/templates/git-hooks/{pre-commit-sdd-check.js → pre-commit-sdd-check.cjs} +0 -0
- /package/templates/hooks/claude/hooks/{sdd-post-tool.js → sdd-post-tool.cjs} +0 -0
- /package/templates/hooks/claude/hooks/{sdd-pre-tool.js → sdd-pre-tool.cjs} +0 -0
|
@@ -20,7 +20,7 @@ argument-hint: "[change-name]"
|
|
|
20
20
|
**核心原则**
|
|
21
21
|
|
|
22
22
|
- `archive` 必须产生真实归档结果:活动目录 `openspec/changes/<name>/` 应被移出,归档目录位于 `openspec/changes/archive/<日期>-<name>/`。
|
|
23
|
-
- 归档统一使用 `node skywalk-sdd/log.
|
|
23
|
+
- 归档统一使用 `node skywalk-sdd/log.cjs archive-docs`,同时兼容 Simple 与 Full 两种文档结构。
|
|
24
24
|
- 最终报告必须随着 `archive` 阶段成功结束自动生成,不再作为可选手工步骤。
|
|
25
25
|
- 即使归档原因是“变更已完成实施”,未勾选的 `tasks.md/task.md` 项也不阻断归档;但必须写入 archive 详情和最终报告。
|
|
26
26
|
|
|
@@ -31,7 +31,7 @@ argument-hint: "[change-name]"
|
|
|
31
31
|
### 0. 记录阶段开始
|
|
32
32
|
|
|
33
33
|
```bash
|
|
34
|
-
node skywalk-sdd/log.
|
|
34
|
+
node skywalk-sdd/log.cjs start --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
保存输出 JSON 中的 `event_id`。
|
|
@@ -63,7 +63,7 @@ openspec list
|
|
|
63
63
|
归档前执行 doctor:
|
|
64
64
|
|
|
65
65
|
```bash
|
|
66
|
-
node skywalk-sdd/log.
|
|
66
|
+
node skywalk-sdd/log.cjs doctor --project=. --change=<变更名称>
|
|
67
67
|
```
|
|
68
68
|
|
|
69
69
|
处理规则:
|
|
@@ -76,7 +76,7 @@ node skywalk-sdd/log.js doctor --project=. --change=<变更名称>
|
|
|
76
76
|
始终扫描 Simple 和 Full 两种布局下的所有 `tasks.md/task.md`:
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
node skywalk-sdd/log.
|
|
79
|
+
node skywalk-sdd/log.cjs tasks-status --project=. --change=<变更名称>
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
处理规则:
|
|
@@ -89,7 +89,7 @@ node skywalk-sdd/log.js tasks-status --project=. --change=<变更名称>
|
|
|
89
89
|
执行:
|
|
90
90
|
|
|
91
91
|
```bash
|
|
92
|
-
node skywalk-sdd/log.
|
|
92
|
+
node skywalk-sdd/log.cjs archive-docs --project=. --change=<变更名称> --reason="<归档原因>" --event-id=<event_id> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --report-output=skywalk-sdd/reports/<变更名称>-report.md
|
|
93
93
|
```
|
|
94
94
|
|
|
95
95
|
该命令必须一次完成:
|
|
@@ -103,7 +103,7 @@ node skywalk-sdd/log.js archive-docs --project=. --change=<变更名称> --reaso
|
|
|
103
103
|
如果命令失败,必须以失败状态结束 telemetry:
|
|
104
104
|
|
|
105
105
|
```bash
|
|
106
|
-
node skywalk-sdd/log.
|
|
106
|
+
node skywalk-sdd/log.cjs end --event-id=<event_id> --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=failure --summary="归档失败:<失败原因>"
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
失败时不要输出“归档完成”。
|
|
@@ -126,13 +126,13 @@ node skywalk-sdd/log.js end --event-id=<event_id> --command=archive --project=.
|
|
|
126
126
|
如用户愿意提供反馈,可补录问卷结果:
|
|
127
127
|
|
|
128
128
|
```bash
|
|
129
|
-
node skywalk-sdd/log.
|
|
129
|
+
node skywalk-sdd/log.cjs record --type=survey_result --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="SDD 人工反馈" --details-json="{\"survey_result\":{\"nps\":9,\"cognitive_load\":3,\"spec_fatigue_index\":2,\"satisfaction\":8,\"respondent_role\":\"developer\",\"collected_at\":\"<ISO时间>\",\"notes\":\"\"}}"
|
|
130
130
|
```
|
|
131
131
|
|
|
132
132
|
如团队有传统方式工时基线,可补录 baseline:
|
|
133
133
|
|
|
134
134
|
```bash
|
|
135
|
-
node skywalk-sdd/log.
|
|
135
|
+
node skywalk-sdd/log.cjs record --type=baseline_record --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="传统工时基线" --details-json="{\"baseline_record\":{\"traditional_hours\":10,\"sdd_hours\":6,\"task_type\":\"feature\",\"baseline_source\":\"manual-estimate\",\"collected_at\":\"<ISO时间>\",\"notes\":\"\"}}"
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
---
|
|
@@ -12,7 +12,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
> **⚠️ 阶段边界提示**
|
|
18
18
|
>
|
|
@@ -31,7 +31,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
31
31
|
|
|
32
32
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
33
33
|
```bash
|
|
34
|
-
node skywalk-sdd/log.
|
|
34
|
+
node skywalk-sdd/log.cjs start --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
35
35
|
```
|
|
36
36
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
37
37
|
|
|
@@ -170,7 +170,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
170
170
|
执行:
|
|
171
171
|
|
|
172
172
|
```bash
|
|
173
|
-
node skywalk-sdd/log.
|
|
173
|
+
node skywalk-sdd/log.cjs tasks-status --project=. --change=<变更名称>
|
|
174
174
|
```
|
|
175
175
|
|
|
176
176
|
判定规则:
|
|
@@ -317,7 +317,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
317
317
|
| | | |
|
|
318
318
|
|
|
319
319
|
## 任务完成状态
|
|
320
|
-
- 检查命令:`node skywalk-sdd/log.
|
|
320
|
+
- 检查命令:`node skywalk-sdd/log.cjs tasks-status --project=. --change=<name>`
|
|
321
321
|
- 状态口径:task 阶段允许未勾选;apply/test/archive readiness 阶段不得把未勾选项静默视为完成。
|
|
322
322
|
- 未勾选项清单:列出文件、行号、原文。
|
|
323
323
|
|
|
@@ -402,7 +402,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
402
402
|
|
|
403
403
|
在终端执行(必须成功):
|
|
404
404
|
```bash
|
|
405
|
-
node skywalk-sdd/log.
|
|
405
|
+
node skywalk-sdd/log.cjs record --type=check_result --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="检查结果摘要" --details-json="{\"check_results\":{\"total\":0,\"errors\":0,\"warnings\":0,\"suggestions\":0,\"fixed_before_apply\":0,\"consistency_score\":null,\"categories\":{\"completeness\":{\"passed\":0,\"total\":0},\"consistency\":{\"passed\":0,\"total\":0},\"executability\":{\"passed\":0,\"total\":0}},\"task_completion\":{\"completed\":0,\"incomplete\":0,\"total\":0,\"has_incomplete\":false,\"checked_for_archive_readiness\":false}}}"
|
|
406
406
|
```
|
|
407
407
|
|
|
408
408
|
12. **【Telemetry 建议】记录规约符合度 Q1**
|
|
@@ -437,7 +437,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
437
437
|
|
|
438
438
|
在终端执行(若存在实现代码则必须成功):
|
|
439
439
|
```bash
|
|
440
|
-
node skywalk-sdd/log.
|
|
440
|
+
node skywalk-sdd/log.cjs record --type=conformance_review --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="规约符合度人工确认" --details-json="{\"conformance_review\":{\"method\":\"llm-as-judge+manual\",\"manual_confirmed\":true,\"assertions\":[{\"id\":\"ASSERT-001\",\"description\":\"规约中的可验证断言\",\"judge_status\":\"matched\",\"human_status\":\"matched\",\"evidence\":\"代码、测试或文档证据摘要\",\"files\":[],\"notes\":\"\"}]}}"
|
|
441
441
|
```
|
|
442
442
|
|
|
443
443
|
若当前尚未进入实现阶段或无法验证代码,允许跳过 `conformance_review`,但需要在检查报告中说明原因。
|
|
@@ -459,5 +459,5 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
459
459
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
460
460
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
461
461
|
> **📊 Telemetry(必做,不得跳过)**
|
|
462
|
-
> 生成检查报告后,必须先记录结构化检查结果:`node skywalk-sdd/log.
|
|
463
|
-
> `check_result` 记录成功后,才允许执行阶段结束:`node skywalk-sdd/log.
|
|
462
|
+
> 生成检查报告后,必须先记录结构化检查结果:`node skywalk-sdd/log.cjs record --type=check_result --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="检查结果摘要" --details-json="{\"check_results\":{\"total\":0,\"errors\":0,\"warnings\":0,\"suggestions\":0,\"fixed_before_apply\":0,\"consistency_score\":null,\"categories\":{\"completeness\":{\"passed\":0,\"total\":0},\"consistency\":{\"passed\":0,\"total\":0},\"executability\":{\"passed\":0,\"total\":0}},\"task_completion\":{\"completed\":0,\"incomplete\":0,\"total\":0,\"has_incomplete\":false,\"checked_for_archive_readiness\":false}}}"`
|
|
463
|
+
> `check_result` 记录成功后,才允许执行阶段结束:`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="检查结果摘要" --details-json="{\"check_results\":{\"total\":0,\"errors\":0,\"warnings\":0,\"suggestions\":0,\"fixed_before_apply\":0,\"consistency_score\":null,\"categories\":{\"completeness\":{\"passed\":0,\"total\":0},\"consistency\":{\"passed\":0,\"total\":0},\"executability\":{\"passed\":0,\"total\":0}},\"task_completion\":{\"completed\":0,\"incomplete\":0,\"total\":0,\"has_incomplete\":false,\"checked_for_archive_readiness\":false}}}"`
|
|
@@ -12,7 +12,7 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=design --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
> **⚠️ 阶段边界提示**
|
|
18
18
|
>
|
|
@@ -41,7 +41,7 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
41
41
|
|
|
42
42
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
43
43
|
```bash
|
|
44
|
-
node skywalk-sdd/log.
|
|
44
|
+
node skywalk-sdd/log.cjs start --command=design --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
45
45
|
```
|
|
46
46
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
47
47
|
|
|
@@ -567,4 +567,4 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
567
567
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
568
568
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
569
569
|
> **📊 Telemetry(必做,不得跳过)**
|
|
570
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
570
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=design --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="一句话摘要"`
|
|
@@ -12,7 +12,7 @@ argument-hint: "[change-name]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
---
|
|
18
18
|
|
|
@@ -24,7 +24,7 @@ argument-hint: "[change-name]"
|
|
|
24
24
|
|
|
25
25
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
26
26
|
```bash
|
|
27
|
-
node skywalk-sdd/log.
|
|
27
|
+
node skywalk-sdd/log.cjs start --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
28
28
|
```
|
|
29
29
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
30
30
|
|
|
@@ -96,4 +96,4 @@ argument-hint: "[change-name]"
|
|
|
96
96
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
97
97
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
98
98
|
> **📊 Telemetry(必做,不得跳过)**
|
|
99
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
99
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success --summary="浏览结果摘要"`
|
|
@@ -13,7 +13,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
|
|
15
15
|
> **📊 Telemetry(必做,不得跳过)**
|
|
16
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
16
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=propose --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
17
17
|
|
|
18
18
|
> **⚠️ 阶段边界提示**
|
|
19
19
|
>
|
|
@@ -34,7 +34,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
34
34
|
|
|
35
35
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
36
36
|
```bash
|
|
37
|
-
node skywalk-sdd/log.
|
|
37
|
+
node skywalk-sdd/log.cjs start --command=propose --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
38
38
|
```
|
|
39
39
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
40
40
|
|
|
@@ -402,4 +402,4 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
402
402
|
- **⛔ 单阶段原则:完成 proposal.md 后必须立即停止**。仅提示用户下一步可运行 `/opsx:spec`,**绝对禁止自动执行 spec/design/task 等后续阶段**。每个阶段必须由用户主动触发。
|
|
403
403
|
|
|
404
404
|
> **📊 Telemetry(必做,不得跳过)**
|
|
405
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
405
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=propose --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="一句话摘要"`
|
|
@@ -12,7 +12,7 @@ argument-hint: "[change-name] [上下文文件...]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=spec --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
> **⚠️ 阶段边界提示**
|
|
18
18
|
>
|
|
@@ -49,7 +49,7 @@ openspec/changes/<name>/
|
|
|
49
49
|
|
|
50
50
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
51
51
|
```bash
|
|
52
|
-
node skywalk-sdd/log.
|
|
52
|
+
node skywalk-sdd/log.cjs start --command=spec --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
53
53
|
```
|
|
54
54
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
55
55
|
|
|
@@ -523,4 +523,4 @@ openspec/changes/<name>/
|
|
|
523
523
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
524
524
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
525
525
|
> **📊 Telemetry(必做,不得跳过)**
|
|
526
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
526
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=spec --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="一句话摘要"`
|
|
@@ -12,7 +12,7 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=task --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
> **⚠️ 阶段边界提示**
|
|
18
18
|
>
|
|
@@ -42,7 +42,7 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
42
42
|
|
|
43
43
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
44
44
|
```bash
|
|
45
|
-
node skywalk-sdd/log.
|
|
45
|
+
node skywalk-sdd/log.cjs start --command=task --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
46
46
|
```
|
|
47
47
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
48
48
|
|
|
@@ -430,4 +430,4 @@ argument-hint: "[change-name] [capability-name] [上下文文件...]"
|
|
|
430
430
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
431
431
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
432
432
|
> **📊 Telemetry(必做,不得跳过)**
|
|
433
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
433
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=task --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="一句话摘要"`
|
|
@@ -12,7 +12,7 @@ argument-hint: "[test-scope] [options]"
|
|
|
12
12
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
13
13
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
14
14
|
> **📊 Telemetry(必做,不得跳过)**
|
|
15
|
-
> 在终端执行(必须成功):`node skywalk-sdd/log.
|
|
15
|
+
> 在终端执行(必须成功):`node skywalk-sdd/log.cjs start --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`,记录返回的 event_id。
|
|
16
16
|
|
|
17
17
|
> **⚠️ 命令定位**
|
|
18
18
|
>
|
|
@@ -28,7 +28,7 @@ argument-hint: "[test-scope] [options]"
|
|
|
28
28
|
|
|
29
29
|
在终端执行(若命令失败必须中止本阶段,不得跳过):
|
|
30
30
|
```bash
|
|
31
|
-
node skywalk-sdd/log.
|
|
31
|
+
node skywalk-sdd/log.cjs start --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
32
32
|
```
|
|
33
33
|
保存输出 JSON 中的 `event_id`,供阶段结束使用。
|
|
34
34
|
|
|
@@ -239,6 +239,6 @@ argument-hint: "[test-scope] [options]"
|
|
|
239
239
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
240
240
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
241
241
|
> **📊 Telemetry(必做,不得跳过)**
|
|
242
|
-
> 测试运行后,必须记录结构化测试结果:`node skywalk-sdd/log.
|
|
243
|
-
> 若 spec.md 中有可识别场景 ID,且测试能映射到这些场景,建议记录 Q4 规约驱动测试覆盖率(可选,不阻塞测试流程):`node skywalk-sdd/log.
|
|
244
|
-
> 阶段结束时执行(必须成功):`node skywalk-sdd/log.
|
|
242
|
+
> 测试运行后,必须记录结构化测试结果:`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="测试结果摘要" --details-json="{\"test_results\":{\"command\":\"<实际测试命令>\",\"passed\":0,\"failed\":0,\"skipped\":0,\"coverage\":null,\"duration_ms\":0}}"`
|
|
243
|
+
> 若 spec.md 中有可识别场景 ID,且测试能映射到这些场景,建议记录 Q4 规约驱动测试覆盖率(可选,不阻塞测试流程):`node skywalk-sdd/log.cjs record --type=coverage_result --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="规约场景测试覆盖率" --details-json="{\"spec_test_coverage\":{\"mappings\":[{\"scenario_id\":\"SCN-001\",\"description\":\"规约场景摘要\",\"test_ids\":[\"<测试文件或用例ID>\"],\"status\":\"covered\",\"notes\":\"\"}]}}"`
|
|
244
|
+
> 阶段结束时执行(必须成功):`node skywalk-sdd/log.cjs end --event-id=<开头记录的event_id> --command=test --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/failure --summary="测试结果摘要" --details-json="{\"test_results\":{\"command\":\"<实际测试命令>\",\"passed\":0,\"failed\":0,\"skipped\":0,\"coverage\":null,\"duration_ms\":0}}"`
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# KLD SDD Skills Bundle
|
|
2
|
+
|
|
3
|
+
所有 SDD 技能统一打包在本目录,部署到 `<SkillsBundlePath>/`(如 `.claude/skills/kld-sdd/`)。
|
|
4
|
+
|
|
5
|
+
## 子技能索引
|
|
6
|
+
|
|
7
|
+
| 技能 name | 路径 | 用途 |
|
|
8
|
+
|-----------|------|------|
|
|
9
|
+
| `opsx-propose` | `opsx-propose/SKILL.md` | 业务意图文档 |
|
|
10
|
+
| `opsx-spec` | `opsx-spec/SKILL.md` | 技术契约 |
|
|
11
|
+
| `opsx-design` | `opsx-design/SKILL.md` | 技术方案 |
|
|
12
|
+
| `opsx-task` | `opsx-task/SKILL.md` | 任务拆解 |
|
|
13
|
+
| `opsx-check` | `opsx-check/SKILL.md` | 质量门禁 |
|
|
14
|
+
| `opsx-apply` | `opsx-apply/SKILL.md` | 变更实施 |
|
|
15
|
+
| `opsx-test` | `opsx-test/SKILL.md` | 单元测试 |
|
|
16
|
+
| `opsx-archive` | `opsx-archive/SKILL.md` | 变更归档 |
|
|
17
|
+
| `opsx-explore` | `opsx-explore/SKILL.md` | 变更浏览 |
|
|
18
|
+
| `opsx-knowledge` | `opsx-knowledge/SKILL.md` | RAGFlow 业务知识库(可选) |
|
|
19
|
+
|
|
20
|
+
## 路径约定
|
|
21
|
+
|
|
22
|
+
- 子 skill 内相对引用:如 `references/modules.md`、`scripts/retrieve.cjs`(相对于该 skill 目录)
|
|
23
|
+
- 跨 skill 引用:使用 frontmatter 中的 `name`(如 `opsx-knowledge`),或 bundle 路径 `<SkillsBundlePath>/opsx-knowledge/`
|
|
24
|
+
- 知识库脚本:`<SkillsBundlePath>/opsx-knowledge/scripts/retrieve.cjs`
|
|
25
|
+
|
|
26
|
+
## 与 /opsx:* 命令的关系
|
|
27
|
+
|
|
28
|
+
命令定义在 `.*/commands/opsx/*.md`;本 bundle 提供对应阶段的 skill 详细工作流。两者通过相同的 `name`(如 `opsx-propose`)关联,**不依赖扁平的 `skills/opsx-*` 顶层目录**。
|
|
@@ -29,8 +29,8 @@ allowed-tools:
|
|
|
29
29
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
30
30
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
31
31
|
> **📊 Telemetry(必做,不得跳过)**
|
|
32
|
-
> - 阶段开始:`node skywalk-sdd/log.
|
|
33
|
-
> - 阶段结束:`node skywalk-sdd/log.
|
|
32
|
+
> - 阶段开始:`node skywalk-sdd/log.cjs start --command=apply --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --git-sha=<base_git_sha_or_none>`(保存 event_id)
|
|
33
|
+
> - 阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=apply --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
34
34
|
|
|
35
35
|
> **🔒 Git 策略(只读增强,不改变开发流)**
|
|
36
36
|
> - Git 只作为可选度量数据源,不是 apply 前置条件。
|
|
@@ -122,6 +122,10 @@ openspec list --json
|
|
|
122
122
|
⛔ 隔离红线:禁止加载其他 Capability 的文档!
|
|
123
123
|
```
|
|
124
124
|
|
|
125
|
+
**【可选】业务知识库检索**:
|
|
126
|
+
编码中遇到不明业务名词时,可调用 **opsx-knowledge** skill(`<SkillsBundlePath>/opsx-knowledge/`)辅助理解。
|
|
127
|
+
不得因知识库建议偏离 tasks/spec;查询失败时继续实施。
|
|
128
|
+
|
|
125
129
|
### 3. 解析 DAG 任务拓扑
|
|
126
130
|
|
|
127
131
|
从 tasks.md 中:
|
|
@@ -187,8 +191,9 @@ f. **⛔ 立即更新任务状态**
|
|
|
187
191
|
- 显示进度:`✅ [TASK-ID] 已完成 [N/M]`
|
|
188
192
|
- 记录任务级 Telemetry:
|
|
189
193
|
```bash
|
|
190
|
-
node skywalk-sdd/log.
|
|
194
|
+
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\":[],\"build_results\":{\"command\":\"<实际编译命令>\",\"success\":true,\"duration_ms\":0,\"error_count\":0},\"test_results\":{\"command\":\"<实际测试命令>\",\"passed\":0,\"failed\":0,\"skipped\":0,\"coverage\":null,\"duration_ms\":0}}"
|
|
191
195
|
```
|
|
196
|
+
**⚠️ 注意**:`--task-id=<TASK-ID>` 必须替换为实际任务 ID,否则 E4 指标无法计算。
|
|
192
197
|
|
|
193
198
|
g. **继续下一个可执行任务**
|
|
194
199
|
|
|
@@ -196,9 +201,12 @@ g. **继续下一个可执行任务**
|
|
|
196
201
|
|
|
197
202
|
当前 Capability 的 AI 代码产出完成后,必须记录 `ai_adoption_review`,但不得为了采集快照自动提交 commit。
|
|
198
203
|
|
|
204
|
+
- `--status=ai_snapshot` 用于记录 AI 初始产出快照,P2 指标在无 final 事件时会使用此快照数据
|
|
205
|
+
- 若用户进行了人工 review 并确认保留率,可补录 `--status=final` 事件(`review_status: "final"`),P2 指标将优先使用 final 数据
|
|
206
|
+
|
|
199
207
|
Git 可用时只读统计 SHA/diff;Git 不可用时使用 `vcs_mode=no-git` 和 `base_git_sha=null`:
|
|
200
208
|
```bash
|
|
201
|
-
node skywalk-sdd/log.
|
|
209
|
+
node skywalk-sdd/log.cjs record --type=ai_adoption_review --command=apply --project=. --change=<变更名称> --capability=<capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --status=ai_snapshot --result=success --summary="AI 代码产出快照" --details-json="{\"ai_adoption\":{\"review_status\":\"ai_snapshot\",\"vcs_mode\":\"<readonly|no-git>\",\"base_git_sha\":\"<base_git_sha_or_null>\",\"ai_git_sha\":\"<ai_git_sha_or_null>\",\"ai_diff\":{\"files_changed\":0,\"added_lines\":null,\"deleted_lines\":null},\"notes\":\"未自动创建 Git 仓库,未自动提交 commit;仅记录可用统计\"}}"
|
|
202
210
|
```
|
|
203
211
|
|
|
204
212
|
### 6. 完成或暂停时显示状态
|
|
@@ -3,7 +3,7 @@ name: opsx-archive
|
|
|
3
3
|
description: "归档变更技能 - 将已结束的 SDD 变更真实移入 archive,并生成最终中文度量报告"
|
|
4
4
|
argument-hint: "[change-name]"
|
|
5
5
|
license: MIT
|
|
6
|
-
compatibility: Requires skywalk-sdd/log.
|
|
6
|
+
compatibility: Requires skywalk-sdd/log.cjs.
|
|
7
7
|
metadata:
|
|
8
8
|
author: sdd-team
|
|
9
9
|
version: "3.2"
|
|
@@ -48,7 +48,7 @@ openspec list
|
|
|
48
48
|
让用户选择现有变更。确认后记录阶段开始:
|
|
49
49
|
|
|
50
50
|
```bash
|
|
51
|
-
node skywalk-sdd/log.
|
|
51
|
+
node skywalk-sdd/log.cjs start --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>
|
|
52
52
|
```
|
|
53
53
|
|
|
54
54
|
保存 `event_id`。
|
|
@@ -68,7 +68,7 @@ node skywalk-sdd/log.js start --command=archive --project=. --change=<变更名
|
|
|
68
68
|
### 3. 运行 telemetry doctor
|
|
69
69
|
|
|
70
70
|
```bash
|
|
71
|
-
node skywalk-sdd/log.
|
|
71
|
+
node skywalk-sdd/log.cjs doctor --project=. --change=<变更名称>
|
|
72
72
|
```
|
|
73
73
|
|
|
74
74
|
如果存在 `severe_issues`,暂停归档并说明必须先修复。`superseded_open_stages` 和 `rework_summary` 只作为返工/重复执行展示,不要求用户人工区分测试回滚或真实研发返工。
|
|
@@ -76,7 +76,7 @@ node skywalk-sdd/log.js doctor --project=. --change=<变更名称>
|
|
|
76
76
|
### 4. 扫描 tasks 完成状态
|
|
77
77
|
|
|
78
78
|
```bash
|
|
79
|
-
node skywalk-sdd/log.
|
|
79
|
+
node skywalk-sdd/log.cjs tasks-status --project=. --change=<变更名称>
|
|
80
80
|
```
|
|
81
81
|
|
|
82
82
|
即使用户选择“变更已完成实施”,未勾选项也不阻断归档。它可能代表任务真实未完成,也可能代表代码已完成但文档未同步;不要猜测,也不要静默忽略。最终必须让 `archive-docs` 将其写入 `archive_result.task_completion` 和报告。
|
|
@@ -86,7 +86,7 @@ node skywalk-sdd/log.js tasks-status --project=. --change=<变更名称>
|
|
|
86
86
|
执行唯一归档命令:
|
|
87
87
|
|
|
88
88
|
```bash
|
|
89
|
-
node skywalk-sdd/log.
|
|
89
|
+
node skywalk-sdd/log.cjs archive-docs --project=. --change=<变更名称> --reason="<归档原因>" --event-id=<event_id> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --report-output=skywalk-sdd/reports/<变更名称>-report.md
|
|
90
90
|
```
|
|
91
91
|
|
|
92
92
|
该命令成功后必须已经完成:
|
|
@@ -100,7 +100,7 @@ node skywalk-sdd/log.js archive-docs --project=. --change=<变更名称> --reaso
|
|
|
100
100
|
如果该命令失败,以失败状态结束 telemetry:
|
|
101
101
|
|
|
102
102
|
```bash
|
|
103
|
-
node skywalk-sdd/log.
|
|
103
|
+
node skywalk-sdd/log.cjs end --event-id=<event_id> --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=failure --summary="归档失败:<失败原因>"
|
|
104
104
|
```
|
|
105
105
|
|
|
106
106
|
失败时不要输出“归档完成”。
|
|
@@ -124,13 +124,13 @@ node skywalk-sdd/log.js end --event-id=<event_id> --command=archive --project=.
|
|
|
124
124
|
如用户愿意提供反馈,可补录问卷结果:
|
|
125
125
|
|
|
126
126
|
```bash
|
|
127
|
-
node skywalk-sdd/log.
|
|
127
|
+
node skywalk-sdd/log.cjs record --type=survey_result --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="SDD 人工反馈" --details-json="{\"survey_result\":{\"nps\":9,\"cognitive_load\":3,\"spec_fatigue_index\":2,\"satisfaction\":8,\"respondent_role\":\"developer\",\"collected_at\":\"<ISO时间>\",\"notes\":\"\"}}"
|
|
128
128
|
```
|
|
129
129
|
|
|
130
130
|
如团队有传统方式工时基线,可补录 baseline:
|
|
131
131
|
|
|
132
132
|
```bash
|
|
133
|
-
node skywalk-sdd/log.
|
|
133
|
+
node skywalk-sdd/log.cjs record --type=baseline_record --command=archive --project=. --change=<变更名称> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="传统工时基线" --details-json="{\"baseline_record\":{\"traditional_hours\":10,\"sdd_hours\":6,\"task_type\":\"feature\",\"baseline_source\":\"manual-estimate\",\"collected_at\":\"<ISO时间>\",\"notes\":\"\"}}"
|
|
134
134
|
```
|
|
135
135
|
|
|
136
136
|
---
|
|
@@ -32,9 +32,9 @@ allowed-tools:
|
|
|
32
32
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
33
33
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
34
34
|
> **📊 Telemetry(必做,不得跳过)**
|
|
35
|
-
> - 阶段开始:`node skywalk-sdd/log.
|
|
36
|
-
> - 检查报告生成后,必须先记录结构化检查结果:`node skywalk-sdd/log.
|
|
37
|
-
> - `check_result` 记录成功后,才允许阶段结束:`node skywalk-sdd/log.
|
|
35
|
+
> - 阶段开始:`node skywalk-sdd/log.cjs start --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
36
|
+
> - 检查报告生成后,必须先记录结构化检查结果:`node skywalk-sdd/log.cjs record --type=check_result --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="检查结果摘要" --details-json="{\"check_results\":{\"total\":0,\"errors\":0,\"warnings\":0,\"suggestions\":0,\"fixed_before_apply\":0,\"consistency_score\":null,\"categories\":{\"completeness\":{\"passed\":0,\"total\":0},\"consistency\":{\"passed\":0,\"total\":0},\"executability\":{\"passed\":0,\"total\":0}},\"task_completion\":{\"completed\":0,\"incomplete\":0,\"total\":0,\"has_incomplete\":false,\"checked_for_archive_readiness\":false}}}"`
|
|
37
|
+
> - `check_result` 记录成功后,才允许阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="摘要"`
|
|
38
38
|
|
|
39
39
|
---
|
|
40
40
|
|
|
@@ -115,7 +115,7 @@ openspec list
|
|
|
115
115
|
`task` 阶段允许 `tasks.md` 出现未完成项;这只是计划状态。但如果当前变更已经进入 apply 之后,或本次 check 发现实现代码、测试报告、`build_result/test_result/task_update/conformance_review` 等实施证据,必须检查任务勾选状态:
|
|
116
116
|
|
|
117
117
|
```bash
|
|
118
|
-
node skywalk-sdd/log.
|
|
118
|
+
node skywalk-sdd/log.cjs tasks-status --project=. --change=<变更名称>
|
|
119
119
|
```
|
|
120
120
|
|
|
121
121
|
判定规则:
|
|
@@ -156,12 +156,12 @@ node skywalk-sdd/log.js tasks-status --project=. --change=<变更名称>
|
|
|
156
156
|
|
|
157
157
|
在终端执行(必须成功):
|
|
158
158
|
```bash
|
|
159
|
-
node skywalk-sdd/log.
|
|
159
|
+
node skywalk-sdd/log.cjs record --type=check_result --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success/partial/failure --summary="检查结果摘要" --details-json="{\"check_results\":{\"total\":0,\"errors\":0,\"warnings\":0,\"suggestions\":0,\"fixed_before_apply\":0,\"consistency_score\":null,\"categories\":{\"completeness\":{\"passed\":0,\"total\":0},\"consistency\":{\"passed\":0,\"total\":0},\"executability\":{\"passed\":0,\"total\":0}},\"task_completion\":{\"completed\":0,\"incomplete\":0,\"total\":0,\"has_incomplete\":false,\"checked_for_archive_readiness\":false}}}"
|
|
160
160
|
```
|
|
161
161
|
|
|
162
162
|
若当前已有实现代码,并且能够验证 spec 断言,还应记录 `conformance_review`(用于 Q1 规约符合度):
|
|
163
163
|
```bash
|
|
164
|
-
node skywalk-sdd/log.
|
|
164
|
+
node skywalk-sdd/log.cjs record --type=conformance_review --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=manual --session-id=<会话ID> --result=success --summary="规约符合度人工确认" --details-json="{\"conformance_review\":{\"method\":\"llm-as-judge+manual\",\"manual_confirmed\":true,\"assertions\":[{\"id\":\"ASSERT-001\",\"description\":\"规约中的可验证断言\",\"judge_status\":\"matched\",\"human_status\":\"matched\",\"evidence\":\"代码、测试或文档证据摘要\",\"files\":[],\"notes\":\"\"}]}}"
|
|
165
165
|
```
|
|
166
166
|
|
|
167
167
|
### 6. 【交互引导】根据结果引导下一步
|
|
@@ -40,8 +40,8 @@ allowed-tools:
|
|
|
40
40
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
41
41
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
42
42
|
> **📊 Telemetry(必做,不得跳过)**
|
|
43
|
-
> - 阶段开始:`node skywalk-sdd/log.
|
|
44
|
-
> - 阶段结束:`node skywalk-sdd/log.
|
|
43
|
+
> - 阶段开始:`node skywalk-sdd/log.cjs start --command=design --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
44
|
+
> - 阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=design --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
45
45
|
|
|
46
46
|
---
|
|
47
47
|
|
|
@@ -94,6 +94,10 @@ openspec list
|
|
|
94
94
|
| 架构文档 | 了解系统边界、模块关系 | 对齐总体设计方向 |
|
|
95
95
|
| 数据库 Schema | 了解数据模型约束 | 纳入数据设计章节 |
|
|
96
96
|
|
|
97
|
+
**【可选】业务知识库检索**:
|
|
98
|
+
设计涉及 MM/CO 领域概念且 spec 未充分定义时,可调用 **opsx-knowledge** skill(`<SkillsBundlePath>/opsx-knowledge/`)。
|
|
99
|
+
仅作背景参考,不得覆盖 spec;内网不可达时跳过并继续 design。
|
|
100
|
+
|
|
97
101
|
### 3. 渐进式上下文加载
|
|
98
102
|
|
|
99
103
|
**⛔ 必须严格按以下顺序加载:**
|
|
@@ -23,8 +23,8 @@ allowed-tools:
|
|
|
23
23
|
> - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
|
|
24
24
|
> - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
|
|
25
25
|
> **📊 Telemetry(必做,不得跳过)**
|
|
26
|
-
> - 阶段开始:`node skywalk-sdd/log.
|
|
27
|
-
> - 阶段结束:`node skywalk-sdd/log.
|
|
26
|
+
> - 阶段开始:`node skywalk-sdd/log.cjs start --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
|
|
27
|
+
> - 阶段结束:`node skywalk-sdd/log.cjs end --event-id=<event_id> --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID> --result=success|failure --summary="摘要"`
|
|
28
28
|
|
|
29
29
|
---
|
|
30
30
|
|