前言¶
在終端裏用 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 更新按同一劇本執行,降低漏步與亂序合併的風險。