github-issue-solve について
GitHub Issue Solve Skill は、GitHub issue をコード変更と公開済みプルリクエストにつなげるエージェント向けの手順です。issue の情報を集め、変更を実装・検証し、成果を出力ファイルに記録します。
主な機能
- 01manifest または gh から issue 情報を収集
- 02issue の議論から要件を整理
- 03範囲を絞ったコード変更を実装
- 04関連する検証コマンドを実行
- 05コミット、プッシュ、PR の公開または更新
活用シーン
- 01GitHub issue を一貫して修正
- 02issue コメントから受け入れ条件を明確化
- 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 に対するレビューのフィードバックに返信する
- プロジェクト全体の計画やバックログの優先順位付けを行う
前提条件
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 対応