kld-sdd 2.5.2 → 2.6.0
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 +30 -7
- package/lib/init.js +11 -1
- package/package.json +3 -2
- package/skywalk-sdd/context-client.cjs +160 -0
- package/skywalk-sdd/index.cjs +117 -13
- package/skywalk-sdd/ontology/archive-package.cjs +489 -0
- package/skywalk-sdd/ontology/identity-index.cjs +25 -0
- package/skywalk-sdd/ontology/runtime.cjs +179 -54
- package/skywalk-sdd/ontology/working-artifacts.cjs +243 -0
- package/templates/skills/kld-sdd/opsx-archive/SKILL.md +10 -1
- package/templates/skills/kld-sdd/opsx-archive/checklist.md +5 -1
- package/templates/skills/kld-sdd/opsx-check/SKILL.md +2 -0
- package/templates/skills/kld-sdd/opsx-check/checklist.md +2 -0
- package/templates/skills/kld-sdd/opsx-design/SKILL.md +2 -0
- package/templates/skills/kld-sdd/opsx-propose/SKILL.md +2 -0
- package/templates/skills/kld-sdd/opsx-propose/checklist.md +2 -0
- package/templates/skills/kld-sdd/opsx-spec/SKILL.md +23 -0
- package/templates/skills/kld-sdd/opsx-spec/checklist.md +5 -0
- package/templates/skills/kld-sdd/opsx-task/SKILL.md +2 -0
|
@@ -39,6 +39,8 @@ description: opsx-propose 的阶段强制检查点与自检清单。仅在执行
|
|
|
39
39
|
- [ ] Capabilities 章节是关键:决定后续 specs 文件夹结构
|
|
40
40
|
- [ ] 若跳过此文档,后续 specs 必须补齐影响范围
|
|
41
41
|
- [ ] 文档写入后验证文件确实存在
|
|
42
|
+
- [ ] proposal.md 写入后已运行 `semantic-reconcile`,`openspec/changes/<变更名称>/artifacts/proposal.ontology.json` 已存在
|
|
43
|
+
- [ ] 工作态 JSON 为 `canonical=false`、`review_status=draft`,实体能够通过 `source.file/source.anchor_id/source.content_hash` 展开到 proposal.md 原文
|
|
42
44
|
- [ ] 每次生成都提供文档摘要,等待用户确认后再继续
|
|
43
45
|
- [ ] ⛔ **阶段边界**:本阶段禁止执行任何代码创建/修改操作;用户要求处理代码时回复「当前处于 Propose 阶段,代码操作请在完成文档后使用 `/opsx-apply` 执行。」
|
|
44
46
|
- [ ] ⛔ **单阶段原则**:完成 proposal.md 后必须立即停止;仅提示用户下一步可运行 `/opsx-spec`,绝对禁止自动执行 spec/design/task 等后续阶段。每个阶段必须由用户主动触发。
|
|
@@ -107,6 +107,22 @@ openspec list
|
|
|
107
107
|
|
|
108
108
|
> 上下文类型(需求文档 / 代码文件 / API 文档)与用途见 `./reference.md`「§3 上下文类型与用途」。
|
|
109
109
|
|
|
110
|
+
**【默认尝试】工程 Spec 知识库上下文**:
|
|
111
|
+
|
|
112
|
+
从用户输入、proposal.md 中当前 Capability 的名称、业务目标、边界和约束组成一段自然语言查询。不要要求用户提供 `entity_id`。执行:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
node skywalk-sdd/context-client.cjs --query="<当前 Capability 的自然语言需求>" --target-stage=spec
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
- 配置项:`ENGINEERING_KB_API`、`ENGINEERING_KB_SPACE_ID`、可选 `ENGINEERING_KB_TOKEN`。
|
|
119
|
+
- 若返回 `available=false` 或 `degraded=true`,记录降级原因并继续 Spec 流程,不得阻塞。
|
|
120
|
+
- 优先消费 `reuseBundles[].statements` 中的历史 STMT、AC、Constraint;`designElements` 只能作为理解上下文,不能写成 Spec 的 How。
|
|
121
|
+
- `answeredQuestions` 表示历史事实已经覆盖的内容,不要对用户重复提问。
|
|
122
|
+
- 只向用户询问 `clarificationQuestions` 中仍与当前 Capability 有关的问题。
|
|
123
|
+
- `reuseMode=REFERENCE` 只能参考复用,不得复制历史 UUID;只有 `reuseMode=INHERIT` 才允许按本体语义生成契约复用历史身份。
|
|
124
|
+
- 所有知识库内容均为 advisory;若与用户输入、proposal.md 或用户确认冲突,以当前用户确认和 proposal.md 为准。
|
|
125
|
+
|
|
110
126
|
**【可选】业务知识库检索**:
|
|
111
127
|
术语含义不清且可能影响 spec 准确性时,可调用 **opsx-knowledge** skill。
|
|
112
128
|
知识库结果仅供参考,spec 契约以用户确认和 proposal 为准;失败时不阻塞。
|
|
@@ -131,6 +147,9 @@ openspec list
|
|
|
131
147
|
|
|
132
148
|
第 3 层:当前 Capability 上下文
|
|
133
149
|
→ 已有的 spec.md(若为增量修改)
|
|
150
|
+
|
|
151
|
+
第 4 层:工程知识库 Spec Context Package
|
|
152
|
+
→ reuseBundles / answeredQuestions / clarificationQuestions
|
|
134
153
|
```
|
|
135
154
|
|
|
136
155
|
### 6. 创建 spec.md
|
|
@@ -184,8 +203,12 @@ openspec list
|
|
|
184
203
|
- `added` 必须调用 `semantic-identity --delta-state=added` 生成新的实体 UUID 和版本 UUID;禁止通过复制另一需求的 UUID 创建新实体。
|
|
185
204
|
- `modified/removed` 必须从 Archive 读取历史 `entity-id` 和直接前序 `version-id`,调用 `semantic-identity --delta-state=<modified|removed> --entity-id=<UUID> --predecessor-version=<UUID>`;实体 UUID 复用,版本 UUID 新建。
|
|
186
205
|
- AC 必须嵌套在所属 STMT 下;CON 必须通过 `**constrains**` 显式引用 STMT。
|
|
206
|
+
- 对 `reuseMode=REFERENCE` 的历史候选必须创建新的实体身份;禁止因为内容相似而复用历史 `entity-id`。
|
|
207
|
+
- 对 `reuseMode=INHERIT` 的历史事实,必须使用返回的实体与版本来源完成 unchanged/modified 身份参数校验。
|
|
187
208
|
- unchanged 内容只写人工锚点、历史实体 UUID、历史版本 UUID 和来源引用,不复制历史原文;调用 `semantic-identity --delta-state=unchanged --entity-id=<UUID> --version-id=<UUID>` 校验复用参数,引用断链时保持 unresolved 并交由 check 阻断。
|
|
188
209
|
- 生成结束后必须运行 `node skywalk-sdd/log.cjs semantic-reconcile --project=. --change=<name>`,根据诊断修复缺号、重号和悬空引用。
|
|
210
|
+
- reconcile 必须在 change 目录生成 `openspec/changes/<name>/artifacts/spec.ontology.json` 或 `openspec/changes/<name>/artifacts/specs/<capability>/spec.ontology.json`;该 JSON 是 draft 工作事实,不得等待 check/archive 才生成。
|
|
211
|
+
- 阶段 `stage_end` 会在无 Hook 环境下幂等执行同步兜底,并返回 `semantic_state.artifact_json_paths`。
|
|
189
212
|
|
|
190
213
|
## Guardrails
|
|
191
214
|
|
|
@@ -17,6 +17,7 @@ description: opsx-spec 的阶段强制检查点与自检清单。仅在执行 sp
|
|
|
17
17
|
- [ ] 即使用户提供代码作为上下文,只用于分析现有实现,不执行任何代码操作
|
|
18
18
|
- [ ] 代码实现将在 `/opsx-apply` 阶段进行
|
|
19
19
|
- [ ] ⛔ 完成本阶段后绝对禁止自动继续执行 design/task 等后续阶段
|
|
20
|
+
- [ ] 工程知识库未配置、超时或降级时继续 Spec 主流程,不阻塞本地创作
|
|
20
21
|
|
|
21
22
|
---
|
|
22
23
|
|
|
@@ -30,6 +31,9 @@ description: opsx-spec 的阶段强制检查点与自检清单。仅在执行 sp
|
|
|
30
31
|
- [ ] 技术契约章节完整(数据模型、接口契约)
|
|
31
32
|
- [ ] 文档末尾包含质量红线检查清单
|
|
32
33
|
- [ ] 100% 覆盖 proposal.md 中该 Capability 的描述
|
|
34
|
+
- [ ] 已消费工程知识库 `answeredQuestions`,没有重复询问历史事实已经回答的问题
|
|
35
|
+
- [ ] 仅将 `reuseMode=INHERIT` 的事实作为身份继承;`REFERENCE` 候选使用新实体身份
|
|
36
|
+
- [ ] 已处理与当前 Capability 有关的 `clarificationQuestions`
|
|
33
37
|
|
|
34
38
|
**如有任意一项未满足,重新生成对应章节,直至全部通过。** 自检完成后必须输出结构化自检报告(模板见 `./reference.md`「§7 质量自检报告模板」),未通过项自动修复后重新输出。
|
|
35
39
|
|
|
@@ -42,5 +46,6 @@ description: opsx-spec 的阶段强制检查点与自检清单。仅在执行 sp
|
|
|
42
46
|
- [ ] **需求项格式必须正确**:`####` 需求项、`#####` 场景
|
|
43
47
|
- [ ] 每个需求项必须有清晰的验收标准
|
|
44
48
|
- [ ] 技术契约必须可执行、无歧义
|
|
49
|
+
- [ ] 工程知识库结果只作为 advisory 上下文,不覆盖用户输入或 proposal.md
|
|
45
50
|
- [ ] ⛔ **阶段边界**:禁止执行任何代码创建/修改操作
|
|
46
51
|
- [ ] ⛔ **单阶段原则**:完成 spec.md 后必须立即停止;仅提示用户下一步可运行 `/opsx-design`,绝对禁止自动执行 design/task 等后续阶段。每个阶段必须由用户主动触发。
|
|
@@ -201,6 +201,8 @@ Simple 模式或单文件能力域下,**不要拆成多个同文件任务**。
|
|
|
201
201
|
- 每个 TASK 必须写 `**implements**: DES-*` 或 `**covers**: STMT-*`,不得生成无上游来源任务。
|
|
202
202
|
- 任务依赖必须写 `**dependsOn**: TASK-*`;无依赖显式写“无”,所有依赖必须构成 DAG。
|
|
203
203
|
- 生成结束后必须运行 `node skywalk-sdd/log.cjs semantic-reconcile --project=. --change=<name>`。
|
|
204
|
+
- reconcile 必须立即生成 `openspec/changes/<name>/artifacts/.../tasks.ontology.json`,包含 TASK、implements/covers/dependsOn 及原文 source;不得推迟到 check/archive。
|
|
205
|
+
- 阶段 `stage_end` 会在无 Hook 环境下幂等执行同步兜底。
|
|
204
206
|
|
|
205
207
|
## Guardrails
|
|
206
208
|
|