前言¶
改完代碼、跑完測試,接下來往往是一串固定動作:git add、git commit、git 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(name、description)與 Markdown 正文指令
需要說明的是,openai/skills 倉庫首頁已標註爲 deprecated,後續 Codex 插件體系會遷移至 openai/plugins;但 yeet 的 SKILL.md 原文仍可訪問,JetBrains 等生態也有同名 Skill 的鏡像引用。本文以 OpenAI 官方 curated 版本爲準。
核心功能與亮點¶
根據官方 SKILL.md,yeet 覆蓋的能力可以分幾塊來看:
1. 完整 Git 發佈鏈路¶
Agent 會按順序執行:
- 確認當前分支;若在
main/master或倉庫默認分支上,先git checkout -b "{description}"建新分支 git status -sb查看狀態,再git add -A暫存全部變更git commit -m "{description}"用簡短描述提交- 若尚未跑過檢查,執行項目檢查;因缺依賴失敗時,安裝依賴並重試一次
git push -u origin $(git branch --show-current)推送並設置上游- 用
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 只依賴 git 和 gh——幾乎每個 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
需要注意的限制:
- 必須顯式觸發——Agent 不會在你沒要求時擅自 commit 或 push(這與許多項目的安全規範一致)。
git add -A暫存全部變更——若有不想提交的文件,先自行.gitignore或手動調整,再讓 Agent 執行 yeet。- 新 PR 默認爲 Draft——方便你最後審一遍 diff;已有 PR 不會被改回 Draft。
- 依賴
gh與 GitHub——GitLab、Gitee 等平臺不適用。 - openai/skills 倉庫已 deprecated——長期維護可關注 OpenAI Plugins 文檔;短期仍可直接拷貝 SKILL.md 使用。
- 推送失敗時的重試——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