@jspg-ai/coding-bb 0.0.3-beta.21 → 0.0.3-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.
- package/cbb/dev-standards/rules/cbb-ai-behavior.md +21 -14
- package/cbb/lib/install/init.js +36 -3
- package/cbb/lib/install/workspaces.js +6 -2
- package/cbb/lib/utils/githook.js +224 -0
- package/cbb/lib/utils/gitignore.js +5 -1
- package/cbb/worktrees/_shared/scripts/check-local-state.js +114 -0
- package/cbb/worktrees/_shared/scripts/find-target-worktree.js +148 -96
- package/cbb/worktrees/_shared/scripts/install-git-hook.js +70 -0
- package/cbb/worktrees/_shared/scripts/junction-ai-config.js +127 -0
- package/cbb/worktrees/_shared/scripts/start-local.js +180 -0
- package/cbb/worktrees/skills/cbb-local-mode/SKILL.md +158 -0
- package/cbb/worktrees/skills/cbb-local-mode/scripts/check-local-state.js +114 -0
- package/cbb/worktrees/skills/cbb-local-mode/scripts/install-git-hook.js +70 -0
- package/cbb/worktrees/skills/cbb-local-mode/scripts/silence-popup.js +23 -0
- package/cbb/worktrees/skills/cbb-local-mode/scripts/start-local.js +180 -0
- package/cbb/worktrees/skills/cbb-worktree-close/SKILL.md +9 -6
- package/cbb/worktrees/skills/cbb-worktree-close/scripts/check-unarchived.js +75 -48
- package/cbb/worktrees/skills/cbb-worktree-close/scripts/find-target-worktree.js +148 -96
- package/cbb/worktrees/skills/cbb-worktree-init/SKILL.md +85 -91
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/create-branches.js +31 -6
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/create-worktrees.js +23 -3
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/install-git-hook.js +70 -0
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/junction-ai-config.js +127 -0
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/sync-repos.js +5 -1
- package/cbb/worktrees/skills/cbb-worktree-init/scripts/update-gitignore.js +17 -5
- package/cbb/worktrees/skills/cbb-worktree-push/SKILL.md +5 -5
- package/cbb/worktrees/skills/cbb-worktree-push/scripts/commit-worktrees.js +48 -12
- package/cbb/worktrees/skills/cbb-worktree-push/scripts/find-target-worktree.js +148 -96
- package/cbb/worktrees/skills/cbb-worktree-push/scripts/push-worktrees.js +45 -20
- package/config/workspace-agents.sample.md +50 -45
- package/package.json +2 -2
|
@@ -1,45 +1,50 @@
|
|
|
1
|
-
# 业务空间使用说明(AI Agent 导航)
|
|
2
|
-
|
|
3
|
-
本目录是由 `@jspg-ai/coding-bb` 初始化的**多仓库联动开发业务空间**。
|
|
4
|
-
进入本目录工作时,请先按本文件理解目录职责与协作约定,再动手。
|
|
5
|
-
|
|
6
|
-
## 核心约定
|
|
7
|
-
|
|
8
|
-
1.
|
|
9
|
-
2.
|
|
10
|
-
3.
|
|
11
|
-
4.
|
|
12
|
-
5.
|
|
13
|
-
6.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
|
21
|
-
| `.
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
| `.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
→
|
|
34
|
-
→
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
1
|
+
# 业务空间使用说明(AI Agent 导航)
|
|
2
|
+
|
|
3
|
+
本目录是由 `@jspg-ai/coding-bb` 初始化的**多仓库联动开发业务空间**。
|
|
4
|
+
进入本目录工作时,请先按本文件理解目录职责与协作约定,再动手。
|
|
5
|
+
|
|
6
|
+
## 核心约定
|
|
7
|
+
|
|
8
|
+
1. **双模式开发,用户选择制**:接到需求先问"要不要隔离/并行"——要 → **worktree 模式**(`/cbb-worktree-init <需求名>`,隔离目录、可多需求并行);不要 → **本地模式**(`/cbb-local-mode`,根与 `.codespace/<app>/` 就地切同名分支、当前会话直接干)。两模式能力对称(都能改 workspace 内容与应用代码、都强制分支隔离、交付都走 MR),agent 只给推荐,用户拍板。模式选错零代价:本地模式中途重跑 `/cbb-worktree-init` 即升级隔离(分支复用,提交随身带走)。
|
|
9
|
+
2. **基准 = `origin/main`(唯一真相源)**:`.codespace/<app>/` 是各应用的**标准本地检出(视图)**——main 检出是基准快照,本地模式下可 checkout 到需求分支暂态占用(收尾恢复)。读"main 现状"先看检出分支或用 `git show main:<path>`,不要默认工作区即基准。
|
|
10
|
+
3. **严禁直接在 main 检出上提交载荷**:分支感知 pre-commit hook 会机械拦截(workspace 仓库仅放行控制面白名单:`workspace-config.json` / `.gitignore` / `AGENTS.md` / `openspec/config.yaml` / `openspec/schemas/**`;应用仓库 main 全拦)——被拦是防线生效,不是故障;`--no-verify` 仅限用户显式要求。
|
|
11
|
+
4. **开发会话开在开发目录**:本地模式 = 当前会话原地(根检出分支后);worktree 模式 = 新会话开进 `.worktrees/worktree-<需求名>/`(AI 配置已 junction,`/opsx:*` 等命令可用)——相对路径原样生效。空间根会话保留作**控制面**(模式调度、worktree 生灭、`cbb update`)。
|
|
12
|
+
5. **远端推送唯一出口 = "提交并推送"**(`/cbb-worktree-push`,dry-run 预览 → 确认 commit 信息 → push → MR 预填链接)。worktree 创建流程零远端操作(lazy push)。
|
|
13
|
+
6. **开工前必做状态自检**:对 `cbb-local-mode` 说开工(或跑其状态自检)——干净态零交互;**遗留态(上一需求没收尾)必须先由用户决策**(继续 / 收尾 / 升级 / 丢弃)。本地模式一次只承载一个需求;并行需求走 worktree 模式(互不干扰)。
|
|
14
|
+
7. **关联应用增减只改配置**:编辑 `workspace-config.json` 的 `apps` 数组(`name` / `repo` / `side` / `desc`),然后重跑对应模式技能即幂等补齐;不要手工 `git clone` 应用仓库。
|
|
15
|
+
|
|
16
|
+
## 目录结构与职责
|
|
17
|
+
|
|
18
|
+
| 路径 | 职责 | 维护方式 |
|
|
19
|
+
|------|----------|----------|
|
|
20
|
+
| `workspace-config.json` | 关联应用清单,所有应用联动的唯一数据源 | 人工编辑(控制面白名单,可直接提交 main) |
|
|
21
|
+
| `.codespace/` | 各应用的**标准本地检出**(基准 = `origin/main`) | `cbb setup` 与技能自动 clone / fetch;本地模式可在其中**切需求分支开发**(main 检出禁改);已 gitignore,不提交 |
|
|
22
|
+
| `.worktrees/` | 需求隔离开发区(每个需求一个 `worktree-<需求名>/`,内含 AI 配置 junction) | worktree 技能自动创建 / 清理;已 gitignore,不提交 |
|
|
23
|
+
| `openspec/` | OpenSpec 工作流配置(`config.yaml` + `schemas/`) | `config.yaml`/`schemas/` 为控制面白名单(`cbb update` 部署,可直改);变更产物(`openspec/changes/`)落需求分支随 MR 合入 |
|
|
24
|
+
| `.claude/` `.qoder/` `.opencode/` `.workbuddy/` `.trae/` | AI 工具适配目录:编码规范规则、OpenSpec 命令、技能 | 由 cbb 按 setup 时选择的工具安装(**唯一物理副本在此**);worktree 内经 junction 引用同一份;已 gitignore,不提交,勿手动改 |
|
|
25
|
+
| `.cbb/` | cbb 安装清单与状态(`.managed-by-cbb`、`.last-tools`) | 由 cbb 管理;**勿手动编辑** |
|
|
26
|
+
|
|
27
|
+
## 典型流程
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
需求进来 → 选模式(agent 推荐 + 用户拍板)
|
|
31
|
+
├─ 本地模式(单线程快改):
|
|
32
|
+
│ /cbb-local-mode(自检 → 确认布局 → 根+涉及 app 就地切分支)
|
|
33
|
+
│ → 当前会话直接开发:/opsx:propose → apply → verify
|
|
34
|
+
│ → 说"提交并推送"(push 技能自动发现本地布局)→ MR 预填链接
|
|
35
|
+
│ → 验收通过 → /opsx:archive → MR 合并 → 收尾(各仓库回 main + 删分支)
|
|
36
|
+
└─ worktree 模式(并行 / 隔离):
|
|
37
|
+
/cbb-worktree-init <需求名>(建分支+worktree+AI 配置 junction,不推远端)
|
|
38
|
+
→ 开发会话开进 .worktrees/worktree-<需求名>/ → opsx 全流程
|
|
39
|
+
→ 说"提交并推送" → MR 预填链接(测试分支)
|
|
40
|
+
→ 测试环境验收 → /opsx:archive → 正式合并走公司流程
|
|
41
|
+
→ 说"关闭工作空间"(/cbb-worktree-close)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
> worktree 管理技能(init / close / push)与本地模式技能(cbb-local-mode)均以 **skill 形态**分发:既能被 AI 在对话中按意图**自动触发**(如"为 xxx 创建工作空间"、"本地模式开发"、"提交并推送"、"关闭工作空间"),也能用斜杠命令手动指定(各工具一致)。OpenSpec 命令为 `/opsx:propose`(opencode 扁平化为 `/opsx-propose`)。
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
本文件由 `@jspg-ai/coding-bb` 生成(仅缺失时写入,之后不会覆盖或删除,可自由增补团队约定)。
|
|
49
|
+
|
|
50
|
+
> ⓘ 本文件仅供导航;开发模式纪律以 cbb 安装的编码规范规则(`cbb-ai-behavior.md` 第 8 条)为准,该规则随 `cbb update` 更新。
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jspg-ai/coding-bb",
|
|
3
|
-
"version": "0.0.3-beta.
|
|
3
|
+
"version": "0.0.3-beta.23",
|
|
4
4
|
"description": "整合业界热门且高价值的工具、框架与技能,为 AI CODING AGENT 提供统一的行为准则与工作流,辅助开发者将需求高效落地为符合规范的代码",
|
|
5
5
|
"main": "cbb/lib/install/init.js",
|
|
6
6
|
"bin": {
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"scripts": {
|
|
20
20
|
"sync:shared": "node scripts/sync-shared.js",
|
|
21
21
|
"pretest": "node scripts/sync-shared.js --check",
|
|
22
|
-
"test": "node test/lib/install/cleanup.test.js && node test/lib/utils/settings.test.js && node test/lib/utils/gitignore.test.js && node test/lib/utils/version.test.js && node test/lib/install/workspaces.test.js && node test/lib/utils/checkbox.test.js && node test/lib/utils/output.test.js && node test/lib/install/cli-help.test.js && node test/lib/install/adapters.test.js && node test/lib/wiki/wiki-publish.test.js && node test/lib/wiki/wiki-parse-args.test.js && node test/lib/wiki/wiki-split.test.js && node test/lib/superpowers/superpowers.test.js && node test/worktrees/push-branches.test.js && node test/worktrees/commit-worktrees.test.js && node test/worktrees/push-worktrees.test.js && node test/worktrees/check-env-deep.test.js && node test/worktrees/create-worktrees.test.js && node test/worktrees/make-mr-urls.test.js && node test/lib/install/setup-decision.test.js && node test/lib/openspec/protected-paths.test.js"
|
|
22
|
+
"test": "node test/lib/install/cleanup.test.js && node test/lib/utils/settings.test.js && node test/lib/utils/gitignore.test.js && node test/lib/utils/githook.test.js && node test/lib/utils/version.test.js && node test/lib/install/workspaces.test.js && node test/lib/utils/checkbox.test.js && node test/lib/utils/output.test.js && node test/lib/install/cli-help.test.js && node test/lib/install/adapters.test.js && node test/lib/wiki/wiki-publish.test.js && node test/lib/wiki/wiki-parse-args.test.js && node test/lib/wiki/wiki-split.test.js && node test/lib/superpowers/superpowers.test.js && node test/worktrees/push-branches.test.js && node test/worktrees/commit-worktrees.test.js && node test/worktrees/push-worktrees.test.js && node test/worktrees/check-env-deep.test.js && node test/worktrees/create-worktrees.test.js && node test/worktrees/make-mr-urls.test.js && node test/lib/install/setup-decision.test.js && node test/lib/openspec/protected-paths.test.js"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
25
|
"cbb",
|