用途:本技能用于在项目中操作 Jujutsu(jj)这一兼容 Git 的版本控制系统,仅在检测到 .jj/ 目录或明确提到 jj/jujutsu 时激活,目标版本为 jj 0.36+。
核心模型:工作副本本身就是一个提交,没有暂存区,任意 jj 命令运行时会自动快照文件变更到 @。提交有两种标识:Change ID(重写后保持稳定,字母 k–z)应优先使用;Commit ID 是内容哈希,重写后改变。历史可变,后代会自动 rebase,旧版本保留在操作日志中。Bookmark 类似分支但不会随新提交自动前进,推送前必须显式设置。冲突不阻塞提交,可稍后编辑冲突标记并用 jj st 验证。
常用用法:日常循环为 describe → 编码 → new。示例包括 jj describe -m "..."、jj new -m "..."、jj st、jj diff、jj squash、jj absorb、jj abandon @。推送先设 bookmark:jj bookmark set feat -r @,再 jj git push -b feat。恢复用 jj undo、jj op log、jj op restore <op-id>、jj evolog。
代理规则:始终用 -m 传消息,绝不调用会打开编辑器的命令(jj new、describe、commit、squash 需要 -m);禁止交互式命令(无路径的 jj split、jj squash -i、jj resolve 会挂起);变更后运行 jj st 验证;使用 Change ID;revset 一律单引号,如 jj log -r 'mine() & ::@'。可通过 JJ_CONFIG=/path/to/agent-jj-config.toml 加载代理专用配置。
适用场景:代理自动化版本控制、可变历史整理、并行代理工作区(须为同级目录)、Git 共存仓库操作。
限制:不可使用交互式命令;bookmark 不会自动前进;工作区不能创建为子目录;提交 ID 在重写后失效。其余配置细节暂未提供完整内容。