前言¶
在终端里用 gh 开 PR、看 CI,步骤本身不复杂;一旦改成 Stacked PR(多条依赖链、逐条 squash 进 main),就要反复 rebase、force-push、改 base,还要保证合并顺序不错。漏一步就会出现「子 PR 还指着已合并的父分支」或合错顺序。Coding Agent 能跑 shell,但如果没有固定剧本,很容易跳过某次 rebase 或 base 更新。
下面介绍 Callstack 在 agent-skills 仓库中提供的 github Skill:把「通过 gh CLI 操作 GitHub」写成可复用的模式,尤其把 Stacked PR 整条链路的操作顺序固化下来。
这是什么¶
github 是一份面向 Coding Agent 的 Skill(通用 SKILL.md 格式),由 Callstack 维护,在 officialskills.sh 上归类为官方开发类 Skill。
官方说明其定位为:提供通过 gh CLI 使用 GitHub 的模式(patterns),覆盖 Pull Request 创建、Stacked PR 工作流、squash merge、rebase 以及仓库自动化;面向需要复杂分支策略或依赖 PR 链路的团队。
与「每次口头叮嘱 Agent 记得 rebase」相比,该 Skill 强调:Stacked PR 合并通常需要为链上每个 PR 手动 rebase、force-push 和更新 base——Skill 把这些步骤编码为固定顺序,避免遗漏或乱序合并。
核心功能¶
以下能力均来自官方页面「What This Skill Does」与「When to use it」,未超出其描述范围。
- Pull Request 创建:从终端创建 PR,并保持标题、正文格式一致。
- Stacked PR 工作流:处理依赖 PR 链;将一整条 stacked PR 以多个独立 squash commit 合入
main。 - Rebase 与 base 维护:父 PR 合并后,对依赖分支 rebase;目标分支变化后,更新某 PR 的 base branch。
- Squash merge:在合并策略涉及 squash 时,按 Skill 中的模式操作。
- 状态与 CI:在 shell 内查看 PR 状态与 CI 结果,无需切到浏览器。
- 仓库自动化:涵盖与 gh CLI 相关的仓库自动化模式(具体子项以 Skill 内
SKILL.md为准)。
安装与启用¶
官方给出的安装方式如下。
npx skills add https://github.com/callstackincubator/agent-skills --skill github
上述命令从 Callstack 的 agent-skills 仓库安装名为 github 的 Skill。官方页面同时说明:也可以把下面链接发给 Coding Assistant,请其代为安装。
https://github.com/callstackincubator/agent-skills/tree/main/skills/github
启用后,Agent 会加载该 Skill 中的指令与流程;实际执行仍依赖本机已安装并完成认证的 GitHub CLI(gh)。官方资料未单独列出 Cursor、Codex CLI、Claude Code 的差异配置,统一以 npx skills add 或粘贴仓库链接安装即可。
典型用法¶
官方未在索引页展开完整 SKILL.md 命令清单,但明确了五类典型意图。实践中可在已安装 Skill 的会话里,用自然语言对齐这些场景,由 Agent 按 Skill 内编码的顺序调用 gh 与 git 操作。
1. 将 Stacked PR 链逐条 squash 进 main
说明你要合并的是一条 stacked 链,且希望每条 PR 在 main 上对应一个 squash commit。Agent 应按 Skill 规定的顺序处理链上各 PR,避免跳过 rebase 或合错顺序。
2. 父 PR 合并后 rebase 子分支
当链中上一级 PR 已合并,说明当前分支依赖关系,请 Agent 对下游分支做 rebase(及 Skill 要求的后续 push、base 更新)。
3. 从终端创建格式统一的 PR
提供分支名、标题与正文要点,要求通过 gh 创建 PR,并符合 Skill 约定的 title/body 格式。
4. 在 shell 查看 PR 与 CI
给出 PR 编号或分支,请 Agent 用 gh 查询 PR 状态与检查结果,便于在合并前确认 CI。
5. 目标分支变更后更新 PR base
当 PR 的合并目标或上游分支已变,说明需要把某 PR 的 base branch 改到正确分支,由 Agent 按 Skill 流程更新。
以上场景的共同点是:你描述目标,Agent 执行 Skill 里写死的步骤序列,而不是临时拼凑命令。
适用场景与注意¶
适合谁
- 团队已使用或计划使用 Stacked PR / 依赖 PR 链,且希望在 Agent 辅助下减少手工漏步。
- 日常已用
gh管理 PR,希望 Agent 遵循同一套合并、rebase、base 更新习惯。 - 需要在终端完成 PR 创建、状态查看与部分仓库自动化,而不是完全依赖 GitHub Web UI。
限制与注意
- 前置条件是 gh CLI 可用且对目标仓库有权限;Skill 本身不替代 GitHub 账号与仓库权限配置。
- Stacked PR 链路仍可能涉及 force-push 等敏感操作,执行前应在 Skill 引导的步骤中确认分支与远程状态;官方说明的重点是「顺序固化」,不是取消人工判断。
- 安装源为
callstackincubator/agent-skills仓库中的githubSkill;若本地仓库目录结构与官方链接不一致,应以安装命令与 officialskills.sh 页面 为准。
结尾¶
github Skill 把 Callstack 团队在复杂 PR 链路上的操作顺序沉淀给 Agent,核心价值是:在 gh CLI 之上,让 Stacked PR 的 squash、rebase 与 base 更新按同一剧本执行,降低漏步与乱序合并的风险。