Files
CraftKit/plugins/git/skills/integrate/SKILL.md
T

3.2 KiB

name, description
name description
integrate 评估两个 Git 分支的集成风险,并在用户逐步确认后通过隔离 worktree 准备、验证、发布和清理预集成分支。适用于合并前验证、准备 MR/PR 或关闭预集成 worktree;直接修改目标分支、一键推送或未经审查处理冲突不应触发本 Skill。

Git 分支集成

在不修改源分支和目标分支引用的前提下准备可审查的预集成分支。优先读取当前项目的 AGENTS.md、.craftkit/project.json、.craftkit/standards/ 和贡献指南;不得假设默认分支、版本分支、远程、托管平台或审批角色。

选择阶段

  • assess:只读比较分支、预判冲突和识别交付风险。执行时读取 评估规则。
  • prepare:在独立 worktree 中创建预集成分支、执行 merge 并验证。执行时读取 准备规则。
  • publish:推送预集成分支并准备 MR/PR。执行时读取 发布规则。
  • cleanup:本地交付或发布完成后关闭独立 worktree。执行时读取 Worktree 生命周期。

用户要求“集成”但未明确阶段时,从 assess 开始。前一阶段的授权不能自动扩展到后一阶段。

不可跨越的边界

  • 源分支和目标分支只作为输入引用;记录操作前哈希,结束时复核均未变化。
  • 不在用户当前主工作区执行 merge,使用明确路径的独立 worktree。
  • fetch、worktree 创建、分支创建、merge、冲突暂存、commit、push 和创建 MR/PR 分别展示准确命令并取得对应确认。
  • 工作区不干净、引用不可解析、已有 worktree 冲突或分支归属不清时停止写操作。
  • 不自动使用 ours、theirs、rebase、reset、stash、强制推送或历史改写。
  • 不直接把预集成分支合入目标分支,也不删除预集成分支。
  • Worktree 生命周期结束后必须进入 cleanup 门禁;未确认准确路径、状态、HEAD 和分支引用前不得移除,也不得使用 --force。
  • 预集成是否合格以目标分支到预集成分支的真实差异为准,不能只凭 merge 输出、分支名、提交数量或测试通过判断。

环境和本地配置

评估源目标差异中的环境配置、本地配置、机器配置、.craftkit/local/** 和 .craftkit/cache/**。命中后默认暂停 prepare 或 publish,列出文件和风险。

只有适用的 AGENTS.md、.craftkit/agents/ 或 .craftkit/standards/ 明确要求交付,并经用户再次确认,才可继续;私钥、真实密钥和检测到的凭据始终阻断。共享的 .craftkit/agents/**、standards/**、knowledge/**、handoff/** 和 project.json 按普通项目变更审查。

完成标准

交付结果只能是以下之一:

  • 只读集成评估报告;
  • 本地隔离且已验证的预集成分支;
  • 经独立授权推送的预集成分支及 MR/PR 建议;
  • 生命周期已经结束并安全移除额外 worktree,同时保留预集成分支和提交。

报告源、目标、预集成分支和对应哈希,列出冲突处理、验证结果、环境配置判断及仍需人工完成的动作。