kld-sdd 2.5.0 → 2.5.1

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.
Files changed (29) hide show
  1. package/kld-sdd-guide.html +1109 -0
  2. package/lib/command-bridge.js +156 -0
  3. package/lib/deploy-codebuddy-hooks.js +99 -0
  4. package/lib/hook-gate-core.js +333 -0
  5. package/lib/init.js +127 -81
  6. package/lib/settings-merge.js +85 -0
  7. package/lib/skills-bundle.js +142 -5
  8. package/lib/tool-profiles.js +270 -0
  9. package/package.json +3 -2
  10. package/templates/commands/kunlunzhima/skill-bridge.md +23 -0
  11. package/templates/hooks/codebuddy/hooks/sdd-apply-gate.cjs +16 -0
  12. package/templates/hooks/codebuddy/hooks/sdd-apply-test-gate.cjs +395 -0
  13. package/templates/hooks/codebuddy/hooks/sdd-post-tool.cjs +123 -0
  14. package/templates/hooks/codebuddy/hooks/sdd-pre-tool.cjs +16 -0
  15. package/templates/hooks/codebuddy/hooks/sdd-prompt.cjs +48 -0
  16. package/templates/hooks/codebuddy/hooks/sdd-skill-apply-gate.cjs +16 -0
  17. package/templates/hooks/codebuddy/hooks/sdd-stop.cjs +70 -0
  18. package/templates/hooks/codebuddy/settings.json +72 -0
  19. package/templates/skills/kld-sdd/opsx-apply/SKILL.md +5 -5
  20. package/templates/skills/kld-sdd/opsx-check/SKILL.md +1 -1
  21. package/templates/skills/kld-sdd/opsx-design/SKILL.md +1 -1
  22. package/templates/skills/kld-sdd/opsx-explore/SKILL.md +1 -1
  23. package/templates/skills/kld-sdd/opsx-propose/SKILL.md +1 -1
  24. package/templates/skills/kld-sdd/opsx-rules/SKILL.md +131 -0
  25. package/templates/skills/kld-sdd/opsx-rules/checklist.md +27 -0
  26. package/templates/skills/kld-sdd/opsx-rules/reference.md +124 -0
  27. package/templates/skills/kld-sdd/opsx-spec/SKILL.md +1 -1
  28. package/templates/skills/kld-sdd/opsx-task/SKILL.md +1 -1
  29. package/templates/skills/kld-sdd/opsx-test/SKILL.md +1 -1
@@ -0,0 +1,72 @@
1
+ {
2
+ "hooks": {
3
+ "UserPromptSubmit": [
4
+ {
5
+ "hooks": [
6
+ {
7
+ "type": "command",
8
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-prompt.cjs\""
9
+ }
10
+ ]
11
+ }
12
+ ],
13
+ "PreToolUse": [
14
+ {
15
+ "matcher": "Skill",
16
+ "hooks": [
17
+ {
18
+ "type": "command",
19
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-skill-apply-gate.cjs\""
20
+ }
21
+ ]
22
+ },
23
+ {
24
+ "matcher": "Bash",
25
+ "hooks": [
26
+ {
27
+ "type": "command",
28
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-pre-tool.cjs\""
29
+ },
30
+ {
31
+ "type": "command",
32
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-apply-test-gate.cjs\""
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "matcher": "Write|Edit",
38
+ "hooks": [
39
+ {
40
+ "type": "command",
41
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-apply-gate.cjs\""
42
+ }
43
+ ]
44
+ }
45
+ ],
46
+ "PostToolUse": [
47
+ {
48
+ "matcher": "Bash",
49
+ "hooks": [
50
+ {
51
+ "type": "command",
52
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-post-tool.cjs\""
53
+ }
54
+ ]
55
+ }
56
+ ],
57
+ "Stop": [
58
+ {
59
+ "hooks": [
60
+ {
61
+ "type": "command",
62
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-apply-test-gate.cjs\""
63
+ },
64
+ {
65
+ "type": "command",
66
+ "command": "node \"$CODEBUDDY_PROJECT_DIR/.codebuddy/hooks/sdd-stop.cjs\""
67
+ }
68
+ ]
69
+ }
70
+ ]
71
+ }
72
+ }
@@ -29,7 +29,7 @@ allowed-tools:
29
29
  > **🖥️ 跨平台执行规则**
30
30
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
31
31
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
32
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
32
+ > - ${SHELL_GUIDANCE}
33
33
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
34
34
  > **📊 Telemetry(必做,不得跳过)**
35
35
  > - 阶段开始 / 阶段结束 / `task_update` / `ai_adoption_review` / `worktree_finish` 的**完整命令模板**见 `./reference.md`「📊 Telemetry 命令模板」。
@@ -115,7 +115,7 @@ openspec list --json
115
115
  ### 1.2 【Check 门禁检查】验证质量门禁状态
116
116
 
117
117
  > **⛔ 强制门禁**:apply 阶段开始前,必须确认 check 阶段已完成。这是 SDD 流程的关键质量保障。
118
- > 详细检查步骤、判定与门禁体系说明见 `./checklist.md`「§1.2 Check 门禁」。未完成强制拒绝,与 `sdd-apply-gate.cjs` Hook 形成双重保障。
118
+ > 详细检查步骤、判定与门禁体系说明见 `./checklist.md`「§1.2 Check 门禁」。未完成强制拒绝。${HOOK_GATE_DESCRIPTION}
119
119
 
120
120
  ### 1.5 【本地并行】Worktree 与工作区(建议性策略)
121
121
 
@@ -230,7 +230,7 @@ g. **继续下一个层级** — 重新检查 DAG,找出依赖已满足的下
230
230
 
231
231
  ### 6.0 【条件必做】单元测试真实执行(`test-strategy` 非 `none`)
232
232
 
233
- 当 `proposal.md` 的 `test-strategy` 为 **`tdd`** 或 **`impl-first`** 时,在结束 apply 或执行 §6.1 收尾之前,必须真实运行单元测试并留 telemetry 证据。**详细执行要求与证据形式见 `./reference.md`「§6.0」+ `./checklist.md`「§6.0 单元测试真实执行自检」**。Claude Code 的 `sdd-apply-test-gate.cjs` 会在 `log.cjs end`、`apply-worktree-finish`、会话 Stop 时自动校验;无证据则阻断。
233
+ 当 `proposal.md` 的 `test-strategy` 为 **`tdd`** 或 **`impl-first`** 时,在结束 apply 或执行 §6.1 收尾之前,必须真实运行单元测试并留 telemetry 证据。**详细执行要求与证据形式见 `./reference.md`「§6.0」+ `./checklist.md`「§6.0 单元测试真实执行自检」**。${HOOK_GATE_DESCRIPTION}
234
234
 
235
235
  ### 6.1 【条件必做】Worktree 收尾(仅当 §1.5 已创建 worktree)
236
236
 
@@ -247,11 +247,11 @@ g. **继续下一个层级** — 重新检查 DAG,找出依赖已满足的下
247
247
 
248
248
  > 完整 ⛔ 强制项勾选清单见 `./checklist.md`「Guardrails ⛔ 强制项」。核心红线:
249
249
 
250
- - **⛔ Check 门禁检查**:apply 前必须确认 check 已完成;未完成强制拒绝,与 `sdd-apply-gate.cjs` Hook 双重保障。
250
+ - **⛔ Check 门禁检查**:apply 前必须确认 check 已完成;未完成强制拒绝。${HOOK_GATE_DESCRIPTION}
251
251
  - **⛔ 渐进式加载 + 隔离红线**:只加载当前 Capability 的四文档链,禁止加载同级其他 Capability 的文档。
252
252
  - **⛔ DAG 依赖拦截**:执行任务前必须检查依赖,前置未完成必须拦截。
253
253
  - **⛔ 编译检查门禁**:每完成一个任务后必须运行编译检查,编译失败禁止标记已完成。
254
- - **⛔ 测试执行门禁**:根据 `test-strategy` 决定(tdd=强制, impl-first=强制补跑, none=跳过);须真实执行并留 telemetry,`sdd-apply-test-gate` 校验非占位数据。
254
+ - **⛔ 测试执行门禁**:根据 `test-strategy` 决定(tdd=强制, impl-first=强制补跑, none=跳过);须真实执行并留 telemetry。${HOOK_GATE_DESCRIPTION}
255
255
  - **⛔ 必须实时更新任务状态**:每完成一个任务立即改 tasks.md,两种格式同步。
256
256
  - **Git 只读策略**:禁止为了度量自动初始化 Git、创建分支或提交 commit;非 Git 项目用 `vcs_mode=no-git` 继续执行。
257
257
  - **⛔ Step 0.1 隔离校验必做**:建 worktree / 建议分支名前必须完成 proposal + 跨 cap spec 依赖校验并输出报告。
@@ -29,7 +29,7 @@ allowed-tools:
29
29
  > **🖥️ 跨平台执行规则**
30
30
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
31
31
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
32
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
32
+ > - ${SHELL_GUIDANCE}
33
33
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
34
34
  > **📊 Telemetry(必做,不得跳过)**
35
35
  > - 阶段开始:`node skywalk-sdd/log.cjs start --command=check --project=. --change=<变更名称> --capability=<可选capability-name> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
@@ -39,7 +39,7 @@ allowed-tools:
39
39
  > **🖥️ 跨平台执行规则**
40
40
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
41
41
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
42
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
42
+ > - ${SHELL_GUIDANCE}
43
43
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
44
44
  > **📊 Telemetry(必做,不得跳过)** — 阶段开始 / 阶段结束**命令模板**见 `./reference.md`「📊 Telemetry 命令模板」。
45
45
 
@@ -20,7 +20,7 @@ allowed-tools:
20
20
  > **🖥️ 跨平台执行规则**
21
21
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
22
22
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
23
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
23
+ > - ${SHELL_GUIDANCE}
24
24
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
25
25
  > **📊 Telemetry(必做,不得跳过)**
26
26
  > - 阶段开始:`node skywalk-sdd/log.cjs start --command=explore --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)
@@ -31,7 +31,7 @@ allowed-tools:
31
31
  > **🖥️ 跨平台执行规则**
32
32
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
33
33
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
34
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
34
+ > - ${SHELL_GUIDANCE}
35
35
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
36
36
  > **📊 Telemetry(必做,不得跳过)** — 阶段开始 / 阶段结束**命令模板**见 `./reference.md`「📊 Telemetry 命令模板」。
37
37
 
@@ -0,0 +1,131 @@
1
+ ---
2
+ name: opsx-rules
3
+ description: "规则生成技能 - 扫描项目生成 5 主题 Agent 规则,或对比现有规则输出更新建议"
4
+ argument-hint: "[generate|review] [--agent <id>]"
5
+ license: MIT
6
+ compatibility: 无外部依赖;opencode 接线需项目存在或可创建 opencode.json。
7
+ metadata:
8
+ author: sdd-team
9
+ version: "1.0"
10
+ allowed-tools:
11
+ - Bash
12
+ - Read
13
+ - Write
14
+ - Edit
15
+ - Glob
16
+ - Grep
17
+ ---
18
+
19
+ 你是一个 SDD 项目规则生成与维护专家。激活本技能后,你将扫描项目事实,为已部署的 Agent 生成或审查规则文件。
20
+
21
+ > **🖥️ 跨平台执行规则**
22
+ > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
23
+ > - ${SHELL_GUIDANCE}
24
+ > - **本技能不写入 SkyWalk Telemetry**(与 `opsx-knowledge` 同属辅助技能,不走 `log.cjs start/end`)。
25
+
26
+ ---
27
+
28
+ ## 技能定位
29
+
30
+ | 维度 | 内容 |
31
+ |------|------|
32
+ | 核心问题 | 各 Agent 的规则文件在哪里、格式如何、是否与项目事实一致 |
33
+ | 关键输出 | generate:按 Agent 落位的 5 主题规则文件;review:更新建议表 |
34
+ | 操作类型 | generate 写入新规则;review 默认只读,确认后才写入 |
35
+
36
+ ---
37
+
38
+ ## 启动流程
39
+
40
+ ### 1. 检测已部署 Agent 与运行模式
41
+
42
+ 扫描以下目录,记录存在的 Agent(`--agent <id>` 可过滤为单个):
43
+
44
+ | Agent id | 检测路径 |
45
+ |----------|----------|
46
+ | cursor | `.cursor/` |
47
+ | claude | `.claude/` |
48
+ | codebuddy | `.codebuddy/` |
49
+ | qoder | `.qoder/` |
50
+ | opencode | `.opencode/` |
51
+ | kunlunzhima | `.kunlunzhima/` |
52
+ | workbuddy | `.workbuddy/` |
53
+ | codex | `.agents/` |
54
+
55
+ **模式判定**(参数优先,否则自动):
56
+ - 显式 `generate` → 生成模式
57
+ - 显式 `review` → 审查模式
58
+ - 未指定:任一已选 Agent 的规则目录已有文件 → **review**;否则 → **generate**
59
+
60
+ 规则目录与格式详见 `reference.md` 落位矩阵。**KunlunZhima 注意**:目录是 `.kunlunzhima/.rules/`(点前缀),不是 `rules/`。
61
+
62
+ ### 2. 轻量项目扫描(generate 与 review 共用,不落盘)
63
+
64
+ 借鉴 codebase-map 三视角,只读扫描:
65
+
66
+ | 视角 | 探测目标 |
67
+ |------|----------|
68
+ | STACK | `package.json` / `pom.xml` / `pyproject.toml` / `go.mod` / `Cargo.toml`;构建命令 |
69
+ | STRUCTURE | 顶层目录职责、入口文件(`bin/`、`src/`、`lib/`、`app/`) |
70
+ | CONVENTIONS | ESLint/Prettier/Ruff 配置;`test/` 目录与框架;`git log --oneline -20` 提交风格 |
71
+
72
+ 扫描结果作为 5 主题规则的正文依据,禁止编造与仓库不符的内容。
73
+
74
+ ### 3a. generate 模式
75
+
76
+ 对 Step 1 检测到的每个 Agent:
77
+
78
+ 1. 读取 `reference.md` 中该 Agent 的 `rulesDir` / `rulesFormat` / `rulesWiring`
79
+ 2. 按 5 主题(architecture / coding-style / testing / database-safety / git-commit)生成内容
80
+ 3. 按格式模板写入规则文件(见 `reference.md`)
81
+ 4. **已有同名文件 → 跳过**,提示用户改用 review 模式
82
+ 5. **接线**(仅 wiring ≠ none 的 Agent):
83
+ - `opencode-config`:保守合并 `opencode.json` 的 `instructions` 数组(只增不删);优先指向已有 `.claude/rules/*.md`
84
+ - `agents-md`:在 `AGENTS.md` 用 `<!-- kld-sdd-rules:start/end -->` marker 追加/替换规则章节
85
+ - `context-file`:在 WorkBuddy 上下文文件加一行规则目录索引(见 reference.md)
86
+
87
+ ### 3b. review 模式
88
+
89
+ 1. 读取各 Agent 现有规则文件
90
+ 2. 与 Step 2 扫描事实对比,输出建议表:
91
+
92
+ | 文件 | 主题 | 建议类型 | 依据 |
93
+ |------|------|----------|------|
94
+ | (路径) | architecture 等 | 新增 / 修订 / 过期 | 具体扫描证据 |
95
+
96
+ 3. 使用 **AskUserQuestion** 让用户确认要应用的项
97
+ 4. **未经确认不写文件**
98
+
99
+ ### 4. 输出报告
100
+
101
+ ```markdown
102
+ ## opsx-rules 执行报告
103
+
104
+ | Agent | 模式 | 写入/建议文件数 | 接线 |
105
+ |-------|------|----------------|------|
106
+ | ... | generate/review | N | 无/opencode.json/AGENTS.md |
107
+
108
+ ### 详情
109
+ - (列出路径与操作摘要)
110
+
111
+ ### 后续
112
+ - 规则内容可手工微调;再次变更后运行 `/opsx-rules review`
113
+ - OpenCode 用户:确认 `opencode.json` instructions 已包含规则路径
114
+ ```
115
+
116
+ ---
117
+
118
+ ## Guardrails
119
+
120
+ - **review 模式未经用户确认不写文件**
121
+ - **generate 模式不覆盖已有同名规则文件**(存在即跳过 + 提示 review)
122
+ - **opencode.json 合并只增不删**;写前提示用户备份已有配置
123
+ - **AGENTS.md 追加用 managed marker**,存在 marker 则整块替换(幂等)
124
+ - **规则内容来自扫描证据**,禁止编造项目不存在的框架或命令
125
+
126
+ ---
127
+
128
+ ## 渐进披露
129
+
130
+ - **Read `reference.md`** — 落位矩阵、格式模板、5 主题骨架、接线示例
131
+ - **Read `checklist.md`** — generate/review 前后检查项
@@ -0,0 +1,27 @@
1
+ # opsx-rules 检查清单
2
+
3
+ ## generate 前
4
+
5
+ - [ ] 工作目录为项目根
6
+ - [ ] 已检测存在的 Agent 目录
7
+ - [ ] 已完成 Step 2 轻量扫描(STACK / STRUCTURE / CONVENTIONS)
8
+ - [ ] 目标 Agent 规则目录无同名文件(有则改 review)
9
+
10
+ ## generate 写后
11
+
12
+ - [ ] 5 主题文件均已写入(或按 Agent 格式合并)
13
+ - [ ] frontmatter 符合 reference.md 模板
14
+ - [ ] KunlunZhima 路径为 `.kunlunzhima/.rules/` 而非 `rules/`
15
+ - [ ] opencode.json / AGENTS.md 接线已完成(若 wiring 非 none)
16
+ - [ ] 未覆盖用户已有非受管文件
17
+
18
+ ## review 前
19
+
20
+ - [ ] 已读取现有规则文件
21
+ - [ ] 已完成 Step 2 扫描
22
+ - [ ] 建议表已输出(文件 / 主题 / 类型 / 依据)
23
+
24
+ ## review 写后
25
+
26
+ - [ ] 用户已通过 AskUserQuestion 确认
27
+ - [ ] 仅写入确认项
@@ -0,0 +1,124 @@
1
+ # opsx-rules 参考 — 落位矩阵与格式模板
2
+
3
+ > **权威源说明**:本文件是 skill **运行时**的落位矩阵真相源(部署到目标项目后无法 `require` kld-sdd 的 `lib/`)。`lib/tool-profiles.js` 中的 `rulesDir` / `rulesFormat` / `rulesWiring` 为 **init 契约与测试断言**;变更时须与本表同步,以本表为准写入规则文件。
4
+
5
+ ## 落位矩阵
6
+
7
+ | Agent | rulesDir | 格式 | frontmatter | 原生加载 | 接线 |
8
+ |-------|----------|------|-------------|----------|------|
9
+ | cursor | `.cursor/rules/` | `.mdc` | description / globs / alwaysApply | ✅ | 无 |
10
+ | claude | `.claude/rules/` | `.md` | 可选 paths(glob 列表) | ✅ | 无 |
11
+ | codebuddy | `.codebuddy/rules/` | `.md` | 无 | ✅ | 无 |
12
+ | qoder | `.qoder/rules/` | `.md` | 可选 trigger | ✅ | 无 |
13
+ | kunlunzhima | **`.kunlunzhima/.rules/`** | `.mdc` | description / alwaysApply / enabled / updatedAt / provider | ✅ | 无 |
14
+ | opencode | 无独立目录 | `.md` | 无 | ❌ | `opencode.json` instructions |
15
+ | codex | 无独立目录 | — | — | ✅(读 AGENTS.md) | AGENTS.md managed marker |
16
+ | workbuddy | `.workbuddy/rules/` | `.md` | 无 | ⚠️ 待验证 | 上下文文件索引行兜底 |
17
+
18
+ > **KunlunZhima 证据**:样例目录 `.kunlunzhima/.rules/*.mdc`,frontmatter 含 IDE 管理字段 `enabled`、`updatedAt`、`provider`(无 `globs`)。
19
+
20
+ ## 格式模板
21
+
22
+ ### mdc(Cursor)
23
+
24
+ ```markdown
25
+ ---
26
+ description: <一句话描述>
27
+ globs:
28
+ alwaysApply: true
29
+ ---
30
+
31
+ <正文>
32
+ ```
33
+
34
+ ### mdc-kunlun(KunlunZhima)
35
+
36
+ ```markdown
37
+ ---
38
+ description: <一句话描述>
39
+ alwaysApply: true
40
+ enabled: true
41
+ updatedAt: <ISO8601 生成时间>
42
+ provider:
43
+ ---
44
+
45
+ <正文>
46
+ ```
47
+
48
+ ### md + paths(Claude Code,可选按路径触发)
49
+
50
+ ```markdown
51
+ ---
52
+ paths:
53
+ - "src/**/*.ts"
54
+ ---
55
+
56
+ <正文>
57
+ ```
58
+
59
+ 无 paths 时 Claude 会话启动即加载。
60
+
61
+ ### md + trigger(Qoder,可选)
62
+
63
+ ```markdown
64
+ ---
65
+ trigger: always_on
66
+ ---
67
+
68
+ <正文>
69
+ ```
70
+
71
+ ### 纯 md(CodeBuddy / WorkBuddy)
72
+
73
+ ```markdown
74
+ <正文>
75
+ ```
76
+
77
+ ## 5 主题内容骨架
78
+
79
+ | 主题 | 文件名 | 扫描依据 | 生成要点 |
80
+ |------|--------|----------|----------|
81
+ | 架构规范 | `architecture` | 目录分层、模块边界、入口 | 分层约定、禁止循环依赖、新代码落位 |
82
+ | 编码规范 | `coding-style` | 语言、lint、缩进 | 命名、缩进、注释语言、CommonJS/ESM |
83
+ | 测试约定 | `testing` | test 目录、框架 | 测试命令、命名、TDD 期望 |
84
+ | 数据安全 | `database-safety` | ORM/迁移目录 | 无 DB 时降级为「禁止危险文件操作/敏感数据提交」 |
85
+ | Git 提交 | `git-commit` | git log 风格、CI | 提交前确认、message 风格、禁止 force push |
86
+
87
+ ## OpenCode 接线
88
+
89
+ 优先复用已有 `.claude/rules/`:
90
+
91
+ ```json
92
+ {
93
+ "$schema": "https://opencode.ai/config.json",
94
+ "instructions": [".claude/rules/*.md"]
95
+ }
96
+ ```
97
+
98
+ 无 Claude 规则时,写入 `.opencode/rules/*.md` 并 instructions 指向该路径。合并:已有 `instructions` 数组去重追加,其他键不动。
99
+
100
+ ## Codex / AGENTS.md 接线
101
+
102
+ ```markdown
103
+ <!-- kld-sdd-rules:start -->
104
+ ## 项目规则
105
+
106
+ ### 架构
107
+ ...
108
+
109
+ ### 编码
110
+ ...
111
+ <!-- kld-sdd-rules:end -->
112
+ ```
113
+
114
+ 存在 marker 则整块替换,幂等。
115
+
116
+ ## WorkBuddy 兜底
117
+
118
+ 写入 `.workbuddy/rules/*.md`,并在项目上下文文件(若存在)追加:
119
+
120
+ ```markdown
121
+ 项目规则见 `.workbuddy/rules/` 目录。
122
+ ```
123
+
124
+ 验证:运行 CodeBuddy `/memory` 或查官方 docs。
@@ -31,7 +31,7 @@ allowed-tools:
31
31
  > **🖥️ 跨平台执行规则**
32
32
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
33
33
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
34
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
34
+ > - ${SHELL_GUIDANCE}
35
35
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
36
36
  > **📊 Telemetry(必做,不得跳过)** — 阶段开始 / 阶段结束**命令模板**见 `./reference.md`「📊 Telemetry 命令模板」。
37
37
 
@@ -40,7 +40,7 @@ allowed-tools:
40
40
  > **🖥️ 跨平台执行规则**
41
41
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
42
42
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
43
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
43
+ > - ${SHELL_GUIDANCE}
44
44
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
45
45
  > **📊 Telemetry(必做,不得跳过)** — 阶段开始 / 阶段结束**命令模板**见 `./reference.md`「📊 Telemetry 命令模板」。
46
46
 
@@ -26,7 +26,7 @@ allowed-tools:
26
26
  > **🖥️ 跨平台执行规则**
27
27
  > - 先确认当前终端工作目录是项目根目录;若不是,先 `cd` 到项目根目录。
28
28
  > - Telemetry 命令默认使用 `--project=.`,兼容 Windows、macOS、Linux。
29
- > - 在 Windows Bash / Git Bash / Claude Bash 中,禁止裸写 Windows 反斜杠绝对路径(如 `D:\project\demo`);如必须使用绝对路径,请写成正斜杠路径或加引号。
29
+ > - ${SHELL_GUIDANCE}
30
30
  > - 不要省略 `--source=opsx-command` 与 `--session-id=<会话ID>`。
31
31
  > **📊 Telemetry(必做,不得跳过)**
32
32
  > - 阶段开始:`node skywalk-sdd/log.cjs start --command=test --project=. --change=<变更名称> --agent=<Agent类型> --source=opsx-command --session-id=<会话ID>`(保存 event_id)