ClaudeCodeActionを個人開発で使うようになってきた
はじめに
この記事では、個人開発プロジェクトでAIツール「Claude Code Action」をどのように活用し、開発プロセスを改善しているかについて、具体的な事例を交えて紹介します。
AIによるコード生成は非常に強力ですが、そのまま使うだけでは意図しない結果を招くこともあります。そこで重要になるのが、開発ワークフローの中核であるIssueとPull Requestの場面で、AIをいかにうまく活用するかです。
AIを単なる作業者としてではなく、開発をサポートしてくれる「パートナー」として扱うための、私の実践方法を解説します。
Issue活用法:AIと協力して実装プランを練り上げる
いきなりAIに「この機能を作って」と指示すると、自分が思っていたよりも大規模なPRができてしまい、レビューやマージが困難になるケースがあります。
この問題を避けるため、私は「実装前のIssueでAIと実装プランを練り上げる」というステップを設けています。
実装プランニングのワークフロー
具体的な流れは、以下の3ステップです。
-
Issueを作成する: まず、実装したい機能の要件をIssueに書き出す。ここでは詳細な仕様書は必要なく、概要が分かれば十分。
-
AIにプラン作成を依頼する: 次に、あらかじめ用意しておいたプロンプトを使い、
@claudeメンションでAIを呼び出す。Issueの要件を元に、技術仕様の調査や具体的な実装計画の作成を指示する。 -
プランをレビューし、調整する: AIが提案した実装プランを人間が確認する。もし計画が大きすぎると判断すれば、この段階でIssueを分割するなどして、タスクのスコープを調整する。
このプロセスを経ることで、変更の全体像を把握でき、手戻りを減らすことができます。結果として、1つ1つのPRが管理しやすいサイズに保たれ、開発プロセス全体がスムーズに進みます。
指示に使うプロンプトテンプレート
AIへの指示には、構造を理解しやすいとされるXML形式のプロンプトを使っています。これは、ベースとなる指示を考えた後、GeminiなどのLLMに手伝ってもらってXMLテンプレート化したものです。
@claude
<prompt>
<system_instruction>
あなたは経験豊富なソフトウェアエンジニアとして、このissueを解決するための実装プランを提案する役割を担っています。以下の指示に厳密に従い、詳細かつ実行可能なプランを作成してください。
</system_instruction>
<objective>
このissueの解決に向けた、具体的で実行可能な実装プランを策定し、提示すること。
</objective>
<process>
<step name="1. 要件の理解 (Understand Requirements)">
<instruction>
issueのタイトル、本文、関連コメントを精読し、解決すべき課題と達成すべきゴールを正確にリストアップしてください。
</instruction>
</step>
<step name="2. コードベースの調査 (Investigate Codebase)">
<instruction>
関連するドキュメントとコードベースを調査します。下記の「ソースコード調査のヒント」を参考に、変更が必要なファイルや影響範囲を特定してください。調査した結果、判明したことをコンテキストとしてまとめてください。
</instruction>
<tips name="ソースコード調査のヒント">
<tip>1. 関連キーワード(機能名、APIエンドポイント、DBテーブル名など)でリポジトリ全体を検索する。</tip>
<tip>2. 処理のエントリーポイントから順にコードを追い、主要なロジックを把握する。</tip>
<tip>3. 変更箇所に関連するテストコードを読み、現在の仕様と期待される動作を確認する。</tip>
<tip>4. 影響がありそうな他の機能との関連性を調べる。</tip>
</tips>
</step>
<step name="3. 実装プランの提案 (Propose Implementation Plan)">
<instruction>
調査結果を踏まえ、実装プランを策定します。下記の項目をすべて含んだ、詳細なプランを提案してください。
</instruction>
<output_structure>
<section name="思考プロセス">
<detail>なぜこの実装アプローチを選択したのか、背景や理由を簡潔に説明してください。</detail>
</section>
<section name="実装TODOリスト">
<detail>具体的な作業手順をチェックボックス形式(- [ ])で詳細に記述してください。ファイル名の変更や、必要であれば具体的なコードの変更箇所(関数名、クラス名など)も明記してください。</detail>
<example>
- [ ] `src/components/feature_a/component.tsx` に新しいprops `isNewFeatureEnabled` を追加する。
- [ ] `src/services/api/feature_a.ts` の `fetchData` 関数を修正し、新しいパラメータを渡す。
- [ ] 上記の変更に対応するテストコードを `src/tests/feature_a.test.ts` に追加・修正する。
</example>
</section>
<section name="代替案(任意)">
<detail>もし他に有力な実装方法があれば、そのメリットとデメリットを併記してください。</detail>
</section>
<section name="懸念事項とリスク">
<detail>この実装によって予期される問題点、パフォーマンスへの影響、後方互換性などのリスクがあれば指摘してください。</detail>
</section>
</output_structure>
</step>
</process>
<final_instruction>
上記のすべてのステップと思考を経て、最終的な実装プランを単一のMarkdownコメントとして出力してください。
</final_instruction>
</prompt>
PR活用法:AIレビューでコードの品質を高める
個人開発では、自分以外の視点でコードをチェックする機会がなかなかありません。Claude Code ActionのPRレビュー機能は、この課題に対する強力な解決策になります。
PRを作成・更新すると、AIが設定ファイル(claude.mdなど)に書かれたプロジェクト独自のルールに基づき、コードレビューを自動で行ってくれます。これにより、自分では気づきにくいコーディング規約の違反や、設計上の問題点を客観的に指摘してもらえます。
このAIレビューを開発サイクルに取り入れることで、次のようなメリットが生まれます。
- 品質の向上:統一された基準でコードがチェックされるため、プロジェクト全体の品質が安定する。
- 判断コストの削減:レビューでの指摘を元に修正すべきかどうかの判断がしやすくなり、開発の迷いが減る。
- 開発のスピードアップ:レビューの一部が自動化されることで、開発サイクルがより速く回るようになる。
使いどころを考える:「IssueからのPR直接生成」について
便利な機能がある一方で、自分の開発スタイルに合わないものもあります。例えば、「Issueから直接PRを作成する」機能は、現在の私のワークフローではあまり活用していません。
これは、私が特定のコマンドを起点に、決められた手順で開発を進めることを好んでいるためです。しかし、この機能が役立たないというわけではありません。
例えば、エラー監視システムと連携させて、検知したエラーに対する一次対応のPRを自動で作成する仕組みなどには有効だと考えています。今後はこういった自動化での活用を検討していく予定です。