分支变更合并助手
将当前会话的主题分支安全合并回基础分支。
技能明确禁止未经批准的强制推送、跳过 hooks、改写或丢弃提交,并在冲突不确定时要求询问用户;但会直接提交当前工作树未提交变更并在主工作树执行 merge,缺少一般性的执行前确认、数据/路径影响说明和成功后的回滚方案,因此扣分。MIT、Microsoft 归属和仓库来源可追溯,但仅提供治理证据,不能补足操作授权缺口。
工作流给出了状态检查、合并、冲突列举、暂存、提交和结果验证等关键路径,失败时对冲突有一定反馈;但依赖未提供的 /commit 技能,未说明分支、工作树路径或命令失败时的处理,也没有覆盖异常状态的测试证据。静态评估且无执行复现,按上限保守扣分。
名称、触发描述和目标场景清晰,适用于把当前 session 的 topic branch 合并回 base branch;但依赖提示中的上下文块、当前 worktree 与 main worktree 结构,未明确非适用场景、权限前提或语义触发边界。它是本地 Git 操作,不依赖海外在线服务,中文用户可通过命令使用,但文档没有中文说明。
结构简洁,包含目标、准则、工作流和验证步骤,并明确若干限制;仓库 README、LICENSE、package.json 提供了 MIT、Microsoft 归属、版本和仓库来源。但技能本身没有安装/依赖说明、示例、FAQ、已知限制、变更记录或维护责任/更新路径,因此扣分。
核心目标和命令序列足够支持一次常规合并,并包含合并后清洁状态和祖先关系验证;但自动提交未提交变更、对提交技能的依赖、异常处理不完整,且没有输出格式或结果报告要求。静态读取无法验证实际可用性,按 effectiveness 不超过 7 的限制评分。
技能中的命令、分支关系和验证条件具有审计性,仓库文件也能核对许可证和基本治理信息;但没有该技能专属测试、CI 覆盖或第三方执行结果,提供的 CI 证据与 merge 技能关键路径无关。静态评估下只能给有限分数。
- 执行前应明确确认将提交当前工作树的未提交变更,并确认目标主工作树、源分支和目标分支。
- /commit 技能未随本材料提供,依赖其行为和可用性;应补充缺失依赖时的可诊断失败信息。
- 成功合并后的回滚步骤、非冲突命令失败处理以及提交内容审查流程未定义。
它能做什么 & 适用场景
该技能用于把当前工作树中的主题分支合并到主工作树中的合并基础分支。它会先检查未提交变更,并在需要时调用 /commit 技能提交变更。随后,它在主工作树中执行 Git 合并,并处理或报告冲突。合并完成后,它会检查主工作树是否干净,并验证主题分支是否已成为基础分支的祖先。
读取当前工作树的 Git 状态;若存在未提交变更,调用 /commit 技能;使用 git -C <main-worktree-path> merge <topic-branch> 执行合并;列出冲突文件并在解决后暂存;必要时创建合并提交;检查主工作树状态,并使用 git merge-base --is-ancestor 验证主题分支是否已合并。
- 开发者在隔离工作树中完成主题分支开发后,需要将成果合并回主工作树。
- 团队成员希望在合并前先处理当前工作树中的未提交变更。
- Git 合并产生冲突,需要列出冲突文件并在保留双方意图的前提下解决。
- 维护者需要在合并后确认主工作树干净且主题分支确实已并入。
优缺点一览
- 覆盖提交检查、分支合并、冲突处理和结果验证的完整流程。
- 明确禁止强制推送、跳过推送钩子以及未经询问重写或丢弃提交。
- 使用主工作树路径执行合并,适合多工作树协作。
- 依赖 Git、主工作树路径以及源分支和目标分支等上下文信息。
- 未提供自动化测试或平台兼容性验证证据。
- 遇到不确定的冲突解决方案时会暂停并请求用户指导。
- 未说明技能在不同客户端中的安装和触发方法。
如何安装
源材料只说明该技能位于 microsoft/vscode 仓库的 src/vs/sessions/skills/merge/SKILL.md。未提供将该文件安装到特定客户端技能目录的步骤,因此具体安装位置和命令未有文档说明。
如何使用
在包含主题分支的当前工作树中触发该技能,并提供上下文中的源分支、目标分支和主工作树路径。例如:"将当前会话的工作合并回基础分支。" 具体触发方式未在源材料中说明。