@jspg-ai/coding-bb 0.0.1 → 0.0.2-beta.23

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 (145) hide show
  1. package/cbb/bin/cbb.js +6 -0
  2. package/cbb/bin/cbbm.js +6 -0
  3. package/cbb/dev-standards/rules/cbb-ai-behavior.md +103 -103
  4. package/cbb/dev-standards/rules/cbb-priority.md +55 -55
  5. package/cbb/lib/install/claude-code.js +2 -0
  6. package/cbb/lib/install/init.js +496 -290
  7. package/cbb/lib/install/opencode.js +31 -0
  8. package/cbb/lib/install/qoder.js +2 -0
  9. package/cbb/lib/install/workspaces.js +53 -13
  10. package/cbb/lib/openspec/index.js +3 -3
  11. package/cbb/lib/superpowers/index.js +1 -1
  12. package/cbb/lib/utils/check-update.js +16 -14
  13. package/cbb/lib/utils/gitignore.js +2 -1
  14. package/cbb/lib/utils/output.js +92 -4
  15. package/cbb/lib/utils/version.js +2 -31
  16. package/cbb/lib/wiki/cli.js +25 -25
  17. package/cbb/lib/wiki/index.js +16 -16
  18. package/cbb/tools/cbb-design-to-wiki/SKILL.md +14 -14
  19. package/cbb/tools/cbb-wiki-ops/SKILL.md +22 -22
  20. package/cbb/worktrees/_shared/scripts/find-target-worktree.js +2 -2
  21. package/cbb/worktrees/_shared/scripts/find-workspace-root.js +7 -7
  22. package/cbb/worktrees/_shared/scripts/push-core.js +18 -0
  23. package/cbb/worktrees/commands/{close.md → worktree-close.md} +8 -8
  24. package/cbb/worktrees/commands/{init.md → worktree-init.md} +9 -9
  25. package/cbb/worktrees/commands/{push.md → worktree-push.md} +3 -3
  26. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/SKILL.md +20 -20
  27. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/check-env.js +4 -4
  28. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/check-unarchived.js +1 -1
  29. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/delete-branches.js +3 -3
  30. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/discover-apps.js +6 -6
  31. package/cbb/worktrees/skills/{openspec-extend-worktree → cbb-worktree-close}/scripts/find-target-worktree.js +2 -2
  32. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-close}/scripts/find-workspace-root.js +7 -7
  33. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/remove-worktrees.js +4 -4
  34. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/safety-check.js +4 -4
  35. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/SKILL.md +81 -107
  36. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/auto-open.js +1 -1
  37. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/check-env-deep.js +4 -4
  38. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/check-env.js +6 -6
  39. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/check-repos.js +4 -4
  40. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/create-branches.js +4 -4
  41. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/create-worktrees.js +8 -7
  42. package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-init}/scripts/find-workspace-root.js +7 -7
  43. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/install-ai.js +33 -33
  44. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/parse-config.js +7 -7
  45. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/push-branches.js +9 -7
  46. package/cbb/worktrees/skills/{openspec-extend-worktree → cbb-worktree-init}/scripts/push-core.js +18 -0
  47. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/sync-repos.js +10 -12
  48. package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-init}/scripts/update-gitignore.js +19 -6
  49. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-push}/SKILL.md +16 -16
  50. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-push}/scripts/commit-worktrees.js +2 -2
  51. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-push}/scripts/find-target-worktree.js +2 -2
  52. package/cbb/worktrees/skills/{openspec-extend-worktree → cbb-worktree-push}/scripts/find-workspace-root.js +7 -7
  53. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-push}/scripts/push-core.js +18 -0
  54. package/cbb/worktrees/skills/{openspec-push-worktrees → cbb-worktree-push}/scripts/push-worktrees.js +7 -5
  55. package/config/workspace-config.sample.json +18 -0
  56. package/config/workspaces.json +11 -6
  57. package/openspec/.version +6 -6
  58. package/openspec/commands/apply.md +7 -7
  59. package/openspec/commands/archive.md +7 -7
  60. package/openspec/commands/bulk-archive.md +7 -7
  61. package/openspec/commands/continue.md +7 -7
  62. package/openspec/commands/explore.md +7 -7
  63. package/openspec/commands/ff.md +7 -7
  64. package/openspec/commands/new.md +7 -7
  65. package/openspec/commands/onboard.md +7 -7
  66. package/openspec/commands/propose.md +7 -7
  67. package/openspec/commands/sync.md +7 -7
  68. package/openspec/commands/update.md +7 -7
  69. package/openspec/commands/verify.md +7 -7
  70. package/openspec/skills/openspec-apply-change/SKILL.md +187 -187
  71. package/openspec/skills/openspec-archive-change/SKILL.md +181 -181
  72. package/openspec/skills/openspec-bulk-archive-change/SKILL.md +338 -338
  73. package/openspec/skills/openspec-continue-change/SKILL.md +117 -117
  74. package/openspec/skills/openspec-explore/SKILL.md +342 -342
  75. package/openspec/skills/openspec-ff-change/SKILL.md +116 -116
  76. package/openspec/skills/openspec-new-change/SKILL.md +76 -76
  77. package/openspec/skills/openspec-onboard/SKILL.md +560 -560
  78. package/openspec/skills/openspec-propose/SKILL.md +162 -162
  79. package/openspec/skills/openspec-sync-specs/SKILL.md +261 -261
  80. package/openspec/skills/openspec-update-change/SKILL.md +90 -90
  81. package/openspec/skills/openspec-verify-change/SKILL.md +174 -174
  82. package/package.json +4 -3
  83. package/superpowers/.version +6 -6
  84. package/superpowers/skills/brainstorming/SKILL.md +250 -250
  85. package/superpowers/skills/brainstorming/scripts/helper.js +167 -167
  86. package/superpowers/skills/brainstorming/scripts/start-server.sh +209 -209
  87. package/superpowers/skills/brainstorming/scripts/stop-server.sh +120 -120
  88. package/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +49 -49
  89. package/superpowers/skills/brainstorming/visual-companion.md +299 -299
  90. package/superpowers/skills/dispatching-parallel-agents/SKILL.md +167 -167
  91. package/superpowers/skills/executing-plans/SKILL.md +64 -64
  92. package/superpowers/skills/finishing-a-development-branch/SKILL.md +225 -225
  93. package/superpowers/skills/receiving-code-review/SKILL.md +205 -205
  94. package/superpowers/skills/requesting-code-review/SKILL.md +95 -95
  95. package/superpowers/skills/requesting-code-review/code-reviewer.md +181 -181
  96. package/superpowers/skills/subagent-driven-development/SKILL.md +568 -568
  97. package/superpowers/skills/subagent-driven-development/implementer-prompt.md +154 -154
  98. package/superpowers/skills/subagent-driven-development/re-review-prompt.md +115 -115
  99. package/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +207 -207
  100. package/superpowers/skills/systematic-debugging/CREATION-LOG.md +119 -119
  101. package/superpowers/skills/systematic-debugging/SKILL.md +283 -283
  102. package/superpowers/skills/systematic-debugging/condition-based-waiting-example.ts +158 -158
  103. package/superpowers/skills/systematic-debugging/condition-based-waiting.md +115 -115
  104. package/superpowers/skills/systematic-debugging/defense-in-depth.md +122 -122
  105. package/superpowers/skills/systematic-debugging/find-polluter.sh +72 -72
  106. package/superpowers/skills/systematic-debugging/root-cause-tracing.md +169 -169
  107. package/superpowers/skills/systematic-debugging/test-academic.md +14 -14
  108. package/superpowers/skills/systematic-debugging/test-pressure-1.md +58 -58
  109. package/superpowers/skills/systematic-debugging/test-pressure-2.md +68 -68
  110. package/superpowers/skills/systematic-debugging/test-pressure-3.md +69 -69
  111. package/superpowers/skills/test-driven-development/SKILL.md +320 -320
  112. package/superpowers/skills/test-driven-development/writing-good-tests.md +198 -198
  113. package/superpowers/skills/using-git-worktrees/SKILL.md +167 -167
  114. package/superpowers/skills/using-superpowers/SKILL.md +63 -63
  115. package/superpowers/skills/using-superpowers/references/antigravity-tools.md +23 -23
  116. package/superpowers/skills/using-superpowers/references/codex-tools.md +108 -108
  117. package/superpowers/skills/using-superpowers/references/gemini-tools.md +63 -63
  118. package/superpowers/skills/using-superpowers/references/hermes-tools.md +56 -56
  119. package/superpowers/skills/using-superpowers/references/pi-tools.md +16 -16
  120. package/superpowers/skills/verification-before-completion/SKILL.md +120 -120
  121. package/superpowers/skills/writing-plans/SKILL.md +171 -171
  122. package/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +49 -49
  123. package/superpowers/skills/writing-skills/SKILL.md +679 -679
  124. package/superpowers/skills/writing-skills/anthropic-best-practices.md +1150 -1150
  125. package/superpowers/skills/writing-skills/examples/CLAUDE_MD_TESTING.md +189 -189
  126. package/superpowers/skills/writing-skills/persuasion-principles.md +187 -187
  127. package/superpowers/skills/writing-skills/render-graphs.js +169 -169
  128. package/superpowers/skills/writing-skills/testing-skills-with-subagents.md +384 -384
  129. package/cbb/worktrees/commands/extend.md +0 -65
  130. package/cbb/worktrees/skills/openspec-close-worktree/scripts/find-target-worktree.js +0 -96
  131. package/cbb/worktrees/skills/openspec-extend-worktree/SKILL.md +0 -390
  132. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/check-env.js +0 -95
  133. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/check-repos.js +0 -98
  134. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/create-branches-and-worktrees.js +0 -135
  135. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/install-ai.js +0 -150
  136. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/list-available-apps.js +0 -88
  137. package/cbb/worktrees/skills/openspec-extend-worktree/scripts/sync-repos.js +0 -93
  138. package/cbb/worktrees/skills/openspec-init-worktree/scripts/find-workspace-root.js +0 -67
  139. package/cbb/worktrees/skills/openspec-init-worktree/scripts/generate-app-options.js +0 -93
  140. package/cbb/worktrees/skills/openspec-init-worktree/scripts/push-core.js +0 -136
  141. package/cbb/worktrees/skills/openspec-push-worktrees/scripts/silence-popup.js +0 -23
  142. package/config/config.sample.json +0 -16
  143. /package/cbb/worktrees/skills/{openspec-close-worktree → cbb-worktree-close}/scripts/silence-popup.js +0 -0
  144. /package/cbb/worktrees/skills/{openspec-extend-worktree → cbb-worktree-init}/scripts/silence-popup.js +0 -0
  145. /package/cbb/worktrees/skills/{openspec-init-worktree → cbb-worktree-push}/scripts/silence-popup.js +0 -0
package/cbb/bin/cbb.js ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ // 用户命令入口:cbb setup / update / uninstall
5
+ process.env.CBB_ENTRY = 'cbb';
6
+ require('../lib/install/init.js');
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ // 内部命令入口:cbbm init / check-update / wiki / wp(由流程、hook、Agent 技能调用)
5
+ process.env.CBB_ENTRY = 'cbbm';
6
+ require('../lib/install/init.js');
@@ -1,104 +1,104 @@
1
- ---
2
- trigger: always_on
3
- ---
4
-
5
- # AI 行为准则
6
-
7
- 七条行为准则,减少 AI 编码常见错误。源自 [Andrej Karpathy 对 LLM 编码缺陷的观察](https://x.com/karpathy/status/2015883857489522876)。
8
-
9
- **权衡:** 这些准则倾向于谨慎而非速度。对于简单任务(如修 typo、改文案),按常识判断即可。
10
-
11
- ## 1. 先想后写
12
-
13
- **不假设,不隐藏困惑,主动呈现权衡。**
14
-
15
- 实现前:
16
- - 明确声明假设,不确定时主动询问
17
- - 若存在多种解释,呈现出来而非自己默默选一种
18
- - 若有更简单的方案,说出来,必要时 push back
19
- - 若有不明确的地方,停下来,说出困惑,请求澄清
20
-
21
- ## 2. 简洁至上
22
-
23
- **用最少代码解决问题,不加推测性内容。**
24
-
25
- - 不实现用户未要求的功能
26
- - 不为单次使用的代码创建抽象
27
- - 不添加用户未要求的"灵活性"或"可配置性"
28
- - 不为不可能发生的场景写错误处理
29
- - 写了 200 行却发现 50 行就能搞定 → 重写
30
-
31
- 自问:"资深工程师会说过度设计吗?"如果会,简化。
32
-
33
- ## 3. 外科手术式修改
34
-
35
- **只改必须改的,只清理自己造成的烂摊子。**
36
-
37
- 编辑已有代码时:
38
- - 不顺手"改进"相邻代码、注释或格式
39
- - 不重构没坏的东西
40
- - 匹配现有风格,即使你更习惯另一种写法
41
- - 发现无关的死代码,口头提及即可,不要删除
42
-
43
- 当你的改动产生孤儿代码时:
44
- - 删除因你的改动而不再使用的 import / 变量 / 函数
45
- - 不删除已有的死代码,除非用户要求
46
-
47
- **检验标准:** 每一行改动都应该能追溯到用户的需求。
48
-
49
- ## 4. 目标驱动执行
50
-
51
- **定义成功标准,循环直到验证通过。**
52
-
53
- 将命令式任务转换为可验证的目标:
54
-
55
- | 而非… | 转换为… |
56
- |--------|---------|
57
- | "加个校验" | "先写无效输入的测试,再让测试通过" |
58
- | "修这个 bug" | "先写能复现的测试,再修到测试通过" |
59
- | "重构 X" | "确保重构前后测试全部通过" |
60
-
61
- 多步任务先给简短计划:
62
- ```
63
- 1. [步骤] → 验证: [检查项]
64
- 2. [步骤] → 验证: [检查项]
65
- 3. [步骤] → 验证: [检查项]
66
- ```
67
-
68
- 清晰的成功标准让 AI 可以独立循环验证,模糊的标准("搞一下")需要反复澄清。
69
-
70
- ## 5. 失败要大声说出来
71
-
72
- **悄悄绕过失败比直接失败更糟糕。**
73
-
74
- - 有步骤被跳过,"完成"就是错的——说出来
75
- - 有测试被跳过,"测试通过"就是错的——说出来
76
- - 不确定就直接说不确定,不假装确认
77
- - 默认暴露不确定性,不掩盖
78
-
79
- **检验标准:** 任何跳过的步骤、不确定的结论、未验证的结果,都以标记形式呈现,不悄悄带过。
80
-
81
- ## 6. 不认同也要说出来
82
-
83
- 当项目现有约定明显有问题时:
84
-
85
- - 照样遵循,保持一致——不悄悄另起炉灶
86
- - 明确提出来——指出风险,给出替代方案
87
- - 让用户做决策,不要替用户做选择
88
-
89
- **检验标准:** 你的代码放进现有代码中,读不出"换了一个人写的"。发现的问题以建议形式呈现,而非悄悄用另一种方式实现。
90
-
91
- ## 7. 先批准,后动工
92
-
93
- **任何实现动作前,先陈述方案并获得用户批准。**
94
-
95
- - 动手前说出打算怎么做(方案、涉及文件、验证方式),等用户确认
96
- - 仪式随任务缩放:小改动两三句话说清即可;大改动走 openspec 工作流(propose → specs → design)
97
- - "太简单不需要方案"是最危险的念头——简单意味着方案短,而不是没有方案
98
- - 中途发现复杂度超出预期:停下来重新说明,不要闷头扩大改动范围
99
-
100
- **检验标准:** 用户从未因"AI 直接改了代码没打招呼"而感到意外。
101
-
102
- ---
103
-
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+
5
+ # AI 行为准则
6
+
7
+ 七条行为准则,减少 AI 编码常见错误。源自 [Andrej Karpathy 对 LLM 编码缺陷的观察](https://x.com/karpathy/status/2015883857489522876)。
8
+
9
+ **权衡:** 这些准则倾向于谨慎而非速度。对于简单任务(如修 typo、改文案),按常识判断即可。
10
+
11
+ ## 1. 先想后写
12
+
13
+ **不假设,不隐藏困惑,主动呈现权衡。**
14
+
15
+ 实现前:
16
+ - 明确声明假设,不确定时主动询问
17
+ - 若存在多种解释,呈现出来而非自己默默选一种
18
+ - 若有更简单的方案,说出来,必要时 push back
19
+ - 若有不明确的地方,停下来,说出困惑,请求澄清
20
+
21
+ ## 2. 简洁至上
22
+
23
+ **用最少代码解决问题,不加推测性内容。**
24
+
25
+ - 不实现用户未要求的功能
26
+ - 不为单次使用的代码创建抽象
27
+ - 不添加用户未要求的"灵活性"或"可配置性"
28
+ - 不为不可能发生的场景写错误处理
29
+ - 写了 200 行却发现 50 行就能搞定 → 重写
30
+
31
+ 自问:"资深工程师会说过度设计吗?"如果会,简化。
32
+
33
+ ## 3. 外科手术式修改
34
+
35
+ **只改必须改的,只清理自己造成的烂摊子。**
36
+
37
+ 编辑已有代码时:
38
+ - 不顺手"改进"相邻代码、注释或格式
39
+ - 不重构没坏的东西
40
+ - 匹配现有风格,即使你更习惯另一种写法
41
+ - 发现无关的死代码,口头提及即可,不要删除
42
+
43
+ 当你的改动产生孤儿代码时:
44
+ - 删除因你的改动而不再使用的 import / 变量 / 函数
45
+ - 不删除已有的死代码,除非用户要求
46
+
47
+ **检验标准:** 每一行改动都应该能追溯到用户的需求。
48
+
49
+ ## 4. 目标驱动执行
50
+
51
+ **定义成功标准,循环直到验证通过。**
52
+
53
+ 将命令式任务转换为可验证的目标:
54
+
55
+ | 而非… | 转换为… |
56
+ |--------|---------|
57
+ | "加个校验" | "先写无效输入的测试,再让测试通过" |
58
+ | "修这个 bug" | "先写能复现的测试,再修到测试通过" |
59
+ | "重构 X" | "确保重构前后测试全部通过" |
60
+
61
+ 多步任务先给简短计划:
62
+ ```
63
+ 1. [步骤] → 验证: [检查项]
64
+ 2. [步骤] → 验证: [检查项]
65
+ 3. [步骤] → 验证: [检查项]
66
+ ```
67
+
68
+ 清晰的成功标准让 AI 可以独立循环验证,模糊的标准("搞一下")需要反复澄清。
69
+
70
+ ## 5. 失败要大声说出来
71
+
72
+ **悄悄绕过失败比直接失败更糟糕。**
73
+
74
+ - 有步骤被跳过,"完成"就是错的——说出来
75
+ - 有测试被跳过,"测试通过"就是错的——说出来
76
+ - 不确定就直接说不确定,不假装确认
77
+ - 默认暴露不确定性,不掩盖
78
+
79
+ **检验标准:** 任何跳过的步骤、不确定的结论、未验证的结果,都以标记形式呈现,不悄悄带过。
80
+
81
+ ## 6. 不认同也要说出来
82
+
83
+ 当项目现有约定明显有问题时:
84
+
85
+ - 照样遵循,保持一致——不悄悄另起炉灶
86
+ - 明确提出来——指出风险,给出替代方案
87
+ - 让用户做决策,不要替用户做选择
88
+
89
+ **检验标准:** 你的代码放进现有代码中,读不出"换了一个人写的"。发现的问题以建议形式呈现,而非悄悄用另一种方式实现。
90
+
91
+ ## 7. 先批准,后动工
92
+
93
+ **任何实现动作前,先陈述方案并获得用户批准。**
94
+
95
+ - 动手前说出打算怎么做(方案、涉及文件、验证方式),等用户确认
96
+ - 仪式随任务缩放:小改动两三句话说清即可;大改动走 openspec 工作流(propose → specs → design)
97
+ - "太简单不需要方案"是最危险的念头——简单意味着方案短,而不是没有方案
98
+ - 中途发现复杂度超出预期:停下来重新说明,不要闷头扩大改动范围
99
+
100
+ **检验标准:** 用户从未因"AI 直接改了代码没打招呼"而感到意外。
101
+
102
+ ---
103
+
104
104
  **这些准则生效的标志:** diff 中不必要的改动减少、不会因过度设计而重写、澄清问题在实现前而非出错后提出。
@@ -1,56 +1,56 @@
1
- ---
2
- trigger: always_on
3
- ---
4
- # 规范优先级
5
-
6
- 全局规范与项目现有约定冲突时,按以下优先级处理:
7
-
8
- | 优先级 | 来源 | 说明 |
9
- |--------|------|------|
10
- | 1(最高) | 项目现有约定 | 包括代码中实际观察到的风格,以及项目目录下的显式规范(lint 配置、CLAUDE.md 等)。两者冲突时以显式规范为准 |
11
- | 2(最低) | 本规范库 | 统一规范,作为默认兜底。已吸收语言/框架官方惯例(如 PEP 8、Effective Go 等)作为基线 |
12
-
13
- **豁免**:以下情况不属于"沿用"范围,发现问题必须指出:
14
-
15
- - 会导致运行时错误或数据损坏的明显 bug
16
- - 安全缺陷(如 SQL 注入、敏感信息明文存储、XSS 风险等)
17
- - 已废弃的 API
18
- - 会导致严重性能退化的模式(如 N+1 查询、全表扫描后内存过滤、大事务长连接等)
19
- - 违反合规/法律要求的处理方式(如数据保留、隐私保护等)
20
- - 会导致可维护性灾难的模式(如单体方法超 500 行、循环嵌套深度 > 4 层等)
21
-
22
- ---
23
-
24
- ## 执行原则
25
-
26
- ### 首次进入项目
27
-
28
- 生成或修改代码前必须:
29
-
30
- 1. **探测现有风格** — 检查目标文件所在目录的代码风格
31
- 2. **识别架构模式** — 确认项目使用的分包模式、命名约定、注解风格
32
- 3. **保持一致性** — 新代码遵循项目风格,而非套用全局规范
33
-
34
- > 目录内风格不一致时,以目录内多数文件的风格为准;仍无法判断时,以项目显式规范为准。
35
-
36
- ### 冲突处理
37
-
38
- | 场景 | 处理方式 |
39
- |------|----------|
40
- | 项目已有分层架构 | 沿用现有分层,不强制统一为某种架构 |
41
- | 项目已有命名风格 | 保持统一,不自创新风格 |
42
- | 项目已用某中间件 | 继续使用,不强行切换 |
43
- | 项目内存在多种风格混用 | 以当前文件风格为准,不引入第三种风格;当前文件无明确风格时以目录内多数文件风格为准 |
44
- | 项目无先例可循(如首次使用 Redis、首次写 MQ 消费者) | 使用本规范库作为默认起点 |
45
- | 全局规范更新 | 以项目实际安装的版本为准,不自动覆盖 |
46
- | 全新项目 | 使用本规范库作为起点 |
47
- | 已有项目中的新模块 | 沿用项目现有约定,不另起风格 |
48
-
49
- > **显式规范与代码风格冲突时的处理**:显式规范优先用于新代码;不要求对已有代码做大规模 reformat。判断标准:涉及命名约定、架构分层、中间件选型等**结构性决策**时以显式规范为准;仅涉及缩进、换行等**格式细节**时以当前文件风格为准。
50
-
51
- ### 重构场景
52
-
53
- 当本次需求涉及架构重构时:
54
-
55
- - 以重构目标为准,而非沿用旧模式
1
+ ---
2
+ trigger: always_on
3
+ ---
4
+ # 规范优先级
5
+
6
+ 全局规范与项目现有约定冲突时,按以下优先级处理:
7
+
8
+ | 优先级 | 来源 | 说明 |
9
+ |--------|------|------|
10
+ | 1(最高) | 项目现有约定 | 包括代码中实际观察到的风格,以及项目目录下的显式规范(lint 配置、CLAUDE.md 等)。两者冲突时以显式规范为准 |
11
+ | 2(最低) | 本规范库 | 统一规范,作为默认兜底。已吸收语言/框架官方惯例(如 PEP 8、Effective Go 等)作为基线 |
12
+
13
+ **豁免**:以下情况不属于"沿用"范围,发现问题必须指出:
14
+
15
+ - 会导致运行时错误或数据损坏的明显 bug
16
+ - 安全缺陷(如 SQL 注入、敏感信息明文存储、XSS 风险等)
17
+ - 已废弃的 API
18
+ - 会导致严重性能退化的模式(如 N+1 查询、全表扫描后内存过滤、大事务长连接等)
19
+ - 违反合规/法律要求的处理方式(如数据保留、隐私保护等)
20
+ - 会导致可维护性灾难的模式(如单体方法超 500 行、循环嵌套深度 > 4 层等)
21
+
22
+ ---
23
+
24
+ ## 执行原则
25
+
26
+ ### 首次进入项目
27
+
28
+ 生成或修改代码前必须:
29
+
30
+ 1. **探测现有风格** — 检查目标文件所在目录的代码风格
31
+ 2. **识别架构模式** — 确认项目使用的分包模式、命名约定、注解风格
32
+ 3. **保持一致性** — 新代码遵循项目风格,而非套用全局规范
33
+
34
+ > 目录内风格不一致时,以目录内多数文件的风格为准;仍无法判断时,以项目显式规范为准。
35
+
36
+ ### 冲突处理
37
+
38
+ | 场景 | 处理方式 |
39
+ |------|----------|
40
+ | 项目已有分层架构 | 沿用现有分层,不强制统一为某种架构 |
41
+ | 项目已有命名风格 | 保持统一,不自创新风格 |
42
+ | 项目已用某中间件 | 继续使用,不强行切换 |
43
+ | 项目内存在多种风格混用 | 以当前文件风格为准,不引入第三种风格;当前文件无明确风格时以目录内多数文件风格为准 |
44
+ | 项目无先例可循(如首次使用 Redis、首次写 MQ 消费者) | 使用本规范库作为默认起点 |
45
+ | 全局规范更新 | 以项目实际安装的版本为准,不自动覆盖 |
46
+ | 全新项目 | 使用本规范库作为起点 |
47
+ | 已有项目中的新模块 | 沿用项目现有约定,不另起风格 |
48
+
49
+ > **显式规范与代码风格冲突时的处理**:显式规范优先用于新代码;不要求对已有代码做大规模 reformat。判断标准:涉及命名约定、架构分层、中间件选型等**结构性决策**时以显式规范为准;仅涉及缩进、换行等**格式细节**时以当前文件风格为准。
50
+
51
+ ### 重构场景
52
+
53
+ 当本次需求涉及架构重构时:
54
+
55
+ - 以重构目标为准,而非沿用旧模式
56
56
  - 重构范围必须明确界定,不在范围内的代码保持现有风格
@@ -13,6 +13,8 @@ module.exports = {
13
13
  rulesDir: '.claude/rules',
14
14
  skillsDir: '.claude/skills',
15
15
  commandsDir: '.claude/commands/opsx',
16
+ // worktree 管理命令(非 openspec 上游):独立命名空间 /cbb:worktree-*
17
+ worktreeCommandsDir: '.claude/commands/cbb',
16
18
  // 用户级 settings,写入全局生效,不污染项目目录
17
19
  settingsFile: path.join(os.homedir(), '.claude', 'settings.json'),
18
20
  settingsFileIsUserLevel: true,