本文记录 2026-09-19 的个人配置,由主代理使用 safe-github-platform SKILL 处理 GitHub 平台操作。文末提供完整 SKILL.md,可直接复制。这些操作约定来自个人配置,不代表 Codex 的默认行为。

这套配置解决什么问题

代码推送完成后,可能还需要发布版本、上传程序附件、创建合并请求或查看自动化任务。这里使用 GitHub 命令行工具 gh 完成这些操作。

这套 SKILL 要求主代理先检查工具、账号、仓库和具体对象,再按用户确认的范围执行,最后查询实际结果。它由主代理直接执行,不委派专用子代理。

操作对象 用途 需要核对的内容
Release 发布一个版本及其程序附件 标签、对应提交、草稿或正式发布状态、附件名单
PR(Pull Request,合并请求) 提议将来源分支的修改合入目标分支 仓库、来源分支、目标分支、标题和正文
Issue 记录问题、建议或任务 仓库、编号、正文及拟执行的操作
Actions 查看或运行 GitHub 自动化工作流 工作流、运行编号、分支或提交、输入参数

普通 Git 暂存、提交和推送使用另一篇《Codex的Git提交与推送SKILL配置》中的 safe-git-github-workflow。Git 的凭据助手和 gh 认证分别处理,不能只凭一方可用就认定另一方也可用。

例如,“提交并推送文章”只需要 Git SKILL;“发布一个 Release 并上传程序附件”使用本文的 SKILL。如果发布前还需要推送代码,应先完成 Git SKILL 的确认、推送与核验。本文的 SKILL 不负责程序构建或服务器部署。

配置文件与调用规则

本文环境使用以下文件:

1
2
~/.codex/AGENTS.md
~/.codex/skills/safe-github-platform/SKILL.md

这里记录的是本机实际使用的位置。换到其他环境时,应先核对当前客户端列出的技能和加载目录。

SKILL.md 包含名称、适用条件和执行说明。Codex 先读取名称和描述,决定使用后再加载完整内容;因此,完整流程放在 SKILL 中,AGENTS.md 只保留调用约定即可。OpenAI Docs:构建技能

可以将以下约定加入已有的 AGENTS.md

1
2
3
4
5
6
# GitHub 平台操作

- 使用 gh 处理 GitHub Release、程序附件、PR、Issue、Actions 等操作时,使用 safe-github-platform。
- 主代理直接执行,不委派子代理;普通 Git 暂存、提交和推送使用 safe-git-github-workflow。
- 平台操作前核对工具、账号、目标仓库、具体对象及内容;只读查询不授权远端写入。
- 远端写入前说明准确对象、范围、影响和恢复方式,取得本次明确许可,再执行并核验实际结果。

文末 SKILL 中的“全局授权规则”指所在环境的操作授权要求。复制时还需保留自己环境中的授权规则;上面的调用约定明确了本文要求的确认步骤。

GitHub 平台 SKILL 的四个步骤

1. 检查工具与身份

先确认 gh 的实际路径、版本和所需子命令,只使用系统 PATH、用户级或系统级安装目录中的工具,排除项目目录中的同名程序。

Windows 下先核对运行账号。如果沙箱账号与正常登录用户不同,或无法可靠确认,应在首次认证检查前申请宿主用户环境执行。

随后确认目标主机上的登录账号和必要权限。只报告认证是否有效、账号和必要权限,不读取或输出令牌、Cookie 等原始凭据。

缺少工具、认证或权限时说明原因并停止,不自动登录、切换账号、扩大权限或运行 gh auth setup-git。获得工具执行权限,也不等于获得发布或修改远端内容的许可。

2. 核对目标与内容

在操作前确认主机、owner/repo、仓库可见性,以及具体的标签、PR 编号、Issue 编号或工作流运行 ID。命令应显式指定目标仓库,查询优先使用便于逐项核对的结构化结果。

发布文字、附件和准备展示的日志都要检查敏感信息。仓库可见性未知时按公开仓库检查;发现问题只报告类型和位置,不回显敏感值。

程序附件逐个列出准确文件名和路径,不使用通配符上传,避免把临时文件、调试资料或本地配置一起传到远端。

3. 按确认范围操作

远端写入前,说明准确对象、操作范围、影响和恢复方式,并取得本次明确许可。账号具备权限、对象已经存在或之前执行成功,都不能代替这次确认。

Release 与程序附件

先核对标签对应的提交、草稿或正式发布状态,以及待上传的附件。本文配置默认使用已有远端标签,并要求创建命令带 --verify-tag;远端没有该标签时,命令会停止。GitHub CLI:创建 Release

若需要新建标签,另行确认准确提交,不隐式采用默认分支的最新提交。同名附件不能自动覆盖。草稿和正式发布也应明确区分,因为正式发布后其他人可能获取内容,撤销不能保证收回。

PR

先确认来源分支已存在于远端,以及希望合入哪个目标分支。创建时显式指定 --head--base,避免依赖当前目录或默认值判断。

不要把 gh pr create --dry-run 当作完全只读的预演:官方文档说明它仍可能推送 Git 改动。GitHub CLI:创建 PR

创建 PR 不包含合并或删除分支的许可。需要先推送来源分支时,先执行 Git SKILL 的确认和验证流程。

Issue 与 Actions

Issue 操作需要确认具体仓库、编号和变更内容;查询不附带编辑或关闭。

触发 Actions 前明确工作流、运行的分支或提交,以及输入参数。使用 gh workflow run 手动触发时,工作流需要支持 workflow_dispatch--ref 用于选择包含工作流版本的分支或标签。GitHub CLI:运行工作流

查看运行状态不等于允许触发、重跑或取消工作流,这些操作分别按准确对象确认。

4. 核验并简报

执行后立即查询实际状态,返回准确目标、链接、结果和本次变化。

操作 应核验的结果
Release 与附件 标签和发布状态是否正确,预期附件是否存在
PR 实际来源分支、目标分支、标题和状态是否符合确认范围
Issue 对应编号的内容或状态是否按要求变化
Actions 运行对象是否正确,目前处于排队、运行中还是已完成状态

工作流已触发不代表运行成功;运行成功也不能自动证明网站部署符合预期。若任务包含部署验证,还需要检查相应结果。

部分完成或结果不明时先查询,不能盲目重复创建、上传或触发。失败时说明停在哪一步和哪些内容已经改变,不输出完整日志或敏感信息。

如何提出任务

请求中尽量写清仓库、对象和期望操作。例如,下面只表示查询:

1
检查指定仓库中某次 Actions 运行失败的原因,返回失败步骤和必要的错误摘要。

需要写入远端时,可以先把候选内容准备好,再确认执行范围:

1
为指定仓库的已有远端标签准备 Release 标题、说明和准确附件名单,核验后展示发布对象、影响和恢复方式,等待我确认发布。

这里的“指定仓库”和“已有远端标签”需要在实际任务中换成准确值。发布文字、附件名单或分支发生变化时,也应同步调整确认范围。

常见问题

为什么不与 Git 提交放在同一个 SKILL 中

Git 提交与推送处理本地版本记录和远端分支,本文处理 GitHub 平台对象。分别配置后,普通提交不必检查 gh;处理 Release 或 PR 时才读取对应规则。

创建 Release 会顺便编译程序吗

不会。本文配置负责检查和上传已准备好的附件。需要构建程序或部署服务器时,应在任务中另外明确。

已登录 gh,为什么仍然要求确认

登录和权限检查只说明工具能否执行操作;发布到哪个仓库、上传哪些文件、是否覆盖或改变状态,需要按本次任务确认。

操作报错后能否直接重试

先核验对象是否已经创建或修改,区分完全失败和部分完成。确认实际状态后,再决定后续动作,避免重复发布、重复上传或重复触发。

SKILL

以下是 2026-09-19 使用的 safe-github-platform/SKILL.md 完整内容,可复制到前面列出的同名文件中,配合本文的 AGENTS.md 调用约定使用。

本文保留这个日期的配置版本,后续本地微调不一定同步到文章;流程发生明显变化时再更新本节。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
---
name: safe-github-platform
description: 使用 gh 处理 GitHub Release 与程序附件、PR、Issue、Actions 等平台操作时使用。不用于普通 Git 提交或推送,也不负责程序构建或服务器部署。
---

# GitHub 平台操作

主代理执行,不委派子代理。仅需要 Git 暂存、提交或推送时使用 safe-git-github-workflow,不加载本 Skill;平台操作需要先推送代码时,先按该 Skill 取得用户对准确范围的确认,完成推送与核验。

1. **检查工具与身份**:gh 只从系统 PATH、用户级或系统级安装目录发现,排除项目目录中的同名程序,核验路径、版本和所需子命令。Windows 下先核对运行账号;沙箱账号与正常登录用户不同或无法确认时,首次认证检查前申请宿主用户环境执行。确认 gh 对目标主机的登录账号及必要权限,只报告认证状态,不读取或输出原始凭据。gh 认证与 Git 凭据助手分别检查,不自动登录、切换账号、扩大权限或运行 gh auth setup-git;缺工具、认证或权限时说明并停止。
2. **核对目标与内容**:明确主机、owner/repo、可见性和目标编号、标签或运行 ID;查询优先结构化输出,操作显式指定目标仓库。发布文字、附件和拟展示的日志须审查敏感隐私信息;可见性未知按公开检查,发现问题只报类型和位置并停止。附件使用已核验的准确文件名单,不用通配符上传。
3. **按授权操作**:只执行本次要求的平台操作。远端写入前按全局授权规则,说明准确对象、操作范围、影响和恢复方式,取得本次明确许可;只读查询不授权任何写入。
- Release:核对标签对应提交、草稿或正式发布状态及附件。默认使用已有远端标签并加 --verify-tag;新建标签须另行确认准确提交,不隐式采用默认分支最新提交,不自动覆盖同名附件。
- PR:核对已存在的远端来源分支及目标分支;创建时显式指定 --head 和 --base,避免 gh 隐式推送或创建 fork;--dry-run 也不视为只读保证。创建 PR 不包含合并或删分支授权。
- Issue、Actions:核对准确对象;工作流触发须明确工作流、分支或提交及输入参数。查询不附带编辑、关闭、触发、重跑或取消。
4. **核验并简报**:操作后只读核验实际状态,简短返回准确目标、链接、结果及全部实际变化。工作流已触发不代表运行成功;部分完成或结果不明时先查询,不盲目重复写入。失败说明阻塞点,不输出完整日志或敏感内容。