用途:ship-it 用于把已提交的代码推送到 GitHub 并自动创建 Pull Request(PR),覆盖前置检查、分支处理、推送和 PR 生成。它不负责提交代码,本地提交与质量门禁由 checkpoint 技能完成,两者配合使用:先用 checkpoint 在本地提交,再用 ship-it 把代码送到 GitHub 供评审。
主要能力与流程:先做前置检查,确认 GitHub CLI 是否安装(gh --version,缺失时按平台尝试安装,如 Windows 用 winget install --id GitHub.cli、macOS 用 brew install gh)、是否已认证(gh auth status,未登录则提示运行 ! gh auth login 后重试)、是否存在 origin 远程(git remote -v)。随后检测环境:用 git branch --show-current 获取当前分支,用 gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name' 动态获取默认分支,用 git status --porcelain 检查未提交改动。若有未提交改动,会要求先运行 /checkpoint。接着检查未推送提交(git log @{upstream}..HEAD --oneline 或 git log origin/{default_branch}..HEAD --oneline),无未推送提交则停止。分支处理上,若已在功能分支则直接使用;若在默认分支,则根据提交信息生成带 feat/、fix/、refactor/、chore/、docs/ 前缀的 kebab-case 分支名并 git checkout -b 创建。之后 git push -u origin {branch_name} 推送,用 gh pr view 检查是否已有 PR,避免重复创建,最后用 gh pr create 生成标题(70 字符内)和简短正文(2-4 条要点)并报告分支、PR 编号、标题与 URL。
限制与注意:不运行 lint、类型检查或构建,不提交任何内容,只推送已有提交并创建 PR;不执行破坏性 git 操作(不用 --force、不 reset --hard);默认分支需动态检测,不硬编码 main 或 master;PR 正文保持简短;创建前必须检查是否已有打开的 PR。若 gh 未安装或未认证,需先帮助用户完成配置再继续。