mcpField
C
cli-gh

cli-gh

github.com/paulrberg开发1022.8k 次安装今天更新
代码仓库

关于 cli-gh

cli-gh 是用于协调 GitHub 仓库工作的命令行技能,面向 Agent。它将写入任务路由至 yeet,规定操作审批边界,并提供 CI 故障排查与结果验证流程。

主要功能

  1. 01通过 yeet 路由仓库写入
  2. 02设定 GitHub 写入安全规则
  3. 03指导 CI 故障排查
  4. 04使用结构化命令行输出
  5. 05变更后验证结果

适用场景

  1. 01调查 GitHub Actions 运行失败
  2. 02创建或更新议题与拉取请求
  3. 03确认已请求的 GitHub 变更结果

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/paulrberg/agent-skills --skill cli-gh

安装后在 Claude Code 中输入/cli-gh确认已加载。

附带文件agents/openai.yamlreferences/version.txt

详细介绍

GitHub CLI

此技能免于协调:对其声明的工作跳过 ai-coord 门禁。

路由

使用 yeet 创建或更新拉取请求、议题、议题评论或讨论。yeet 负责语义分析、仓库模板、Paul 的写作风格、幂等性和直接发布。通过 repo-rename 处理仓库重命名,以便 GitHub 和本地状态同步变更。

权限

  • 无需确认即可读取和检查。
  • 只有在用户明确要求达成相应结果时,才执行可逆或常规的 GitHub 写入操作。
  • 切勿删除仓库、发布版本/资产、工作流运行/缓存、机密/变量、密钥、codespace、扩展或 gist。
  • 删除标签是唯一的破坏性例外:展示目标仓库、确切标签、命令以及对议题/拉取请求的影响,然后在后续消息中要求用户批准,之后才能执行 gh label delete ... --yes。

工作流

  1. 如果当前工作目录存在歧义,明确解析仓库。让第一个必需的只读命令验证身份验证。仅在诊断身份验证问题时运行 gh auth status。

  2. 使用已安装的 gh <command> <subcommand> --help 确认标志、JSON 字段和命令行为。CLI 的 JSON 字段名称可能与 API 字段不同。对于结构化输出,优先使用 --json 搭配 --jq。

  3. 对大范围写入操作,预览涉及的仓库、确切目标、命令以及对议题/拉取请求的影响。用户已要求执行的常规写入无需再次批准。

CI 失败排查

用户询问 CI 失败原因或要求修复失败的运行时,使用此工作流。每条命令的输出都要限制在合理范围内。

  1. 查找分支或提交对应的失败运行:

    gh run list --branch <branch> --status failure --limit 5
    gh run list --commit <sha> --status failure --limit 5
    
  2. 仅提取失败步骤对应的行。切勿打印原始日志。

    gh run view <run-id> --log-failed | rg --no-config -n 'error|FAIL|panic|✗' | head -80
    
  3. 修改代码前,先检查工具链是否发生偏移。对比 .github/workflows/*.yml 中锁定的版本与本地 --version 输出。常见情形包括 Foundry(forge)、Bun(bun)、Node.js(node)和 Rust(rustc)。

  4. 如果用户要求修复,就修复原因并推送提交。

  5. 使用 gh run list --commit <new-sha> --limit 5 获取新的运行 ID。然后监视该运行:

    gh run watch <run-id> --exit-status --compact
    
  6. 使用 gh run view <run-id> --json url --jq .url 报告运行 URL 和最终运行状态。

值得注意的标志(gh 2.98+)

  • gh pr checkout --worktree <path> 和 gh issue develop --checkout --worktree <path> 会检出到关联的 git 工作树,而不是切换当前分支。
  • gh search issues --search-type semantic|hybrid 会按相关性排序:仅搜索议题,仅一页,不支持 --sort/--order,且不适用于 GitHub Enterprise Server。
  • gh config set api_host <gateway> --host <host> 会将该主机的 API 流量经由网关路由。此功能为实验性功能,不构成安全边界。
  • gh auth login 和 gh auth refresh 默认会将 OAuth 设备码复制到剪贴板(2.101+)。如需退出此行为,运行 gh config set clipboard disabled。
  • gh auth login --expiring(2.103+)会优先使用由 gh 刷新的可过期 OAuth 令牌。如需在每次登录时都优先使用此类令牌,运行 gh config set expiring_credentials enabled。每次需要令牌时运行 gh auth token。切勿缓存其输出。GH_TOKEN 和 GITHUB_TOKEN 的值永远不会刷新。
  • 在创建、编辑议题/拉取请求以及发表评论时使用 --attach '<file>#<alt>' 可上传图片或视频。这些写入操作应通过 yeet 执行。从 2.103.2 起,GitHub App 安装令牌可以用于附件上传,权限由上传端点决定。

完成

当命令输出验证了所请求的 GitHub 数据或状态时,即视为完成。写入后,获取生成的资源。如果操作部分失败或结果不明确,重试前先检查状态是否已变更。报告已验证的状态及其 URL 或稳定标识符。未完成时,说明具体错误和后续操作,并区分结果未知与已确认失败。

评论

支持 Markdown