用途:Ship 用于把当前已暂存的改动提交、推送,并按需创建或更新 Pull Request。当用户说 ship、ship it、ship changes、commit push 等时触发。
主要能力与流程:开始时用 TaskCreate 为各阶段建任务,包括确定意图、按需建分支、暂存未暂存改动、运行 /commit-rules 技能、提交、按需推送、按需创建或更新 PR。第一步检测仓库状态:用 gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name' 取默认分支,查看当前分支及是否跟踪上游、当前分支是否已有 PR(gh pr view),并用 git log --first-parent origin/<default-branch> -n 30 --pretty=%s 判断历史以 PR 为主还是直接提交。随后用 AskUserQuestion 让用户选择:提交+推送+创建/更新 PR、提交+推送、仅提交;并按仓库情况推荐。若用户拒绝则保持暂存不提交。
按需建分支:若选择创建 PR 且当前在默认分支,建议分支名并确认后执行 git checkout -b <branch-name>。暂存检查:运行 git status,按路径暂存属于本次改动集的文件;若同一文件含无关改动,可写 git diff <file> 为补丁、剔除无关改动后用 git apply --cached --recount <patch> 暂存。提交前必须运行 /commit-rules 技能加载提交信息规则,再提交已暂存改动。若因 pre-commit 钩子失败,修复或运行项目格式化/检查脚本后按路径重新暂存再试。推送执行 git push。创建 PR 运行 /create-pr,更新 PR 运行 /update-pr;若 /create-pr 只交出正文文件而未发布,需报告路径且说明未开 PR。
限制与规则:每次提交前必须加载 /commit-rules;绝不暂存或提交含密钥的文件(.env、credentials、API keys),检测到需警告;分支名不得引用 .turbo/ 内容(文件名、验收标准、步骤号、标题),因其被 gitignore,引用对他人不可读。