@cleocode/git-shim

中文文档
2026.11.1发布于 2026/11/12MITTypeScriptES Module构建来源已验证近 30 天下载 1.2万

保护CLEO代理分支(T1118)

中文使用文档
文档目录8 节
  1. 安装
  2. 激活门
  3. 环境合同
  4. CLEO_ORCHESTRATE_MERGE=1 合同(T1587/ADR-062集成)
  5. 旁通工作流程
  6. 审计记录计划a
  7. 深入防御管道
  8. 参考资料

@ cleocode/ git-shim (英语)

部分 平等机会委员会。从 root README 开始;运行 cleo <command> --help 对于任何命令.

策略-不可知论 git PATH 覆盖了栅栏代理( 工人 \\ \ 领导 \ ) 副代理人) 被引用. 提供两层强制执行:

  1. T1118 拒绝列表 ——分行流动业务 (单位:千美元)checkout, (中文(简体) ), switch, (中文(简体) ), branch -D, (中文(简体) ), worktree add, (中文(简体) ), reset --hard, (中文(简体) ), rebase, (中文(简体) ), push --force(见a/c.5/49/70,附件).
  2. T1591 边界围栏 - 相关规则与 工作树与违约模式(ADR-055)+工作树与综合 (ADR-062): (英语)
    • (a) 国家 git add 活动工作树内的必经舞台路径.
    • (b) 国家 git commit -m "<msg>" 必须嵌入 CLEO 任务ID (单位:千美元)T<NUM>) (中文(简体) ).
    • (c)) git merge 需要由 completeAgentWorktreeViaMerge (通过 CLEO_ORCHESTRATE_MERGE=1) (中文(简体) ).
    • (d) git cherry-pick <ref> 千万不要拿一个 task/T<NUM> 来源 (樱桃从工作树树枝上摘取是腐烂的融合) 路径被ADR-062所取代.

每个区块和每个绕行都被记录在 <XDG_DATA_HOME ?? ~/.local/share>/cleo/audit/git-shim.jsonl。 。 。 .

安装

闪电船作为 git 此软件包的本条目。 指挥家 实现a git 内相链接 <projectRoot>/.cleo/bin/ (或任何 shim 目录)通过 installShimSymlink(...) 并预留 产出物剂目录 PATH。 。 。 .

激活门

Shim仅在代理角色受到限制时执行:

CLEO_AGENT_ROLE=worker  # or lead, subagent

兽人(无 CLEO_AGENT_ROLE 或者说 CLEO_AGENT_ROLE=orchestrator绕过shim完全 —— 这保持 管弦乐编码路径快而无拘束.

环境合同

变量设定目的
CLEO_AGENT_ROLE管弦乐手(发作)为被限制的角色激活栅栏.
CLEO_WORKTREE_ROOT管弦乐手(发作)明确的工作树路径;自动从cwd中检测到其他路径.
CLEO_TASK_ID管弦乐手(发作)活动任务 ID; 自动出自工作树路径.
CLEO_ORCHESTRATE_MERGEcompleteAgentWorktreeViaMerge (T1587) (中文(简体) )单一用途赠款——允许 git merge. 见下文.
CLEO_ALLOW_BRANCH_OPS运算符(手工)遗产拒绝列表的单发绕道. 经审计.
CLEO_ALLOW_GIT运算符(紧急)任何T1591边界块的通用绕道. 经审计.
CLEO_AUDIT_LOG_PATH测试覆盖审计日志位置.
CLEO_REAL_GIT_PATH测试跳过 PATH 步; 使用此二进制作为真正的 git .
CLEO_SHIM_MARKER安装器( 可选)识别 shim dir 的路径碎片 。 默认 : .cleo/bin/git-shim。 。 。 .

CLEO_ORCHESTRATE_MERGE=1 合同(T1587/ADR-062集成)

packages/core/src/spawn/branch-lock.ts::completeAgentWorktreeViaMerge 这是 仅限 被制裁的入境点 git merge cLEO任务 树枝。 它必须设置 CLEO_ORCHESTRATE_MERGE=1 在洞穴中传入 产卵 git merge --no-ff 进程。 shim的边界(c)拒绝任何 其他项目 git merge 援引有限的作用.

具体(见 branch-lock.ts:830:

execFileSync('git', ['merge', '--no-ff', branch, '-m', subject], {
  cwd: gitRoot,
  encoding: 'utf-8',
  stdio: ['pipe', 'pipe', 'pipe'],
  env: { ...process.env, CLEO_ORCHESTRATE_MERGE: '1' },
});

如果您发现了需要引用的代码路径 git merge 从 有限作用上下文 其他 completeAgentWorktreeViaMerge, (中文(简体) ), 提交后续任务——不要默默设置 CLEO_ORCHESTRATE_MERGE=1 别的地方 狭义的内地是边界 可审计.

--abort, (中文(简体) ), --continue,以及 --quit 引用旗帜是例外的—— 它们不进行合并.

旁通工作流程

对于正当的紧急情况(如操作员热修,事件分解):

# One-off bypass; audit entry written to git-shim.jsonl.
CLEO_ALLOW_GIT=1 git <subcommand> ...

绕行器有完整的上下文记录(子命令、参数、cwd、角色、, 任务 d, 工作树 path 。 审查者可通过下列方式列出绕行:

jq 'select(.outcome | startswith("bypassed"))' \
  ~/.local/share/cleo/audit/git-shim.jsonl

审计记录计划a

interface AuditRecord {
  ts: string;                          // ISO 8601
  outcome: 'blocked' | 'bypassed-allow-git' | 'bypassed-orchestrate-merge';
  boundary: 'a' | 'b' | 'c' | 'd' | 'denylist';
  code: string;                        // E_GIT_OP_BLOCKED | E_GIT_BOUNDARY_*
  subcommand: string;
  args: string[];
  cwd: string;
  worktree_path: string | null;
  task_id: string | null;
  role: string | null;
  context: Record<string, string>;
}

计划为项目不可知性:下面的审计日志 ~/.local/share/cleo/audit/ 由每个CLEO管理 在主机上的项目.

深入防御管道

Git- 二进制栅栏( 此套件) 是多检查点的一层 管道:

层软件包接头
Git 二进制@cleocode/git-shim (这个)代理人的直接援引
提交 msg 钩子@cleocode/core (T1588) (法语)编辑流程输入( 无内置) -m(中文(简体) )
漂流监视器@cleocode/core (T1594) (中文(简体) )在工作树外修改的文件
预推调节@cleocode/core (T1595) (中文(简体) )推动前分行状态漂移
同步插件CI(T1598) (中文(简体) )审查时间政策错配

T1588(hook)和T1591(shim,边界b)均强制执行 承诺主题 T -ID规则。 这是蓄意深入辩护:a 禁用本地钩子的开发者仍然会通过 shim .

参考资料

  • ADR-055 — 工作树与违约代理隔离
  • ADR-062——工作树一体化 git merge --no-ff (不是樱桃点心)
  • T1118 — 原始分支锁定引擎( 密度列表)
  • T1587次列车 - completeAgentWorktreeViaMerge (套数) CLEO_ORCHESTRATE_MERGE=1(中文(简体) )
  • T1591——这一围栏(边界a/b/c/d)

版本与发布记录

@cleocode/git-shim 共发布 268 个版本,首次发布于 2026/04/23;过去 12 个月发布了 268 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2026.11.1latest2026/11/12今天
2026.11.1-rc.ci.711canary2026/11/12今天
2026.11.1-canary.122026/11/12今天
2026.11.1-canary.112026/11/12今天
2026.11.1-canary.102026/11/12今天
2026.11.1-canary.92026/11/111 天前

关于 @cleocode/git-shim 的常见问题

@cleocode/git-shim 是什么?

保护CLEO代理分支(T1118)

如何安装 @cleocode/git-shim?

在项目目录运行 npm install @cleocode/git-shim,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 git,可以用 npx git 直接运行。

@cleocode/git-shim 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cleocode/git-shim 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@cleocode/git-shim 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=24.16.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@cleocode/git-shim 可以商用吗?

@cleocode/git-shim 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@cleocode/git-shim 的下载量有多少?

根据 npm 官方下载统计,@cleocode/git-shim 在 2026/10/10 – 2026/11/08 这 30 天内被下载 12,278 次,日均约 409 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cleocode/git-shim 还在维护吗?

最新版本 2026.11.1 发布于 2026/11/12(今天);至今共发布 268 个版本,其中过去 12 个月发布了 268 个;首次发布于 2026/04/23。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。