mcpField
G
github-issue-solve

github-issue-solve

github.com/holon-run開発17537 回インストール今日更新
リポジトリ

github-issue-solve について

GitHub Issue Solve Skill は、GitHub issue をコード変更と公開済みプルリクエストにつなげるエージェント向けの手順です。issue の情報を集め、変更を実装・検証し、成果を出力ファイルに記録します。

主な機能

  1. 01manifest または gh から issue 情報を収集
  2. 02issue の議論から要件を整理
  3. 03範囲を絞ったコード変更を実装
  4. 04関連する検証コマンドを実行
  5. 05コミット、プッシュ、PR の公開または更新

活用シーン

  1. 01GitHub issue を一貫して修正
  2. 02issue コメントから受け入れ条件を明確化
  3. 03検証済みのプルリクエストを準備・公開

インストール

コマンドをコピーしてターミナルで実行します。

$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 Solve スキル

概要

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 を確認できない

成果物だけを根拠に成功を報告しないでください。

コメント