前言¶
改完代码、跑完测试,接下来往往是一串固定动作: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