@jspg-ai/coding-bb 0.0.2-beta.29 → 0.0.3-beta.12

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 (107) hide show
  1. package/cbb/bin/cbbm.js +1 -1
  2. package/cbb/dev-standards/rules/cbb-ai-behavior.md +118 -103
  3. package/cbb/lib/install/claude-code.js +1 -3
  4. package/cbb/lib/install/codebuddy.js +30 -0
  5. package/cbb/lib/install/init.js +354 -305
  6. package/cbb/lib/install/opencode.js +35 -31
  7. package/cbb/lib/install/qoder.js +1 -3
  8. package/cbb/lib/install/rule-rewrite.js +27 -0
  9. package/cbb/lib/install/trae.js +33 -0
  10. package/cbb/lib/install/workspaces.js +24 -0
  11. package/cbb/lib/openspec/index.js +337 -554
  12. package/cbb/lib/superpowers/index.js +246 -265
  13. package/cbb/lib/utils/check-update.js +9 -2
  14. package/cbb/lib/utils/gitignore.js +2 -0
  15. package/cbb/lib/utils/settings.js +17 -4
  16. package/cbb/lib/utils/tar.js +92 -0
  17. package/cbb/lib/utils/upstream.js +90 -0
  18. package/cbb/worktrees/skills/cbb-worktree-close/SKILL.md +33 -24
  19. package/cbb/worktrees/skills/cbb-worktree-close/scripts/check-env.js +4 -4
  20. package/cbb/worktrees/skills/cbb-worktree-close/scripts/remove-worktrees.js +2 -2
  21. package/cbb/worktrees/skills/cbb-worktree-init/SKILL.md +61 -78
  22. package/cbb/worktrees/skills/cbb-worktree-init/scripts/check-env-deep.js +3 -33
  23. package/cbb/worktrees/skills/cbb-worktree-init/scripts/check-env.js +5 -14
  24. package/cbb/worktrees/skills/cbb-worktree-init/scripts/create-worktrees.js +15 -37
  25. package/cbb/worktrees/skills/cbb-worktree-init/scripts/update-gitignore.js +25 -9
  26. package/cbb/worktrees/skills/cbb-worktree-push/SKILL.md +67 -31
  27. package/config/openspec/schemas/spec-driven/schema.yaml +29 -30
  28. package/config/openspec/schemas/spec-driven/templates/design.md +0 -18
  29. package/config/openspec/schemas/spec-driven/templates/proposal.md +4 -3
  30. package/config/upstream-mirrors.json +12 -0
  31. package/config/workspace-agents.sample.md +17 -13
  32. package/config/workspaces.json +5 -0
  33. package/openspec/.version +2 -3
  34. package/openspec/commands/apply.md +189 -175
  35. package/openspec/commands/archive.md +237 -216
  36. package/openspec/commands/bulk-archive.md +355 -327
  37. package/openspec/commands/continue.md +116 -105
  38. package/openspec/commands/explore.md +230 -199
  39. package/openspec/commands/ff.md +115 -104
  40. package/openspec/commands/new.md +74 -63
  41. package/openspec/commands/onboard.md +557 -548
  42. package/openspec/commands/propose.md +161 -150
  43. package/openspec/commands/sync.md +277 -249
  44. package/openspec/commands/update.md +92 -80
  45. package/openspec/commands/verify.md +175 -162
  46. package/openspec/skills/openspec-apply-change/SKILL.md +20 -5
  47. package/openspec/skills/openspec-archive-change/SKILL.md +30 -8
  48. package/openspec/skills/openspec-bulk-archive-change/SKILL.md +36 -6
  49. package/openspec/skills/openspec-continue-change/SKILL.md +14 -2
  50. package/openspec/skills/openspec-explore/SKILL.md +21 -9
  51. package/openspec/skills/openspec-ff-change/SKILL.md +14 -2
  52. package/openspec/skills/openspec-new-change/SKILL.md +13 -1
  53. package/openspec/skills/openspec-onboard/SKILL.md +49 -39
  54. package/openspec/skills/openspec-propose/SKILL.md +15 -3
  55. package/openspec/skills/openspec-sync-specs/SKILL.md +31 -2
  56. package/openspec/skills/openspec-update-change/SKILL.md +27 -14
  57. package/openspec/skills/openspec-verify-change/SKILL.md +17 -3
  58. package/package.json +2 -2
  59. package/superpowers/.version +4 -4
  60. package/superpowers/skills/brainstorming/SKILL.md +47 -12
  61. package/superpowers/skills/brainstorming/scripts/frame-template.html +213 -213
  62. package/superpowers/skills/brainstorming/scripts/server.cjs +723 -723
  63. package/superpowers/skills/brainstorming/visual-companion.md +6 -6
  64. package/superpowers/skills/diagnosing-superpowers/SKILL.md +120 -0
  65. package/superpowers/skills/diagnosing-superpowers/prompts/analyst-common.md +38 -0
  66. package/superpowers/skills/diagnosing-superpowers/prompts/cost-and-time.md +28 -0
  67. package/superpowers/skills/diagnosing-superpowers/prompts/plan-adherence.md +29 -0
  68. package/superpowers/skills/diagnosing-superpowers/prompts/quality-evidence.md +26 -0
  69. package/superpowers/skills/diagnosing-superpowers/prompts/repeated-work.md +30 -0
  70. package/superpowers/skills/diagnosing-superpowers/prompts/request-conflicts.md +20 -0
  71. package/superpowers/skills/diagnosing-superpowers/prompts/scrub-audit.md +33 -0
  72. package/superpowers/skills/diagnosing-superpowers/prompts/scrub.md +29 -0
  73. package/superpowers/skills/diagnosing-superpowers/prompts/similar-session.md +38 -0
  74. package/superpowers/skills/diagnosing-superpowers/prompts/skill-timeline.md +30 -0
  75. package/superpowers/skills/diagnosing-superpowers/prompts/stumbles.md +28 -0
  76. package/superpowers/skills/diagnosing-superpowers/references/context-safety.md +22 -0
  77. package/superpowers/skills/diagnosing-superpowers/references/github-issues.md +47 -0
  78. package/superpowers/skills/diagnosing-superpowers/references/redaction-policy.md +34 -0
  79. package/superpowers/skills/diagnosing-superpowers/references/session-discovery.md +31 -0
  80. package/superpowers/skills/diagnosing-superpowers/templates/bundle-README.md +77 -0
  81. package/superpowers/skills/diagnosing-superpowers/templates/case.md +64 -0
  82. package/superpowers/skills/diagnosing-superpowers/templates/issue.md +51 -0
  83. package/superpowers/skills/diagnosing-superpowers/templates/report.md +82 -0
  84. package/superpowers/skills/executing-plans/SKILL.md +350 -41
  85. package/superpowers/skills/executing-plans/scripts/task-done +52 -0
  86. package/superpowers/skills/executing-plans/scripts/task-start +28 -0
  87. package/superpowers/skills/requesting-code-review/SKILL.md +1 -1
  88. package/superpowers/skills/requesting-code-review/code-reviewer.md +17 -0
  89. package/superpowers/skills/subagent-driven-development/SKILL.md +18 -18
  90. package/superpowers/skills/subagent-driven-development/re-review-prompt.md +1 -1
  91. package/superpowers/skills/subagent-driven-development/scripts/review-package +53 -46
  92. package/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +82 -40
  93. package/superpowers/skills/subagent-driven-development/scripts/task-brief +43 -41
  94. package/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +2 -2
  95. package/superpowers/skills/systematic-debugging/root-cause-tracing.md +1 -1
  96. package/superpowers/skills/test-driven-development/SKILL.md +10 -0
  97. package/superpowers/skills/using-superpowers/SKILL.md +2 -0
  98. package/superpowers/skills/using-superpowers/references/claude-code-tools.md +29 -0
  99. package/superpowers/skills/using-superpowers/references/muse-tools.md +35 -0
  100. package/superpowers/skills/writing-plans/SKILL.md +30 -9
  101. package/superpowers/skills/writing-skills/SKILL.md +4 -2
  102. package/superpowers/skills/writing-skills/graphviz-conventions.dot +171 -171
  103. package/cbb/worktrees/commands/worktree-close.md +0 -64
  104. package/cbb/worktrees/commands/worktree-init.md +0 -55
  105. package/cbb/worktrees/commands/worktree-push.md +0 -42
  106. package/cbb/worktrees/skills/cbb-worktree-init/scripts/auto-open.js +0 -136
  107. package/cbb/worktrees/skills/cbb-worktree-init/scripts/install-ai.js +0 -177
@@ -1,31 +1,35 @@
1
- /**
2
- * opencode 适配器
3
- *
4
- * 将编码规范分发到 .opencode/ 目录(opencode 项目级配置域)。
5
- *
6
- * 与 Claude Code / Qoder 的映射差异:
7
- * - rules:opencode 无原生 rules 目录,部署到 .opencode/rules/ 并由安装流程
8
- * 将 glob 注册进项目根 opencode.json 的 instructions 字段(官方支持的加载方式)
9
- * - skills:.opencode/skills/<name>/SKILL.md,结构与 Claude 同构
10
- * - commands:命令名 = 文件名(嵌套目录无命名空间,且 init.md 等会撞内置 /init),
11
- * 因此扁平化为 opsx-<name>.md(/opsx-propose);worktree 管理命令同理扁平化为
12
- * cbb-<name>.md(/cbb-worktree-init),部署副本中的 /opsx: 与 /cbb: 引用同步改写
13
- * - hooks:opencode 无 UserPromptSubmit 等价事件,版本检查 hook 不安装(settingsFile 留空即跳过)
14
- */
15
-
16
- module.exports = {
17
- name: 'opencode',
18
- displayName: 'opencode',
19
- rulesDir: '.opencode/rules',
20
- skillsDir: '.opencode/skills',
21
- commandsDir: '.opencode/commands',
22
- // 部署时给命令文件名加此前缀(规避内置命令名冲突)
23
- commandPrefix: 'opsx-',
24
- // worktree 管理命令(非 openspec 上游)落在同一扁平目录,用 cbb- 前缀区分
25
- worktreeCommandsDir: '.opencode/commands',
26
- worktreeCommandPrefix: 'cbb-',
27
- // 部署副本中将该引用串改写为 opencode 的命令风格(配合 commandPrefix)
28
- contentRewrites: [['/opsx:', '/opsx-'], ['/cbb:', '/cbb-']],
29
- // rules 加载登记:注入项目根 opencode.json 的 instructions(glob,相对项目根)
30
- instructionsPattern: '.opencode/rules/*.md',
31
- };
1
+ /**
2
+ * opencode 适配器
3
+ *
4
+ * 将编码规范分发到 .opencode/ 目录(opencode 项目级配置域)。
5
+ *
6
+ * 与 Claude Code / Qoder 的映射差异:
7
+ * - rules:opencode 无原生 rules 目录,部署到 .opencode/rules/ 并由安装流程
8
+ * 将 glob 登记进 .opencode/opencode.json 的 instructions 字段(opencode V2
9
+ * 官方支持的配置位置:全局目录 / 项目根 / .opencode 目录内均会被发现)
10
+ * - skills:.opencode/skills/<name>/SKILL.md,结构与 Claude 同构
11
+ * - commands:命令名 = 文件名(嵌套目录无命名空间,且 init.md 等会撞内置 /init),
12
+ * 因此扁平化为 opsx-<name>.md(/opsx-propose);部署副本中的 /opsx: 与 /cbb: 引用同步改写
13
+ * - hooks:opencode 无 UserPromptSubmit 等价事件,版本检查 hook 不安装(settingsFile 留空即跳过)
14
+ */
15
+
16
+ module.exports = {
17
+ name: 'opencode',
18
+ displayName: 'opencode',
19
+ rulesDir: '.opencode/rules',
20
+ skillsDir: '.opencode/skills',
21
+ commandsDir: '.opencode/commands',
22
+ // 部署时给命令文件名加此前缀(规避内置命令名冲突)
23
+ commandPrefix: 'opsx-',
24
+ // 部署副本中将该引用串改写为 opencode 的命令风格(配合 commandPrefix)
25
+ contentRewrites: [['/opsx:', '/opsx-'], ['/cbb:', '/cbb-']],
26
+ // 命令显示名取自 frontmatter name,部署副本重写为 kebab-case(/opsx-propose,与文档一致)
27
+ commandNameKebab: true,
28
+ // rules 加载登记:写入 .opencode/opencode.json 的 instructions。
29
+ // instructions 相对路径的解析基准(配置文件目录 vs 项目根)文档未写死,
30
+ // 登记双 glob 对冲:任一基准下恰有一个命中,另一个空匹配。
31
+ instructionsFile: '.opencode/opencode.json',
32
+ instructionsPatterns: ['rules/*.md', '.opencode/rules/*.md'],
33
+ // 旧版(≤0.0.3-beta.2)曾登记在项目根 opencode.json 的 pattern,迁移/卸载时识别清理用
34
+ legacyInstructionsPattern: '.opencode/rules/*.md',
35
+ };
@@ -13,9 +13,7 @@ module.exports = {
13
13
  rulesDir: '.qoder/rules',
14
14
  skillsDir: '.qoder/skills',
15
15
  commandsDir: '.qoder/commands/opsx',
16
- // worktree 管理命令(非 openspec 上游):独立命名空间 /cbb:worktree-*
17
- worktreeCommandsDir: '.qoder/commands/cbb',
18
- // 用户级 settings,写入全局生效,不污染项目目录
16
+ // 用户级 settings,写入全局生效,不污染项目目录
19
17
  settingsFile: path.join(os.homedir(), '.qoder', 'settings.json'),
20
18
  settingsFileIsUserLevel: true,
21
19
  hookEvents: ['UserPromptSubmit'],
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * 规则 frontmatter 改写(纯函数,无副作用,便于单测)。
5
+ *
6
+ * 源规则(cbb/dev-standards/rules/*.md)用 Qoder 的 frontmatter 约定
7
+ * `trigger: always_on`。各工具对"始终生效"的字段名不同:
8
+ * - Qoder:trigger: always_on(源格式)
9
+ * - Claude Code / opencode:无该字段,靠各自机制加载
10
+ * - WorkBuddy/CodeBuddy、Trae:alwaysApply: true
11
+ *
12
+ * 适配器通过 ruleRewrites([[from, to], ...])声明改写规则,部署时套用;
13
+ * 无 ruleRewrites 的适配器原样返回。
14
+ */
15
+
16
+ /**
17
+ * 按适配器的 ruleRewrites 改写规则文本。
18
+ * @param {object} adapter 适配器配置
19
+ * @param {string} text 规则文件原文
20
+ * @returns {string} 改写后的文本(无 ruleRewrites 时原样返回)
21
+ */
22
+ function applyRuleRewrites(adapter, text) {
23
+ if (!adapter || !adapter.ruleRewrites) return text;
24
+ return adapter.ruleRewrites.reduce((t, [from, to]) => t.split(from).join(to), text);
25
+ }
26
+
27
+ module.exports = { applyRuleRewrites };
@@ -0,0 +1,33 @@
1
+ /**
2
+ * TraeWork / TraeCode 适配器
3
+ *
4
+ * 字节 TraeWork 桌面工作台与 TraeCode IDE 共用项目级配置目录 `.trae/`,
5
+ * 故一个适配器同时覆盖两者。
6
+ *
7
+ * 与 Claude Code / Qoder 的映射差异:
8
+ * - rules:`.trae/rules/*.md`(扁平文件、支持子目录,最多 3 层),frontmatter 用
9
+ * `alwaysApply: true`(Qoder 的 `trigger: always_on` 需改写,见 ruleRewrites)
10
+ * - skills:`.trae/skills/<name>/SKILL.md`,结构与 Claude 同构
11
+ * - commands:`.trae/commands/`,支持目录嵌套(最多 3 层),与 Claude 同风格
12
+ * - hooks:`~/.trae-cn/hooks.json`,格式与 Claude 相近但需顶层 `version: 1`
13
+ * (由 settingsManager 的 hookDialect 处理),事件名/输出字段一致
14
+ */
15
+
16
+ const path = require('path');
17
+ const os = require('os');
18
+
19
+ module.exports = {
20
+ name: 'trae',
21
+ displayName: 'TraeWork(TraeCode)',
22
+ rulesDir: '.trae/rules',
23
+ skillsDir: '.trae/skills',
24
+ commandsDir: '.trae/commands/opsx',
25
+ // 规则 frontmatter 改写:Qoder 风格 → Trae 风格
26
+ ruleRewrites: [['trigger: always_on', 'alwaysApply: true']],
27
+ // 用户级 hooks 配置(Trae 用 hooks.json,国内版目录为 ~/.trae-cn/)
28
+ settingsFile: path.join(os.homedir(), '.trae-cn', 'hooks.json'),
29
+ settingsFileIsUserLevel: true,
30
+ hookEvents: ['UserPromptSubmit'],
31
+ // Trae 的 hooks.json 需顶层 version: 1(Claude 风格 settings.json 无此字段)
32
+ hookDialect: 'trae',
33
+ };
@@ -186,6 +186,29 @@ function ensureWorkspaceAgentsMd(targetDir) {
186
186
  return 'created';
187
187
  }
188
188
 
189
+ // 旧版空间导航模板(0.0.3 单层安装改造前)的特征语句。
190
+ // 该文件归用户所有、永不覆盖,故只能提示用户删除后重跑 cbb update 重新生成。
191
+ const LEGACY_AGENTS_MD_MARKERS = [
192
+ '故意不含编码规范',
193
+ '自动安装沙箱内的编码规范',
194
+ ];
195
+
196
+ /**
197
+ * 检测空间根 AGENTS.md 是否仍为旧版导航文案(命中任一特征语句即为旧版)。
198
+ * 仅用于安装时打印提示,不修改文件。
199
+ * @returns {boolean}
200
+ */
201
+ function detectLegacyAgentsMd(targetDir) {
202
+ const agentsPath = path.join(targetDir, 'AGENTS.md');
203
+ if (!fs.existsSync(agentsPath)) return false;
204
+ try {
205
+ const content = fs.readFileSync(agentsPath, 'utf-8');
206
+ return LEGACY_AGENTS_MD_MARKERS.some(m => content.includes(m));
207
+ } catch (_) {
208
+ return false;
209
+ }
210
+ }
211
+
189
212
  /**
190
213
  * 在指定目录执行 `git remote -v`,解析出 [{ name, url }] 列表。
191
214
  * 任何异常静默返回空数组,便于上层用 state 机判定。
@@ -285,6 +308,7 @@ module.exports = {
285
308
  loadWorkspaces,
286
309
  validateWorkspaceConfig,
287
310
  ensureWorkspaceAgentsMd,
311
+ detectLegacyAgentsMd,
288
312
  readGitRemotes,
289
313
  detectRepo,
290
314
  extractRepoBasename,