yeet:OpenAI 官方 Skill,一句話跑完 stage → commit → push → 開 PR

前言

改完代碼、跑完測試,接下來往往是一串固定動作:git addgit commitgit push,再打開瀏覽器或終端用 gh pr create 填標題和描述。步驟本身不難,但在 AI 輔助編程場景裏,Agent 幫你改完文件後,你還得再口述一遍「幫我提交併開個 PR」——中間任何一步漏掉、PR 描述寫得太泛、或者分支上已經有 PR 卻又重複創建,都會打斷節奏。

yeet 是 OpenAI 在 openai/skills 倉庫 .curated 目錄下維護的一個 Agent Skill。名字來自網絡梗(大意是「一把扔出去」),功能卻很落地:當你明確要求走完整 Git 發佈流程時,Agent 按 SKILL.md 裏的步驟,藉助 GitHub CLI(gh)依次完成暫存、提交、推送,並創建或更新 Pull Request。它屬於通用的 SKILL.md 格式,可在 Codex、Cursor、Claude Code 等支持 Agent Skills 的工具中使用。

yeet 是什麼

yeet 的定位可以概括爲一句話:

僅在用戶明確要求時,使用 GitHub CLI(gh)一次性完成 stage、commit、push 並打開 GitHub Pull Request。

來源與歸屬:

  • 維護方:OpenAI,收錄於官方技能目錄 skills/.curated/yeet
  • 官方地址:https://github.com/openai/skills/tree/main/skills/.curated/yeet
  • 許可:Apache License 2.0(見目錄內 LICENSE.txt
  • 格式:標準 SKILL.md,含 YAML frontmatter(namedescription)與 Markdown 正文指令

需要說明的是,openai/skills 倉庫首頁已標註爲 deprecated,後續 Codex 插件體系會遷移至 openai/plugins;但 yeet 的 SKILL.md 原文仍可訪問,JetBrains 等生態也有同名 Skill 的鏡像引用。本文以 OpenAI 官方 curated 版本爲準。

核心功能與亮點

根據官方 SKILL.md,yeet 覆蓋的能力可以分幾塊來看:

1. 完整 Git 發佈鏈路

Agent 會按順序執行:

  1. 確認當前分支;若在 main / master 或倉庫默認分支上,先 git checkout -b "{description}" 建新分支
  2. git status -sb 查看狀態,再 git add -A 暫存全部變更
  3. git commit -m "{description}" 用簡短描述提交
  4. 若尚未跑過檢查,執行項目檢查;因缺依賴失敗時,安裝依賴並重試一次
  5. git push -u origin $(git branch --show-current) 推送並設置上游
  6. gh 創建或更新 PR,並修正標題與正文

2. 智能 PR 模板感知

2026 年 5 月,OpenAI 對 yeet 做過一次重要更新(commit 590b49e),使其模板感知分支感知。創建 PR 前,Agent 會從倉庫根目錄按優先級查找模板:

  • .github/pull_request_template.md
  • .github/PULL_REQUEST_TEMPLATE.md
  • .github/pull_request_template/ 下的 *.md
  • .github/PULL_REQUEST_TEMPLATE/ 下的 *.md

若找到唯一模板,讀取後通過 gh pr create --template 套用;若多個模板並存,會停下來詢問用戶選哪一個;沒有模板時,使用 Skill 內置的 fallback 結構(Why / What Changed)。

3. 避免重複 PR,保留審查狀態

推送後會檢查當前分支是否已有 PR:

gh pr view "$(git branch --show-current)" --json number,isDraft,url
  • 已有 PR:原地更新標題和描述,不會再建一條,也不會改變現有 PR 的 draft / ready-for-review 狀態
  • 尚無 PR:創建草稿 PR--draft),後續再編輯標題與正文

這一點對「同一分支多次 push、持續迭代」的場景很實用。

4. 規範的 PR 標題與正文

Skill 內嵌了 Conventional Commits 風格的 PR 標題指引,例如:

feat: add hat wobble
^--^  ^------------^
|     |
|     +-> 現在時態的摘要
|
+-------> 類型:chore, docs, feat, fix, refactor, style, test

PR 正文強調先寫 Why(動機與影響),再寫 What Changed(淨變更)。若倉庫模板要求 Verification 章節,只在有真實行爲證據時填寫,避免用「跑了 lint / 測試通過」之類空泛內容湊數。

5. 名字夠梗,門檻夠低

相比需要理解 MCP、瀏覽器自動化或部署平臺的 Skill,yeet 只依賴 gitgh——幾乎每個 GitHub 開發者本機都有。名字 memorable,觸發方式也清晰(見下文注意事項),屬於「裝完就想試」的類型。

前置條件

yeet 啓動前,Skill 要求 Agent 先驗證兩件事:

1. 已安裝 GitHub CLI

gh --version

未安裝則提示用戶安裝 GitHub CLI 並停止。

2. 已完成 gh 認證

gh auth status

未登錄則提示運行 gh auth login,並重新檢查狀態。

此外,當前目錄必須是 Git 倉庫,且 remote 指向 GitHub(PR 流程依賴 gh)。

安裝與啓用

在 OpenAI Codex 中

根據 openai/skills README,curated 技能可通過內置安裝器按名稱安裝:

$skill-installer yeet

也可指定 GitHub 目錄 URL:

$skill-installer install https://github.com/openai/skills/tree/main/skills/.curated/yeet

安裝後需重啓 Codex 才能加載新 Skill。.system 目錄下的系統技能在最新版 Codex 中會自動安裝;curated 技能需手動安裝。

在 Cursor 中

Cursor 會從以下路徑自動發現 Skill(項目級或全局均可):

路徑 作用域
.cursor/skills/ 項目級,可提交到倉庫共享給團隊
~/.cursor/skills/ 用戶級,跨項目可用
.agents/skills/ 項目級,多 Agent 工具通用

手動安裝 yeet 的步驟:

mkdir -p .cursor/skills/yeet
curl -L -o .cursor/skills/yeet/SKILL.md \
  https://raw.githubusercontent.com/openai/skills/main/skills/.curated/yeet/SKILL.md

目錄名 yeet 需與 SKILL.md frontmatter 裏的 name: "yeet" 一致。保存後重啓 Cursor 或重新打開工作區,Agent 即可在對話中識別該 Skill。

在 Claude Code 等其他工具中

Claude Code 等工具通常支持將 Skill 目錄放入 .claude/skills/ 或用戶級 ~/.claude/skills/。Cursor 文檔亦說明會兼容加載 .claude/skills/.codex/skills/ 等路徑。具體目錄以各工具官方文檔爲準;核心都是「一個文件夾 + 一份 SKILL.md」。

典型用法示例

yeet 不會在 Agent 改完代碼後自動觸發。官方 description 寫得很明確:「Use only when the user explicitly asks…」。因此你需要在對話裏明確說出完整意圖,例如:

幫我把當前改動 stage、commit、push,並開一個 GitHub PR,描述是 fix login redirect loop

或更口語化:

yeet 一下,commit message 用 feat: add retry for API timeout

Agent 讀取 yeet Skill 後,大致會執行類似下面的命令序列({description} 由你的描述替換):

# 若在默認分支上,先建分支
git checkout -b "fix-login-redirect-loop"

git status -sb
git add -A
git commit -m "fix login redirect loop"

git push -u origin $(git branch --show-current)

# 無已有 PR 時,創建草稿 PR(有模板則加 --template)
GH_PROMPT_DISABLED=1 GIT_TERMINAL_PROMPT=0 \
  gh pr create --draft --fill \
  --head "$(git branch --show-current)"

# 將正文寫入臨時文件(真實換行),再編輯 PR
gh pr edit --body-file /tmp/pr-body.md

若當前分支已經有 PR,Agent 會走更新路徑,而不是 --draft 新建:

gh pr view "$(git branch --show-current)" --json number --jq '.number'
gh pr edit <number> --title "fix: login redirect loop" --body-file /tmp/pr-body.md

命名約定

官方 curated 版本的分支、提交、PR 標題默認都圍繞 {description} 展開:

對象 規則
分支名 從默認分支切出時用 {description}
Commit message 簡短 {description}
PR 標題 概括完整 diff;推薦 type(scope): summary 格式

社區鏡像(如 JetBrains/skills 中的 yeet)可能使用 codex/{description} 分支前綴或 [codex] PR 標題前綴——若你使用的是 fork 版本,以實際 SKILL.md 爲準。

適用場景與注意事項

適合誰、什麼場景:

  • 日常功能開發完,希望 Agent 一次性幫你提交併開 Draft PR,自己再去 GitHub 上改標題、加 reviewer
  • 團隊倉庫配置了 PR 模板,希望 Agent 按模板填 Why / What,而不是生成空泛描述
  • 同一 feature 分支上多次迭代,需要更新已有 PR 而非重複創建
  • 已在用 gh 管理 GitHub,希望把「最後一公里」也交給 Agent

需要注意的限制:

  1. 必須顯式觸發——Agent 不會在你沒要求時擅自 commit 或 push(這與許多項目的安全規範一致)。
  2. git add -A 暫存全部變更——若有不想提交的文件,先自行 .gitignore 或手動調整,再讓 Agent 執行 yeet。
  3. 新 PR 默認爲 Draft——方便你最後審一遍 diff;已有 PR 不會被改回 Draft。
  4. 依賴 gh 與 GitHub——GitLab、Gitee 等平臺不適用。
  5. openai/skills 倉庫已 deprecated——長期維護可關注 OpenAI Plugins 文檔;短期仍可直接拷貝 SKILL.md 使用。
  6. 推送失敗時的重試——Skill 提到若因 workflow 認證錯誤導致 push 失敗,會 pull 默認分支後重試;複雜衝突仍需人工介入。

小結

yeet 把開發者最高頻的 Git 收尾動作——暫存、提交、推送、開 PR——封裝成一份可複用的 Agent Skill 指令。它不替代 Code Review 或 CI,但能把「改完代碼到 PR 出現在 GitHub 上」這段重複勞動標準化,還兼顧 PR 模板、已有 PR 更新、Conventional 標題等工程化細節。

若你已經在用 Cursor、Codex 或 Claude Code,不妨把官方 yeet 裝進 .cursor/skills/(或對應目錄),下次改完代碼直接說一句「幫我把改動 yeet 出去」——剩下的交給 Agent 和 gh

官方 Skill 目錄:https://github.com/openai/skills/tree/main/skills/.curated/yeet

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜