mcpField
G
github-issue-solve

github-issue-solve

github.com/holon-run开发17537 次安装今天更新
代码仓库

关于 github-issue-solve

GitHub Issue Solve Skill 指导 Agent 将 GitHub issue 转化为代码修改并发布 pull request。它收集 issue 上下文、实现并验证改动,随后将交付信息记录到输出文件中。

主要功能

  1. 01从 manifest 或 gh 收集 issue 上下文
  2. 02根据 issue 讨论提取需求
  3. 03实现范围明确的代码修改
  4. 04运行相关验证命令
  5. 05提交、推送并发布或更新 PR

适用场景

  1. 01端到端修复 GitHub issue
  2. 02利用 issue 评论厘清验收条件
  3. 03准备并发布经过验证的 pull request

安装

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

$npx skills add https://github.com/holon-run/holon --skill github-issue-solve

安装后在 Claude Code 中输入/github-issue-solve确认已加载。

附带文件references/issue-solve-workflow.md

详细介绍

GitHub Issue 求解技能

摘要

当你需要将 GitHub issue 转化为具体代码更改并将结果发布为拉取请求时,使用此技能。

适用场景

  • 端到端修复 GitHub issue
  • 使用原始 gh 命令收集 issue 上下文和评论
  • 实施代码更改并创建或更新 PR

不适用场景

  • 在不做更改的情况下审查现有 PR
  • 回复现有 PR 的审查反馈
  • 项目范围的规划或待办事项分类

前提条件

  • 必须通过 gh CLI 身份验证。
  • GITHUB_TOKEN/GH_TOKEN 必须允许对 issue/PR 进行读写操作。

运行时路径

  • GITHUB_OUTPUT_DIR:输出产物目录(优先使用调用方提供的目录,否则使用临时目录)。
  • GITHUB_CONTEXT_DIR:上下文目录(默认为 ${GITHUB_OUTPUT_DIR}/github-context)。

输入(清单优先)

如果已有,优先使用以下输入:

  • ${GITHUB_CONTEXT_DIR}/manifest.json

可选输入:

  • manifest.artifacts[] 中列为 status=present 的任何产物。

如果未提供清单,请直接使用 gh 收集 issue 元数据和评论:

gh issue view <issue_number> --repo <owner/repo> --json number,title,body,state,url,author,createdAt,updatedAt,labels
gh api repos/<owner>/<repo>/issues/<issue_number>/comments --paginate

不要假定 github/ 下的文件名固定不变。 根据 manifest.artifacts[] 中的 id/path/status/description 查找可用输入。

工作流

1. 收集上下文
  • 如果 ${GITHUB_CONTEXT_DIR}/manifest.json 存在,则使用它。
  • 否则,直接使用 gh 收集 issue 正文和评论。
2. 分析并实施
  • 从 issue 元数据和讨论中提取验收标准与约束。
  • 针对所需结果实施最精简且完整的更改。
  • 使用确定性的分支命名方式(feature/issue-<number> 或 fix/issue-<number>)。
  • 发布前运行相关验证命令。
3. 提交并推送
  • 仅提交有意进行的更改。
  • 发布 PR 前将分支推送到远程。
4. 发布 PR

使用带有 --body-file 的原始 gh 命令:

gh pr create --repo <owner/repo> --title "<title>" --body-file <summary.md> --head <branch> --base <base>
gh pr edit <pr_number> --repo <owner/repo> --title "<title>" --body-file <summary.md>

必须完成发布;未实际创建 PR,不得报告成功。

5. 完成输出

必须在 ${GITHUB_OUTPUT_DIR} 下生成以下输出:

  • summary.md
  • manifest.json

交付标准

  • 使工作范围与 issue 意图保持一致;避免无关重构。
  • 当需求不明确时,明确说明假设。
  • 提供具体的验证结果(命令及结果)。
  • 如果无法完成全部验证,请说明已尝试的内容以及未能完成的原因。

输出约定

summary.md

必须包含:

  • issue 引用及对需求的解读
  • 关键代码更改
  • 已执行的验证及结果
  • PR 发布结果(pr_number、pr_url、分支)
  • 明确列出阻碍因素或后续事项(如有)
manifest.json

此技能的执行元数据,包括:

  • provider: "github-issue-solve"
  • issue 引用
  • 分支
  • 发布结果字段(pr_number、pr_url)
  • status(completed|failed)

失败规则

出现以下任一情况时,将运行标记为失败:

  • 未针对 issue 意图产生有意义的代码更改
  • 未完成提交或推送
  • 创建或更新 PR 失败,或无法验证 PR URL

不要仅凭产物报告成功。

评论

支持 Markdown