@jspg-ai/coding-bb 0.0.3-beta.6 → 0.0.3-beta.7

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 (76) hide show
  1. package/cbb/lib/install/init.js +60 -23
  2. package/cbb/lib/openspec/index.js +337 -554
  3. package/cbb/lib/superpowers/index.js +246 -265
  4. package/cbb/lib/utils/tar.js +92 -0
  5. package/cbb/lib/utils/upstream.js +90 -0
  6. package/config/upstream-mirrors.json +12 -0
  7. package/openspec/.version +2 -3
  8. package/openspec/commands/apply.md +189 -175
  9. package/openspec/commands/archive.md +237 -216
  10. package/openspec/commands/bulk-archive.md +355 -327
  11. package/openspec/commands/continue.md +116 -105
  12. package/openspec/commands/explore.md +230 -199
  13. package/openspec/commands/ff.md +115 -104
  14. package/openspec/commands/new.md +74 -63
  15. package/openspec/commands/onboard.md +557 -548
  16. package/openspec/commands/propose.md +161 -150
  17. package/openspec/commands/sync.md +277 -249
  18. package/openspec/commands/update.md +92 -80
  19. package/openspec/commands/verify.md +175 -162
  20. package/openspec/skills/openspec-apply-change/SKILL.md +20 -5
  21. package/openspec/skills/openspec-archive-change/SKILL.md +30 -8
  22. package/openspec/skills/openspec-bulk-archive-change/SKILL.md +36 -6
  23. package/openspec/skills/openspec-continue-change/SKILL.md +14 -2
  24. package/openspec/skills/openspec-explore/SKILL.md +21 -9
  25. package/openspec/skills/openspec-ff-change/SKILL.md +14 -2
  26. package/openspec/skills/openspec-new-change/SKILL.md +13 -1
  27. package/openspec/skills/openspec-onboard/SKILL.md +49 -39
  28. package/openspec/skills/openspec-propose/SKILL.md +15 -3
  29. package/openspec/skills/openspec-sync-specs/SKILL.md +31 -2
  30. package/openspec/skills/openspec-update-change/SKILL.md +27 -14
  31. package/openspec/skills/openspec-verify-change/SKILL.md +17 -3
  32. package/package.json +1 -1
  33. package/superpowers/.version +4 -4
  34. package/superpowers/skills/brainstorming/SKILL.md +47 -12
  35. package/superpowers/skills/brainstorming/scripts/frame-template.html +213 -213
  36. package/superpowers/skills/brainstorming/scripts/server.cjs +723 -723
  37. package/superpowers/skills/brainstorming/visual-companion.md +6 -6
  38. package/superpowers/skills/diagnosing-superpowers/SKILL.md +120 -0
  39. package/superpowers/skills/diagnosing-superpowers/prompts/analyst-common.md +38 -0
  40. package/superpowers/skills/diagnosing-superpowers/prompts/cost-and-time.md +28 -0
  41. package/superpowers/skills/diagnosing-superpowers/prompts/plan-adherence.md +29 -0
  42. package/superpowers/skills/diagnosing-superpowers/prompts/quality-evidence.md +26 -0
  43. package/superpowers/skills/diagnosing-superpowers/prompts/repeated-work.md +30 -0
  44. package/superpowers/skills/diagnosing-superpowers/prompts/request-conflicts.md +20 -0
  45. package/superpowers/skills/diagnosing-superpowers/prompts/scrub-audit.md +33 -0
  46. package/superpowers/skills/diagnosing-superpowers/prompts/scrub.md +29 -0
  47. package/superpowers/skills/diagnosing-superpowers/prompts/similar-session.md +38 -0
  48. package/superpowers/skills/diagnosing-superpowers/prompts/skill-timeline.md +30 -0
  49. package/superpowers/skills/diagnosing-superpowers/prompts/stumbles.md +28 -0
  50. package/superpowers/skills/diagnosing-superpowers/references/context-safety.md +22 -0
  51. package/superpowers/skills/diagnosing-superpowers/references/github-issues.md +47 -0
  52. package/superpowers/skills/diagnosing-superpowers/references/redaction-policy.md +34 -0
  53. package/superpowers/skills/diagnosing-superpowers/references/session-discovery.md +31 -0
  54. package/superpowers/skills/diagnosing-superpowers/templates/bundle-README.md +77 -0
  55. package/superpowers/skills/diagnosing-superpowers/templates/case.md +64 -0
  56. package/superpowers/skills/diagnosing-superpowers/templates/issue.md +51 -0
  57. package/superpowers/skills/diagnosing-superpowers/templates/report.md +82 -0
  58. package/superpowers/skills/executing-plans/SKILL.md +350 -41
  59. package/superpowers/skills/executing-plans/scripts/task-done +52 -0
  60. package/superpowers/skills/executing-plans/scripts/task-start +28 -0
  61. package/superpowers/skills/requesting-code-review/SKILL.md +1 -1
  62. package/superpowers/skills/requesting-code-review/code-reviewer.md +17 -0
  63. package/superpowers/skills/subagent-driven-development/SKILL.md +18 -18
  64. package/superpowers/skills/subagent-driven-development/re-review-prompt.md +1 -1
  65. package/superpowers/skills/subagent-driven-development/scripts/review-package +53 -46
  66. package/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +82 -40
  67. package/superpowers/skills/subagent-driven-development/scripts/task-brief +43 -41
  68. package/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +2 -2
  69. package/superpowers/skills/systematic-debugging/root-cause-tracing.md +1 -1
  70. package/superpowers/skills/test-driven-development/SKILL.md +10 -0
  71. package/superpowers/skills/using-superpowers/SKILL.md +2 -0
  72. package/superpowers/skills/using-superpowers/references/claude-code-tools.md +29 -0
  73. package/superpowers/skills/using-superpowers/references/muse-tools.md +35 -0
  74. package/superpowers/skills/writing-plans/SKILL.md +30 -9
  75. package/superpowers/skills/writing-skills/SKILL.md +4 -2
  76. package/superpowers/skills/writing-skills/graphviz-conventions.dot +171 -171
@@ -61,8 +61,8 @@ const adapters = [
61
61
  require('./claude-code'),
62
62
  ];
63
63
 
64
- // superpowers 部署白名单:仅装 openspec 工作流硬依赖 + 方法论基底(源仓库仍保留全量 14 个,
65
- // 供 cbb update --upstream-superpowers 维护;砍掉的与 openspec 工作流重叠或属低频场景)
64
+ // superpowers 部署白名单:仅装 openspec 工作流硬依赖 + 方法论基底(源仓库仍保留全量 15 个,
65
+ // 供 cbbm update --upstream-superpowers 维护;砍掉的与 openspec 工作流重叠或属低频场景)
66
66
  const SUPERPOWERS_WHITELIST = [
67
67
  'writing-plans', // openspec apply:生成 plan.md(schema.yaml 引用)
68
68
  'subagent-driven-development', // openspec apply:执行 plan.md(schema.yaml 引用)
@@ -1981,11 +1981,50 @@ async function uninstall() {
1981
1981
  console.log(`\n✅ 卸载完成!共移除 ${removed} 个文件/目录\n`);
1982
1982
  }
1983
1983
 
1984
+ // ── 上游版本检查 ──────────────────────────────────────────────
1985
+
1986
+ /**
1987
+ * 检查 openspec / superpowers 是否有上游新版本(只读,不改动任何文件)。
1988
+ * 供 cbbm check-upstream 调用。
1989
+ */
1990
+ async function checkUpstream() {
1991
+ const results = await Promise.allSettled([
1992
+ openspec.checkUpstream().then(r => ({ name: 'openspec', ...r })),
1993
+ superpowers.checkUpstream().then(r => ({ name: 'superpowers', ...r })),
1994
+ ]);
1995
+
1996
+ let outdated = false;
1997
+ for (const r of results) {
1998
+ if (r.status === 'rejected') {
1999
+ log(`检查失败: ${r.reason.message}`, 'error');
2000
+ continue;
2001
+ }
2002
+ const { name, current, latest, outdated: isOutdated } = r.value;
2003
+ if (!latest) {
2004
+ log(`${name}: 无法获取上游版本`, 'warn');
2005
+ continue;
2006
+ }
2007
+ if (!current) {
2008
+ log(`${name}: 本地无 pin(上游最新 ${latest})`, 'warn');
2009
+ outdated = true;
2010
+ } else if (isOutdated) {
2011
+ log(`${name}: ${current} → ${latest}(有新版本)`, 'warn');
2012
+ outdated = true;
2013
+ } else {
2014
+ log(`${name}: ${current} 已是最新`, 'success');
2015
+ }
2016
+ }
2017
+
2018
+ if (outdated) {
2019
+ log('升级方式:修改对应 .version 的 pin 后,执行 cbbm update --upstream-openspec / --upstream-superpowers', 'info');
2020
+ }
2021
+ }
2022
+
1984
2023
  // ── CLI 入口 ──────────────────────────────────────────────
1985
2024
 
1986
2025
  // 入口身份:cbb(用户命令) / cbbm(内部命令,由流程、hook、Agent 技能调用)
1987
2026
  const ENTRY = process.env.CBB_ENTRY === 'cbbm' ? 'cbbm' : 'cbb';
1988
- const INTERNAL_COMMANDS = ['check-update', 'wiki', 'wp'];
2027
+ const INTERNAL_COMMANDS = ['check-update', 'check-upstream', 'wiki', 'wp'];
1989
2028
  const UPSTREAM_FLAGS = ['--upstream-superpowers', '--upstream-openspec'];
1990
2029
 
1991
2030
  const args = process.argv.slice(2);
@@ -2024,11 +2063,11 @@ switch (command) {
2024
2063
  const upstreamSuperpowers = restArgs.includes('--upstream-superpowers');
2025
2064
  const upstreamOpenspec = restArgs.includes('--upstream-openspec');
2026
2065
  if (upstreamSuperpowers || upstreamOpenspec) {
2027
- // 维护者选项:从 GitHub 拉取上游原生内容到本包源仓库(发布流程用)
2066
+ // 维护者选项:按 .version 的 pin 重新拉取上游原生内容到本包源仓库(发布流程用)
2028
2067
  if (upstreamSuperpowers) {
2029
2068
  superpowers.fetchLatestSkills().then(result => {
2030
2069
  if (result.skipped) {
2031
- log(`superpowers skills 已是最新 (${result.sha.slice(0, 8)})`, 'success');
2070
+ log(`superpowers skills 已是最新 (${result.tag})`, 'success');
2032
2071
  }
2033
2072
  const validation = superpowers.validateSkills();
2034
2073
  if (!validation.valid) {
@@ -2044,22 +2083,13 @@ switch (command) {
2044
2083
  }
2045
2084
  if (upstreamOpenspec) {
2046
2085
  openspec.fetchLatestOpenSpec().then(result => {
2047
- if (!result.skipped) {
2048
- const validation = openspec.validateDeployed();
2049
- if (!validation.valid) {
2050
- log(`部署不完整,缺失: ${validation.missing.join(', ')}`, 'error');
2051
- process.exit(1);
2052
- }
2053
- log(`openspec 工作流完整性校验通过`, 'success');
2054
- } else {
2055
- const validation = openspec.validateDeployed();
2056
- if (!validation.valid) {
2057
- log(`本地 openspec 工作流不完整,请重新运行 cbb update --upstream-openspec:`, 'error');
2058
- for (const m of validation.missing) log(` - 缺失 ${m}`, 'error');
2059
- process.exit(1);
2060
- }
2061
- log(`openspec 工作流完整性校验通过`, 'success');
2086
+ const validation = openspec.validateDeployed();
2087
+ if (!validation.valid) {
2088
+ log(`部署不完整,缺失: ${validation.missing.join(', ')}`, 'error');
2089
+ for (const m of validation.missing) log(` - 缺失 ${m}`, 'error');
2090
+ process.exit(1);
2062
2091
  }
2092
+ log(`openspec 工作流完整性校验通过`, 'success');
2063
2093
  }).catch(err => {
2064
2094
  log(`更新失败: ${err.message}`, 'error');
2065
2095
  process.exit(1);
@@ -2082,6 +2112,12 @@ switch (command) {
2082
2112
  case 'check-update':
2083
2113
  require('../utils/check-update.js');
2084
2114
  break;
2115
+ case 'check-upstream':
2116
+ checkUpstream().catch(err => {
2117
+ log(err.message, 'error');
2118
+ process.exit(1);
2119
+ });
2120
+ break;
2085
2121
  case 'wp':
2086
2122
  require('../wiki/index.js').publish(restArgs);
2087
2123
  break;
@@ -2113,11 +2149,12 @@ function showHelp() {
2113
2149
  @jspg-ai/coding-bb v${pkg.version} — cbbm:内部命令(由流程 / hook / Agent 技能调用)
2114
2150
 
2115
2151
  cbbm check-update 版本检查(用户级 hook 每日自动触发)
2152
+ cbbm check-upstream 检查 openspec / superpowers 是否有上游新版本
2116
2153
  cbbm wiki / cbbm wp Wiki 查询与发布(AI 通过技能调用)
2117
2154
 
2118
- 维护者选项(拉取上游原生内容到本包源仓库):
2119
- cbbm update --upstream-superpowers GitHub 拉取最新 superpowers skills
2120
- cbbm update --upstream-openspec GitHub 拉取最新 OpenSpec 工作流
2155
+ 维护者选项(按 .version 的 pin 重新拉取上游原生内容到本包源仓库):
2156
+ cbbm update --upstream-superpowers pin tag 拉取 superpowers skills(走镜像)
2157
+ cbbm update --upstream-openspec pin 版本从 npmmirror 渲染 OpenSpec 工作流
2121
2158
  `);
2122
2159
  return;
2123
2160
  }