
「このバグ、直しといて」が本当に通じる?Claude Codeの自律タスク実行能力を試してみた
こんばんは!IT業界で働くアライグマです!
都内の事業会社でPjMとして、AI技術がもたらす開発生産性の向上に大きな期待を寄せている私です。エンジニアとして長年コードを書いていると、時々こんな夢のようなことを考えます。
「この厄介なバグ、誰かに『直しといて』と一言お願いするだけで、魔法のように解決してくれないだろうか…」
プロジェクトの締め切りが迫る深夜、原因不明のエラーと格闘している時なら、誰しも一度はそう願ったことがあるのではないでしょうか。
最近、その夢を現実にするかもしれない、強力なAIコーディングエージェントが登場しました。Anthropic社が開発した、ターミナルを主戦場とする「Claude Code」です。その「自律タスク実行能力」は、単なるコード補完ツールとは一線を画し、私たちの指示に基づいて、プロジェクト全体を理解し、自ら計画を立てて作業を遂行すると言われています。
そこで、私は一つの実験をしてみることにしました。
「このバグ、直しといて」
――この、開発現場における究極の「丸投げ」とも言える魔法の言葉は、最新のAIエージェントに本当に通じるのか?
今日は、私自身がPjM兼エンジニアとして、この壮大な(そして少し意地悪な?)実験を行い、Claude Codeの真の実力と、私たちがAIと協働していく未来について、そのリアルな結果をご報告したいと思います。
実験の準備:今回の「生贄」となるバグの紹介
まず、今回の実験台…もとい、「生贄」となるバグを具体的に紹介します。
対象アプリケーション:PHP/Laravel製の簡易ECサイト
実験対象は、私が開発・運用に関わっているPHP/Laravel製のシンプルなECサイトです。商品管理、カート機能、決済機能などを備えています。
バグの詳細:割引クーポンの併用で計算がおかしくなる問題
発見されたバグは、ECサイトの根幹に関わる、割引計算のロジックエラーです。
- 問題の概要:
- ユーザーが「10%割引クーポン」と「1,000円引きクーポン」を同時に使用すると、割引額の計算順序に誤りがあり、最終的な請求金額が意図しない額(時には異常に安く)になってしまう。
- 原因箇所の想定:
app/Services/DiscountService.php
というサービスクラス内の、複数の割引を適用するメソッドにロジックの不備がある可能性が高い。
これは、単なるタイポではなく、ビジネスロジックに関わる、少し厄介なバグです。AIがコードの文脈と意図をどれだけ理解できるかを試すには、格好の題材と言えるでしょう。
【実験1】AIに丸投げ!「このバグ、直しといて」とだけ伝えてみた
いよいよ実験開始です。私はECサイトのプロジェクトディレクトリでターミナルを開き、Claude Codeを起動。そして、たった一言、こう指示を出しました。
Claude Codeへの指示
claude-code "割引クーポンのバグ、直しといて"
まさに究極の丸投げです。これだけで、AIはプロジェクトをスキャンし、問題を発見し、修正してくれるのでしょうか?
AIの反応と、その「思考プロセス」
数秒の沈黙の後、Claude Codeはターミナルに以下のような応答を返してきました。(※以下はAIの応答のイメージです)
こんにちは。割引クーポンのバグ修正ですね。承知いたしました。
タスクを正確に実行するために、いくつか情報が必要です。
- バグの具体的な再現手順を教えていただけますか?
- 期待される正しい動作はどのようなものですか?
- 関連する可能性のあるソースコードのファイル名やクラス名に心当たりはありますか?
これらの情報をご提供いただければ、より的確な分析と修正案の提示が可能です。
最初の結論:AIは「エスパー」ではない
結果は、ある意味で予想通りでした。やはり、AIは私たちの心を読める「エスパー」ではありません。
「直しといて」という曖昧な指示だけでは、AIは何をすべきか分からず、問題解決に必要な情報を逆に質問してきたのです。これは決してAIの能力が低いということではありません。むしろ、闇雲にコードを書き換える前に、人間に対して要件を確認するという、非常に誠実でプロフェッショナルな振る舞いと言えるでしょう。
「このバグ、直しといて」という魔法の言葉は、これだけでは通じないようです。
【実験2】コンテキストを与えて、再度挑戦
では、次に、私たちが普段、人間のエンジニアにバグ修正を依頼する時と同じように、十分なコンテキストを与えて再度挑戦してみましょう。
より良い指示の出し方:PjM流「バグ報告」プロンプト
PjMとして、私が普段Jiraチケットに書くような、質の高い「バグ報告」をプロンプトとしてClaude Codeに与えてみました。
claude-code "あなたは経験豊富なLaravel開発者です。以下のバグを修正してください。
バグの概要:
割引クーポン(パーセント割引と固定額割引)を併用した際に、割引額の計算順序が誤っており、最終金額が正しく計算されない。
再現手順:
- 合計金額10,000円の商品をカートに入れる。
- 「10%割引クーポン」を適用する。(この時点で9,000円になるべき)
- 次に「1,000円引きクーポン」を適用する。
期待される結果:
最終金額が8,000円になる。((10,000円 * 0.9) – 1,000円 = 8,000円)
実際の挙動:
最終金額が9,000円になる。(10,000円 – 1,000円 = 9,000円。パーセント割引が無視されている模様)
関連ファイル:
app/Services/DiscountService.php の applyDiscounts メソッドに問題がある可能性が高いです。
タスク:
- 原因を特定し、コードを修正してください。
- このバグが再発しないことを確認するための、新しいユニットテストも併せて作成してください。
- 実行する前に、あなたの計画をステップ形式で提示してください。"`
AIの“覚醒”:計画立案からコード修正、テスト提案まで
この詳細なプロンプトを受け取ったClaude Codeの反応は、まさに「覚醒」と呼ぶにふさわしいものでした。
承知いたしました。ご提供いただいた情報に基づき、バグ修正の計画を立案します。
【計画】
app/Services/DiscountService.php
を解析し、applyDiscounts
メソッド内の割引適用ロジックを特定します。- 現在のロジックが、固定額割引を先に適用してしまっている問題を特定します。
- 割引適用の順序を「パーセント割引 → 固定額割引」へと変更する修正コードを提案します。
- この修正を検証するため、ご提示いただいた再現手順に基づいた新しいテストケースを
tests/Unit/DiscountServiceTest.php
に追加するコードを提案します。この計画でよろしければ、修正を実行します。よろしいですか? [y/n]
私が「y」と入力すると、Claude Codeは瞬く間に、DiscountService.php
とDiscountServiceTest.php
の両方に対する、的確な修正案(差分形式)を提示してくれました。
生成されたコードの品質レビュー
私がそのコードを確認したところ、ロジックは完全に正しく、Laravelのコーディングスタイルにも準拠していました。追加されたテストケースも、今回のバグの再現と検証に十分な、質の高いものでした。これは、経験豊富なシニアエンジニアが数十分かけて行う作業と、何ら遜色ありません。
結論:「このバグ、直しといて」は、半分本当だった
今回の実験を通して、私は確信しました。
「このバグ、直しといて」という魔法の言葉は、半分だけ本当だった、と。
「本当に通じる」ための条件とは?
AIに「このバグ、直しといて」が本当に通じるための条件、それは、私たちが、AIが問題を完全に理解できるだけの、質の高いコンテキスト(情報)を提供することです。
それは、まるで経験豊富なフリーランスのエンジニアに仕事を依頼する時と同じです。曖昧な指示では、期待する成果は得られません。明確なバグ報告、再現手順、期待する結果、そして関連情報。これらを構造化して提供して初めて、AIはその真価を発揮するのです。
PjM/エンジニアの役割は「良質なインプTプット」の提供
AIの時代において、私たちPjMやエンジニアの価値は、いかにしてAIに対して「良質なインプット」を提供できるかという点に、よりシフトしていくのかもしれません。問題を正確に定義し、課題を構造化し、明確なゴールを示す。この能力こそが、AIを使いこなし、生産性を飛躍させるための鍵となります。
AIの自律性と、人間による監督の理想的なバランス
Claude Codeは、自律的に計画を立て、コードを修正する能力を持っています。しかし、その実行の最終的な承認は、常に人間に委ねられています。この「AIの自律性」と「人間による監督」の理想的なバランスこそが、AIと安全かつ効果的に協働していくための、現時点での最適解なのでしょう。
まとめ
「このバグ、直しといて」という、開発者の長年の夢。それは、AIの登場によって、半分だけ現実のものとなりました。
AIはエスパーではありません。しかし、私たちが良き「PjM」として、あるいは良き「依頼主」として、明確で質の高い情報を提供しさえすれば、AIは「自律的にタスクをこなす、極めて有能なエンジニア」として、驚くべきパフォーマンスを発揮してくれます。
今回の実験は、Claude Codeの持つ高い潜在能力と、同時に、それを引き出すための私たち人間の役割の重要性を、改めて浮き彫りにしました。
AIに仕事を「丸投げ」する未来は、まだ少し先かもしれません。しかし、AIと「質の高い共同作業」を行う未来は、もう始まっています。私たちも、AIにとっての最高のパートナーとなるべく、問題定義能力や情報整理能力を、さらに磨いていかなければなりませんね。