初めに
前回書いた記事の通り、最近Claude Codeを使って開発を行っています。
Claude CodeにはGitHub Actionsを用いたエージェント機能である「Claude Code Action」もあり、そちらを使えばGitHub上から直接Issueのタスクを進めてもらう、などの完全自動化も可能です。
しかし、Claude Code Actionでは前回の記事で紹介したClaude Maxプランを用いることができず、APIを利用することになるので少々コストが気になります。
そこで、まずは簡単にClaude Codeを用いてIssueを渡すだけでPRの作成まで行なってもらえるワークフローを作理、手元での作業を自動化してみました。
この記事では、Claude Codeで簡単に「Issueのタスクを遂行→PRの作成まで行なってもらう」ためにやったことを紹介します。
手順
セットアップ
まずはClaude CodeでIssueを取得できるようにするため、GitHub CLIをインストールします。
GitHub CLIとはGitHubのコマンドラインツールで、リポジトリ管理やIssue作成などをターミナルから行うことができる便利なツールです。
詳しくは公式のドキュメントをご覧ください。
Claude Codeのコマンドを作成
Claude Codeでは、独自にコマンドを作成できる仕組みがあります。
この機能を使うことで、独自に定義したワークフローを /user:hoge
のような形や、プロジェクト単位では/project:hoge
のような形で簡単に呼び出せるようになります。
また、$ARGUMENTS
というキーワードで引数を定義することも可能です。
今回は/user:exec-issue ISSUE番号
という形でワークフローを呼び出せるようにします。
~/.claude/commands/exec-issue.md
に以下のようなプロンプトを定義します。
~/.claude/commands/exec-issue.md
gh issue view #$ARGUMENTS でGitHubのIssueの内容を確認し、タスクの遂行を行なってください。
タスクは以下の手順で進めてください。
1. Issueに記載されている内容を理解する
2. mainにチェックアウトし、pullを行い、最新のリモートの状態を取得する
3. Issueの内容を元に、適切な命名でブランチを作成、チェックアウトする
4. Issueの内容を実現するために必要なタスクを実行する
5. 適切なテストを追加する
6. テストとLintを実行し、すべてのテストが通ることを確認する
7. コミットを適切な粒度で作成する
8. PRを作成する。なお、PRのdescriptionには`Closes #$ARGUMENTS`と冒頭に記載すること
これでIssueを遂行してほしいリポジトリ内で/user:exec-issue Issue番号
と入力することでPRの作成まで自動で行なってもらうことが可能です。
おまけ: レビューの自動化
前項まででPRの作成までを自動化できましたが、レビューもできたらAIにしてもらえるとありがたいです。
ClaudeにレビューをしてもらうにはClaude Code Actionが必要になりますし、同じモデルにレビューまでしてもらっても本質的にあまり意味がなさそうです。
ということで、2025年5月現在は無料で使用することができる「Gemini Code Assist for GitHub」を普段は利用しています。
もしレビューまでAIにお任せしたい、という場合はこちらの利用もご検討ください。
感想
AIにIssueを元に自動でタスクをやってもらう体験、
- 開発はAIに全部任せられる
- AIでもわかるようにIssueを書く必要があるため、ドキュメントとして内容をしっかり残すようになる
という二つの面でとてもメリットがあるように感じます。
個人的には2つ目のメリットが結構大きく、自分のためにIssueを書くのはめんどくさくてもAIのためにはIssueを頑張ってしっかり書けるという発見がありました。
ぜひ皆さんも色々使ってみた中での知見などありましたら教えてください!
Views: 2