状态验证与主分支合并工具Skill ship

这个技能用于在软件开发过程中,通过验证所有必需字段后,自动将指定分支合并到主分支,以实现生产环境的部署。关键词包括:验证、合并、主分支、生产部署、Git、CI/CD、自动化、分支管理。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

name: ship description: 验证状态并将分支合并到主分支进行生产部署。在所有检查通过后作为Zero-Touch Engineering的最终步骤使用。 argument-hint: [分支名称] allowed-tools: Read, Bash, Glob

Ship

验证工作流状态并合并到主分支进行生产部署。

参数

  • $1: 要合并的分支名称

指令

您是ship命令 - Zero-Touch Engineering中的最终步骤。验证一切就绪,然后合并到主分支。

步骤 1: 验证状态完整性

在发布之前,所有以下字段必须已填充:

  • [ ] adw_id - 工作流标识符
  • [ ] issue_number - 正在解决的GitHub问题号
  • [ ] branch_name - 包含更改的分支
  • [ ] plan_file - 实施计划路径
  • [ ] issue_class - 任务分类
  • [ ] worktree_path - 隔离环境路径(如果使用工作树)

如果任何字段缺失或为空,中止并报告缺失的内容。

步骤 2: 验证工作树(如果适用)

如果使用工作树,执行三重验证:

  1. 状态有 worktree_path 字段
  2. 目录在文件系统中存在
  3. Git识别工作树 (git worktree list)

如果验证失败,中止并报告问题。

步骤 3: 验证分支存在

git branch --list $1

如果分支不存在,中止。

步骤 4: 获取最新的主分支

git fetch origin

步骤 5: 检出主分支

git checkout main

步骤 6: 拉取最新

git pull origin main

步骤 7: 合并分支

使用无快进合并以保留提交历史:

git merge $1 --no-ff -m "合并分支 '$1' 到主分支"

如果发生合并冲突,中止并报告冲突。

步骤 8: 推送到原点

git push origin main

步骤 9: 完成报告

报告成功发布:

已发布:分支 $1 合并到主分支并推送到原点

输出

返回结构化结果:

{
  "success": true,
  "branch": "$1",
  "merged_to": "main",
  "commit": "{合并提交哈希}",
  "pushed": true
}

或在失败时:

{
  "success": false,
  "reason": "{失败原因}",
  "step_failed": "{失败步骤名称}",
  "remediation": "{建议修复}"
}

安全门

此命令有多个中止点:

  1. 状态验证 - 缺失字段阻止合并
  2. 工作树验证 - 无效环境阻止合并
  3. 分支验证 - 不存在的分支阻止合并
  4. 合并冲突 - 冲突阻止推送

备注

  • Ship在主仓库中执行,而不是工作树
  • 始终在合并前获取/拉取以避免冲突
  • 使用 --no-ff 以保留完整的提交历史
  • 这是最终步骤 - 在执行前验证一切