
ship-it
Code commit, PR creation, merge, and issue closure workflow via GitHub CLI (gh). Triggers after a goal (GitHub Issue) implementation is complete — commit code, push branch, create PR, merge, then close the issue. Use when the user says "提交代码", "commit and merge", "创建PR", "合入", "关闭issue", "ship-it", or when a goal implementation is done and code needs to be shipped.
- Installs
- 493
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/smallnest/goal-workflow --skill ship-it- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads ship-it automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
After-Goal: 代码提交、PR 合入、Issue 关闭工作流(GitHub)
完成 GitHub Issue 实现后的标准收尾流程:提交代码 → 推送分支 → 创建 PR → 合入 → 关闭 Issue。
前置条件
- 当前 git 仓库有已实现的代码变更
- 已知 Issue 编号(如
#42) - gh CLI 已登录(
gh auth status可验证)
工作流
Step 1: 提交代码
# 1a. 检查变更状态
git status
git diff --stat HEAD
# 1b. 暂存本次 Issue 相关的文件(不要 add 不相关的文件)
git add <files related to this issue>
# 1c. 提交,commit message 关联 Issue
git commit -m "$(cat <<'EOF'
{简要描述} (#issue-number)
{可选的详细说明}
EOF
)"
关键规则:
- commit message 中包含
#issue-number以关联 Issue - 只暂存当前 Issue 相关的文件,不要混入其他变更
Step 2: 推送分支
# 如果还在 main/master 上,先创建功能分支
git checkout -b {branch-name} # 如已在功能分支则跳过
# 推送到远程
git push -u origin {branch-name}
分支命名建议:feat/issue-42-short-desc 或 fix/issue-42-short-desc
Step 3: 创建 PR
gh pr create \
--title "{简要描述}" \
--body "$(cat <<'EOF'
## Summary
- 实现内容概述
Closes #{issue-number}
## Test plan
- [ ] 测试项 1
- [ ] 测试项 2
EOF
)"
关键规则:
- PR body 中写
Closes #N或Fixes #N,合入后 GitHub 自动关闭 Issue - title 简洁,不超过 70 字符
Step 4: 合入 PR
# 4a. 查看 PR 状态(确认 checks 通过)
gh pr checks
# 4b. 合入(默认 merge commit,可选 --squash 或 --rebase)
gh pr merge --squash --delete-branch
参数说明:
--squash: 压缩为单个 commit 合入(推荐)--rebase: rebase 合入--merge: 普通 merge commit--delete-branch: 合入后删除远程分支
Step 5: 添加实现总结评论
PR 合入 / Issue 关闭时,始终在 Issue 上添加实现总结评论,方便后续直接从 Issue 回溯设计决策与代码变更。
参考 note-it 的四类结构组织总结内容:Design Decisions(设计决策)、Deviations(偏离)、Tradeoffs(权衡)、Open Questions(待确认)。某一类无内容时写 None 并简要说明。
gh issue comment {issue-number} --body "$(cat <<'EOF'
## 实现总结
**核心变更**
- {从 PR body Summary 提取的实现摘要,3-5 条 bullet}
**实现亮点(Highlights)**
- {值得强调的技术亮点:性能优化、优雅设计、复用抽象、关键测试覆盖等},或 None
**设计决策(Design Decisions)**
- {spec 模糊/未定处所做的选择及理由},或 None
**偏离(Deviations)**
- {有意偏离 spec 之处:spec 怎么说 → 实际怎么做 → 为什么},或 None
**权衡(Tradeoffs)**
- {考虑过的备选方案及最终选择的原因},或 None
**待确认(Open Questions)**
- {需用户确认的假设或后续跟进项},或 None
---
- **PR**: #{pr-number}
- **Commit**: {hash}
EOF
)"
关键规则:
- 无论是 auto-close 还是手动 close,都必须添加此评论
- 参考
note-it的四类结构(设计决策 / 偏离 / 权衡 / 待确认);某类无内容写None - 「实现亮点」提炼本次实现最值得关注的技术点(性能、设计、复用、测试等),无则写
None - 核心变更从 PR body 的 Summary 部分提取,保持简洁(3-5 条 bullet)
- 附加 PR 编号和 commit hash,方便直接跳转
- 若已通过
/note-it生成docs/issue#XXXX.html,可直接复用其四类内容,并在末尾附上该文件链接
Step 6: 手动关闭 Issue(仅当未自动关闭时)
如果 PR body 中已写 Closes #N,合入后 Issue 会自动关闭,跳过此步。否则手动关闭:
gh issue close {issue-number} --reason completed
错误处理
| 场景 | 处理方式 |
|---|---|
gh pr checks 有失败项 | 查看失败原因,修复后追加 commit 推送 |
| PR 有 merge conflict | git fetch origin main && git rebase origin/main,解决冲突后 force push |
gh pr merge 被 branch protection 阻止 | 确认 required reviews 已满足,或请 reviewer approve |
| Issue 合入后未自动关闭 | 确认 PR body 包含 Closes #N,或执行 Step 6 手动 gh issue close |
完整示例
# 创建分支并提交
git checkout -b feat/issue-42-case-model
git add cases/case.go cases/case_test.go
git commit -m "$(cat <<'EOF'
Add Case data model and Markdown read/write (#42)
Define Case struct with YAML frontmatter + Markdown body
serialization. Provide WriteCase/ReadCase/ListCases/UpdateCase.
EOF
)"
# 推送
git push -u origin feat/issue-42-case-model
# 创建 PR
gh pr create \
--title "Add Case data model and Markdown read/write" \
--body "$(cat <<'EOF'
## Summary
- Define Case struct with YAML frontmatter + Markdown body
- Implement WriteCase/ReadCase/ListCases/UpdateCase functions
- Add comprehensive test coverage
Closes #42
## Test plan
- [x] Unit tests pass
- [x] go vet / lint clean
EOF
)"
# 确认 checks 通过后合入
gh pr checks
gh pr merge --squash --delete-branch
# 添加实现总结评论(参考 note-it 四类结构)
gh issue comment 42 --body "$(cat <<'EOF'
## 实现总结
**核心变更**
- Define Case struct with YAML frontmatter + Markdown body
- Implement WriteCase/ReadCase/ListCases/UpdateCase
**实现亮点(Highlights)**
- 单文件自包含存储,读写无需外部索引,测试覆盖率 100%
**设计决策(Design Decisions)**
- Markdown body 与 YAML frontmatter 分离存储,便于人工编辑与 diff
**偏离(Deviations)**
- None — 实现与 spec 一致
**权衡(Tradeoffs)**
- 选用 frontmatter 而非独立 JSON 元数据:单文件自包含,牺牲了少量解析性能
**待确认(Open Questions)**
- None
---
- **PR**: #43
- **Commit**: abc1234
EOF
)"
# 切回主分支
git checkout main
git pull
FAQ
What does the ship-it skill do?
Code commit, PR creation, merge, and issue closure workflow via GitHub CLI (gh). Triggers after a goal (GitHub Issue) implementation is complete — commit code, push branch, create PR, merge, then close the issue. Use when the user says "提交代码", "commit and merge", "创建PR", "合入", "关闭issue", "ship-it", or when a goal implementation is done and code needs to be shipped.
How do I install ship-it?
Run npx skills add https://github.com/smallnest/goal-workflow --skill ship-it in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/ship-it/ (personal) or .claude/skills/ship-it/ (project).
Which AI agents can use ship-it?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is ship-it safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains ship-it?
It is published by smallnest in smallnest/goal-workflow. It has 493 recorded installs.
More from smallnest/goal-workflow
smell
smallnest/goal-workflow
Detect software architecture bad smells, algorithmic complexity hotspots, and anti-patterns in a codebase. Produces a detailed markdown report identifying violations of architectural principles, design patterns, code quality, and performance complexity. Triggers on: smell, code smell, architecture smell, find anti-patterns, detect bad smells, complexity analysis, 代码坏味道, 架构坏味道, 反模式, 找出坏味道, 复杂度分析.
prd
smallnest/goal-workflow
Generate a Product Requirements Document (PRD) for a new feature. Use when planning a feature, starting a new project, or when asked to create a PRD. After PRD is confirmed, use /prd-to-spec (optional) for technical design, then /to-issues to create implementable tickets. Triggers on: create a prd, write prd for, plan this feature, requirements for, spec out, 写PRD, 需求文档, 需求分析, 规格说明.
humanize-it
smallnest/goal-workflow
对指定文档进行去 AI 味的改写。自动选择最合适的人性化策略(humanizer-zh / humanize-chinese / technical-writing), 迭代改写直到效果达标或迭代 42 次为止。适用于中文文本的去 AI 化处理,包括通用文章、技术文档、学术论文等。 Use when user says: "humanize this", "去AI味", "降AIGC", "人性化改写", "改成人话", "去除AI痕迹", "humanize document", "make text human-like", "去机器味", "降低AI率", "过AIGC检测"
insight-diagram
smallnest/goal-workflow
为任意项目生成 UML 图、架构图和流程图。分析代码库后让用户选择要生成的图表类型,使用 architecture-diagram skill 渲染为 HTML+SVG,保存到 docs/ 目录。适用于任何软件项目的文档可视化。
refactor
smallnest/goal-workflow
Expert code refactoring based on Martin Fowler's catalog — improve maintainability without changing behavior. Covers code smells, composing methods, moving features, organizing data, simplifying conditionals, method calls, and generalization. Triggers on: refactor, 重构, clean up, improve code, code smell, extract method, rename, simplify.
modern-go
smallnest/goal-workflow
Modernize Go code by applying version-appropriate idioms and APIs (gofix-style transformations). Scans go.mod for the Go version, then transforms Go source files to use modern patterns—from Go 1.0 through 1.26+. Use when the user says "现代化","现代Go语言", "地道的", "idiomatic", "modernize", "modern-go", "update Go code", "gofix", or wants to upgrade Go idioms.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.