关于 github-issue-solve
GitHub Issue Solve Skill 指导 Agent 将 GitHub issue 转化为代码修改并发布 pull request。它收集 issue 上下文、实现并验证改动,随后将交付信息记录到输出文件中。
主要功能
- 01从 manifest 或 gh 收集 issue 上下文
- 02根据 issue 讨论提取需求
- 03实现范围明确的代码修改
- 04运行相关验证命令
- 05提交、推送并发布或更新 PR
适用场景
- 01端到端修复 GitHub issue
- 02利用 issue 评论厘清验收条件
- 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 的审查反馈
- 项目范围的规划或待办事项分类
前提条件
- 必须通过
ghCLI 身份验证。 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.mdmanifest.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