はじめに
正直これまでVibeCodingだと言われてもしっくりこない自分がいた。
LLMに対するリクエストで、ガラガラポンで出てきたものがバッチリであることは少なく、結局それを修正してく手間に追われて、便利ではあるけど、壁にぶつかり続けるストレスもあったからである。
LLMの精度が向上してもそれは拭われることはなかった。
しかし、Claude Codeがその開発体験を大幅に変えた。
精度が高いだけではなく、並列実行可能な対話的なCLIで、その修正のストレスがとても低い。しかも、対話途中での追加注文可能だ。
API課金制ではないMAXプランとの相性も非常に良い。
結果現時点で、Claude Code、GitHub CLI(ghコマンド)、そして英語プロンプトの組み合わせは、エンジニアの開発ワークフローを劇的に改善する現時点では最強とも思える組み合わせだと思っている。
今回はこれらのツールを組み合わせることで実現できる効率的な開発フローと、その具体的な活用方法について今回は解説したいと思う。
Claude CodeがもたらすCLIベースの開発体験
なぜClaude Codeが強力なのか
Claude Codeの最大の強みは、CLIを直接操作できることにある。
これにより、従来GUIに頼らざるを得なかった多くの作業をコマンドラインで完結できるようになった。
これに慣れるとCusorのチャットツールも面倒に感じてきて、本当に補助的な使用になった。
具体的には以下のような作業が可能だ:
- 複数の処理を並行して実行
- コード生成と同時にテストコードの作成
- 生成されたコードの即座のレビュー
- Git操作の完全な自動化
実践的な活用例:並行処理によるテスト駆動開発
ClaudeCodeの特筆すべき機能として、複数のセッションを立ち上げて並行処理ができる点がある。例えば、あるセッションでコードを書いてもらいながら、別のセッションでそのテストコードを作成してもらうことなどが可能だ。
これにより、テスト駆動開発のようなサイクルを効率的に回すことができる。
ghコマンドとの連携による開発フローの自動化
プルリクエストの自動作成
ghコマンドとClaude Codeを組み合わせることで、プルリクエストの作成プロセスを完全に自動化できる。特に効果的なのは、以下のワークフローだ:
- ブランチの作成:ClaudeCodeが適切なブランチ名を決定し、自動的に作成
- 実装とコミット:コードの実装と適切なコミットメッセージの作成
- プルリクエストの作成:GHコマンドを使用してPRを自動作成
- レビューの実施:別のClaudeCodeセッションでPRをレビュー
MDファイルによるPRテンプレートの活用
gitの機能で、プルリクエストのフォーマット(pull_request_template.md)をMDファイルに記載してルートに置いておくことで、プルリクのコメントはフォーマットを挿入できる。
ClaudeCodeはそのフォーマットに応じて一貫性のあるPR説明文を生成することができるようになる。
これはAIならではの網羅性と詳細さにより、人間が見落としがちな点も含めた包括的な説明が可能だ。
ちなみに自分がよく使うフォーマットはシンプルだが下記だ。
## 👨🔧 対応内容:
## 🕵️♂️ 動作確認方法:
## 🙋♀ その他気になる点や特記事項:
元からプロジェクトに使っていたものをたまたまClaude Codeにも使わせてみたが、チェックリストで「動作確認方法」を一覧出してくれるのでとてもいい感じ。
これ自体をまたClaude Codeにレビューさせる時にそのチェックリストが役立つ。
動作保証のためのチェックリスト生成
Claude Codeは、プルリクエストごとに動作を保証すべき事項のチェックリストを自動生成する。このチェックリストを別のセッションでレビューに活用することで、品質の高いコードを担保できる。
英語プロンプトがもたらす開発効率の向上
なぜ英語プロンプトを使うべきか
1. タイピング速度の向上
日本語のローマ字入力と比較して、英語は約2倍の速度でタイピングが可能だ。そりゃそうで、実際LLMにお願いするときも英語の方が断然早い。
これは開発効率に直結する重要な要素である。
2. トークン数の削減
Claude Codeではトークン数が可視化されているが、英語プロンプトは日本語と比較して大幅にトークン数を削減できる。実際見てると如実に少ない。
これによりコスト効率も向上する。
3. 精度の向上
英語プロンプトは、特に技術的な指示において高い精度を実現する。これは、Claude Code自体が英語を前提とした機能開発が先行することも関係している。
ちなみにGPTo3になるべく学術的なものを調べてもらったが、LLMの正答率が日本語と英語では10〜25%違うそうだ。(参考リンク)
実際複数の友人のLLM使いも、英語の方が精度が高い、という印象を抱いていた。
プログラマーにとっての英語プロンプトの親和性
ただ自分も日本人なので、頭がついていかないのはとてもよくわかる。
しかし思い切ってやってみると、結局英語プロンプトの書き方は、プログラミングで使用する英語と非常に似ている。
実際そりゃそうで、LLMにプログラムをさせるのだから、命令もプログラムに沿っている。
それに結局プログラム界隈で使う単語は限られていて、そんなに複雑な単語を多くは使わずに表現できる。
英語のメリットとして感じるのは以下だ。
s
-
命令的・宣言的な記述:
create
,check
,update
,modify
,review
など、動詞を先頭に置く命令形式 - 簡潔で明確な指示:プログラムの関数名や変数名と同様の考え方で記述
- 既存の技術用語の活用:プログラミングで日常的に使用する英語をそのまま活用
無論複雑な命令は日本語でもいいと思うが、やりたいことを端的に宣言的に記述できる。
さらに、どうしても英語力が足りなくて、日本語で命令を書かないといけないことがあるが、その際は「複雑なタスクを依頼してないか」と振り返るきっかけになる。
適切な粒度で切り出せていないアラートにもなるのだ。
また、think , think hard, ultrathink / think harderなどの単語でClaudeの思考モードが変わる、という話があったように、(最近のアップデートで日本語対応したようではあったものの)まず英語で機能が実装されているのも間違いないだろう。
それに三単現のsが抜けた、とか、冠詞忘れた、などはAIは気にしないので、こちらも気にせず指示してもらえたらと思う。
自分も恥ずかしいくらい間違えてるが、気にせず英語で対話している。
日本語出力への対応
入力は英語でも、CLAUDE.md
ファイルなどで設定することで、出力(コメントやPR文言など)は日本語にすることが可能だ。
Claude Codeは文脈を理解して適切に言語を切り替えてくれるため、実用上の問題はほとんどない。
実践的なワークフロー例
以下は、これらのツールを組み合わせた典型的な開発フローだ:
-
イシューの作成:
gh issue create
でイシューを作成 (※1 - ブランチの作成:ClaudeCodeが適切なブランチ名を決定 (※2
- 実装:英語プロンプトで効率的に指示
- テスト作成:並行セッションでテストコードを生成
- コード品質チェック:Lintチェック、型チェック、テスト実行
-
PR作成:
gh pr create
でプルリクエストを自動作成 - レビュー:別セッションでコードレビューを実施。自動修正
-
マージ:問題がなければ
gh pr merge
でマージ
※1.issueの作成は任意。Claude Code Actionを入れてgit側でも動かしたいならissueはあったほうが良い。
※2.「ブランチ切って」とお願いすることもあれば、コンテストから読み解いて勝手にやってくれることもある。
課題
コードが汚くなる問題
Claude Codeがそれぞれのセッションでいろんなこと思い思いに活動をしていくので、正直コードは次第に一貫性がなくなっていく。またやはり間違いや実装漏れが必ず出てくる。
出来てないことをさも出来たように言ってくる。
そういった場合のハンドリングがAI時代のエンジニアとしての腕の見せ所であり、クオリティの担保が人間の役割となっていくだろうと思う。
そのため、短いサイクルで型チェックや、lintチェックやテスト実行をなるべく行うことが必要となる。
node系のアプリであればhuskeyなどでコミット前などに、それらのチェックを入れておくといいだろう。それも事前にClaudeに指示しておこう。
また定期的に「ディレクトリに一貫性がないと思うが確認して整理してくれ(I think directory is messy. Review the structure and the coherenccy. Tidy them.)」「改めてCLAUDE.mdを読んでコード内の一貫性を確認してくれ。(Please review CLAUDE.md again and check the workspace for consistency. )」といった命令をすることで、Claude自身でチェックリストを作りながら、ファイルやコードを整理していってくれる。
コードの規模による精度の低下
小さめのアプリのうちは一通りClaudeが走査可能だが、アプリケーションが肥大するにつれてトークンを消費しセッションが切れが早くなる。
コードが大きくなってくると、例えば「フロントの〇〇をチェックして」「APIの定義を確認して」など、「このファイルとこのファイルを確認して。そこにエラーがあると思う」なるべく当たりをつけて細かく指示するほうがトークンが抑えれて精度も高い。
結局そこはエンジニアとしての知見が生きてはくる。
その他
会話履歴について
Cursorのチャットなどと違って履歴が確認できなさそうに見えてしまうが、実は~/.claude/todosに履歴が入っている。jsonでちょっと見にくいが、履歴を追うことは可能である。
まとめ
ClaudeCode、GHコマンド、英語プロンプトの組み合わせは、現代のエンジニアリングにおける強力なツールセットだ。
最初は英語プロンプトに抵抗があるかもしれないが、プログラマーであれば既に持っている英語の知識で十分対応可能である。
これらのツールを活用することで、開発効率を大幅に向上させ、より品質の高いコードを生み出すことができる。ぜひ一度、この組み合わせを試してもらいたい。実際に使ってみることで、その威力を実感できるはずだ。
おまけ
Views: 2