mcpField
G
git-worktree-discipline

git-worktree-discipline

github.com/fudesign2008开发644 次安装今天更新
代码仓库

关于 git-worktree-discipline

git-worktree-discipline 是供 Agent 使用的共享技能,用于在进行重要修改前判断是否应通过 Git worktree 隔离变更。它会检查现有隔离状态和项目偏好,并引导创建工作区、完成设置及运行基线检查。

主要功能

  1. 01检测现有 worktree 隔离状态
  2. 02读取 Agent 文件中的隔离偏好
  3. 03根据项目状态建议是否隔离
  4. 04使用原生能力或 Git 创建 worktree
  5. 05执行项目设置和基线检查

适用场景

  1. 01编辑前隔离代码或文档变更
  2. 02复用现有 worktree,避免嵌套
  3. 03在新工作区检查项目基线

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fudesign2008/open-skills --skill git-worktree-discipline

安装后在 Claude Code 中输入/git-worktree-discipline确认已加载。

附带文件reference.md

详细介绍

Git 工作树使用规范

内部共享技能。在首次进行非平凡写入(文档或代码)前,可选择创建/检测隔离环境。宿主应在 dependencies 中声明此技能,并在缺失时中止。

名称说明: 有意不命名为 using-git-worktrees。仅使用 git-worktree-discipline。操作性的创建/检测/设置详情见 reference.md(灵感来自常见的工作树实践;不依赖外部技能)。

何时运行

在宿主运行中首次进行非平凡的持久写入(文档或代码)前运行。仅当此变更已处于隔离环境中,或 gate/never,或本次会话选择 lean/hotfix 就地留痕时,才跳过创建提示。

工作流程

  1. 检测 — 此变更是否已位于关联工作树中?复用该工作树(不要嵌套)。在判定为隔离环境前,区分子模块和工作树。命令见:reference.md。
  2. 确定偏好 — 在 AGENTS.md / CLAUDE.md 中查看 worktree-gate:always | never | ask。未设置 ≡ ask。
  3. 提出建议(ask / always) — 根据项目状态评估是否适用(同级目录 ../ 脚本、完整产品包、主工作树有未提交更改)。适合代码 + 单元测试;不适合未重新绑定路径的产品包。
  4. 按 gate 执行
    • never → 跳过创建;【工作区隔离跳过】escape=worktree-gate-never;reason=…
    • always → 条件允许时创建(无需询问)
    • ask → 提出建议后询问:创建 / 拒绝 / lean;不得静默创建
  5. 创建 — 如果可用,优先使用 Agent 的原生工作区/工作树功能(避免产生对运行环境不可见的虚假 Git 工作树);否则使用 Git 回退方案,在项目内被忽略的目录中创建(优先使用 .worktrees/)。使用 git check-ignore 验证忽略状态。路径优先级和失败时的回退方案见:reference.md。
  6. 设置 + 基线 — 在新工作区中,运行适合项目的安装/构建,并在项目具备相应测试时运行基线测试/类型检查;如果基线失败,报告情况并询问是继续还是调查。仅当没有适用的项目标记时,才跳过安装/基线检查。
  7. Lean/hotfix / 拒绝 — 【工作区隔离跳过】escape=lean-hotfix|user-decline;reason=…

不要替代设计审批。不要在运行期间静默销毁隔离环境。不要暗示可在工作树中一键运行完整产品包。

清理责任

验证/归档后销毁/移除 → feature-branch-closeout 可选清理。本技能可注明与创建操作对应的移除命令。

集成指南

  • 宿主:在首次写入制品/代码前添加一行——加载此技能(worktree gate + 可选隔离)。
  • 仅在清理时与 feature-branch-closeout 组合使用。
  • 优先设置 user-invocable: false。
  • 完整检测/创建/设置清单:reference.md。

评论

支持 Markdown