SuperAPI AI 工具集

using-jj-workspaces

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:帮助用户在 jj(Jujutsu)版本控制下创建隔离的 workspace,以便并行开发、测试改动或做实验而不影响主工作区。

主要能力与流程:

  1. 目录选择:优先检查项目根目录是否存在 .workspaces/ 或 workspaces/;其次查看 CLAUDE.md 等项目文档中的偏好;都不存在时询问用户选择项目内目录或全局位置(如 ~/workspaces/),不自行假设。
  2. 安全校验:若使用项目内目录,检查 .gitignore(或 .jjignore);若未包含该目录,需执行 echo "workspaces/" >> .gitignore(或 .workspaces/),并用 jj describe -m "gitignore: Add workspaces directory" 提交。
  3. 创建 workspace:用 jj workspace add "$WORKSPACE_PATH",路径由项目名与分支/特性名拼接。jj 会自动创建目录、建立跟踪当前仓库的新 workspace 及新的工作副本提交。
  4. 项目初始化:按检测到的项目类型运行安装,如 package.json → npm/yarn/pnpm install;Cargo.toml → cargo build;pyproject.toml → poetry install 或 pip install -e .;flake.nix → nix develop;Gemfile → bundle install;go.mod → go mod download。
  5. 基线验证:运行项目测试(如 npm test、cargo test、pytest、nix flake check),若失败需报告并等待用户明确批准后再继续。
  6. 状态汇报:给出 workspace 路径、执行的安装命令、基线测试结果,以及切换/返回/列出 workspace 的命令。

常用命令:jj workspace add <path>、jj workspace list、jj workspace forget <name>(不删除文件)、jj workspace root、jj workspace update-stale。

限制与注意:jj workspace 与 git worktree 不同,共享同一 operation log,各自有独立工作副本提交,改动互不影响,无需指定分支,可用 @ 引用当前 workspace 的工作副本提交。项目本地目录必须通过 .gitignore 校验,基线测试失败不得擅自继续。