kld-sdd 2.6.21 → 2.7.8
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 +12 -5
- package/USABILITY.md +84 -0
- package/bin/kld-sdd-init.js +3 -9
- package/kld-sdd-guide.html +16 -4
- package/lib/hook-gate-core.js +327 -0
- package/lib/init.js +241 -94
- package/lib/scale-thresholds.json +19 -0
- package/lib/skills-bundle.js +2 -1
- package/package.json +5 -3
- package/skywalk-sdd/context-client.cjs +50 -30
- package/skywalk-sdd/index.cjs +49 -16
- package/skywalk-sdd/kb-sync-identity.cjs +99 -451
- package/skywalk-sdd/kb-upload.cjs +67 -44
- package/skywalk-sdd/lib/git-identity.cjs +270 -0
- package/skywalk-sdd/lib/usage-contract.cjs +13 -81
- package/skywalk-sdd/lib/usage-reporter.cjs +235 -104
- package/skywalk-sdd/lib/user-config.cjs +21 -46
- package/skywalk-sdd/metrics-v3.cjs +2 -2
- package/skywalk-sdd/ontology/active-changes.cjs +2 -1
- package/skywalk-sdd/ontology/archive-package.cjs +1 -1
- package/skywalk-sdd/ontology/artifact-parser.cjs +8 -6
- package/skywalk-sdd/ontology/id.cjs +5 -4
- package/skywalk-sdd/ontology/identity-index.cjs +4 -3
- package/skywalk-sdd/ontology/list-changes.cjs +1 -1
- package/skywalk-sdd/ontology/runtime.cjs +7 -3
- package/skywalk-sdd/ontology/schema.cjs +2 -0
- package/skywalk-sdd/ontology/traceability-validator.cjs +74 -4
- package/skywalk-sdd/ontology/workspace-layout.cjs +25 -5
- package/skywalk-sdd/reporting/change-report-model.cjs +4 -3
- package/templates/git-hooks/commit-msg +71 -27
- package/templates/git-hooks/consistency-check-core.cjs +1087 -0
- package/templates/git-hooks/hooks.config +38 -0
- package/templates/git-hooks/pre-commit +62 -27
- package/templates/git-hooks/pre-commit-consistency-check.cjs +29 -332
- package/templates/git-hooks/pre-commit-sdd-check.cjs +98 -0
- package/templates/git-hooks/pre-push +70 -27
- package/templates/git-hooks/pre-push-consistency-check.cjs +61 -299
- package/templates/hooks/codebuddy/hooks/sdd-tdd-rhythm-gate.cjs +1 -1
- package/templates/openspec/tasks.md +3 -3
- package/templates/skills/kld-sdd/opsx-apply/SKILL.md +43 -6
- package/templates/skills/kld-sdd/opsx-apply/checklist.md +1 -1
- package/templates/skills/kld-sdd/opsx-apply/reference.md +1 -1
- package/templates/skills/kld-sdd/opsx-archive/SKILL.md +9 -13
- package/templates/skills/kld-sdd/opsx-check/SKILL.md +54 -328
- package/templates/skills/kld-sdd/opsx-check/checklist.md +7 -4
- package/templates/skills/kld-sdd/opsx-check/reference.md +58 -0
- package/templates/skills/kld-sdd/opsx-check/result-template.json +52 -0
- package/templates/skills/kld-sdd/opsx-check/reviewer.md +100 -0
- package/templates/skills/kld-sdd/opsx-consistency-check/SKILL.md +82 -451
- package/templates/skills/kld-sdd/opsx-consistency-check/{reference.md → references/reference.md} +0 -1
- package/templates/skills/kld-sdd/opsx-consistency-check/scripts/scripts.cjs +517 -0
- package/templates/skills/kld-sdd/opsx-design/SKILL.md +10 -30
- package/templates/skills/kld-sdd/opsx-design/checklist.md +3 -4
- package/templates/skills/kld-sdd/opsx-design/reference.md +1 -1
- package/templates/skills/kld-sdd/opsx-kb-ingest/SKILL.md +12 -74
- package/templates/skills/kld-sdd/opsx-ontology-query/SKILL.md +7 -5
- package/templates/skills/kld-sdd/opsx-ontology-query/phase-1-prechange.md +2 -2
- package/templates/skills/kld-sdd/opsx-ontology-query/reference.md +1 -1
- package/templates/skills/kld-sdd/opsx-propose/SKILL.md +28 -73
- package/templates/skills/kld-sdd/opsx-propose/checklist.md +8 -8
- package/templates/skills/kld-sdd/opsx-propose/interaction-policy.md +28 -0
- package/templates/skills/kld-sdd/opsx-propose/reference.md +12 -46
- package/templates/skills/kld-sdd/opsx-spec/SKILL.md +14 -61
- package/templates/skills/kld-sdd/opsx-spec/checklist.md +3 -3
- package/templates/skills/kld-sdd/opsx-task/SKILL.md +38 -32
- package/templates/skills/kld-sdd/opsx-task/checklist.md +5 -6
- package/templates/skills/kld-sdd/opsx-test/SKILL.md +2 -0
- package/templates/skills/kld-sdd/tdd-rules/rules/tdd-strategy-selection.md +1 -1
- package/lib/device-auth-cli.js +0 -130
- package/lib/device-auth.js +0 -345
- package/lib/init-account-binding.js +0 -108
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"check_results": {
|
|
3
|
+
"total": 0,
|
|
4
|
+
"errors": 0,
|
|
5
|
+
"warnings": 0,
|
|
6
|
+
"warning_items": [],
|
|
7
|
+
"warning_dispositions": [
|
|
8
|
+
{
|
|
9
|
+
"warning": "<稳定编号>",
|
|
10
|
+
"disposition": "fixed|accepted|waived|needs_input|open",
|
|
11
|
+
"reason": "<处置依据>"
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"suggestions": 0,
|
|
15
|
+
"fixed_before_apply": 0,
|
|
16
|
+
"consistency_score": null,
|
|
17
|
+
"reviewer": "<reviewer-identifier>",
|
|
18
|
+
"review_execution_mode": "<subagent|main-agent-fallback>",
|
|
19
|
+
"reviewer_agent_id": "<子代理真实ID;主Agent回退时填null>",
|
|
20
|
+
"parent_session_id": "<父会话ID;主Agent回退时可填null>",
|
|
21
|
+
"review_session_id": "<真实评审会话ID>",
|
|
22
|
+
"author_session_id": "<文档作者/apply真实会话ID;无法确认时仅允许主Agent回退填unknown>",
|
|
23
|
+
"reviewer_independence": "<independent-review|self-review|unknown>",
|
|
24
|
+
"fallback_reason_code": "<主Agent回退时五类稳定码之一;子代理成功时填null>",
|
|
25
|
+
"fallback_reason": "<主Agent回退时具体中文原因;子代理成功时填null>",
|
|
26
|
+
"categories": {
|
|
27
|
+
"completeness": {
|
|
28
|
+
"passed": 0,
|
|
29
|
+
"total": 0
|
|
30
|
+
},
|
|
31
|
+
"consistency": {
|
|
32
|
+
"passed": 0,
|
|
33
|
+
"total": 0
|
|
34
|
+
},
|
|
35
|
+
"executability": {
|
|
36
|
+
"passed": 0,
|
|
37
|
+
"total": 0
|
|
38
|
+
},
|
|
39
|
+
"tdd_compliance": {
|
|
40
|
+
"passed": 0,
|
|
41
|
+
"total": 0
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"task_completion": {
|
|
45
|
+
"completed": 0,
|
|
46
|
+
"incomplete": 0,
|
|
47
|
+
"total": 0,
|
|
48
|
+
"has_incomplete": false,
|
|
49
|
+
"checked_for_archive_readiness": false
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# 独立评审检查规则
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
你是本轮唯一的独立评审者,只执行本文件的检查任务;不重新加载或执行 `opsx-check/SKILL.md` 的启动流程,不运行 start/end/record,不重复已完成的语义/命名/任务扫描,不再次委派。
|
|
5
|
+
|
|
6
|
+
输入应包含:最终文档路径与哈希、profile/test-strategy、用户指定的上下文路径、作者会话 ID、程序诊断及任务状态、检查范围。缺关键输入时一次返回缺项,不自行遍历个人目录寻找所有项目。主 Agent 不能用其结论摘要替代原文。
|
|
7
|
+
|
|
8
|
+
- 自己读取完整的相关业务文档正文一次;批量读取相互独立的文件,同一文件同一版本复用,输出截断时补读缺失部分。
|
|
9
|
+
- Simple 支持根目录 `spec.md/design.md/tasks.md`;Full 使用 `specs/<capability>/`。兼容 `propose.md/task.md`。
|
|
10
|
+
- 程序已核验的 UUID、谱系、引用和 DAG 结果直接引用;模型负责语义覆盖、业务矛盾、可行性和测试质量,不能把“结构合法”当作“设计正确”。
|
|
11
|
+
- 代码只读 design/tasks 实际引用的锚点及其必要依赖;不做全仓 diff、不运行测试。用户提供的上下文文件必须读取。
|
|
12
|
+
- 仅指定 Capability 时,补读 proposal 和明确的跨能力依赖;报告覆盖边界,不能宣称全 Change 已独立评审。全 Change 的程序语义门禁仍执行。
|
|
13
|
+
- 不适用的算法、TDD 或实施后检查写 `N/A` 和理由,不能计成通过;仅在 test-strategy=tdd 时加载下面 TDD 资料。
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
#### 4.1 完整性检查
|
|
17
|
+
|
|
18
|
+
- [ ] proposal.md 存在且包含完整章节
|
|
19
|
+
- [ ] 每个 Capability 都有 spec.md
|
|
20
|
+
- [ ] Full 模式每个 spec.md 都有对应 design.md,每个 design.md 都有对应 tasks.md;Simple 未生成这些文档不误报缺失
|
|
21
|
+
- [ ] 所有文档符合模板结构
|
|
22
|
+
|
|
23
|
+
#### 4.2 一致性检查
|
|
24
|
+
|
|
25
|
+
- [ ] proposal.md 的能力列表与 specs/ 目录一致
|
|
26
|
+
- [ ] spec.md 的需求项在 design.md 中 100% 被覆盖
|
|
27
|
+
- [ ] design.md 的设计点在 tasks.md 中 100% 被拆解
|
|
28
|
+
- [ ] 跨文档引用路径正确
|
|
29
|
+
- [ ] ⛔ **CON 覆盖一致性**:spec.md 中每个 CON 在 tasks.md 中有对应验证任务或显式声明间接覆盖;tasks.md 声明"100% 覆盖 CON"时必须可追溯
|
|
30
|
+
- [ ] ⛔ **安全/审计要求覆盖一致性**:spec.md §5.x 中的安全与审计要求在 tasks.md 中有对应任务或显式声明推迟
|
|
31
|
+
- [ ] ⛔ **AC 变体覆盖一致性**:spec.md 中含"或"条件的 AC 场景,其 RED 任务验收标准须列出所有变体的测试方法(规则见 `../tdd-rules/rules/multi-validation-split.md` §AC 内"或"条件变体覆盖)
|
|
32
|
+
- [ ] ⛔ **tasks.md §4.x 验证方式表内部一致性**:§4.x 验证方式表中的测试注解/配置与任务实现步骤中的声明一致
|
|
33
|
+
|
|
34
|
+
#### 4.3 算法正确性检查
|
|
35
|
+
|
|
36
|
+
- [ ] 数据流转逻辑无矛盾
|
|
37
|
+
- [ ] 异常处理覆盖所有边界
|
|
38
|
+
- [ ] 性能设计满足 spec 约束
|
|
39
|
+
|
|
40
|
+
#### 4.4 可执行性检查
|
|
41
|
+
|
|
42
|
+
- [ ] tasks.md 中每个任务对应可验证的行为或交付单元,不按固定分钟数拆分
|
|
43
|
+
- [ ] DAG 无循环依赖
|
|
44
|
+
- [ ] 所有外部依赖已明确状态
|
|
45
|
+
- [ ] 代码锚点存在且可访问
|
|
46
|
+
|
|
47
|
+
#### 4.4b DAG 语义完整性检查(非阻断,仅 warning)
|
|
48
|
+
|
|
49
|
+
> 本组检查只生成 warning,不生成 error,不阻断 check 通过。
|
|
50
|
+
|
|
51
|
+
- [ ] **任务分层一致性**:高 Layer 任务是否缺失对低 Layer 定义方任务的 dependsOn
|
|
52
|
+
- 检查方式:读取 tasks.md 中每个 Task 的 `layer` 字段或从 TASK-ID 推断 Layer;若 Layer N 任务未声明对同 Capability 中 Layer < N 任务的 `dependsOn`,记 warning
|
|
53
|
+
- 警告示例:`[DAG语义] TASK-CA-04-IMPL 位于 Layer 4,但未依赖 Layer 2 的 TASK-CA-02-MAPPER`
|
|
54
|
+
- [ ] **依赖配置完整性**:代码描述中使用的框架注解/类是否有对应的依赖添加任务
|
|
55
|
+
- 检查方式:扫描 IMPL/CONTROLLER 任务描述中的注解(@PreAuthorize, @Transactional, @Valid 等)和导入类;检查是否存在对应的 DEPS/CONFIG 任务
|
|
56
|
+
- 警告示例:`[依赖缺失] TASK-CA-06-CONTROLLER 描述含 @PreAuthorize,但未找到 spring-boot-starter-security 依赖任务`
|
|
57
|
+
- [ ] **跨任务类型一致性**:使用方任务引用的类型是否与定义方任务一致
|
|
58
|
+
- 检查方式:对比不同任务描述中同一类型的定义和使用(如错误码类型、Result 类签名、主键字段名)
|
|
59
|
+
- 警告示例:`[类型不一致] TASK-CA-05-SERVICE 描述调用 Result.error(String),但 TASK-CA-01-CONST 中 Result 错误码定义为 Integer`
|
|
60
|
+
|
|
61
|
+
> 上述警告归入 `check_result.warning_items`,格式:
|
|
62
|
+
> ```json
|
|
63
|
+
> {"category":"dag_semantic","description":"TASK-CA-04-IMPL 未依赖 TASK-CA-02-MAPPER","target":"tasks.md"}
|
|
64
|
+
> ```
|
|
65
|
+
|
|
66
|
+
#### 4.5 TDD 合规性检查(仅 test-strategy=tdd 时执行)
|
|
67
|
+
|
|
68
|
+
⛔ 执行 `../tdd-core/checklist.md` §B 的适用项,不用固定项数替代当前清单。
|
|
69
|
+
|
|
70
|
+
> 不在此内联复制,以 tdd-core/checklist.md §B 为唯一真相源。
|
|
71
|
+
> 额外补充:还需检查 `../tdd-rules/rules/exception-path-coverage.md`(异常路径覆盖门禁)。
|
|
72
|
+
|
|
73
|
+
**检查项适用阶段**:§B 中部分检查项在 apply 前后均可验证(文档级),部分仅在 apply 后可验证(代码级):
|
|
74
|
+
- **apply 前可验证**(文档级):RED 验收标准包含"测试运行失败"、无"断言为空"、GREEN 为行为级粒度、DAG 存在 RED→GREEN 循环对、非 TDD 模块未拆红绿、GREEN 验收标准为"让对应 RED 通过"、已声明 Controller 策略、Controller 两种策略都生成测试任务、每个 RED 含测试方法名、每个 GREEN 含 YAGNI 围栏、每个 REFACTOR 列出重构点
|
|
75
|
+
- **apply 后可验证**(代码级):GREEN 任务输出不含未测试的 Controller/Filter/Config
|
|
76
|
+
|
|
77
|
+
⛔ BEFORE 完成 TDD 合规性检查,如需深度审查测试质量,必须读取:
|
|
78
|
+
- ../tdd-review/SKILL.md(测试质量审查清单 8 项 + 缺失测试检测)
|
|
79
|
+
读取后确认:"已读取测试质量审查清单"。
|
|
80
|
+
|
|
81
|
+
#### 4.6 任务完成状态检查(实现后 / 归档前)
|
|
82
|
+
|
|
83
|
+
`task` 阶段允许 `tasks.md` 出现未完成项;这只是计划状态。但如果当前变更已经进入 apply 之后,或本次 check 发现实现代码、测试报告、`build_result/test_result/task_update/conformance_review` 等实施证据,必须检查任务勾选状态:
|
|
84
|
+
|
|
85
|
+
使用主 Agent 交付的 `task_completion`。这是本轮 `semantic-check --include-tasks` 内部调用与 `tasks-status` 相同的扫描器得到的结果;文件未变时不要再启动该命令或手算勾选数量。缺少这份结果时才补跑 `tasks-status`。
|
|
86
|
+
|
|
87
|
+
判定规则:
|
|
88
|
+
- 尚未进入 apply:未勾选任务只作为计划状态展示,不计入错误。
|
|
89
|
+
- 已进入 apply/test/archive readiness:未勾选项至少记为 warning。
|
|
90
|
+
- 若用户准备归档“变更已完成实施”:未勾选项仍只作为 warning/待确认事实展示,不阻断归档。
|
|
91
|
+
- Check 阶段只读,不自动勾选;报告中必须说明这是“任务可能已执行但文档未同步”或“任务真实未完成”的待确认项。
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
## 返回给主 Agent
|
|
95
|
+
|
|
96
|
+
一次返回五维结论和 [result-template.json](result-template.json) 中的 `check_results`(替换全部占位值),以及检查范围、逐项证据路径/锚点、未执行项及原因、阻断问题、warning 明细和修复建议。算法问题归到四类统计中的 `consistency`,五维文字报告仍单列算法;不得重复计数。
|
|
97
|
+
|
|
98
|
+
顶层 `total` 必须是大于 0 的整数;四类 categories.total 合计等于 total,四类未通过数合计等于 errors。N/A 项 total=0。不要为使计数好看填“全部通过”。任务状态直接复用程序输出,reviewer 身份使用真实工具返回 ID;无法确认作者身份不能标为 independent-review。
|
|
99
|
+
|
|
100
|
+
评审期间若发现文件变化,返回受影响路径,不能用旧版本结果覆盖新文档。只读检查不修文档、不改代码。
|