スキップしてメイン コンテンツに移動

【Day 26】【Case 6】AIエージェントを活用したケーススタディ自動実行

Day 26 アイキャッチ
▲ 【Day 26】AIエージェント併用ケーススタディ(実務応用)
👨‍🏫
皆さん、こんにちは! 本講座の専任講師です。
前回のDay 25では、急な仕様変更や機能リリース順序の入れ替えにスマートに対応する「チェリーピック(git cherry-pick)」の実践テクニックを学びました。
本日のDay 26は、第5部「開発フェーズ別・現場ケーススタディ」の集大成として、現代のソフトウェア開発を根底から変革しつつある最先端テーマ——【AIエージェントを活用したケーススタディ自動実行(Issue-to-PR)】を徹底解説します!
いま、ソフトウェア開発の現場では Google Antigravity や Claude Code といった自律型AIコーディングエージェントの導入が急速に進んでいます。
かつてエンジニアが手作業で行っていた「チケット確認・ブランチ作成・ソース調査・コード修正・単体テスト実行・プルリクエスト作成」という一連の定型業務は、いまや『Issue #101 のバグ修正用ブランチを切り、修正してPRを作って』とプロンプトで一括指示するだけで、AIがターミナルとGitを操作して自律的に完走できるようになりました。
「AIにコードを書かせたら、思わぬバグが混入したりブランチが壊れたりしないのか?」「Gitのブランチ戦略やテスト自動化とどう組み合わせれば安全なのか?」と疑問に思う方も多いでしょう。
本日は、C#現場で頻発する NullReferenceException の障害Issueを題材に、AIエージェントによる「自律ブランチ作成からプルリク起票まで」の完全シミュレーションをお見せします!
さらに、AIが90%の定型作業を高速代行する時代において、人間のエンジニアが担うべき『最終コードレビューとマージ承認の絶対原則』まで、実践的なプロの技術を分かりやすくお伝えします!

① 導入・本日の達成目標

AIコーディングアシスタントは、「コードの自動補完」から「自律的な課題解決(Agentic Workflow)」の段階へ進化しました。
GitHub Issueの障害チケットを読み込み、専用ブランチをチェックアウトし、プロジェクト全体を検索して原因コードを特定し、C#コードを修正して dotnet test で検証し、GitHub CLI (gh) でプルリクエスト(PR)を自動起票する——この「Issue-to-PR」の流れを理解し、手足のように使いこなすことが次世代エンジニアの必須スキルです。

🎯 本日のゴール
  • 従来の手作業による定型開発と、AIエージェント(Antigravity / Claude Code)による自律代行の違いを理解する
  • 「Issue解析 → ブランチ自律作成 → コード修正・テスト → PR自動起票」の3ステップワークフローを習得する
  • C#プロジェクトにおいて、障害チケット(NullReferenceException)をAIに自律修正させ、dotnet test で品質担保する実戦手順を把握する
  • GitHub CLI(gh pr create)とAIエージェントの連携による高品質なPR説明文自動生成の仕組みを理解する
  • AI生成コードに対する「人間の3大レビュー観点(設計意図・セキュリティ・業務要件)」とマージ承認の絶対原則を身につける

② 【図解】従来の手動作業 vs AIエージェント自律開発:定型タスクからの劇的解放

まず、エンジニアがこれまで日常的に行ってきた「バグ修正の手順」と、AIエージェント導入後の手順を比較してみましょう。

従来の手作業開発 vs AIエージェント自律開発
▲ 【図解①】人間が全ステップをこなして疲弊する旧時代の手作業 vs 1行指示で自律完走するAIエージェント開発

Subversion (SVN) の時代や初期のGit運用では、バグ修正ひとつ対応するにも多くの手作業が存在していました。
チケット管理システム(Redmine、Jira、GitHub Issues)を開いて内容を確認し、ターミナルで命名規則に従ってブランチを切り、エディタで関連ファイルを探し出し、修正を加え、ローカルビルドとテストを回し、ブラウザでPR作成画面を開いてチケット番号や変更理由を手打ちする……。
これらの一連の作業は、1回あたり30分〜1時間以上の時間を奪い、チケット番号の入力ミスやテスト忘れといったヒューマンエラーの原因にもなっていました。

💥 手作業中心の開発現場で発生しがちな問題
  • コンテキストスイッチの消耗: チケット確認、IDE、ターミナル、ブラウザの間を何度も往復し、集中力が途切れる。
  • テスト実行の見落とし: 「たった1行のnullチェック修正だから」と油断してテストを省略し、別の箇所で副作用デグレが発生する。
  • PR説明文の形骸化: 修正作業で力尽き、PRの説明に「修正しました」と1行しか書かれず、後からのレビュアーの負担が増大する。

これに対し、最新のAIエージェント(Antigravity / Claude Code)は、ターミナル実行権限とファイル編集能力を持っています。
エンジニアが「Issue #101 のバグを調査して修正し、テストを実行してPRを作成して」と1行指示するだけで、チケット情報の取得からブランチ作成、コード修正、自動テスト実行、そしてConventional Commitsに準拠したコミットとPR起票までを完全自律(Autonomous)で駆け抜けます!

③ 【図解】AIによる「Issue-to-PR」自律実行の3ステップ完全手順

AIエージェントが内部でどのようにGitと連携し、プルリクエストまでたどり着くのか、その3ステップを可視化しました。

AIによるIssue-to-PR自動化の3ステップ
▲ 【図解②】Issue解析・コード修正&テスト検証・PR自動起票の3ステップ完全フロー

ステップ1: Issueの自動解析と専用ブランチの自律作成

AIエージェントはGitHub CLI(gh issue view 101)やリポジトリ内のドキュメントから障害内容を読み取り、適切な命名規則(例: fix/issue-101-null-check)で自動的にトピックブランチを作成します。

# AIが内部で自動実行するコマンド例
git switch main
git pull origin main
git switch -c fix/issue-101-null-customer-address

ステップ2: C#コードのピンポイント修正とdotnet test自動検証

スタックトレースやエラーログから原因箇所を特定し、最小限かつ安全な修正を実施します。修正後、必ず dotnet test を実行して既存テストが破損していないことを検証します。

# AIが自動でテスト実行&合否判定
dotnet test --logger "console;verbosity=normal"

合格! - 失敗: 0、合格: 28、スキップ: 0、合計: 28、期間: 1.2s

ステップ3: コミットとGitHub CLIによるPR自動起票

テスト合格を確認したAIは、変更差分をステージングしてコミットメッセージを作成し、リモートへプッシュしてGitHub PRを起票します。

# コミット&プッシュ&PR起票
git commit -m "fix(payment): prevent NullReferenceException when customer address is null (fixes #101)"
git push -u origin fix/issue-101-null-customer-address
gh pr create --title "fix: 顧客住所未登録時の決済エラー修正 (#101)" --body "## 概要 Issue #101 のNullReferenceExceptionを修正しました。 ## 変更点 - Customer.AddressのNull条件演算子チェックを追加 - 単体テストケースを追加"

④ 【実戦C#編】Issue #101「NullReferenceException」のAI自律解決シミュレーション

それでは、実際のC# Web APIプロジェクトにおける具体的な障害対応シミュレーションを見てみましょう。

C#現場でのバグ修正とdotnet test自動検証
▲ 【図解③】C#現場での障害チケット解決例(NullReferenceException修正とdotnet testによる全件合格検証)

障害チケットの内容(Issue #101)

🚨 [Bug] ゲスト購入時の決済処理で 500 Internal Server Error 発生

再現手順: 住所登録をスキップしたゲストユーザーが決済API(POST /api/payments)を呼び出す。
スタックトレース:
System.NullReferenceException: Object reference not set to an instance of an object.
at MyApp.Services.PaymentProcessor.CalculateTax(Customer customer) in PaymentProcessor.cs:line 42

AIエージェントへの指示プロンプト(プロの実践例)

【エンジニアのプロンプト入力】
「GitHub Issue #101 を確認してください。ゲスト購入時に PaymentProcessor.cs で NullReferenceException が発生している問題です。
1. fix/issue-101-null-address ブランチを新設してください。
2. 原因箇所をC#のNull許容参照型およびNull条件演算子を用いて安全に修正してください。
3. 再現テストケースを PaymentProcessorTests.cs に追加し、dotnet test で全件パスすることを確認してください。
4. テスト合格後、コミットしてGitHub CLIでPRを作成してください。」

AIが自動生成した修正C#コード

// 修正前: customer.Address が null の場合にクラッシュ!
- decimal taxRate = GetTaxRateByZipCode(customer.Address.ZipCode);

// 修正後: C# 8.0+ Null条件演算子とNull合体演算子で安全にフォールバック
+ string? zipCode = customer?.Address?.ZipCode;
+ decimal taxRate = string.IsNullOrWhiteSpace(zipCode)
+ ? DefaultStandardTaxRate
+ : GetTaxRateByZipCode(zipCode);

AIは既存のビジネスロジックを破壊することなく、住所が未登録の場合は標準税率(DefaultStandardTaxRate)へ安全にフォールバックするコードを実装しました。
さらに、PaymentProcessorTests.cs に CalculateTax_WhenAddressIsNull_ReturnsDefaultTaxRate() という単体テストを自動追加し、dotnet test で100%成功を確認してPRを立ち上げました。

⑤ 【図解】人間とAIの役割分担:AIが下準備(90%)、人間が意思決定(10%)

「AIがPRまで作ってくれるなら、人間のエンジニアの役割はどうなるのか?」
答えは明確です。「人間は、より高次元な意思決定・設計判断・セキュリティレビューに専念する」のです。

人間とAIの役割分担と最終レビュー
▲ 【図解④】AIが下準備(90%の定型作業)、人間が意思決定(10%の設計・セキュリティレビュー・マージ承認)
🔍 AI生成PRに対する「人間の3大レビュー観点」
  1. 業務仕様(ドメインルール)との整合性:
    「そもそも住所が未登録の状態で決済に進めること自体が仕様として正しいのか? フロントエンドのバリデーション漏れではないか?」といったビジネス文脈の判断は、AIにはできません。
  2. アーキテクチャ・設計思想の遵守:
    プロジェクトで定めたクリーンアーキテクチャの境界線や命名規則、不要な外部ライブラリへの依存が追加されていないかを厳密にチェックします。
  3. セキュリティと境界値(エッジケース):
    SQLインジェクション、機密情報(APIキーや個人情報)の不要なログ出力、悪意のある入力値に対する耐性を人間が最終担保します。
⚠️ 鉄則:AIのPRを「ノータイムマージ」してはならない!
AIエージェントは非常に優秀ですが、コードの意図を100%理解して責任を取ることはできません。
「テストが通っているからOK」と確認なしにマージボタンを押すのは厳禁です。
『AIが完璧な下書きを用意し、人間が責任を持って最終承認する』——この健全な役割分担こそが、AI時代の最高峰の開発プラクティスです。

📌 本日の講義まとめと実践チェックリスト

Day 26では、AIエージェントとGit/GitHubを融合させた新世代のケーススタディ自動実行(Issue-to-PR)を学びました。

📋 AIエージェント併用開発チェックリスト
🚀 次回【Day 27】予告
次回からは【第6部: プロの調査・保守・作業効率化テクニック】が堂々スタート!
第1弾のテーマは【Day 27:git worktree で再ビルドなしの超高速ブランチ並行開発】です!
巨大なC#ソリューションでブランチを切り替えるたびに発生する「Visual Studioの再ビルド待ち」や「NuGetパッケージ復元待ち」を完全にゼロにする、Gitの神機能 git worktree を徹底解説します!
複数画面で本番調査と機能開発をストレスなく同時進行するプロの秘技を、どうぞお楽しみに!

コメント

このブログの人気の投稿

【Perfume】Perfume 3rd Tour 「JPN」さいたまスーパーアリーナに行って参りました~

Perfume 3rd Tour 「JPN」1月28日、29日の2daysで参戦して参りました。 ファンクラブ会員の選考抽選会に28日、29日の両日で申し込んでいたんですが、両方とも当選していたという嬉しい誤算。 仕事だぁ、なんだかんだと紆余曲折ありまして28日の参戦は危ぶまれていたのですが、なんとかかんとか28日は40分遅刻しながらも参戦、29日はフル参戦する事が出来ました(∩´∀`)∩

Perfume、2025年末で“コールドスリープ(活動休止)”へ──東京ドーム2daysの記録と、公式・各界・ファンの声

  1) 公式発表・基本情報 活動休止(コールドスリープ)を正式発表 2025年9月21日、公式サイト「 Perfumeより 」で、2026年から一度コールドスリープに入ると発表。再始動の意思(“新しいPerfume”として戻る)も明記。 Perfume Official Site 今後の運用告知(配信・上映など) 同21日付の「 今後のPerfumeに関して 」で、9/23(火・祝)東京ドーム公演の LIVESHIP全世界生配信 および 全国ディレイビューイング 決定を案内。特設サイトも併記。 Perfume Official Site +1 公式グッズ **「Perfume Calendar 2026」**発売決定(B2壁掛け/表紙+2カ月1枚×6枚+ポスター)。テーマは“フルーツ”。 Perfume Official Site 2) 東京ドーム2days(9/22・23)要点 公演タイトル: ZO/Z5 Anniversary “ネビュラロマンス” Episode TOKYO DOME 。日程・開場/開演・会場・物販等の実務情報は特設で公開。 Perfume Official Site 9/23公演を世界配信(LIVESHIP) /ディレイビューイング実施。 Perfume Official Site 海外向け報道(英語)も「 indefinite hiatus 」として広く配信。 The Times of India 国内英字メディアも速報。 朝日新聞 3) 現地レポ( メリ爺 )から見える空気 あなたの現地記録(9/24公開)を、ファクトと現場情景の両面で反映: 両日参戦 。22日は アリーナ 、23日は 1階席から俯瞰 。前日の発表を受け、開演前のザワつき→MC後に“いつもの一体感”へ。開演は22日 18:45 頃。オープニングは**P³ツアー東京ドーム(2020/2)**と同趣向で“回収”の演出。 メリ爺のゲーム万歳 MC所感 :解散ではなく前向きな休止で不安を和らげる内容。 かしゆか の涙、 のっち の気丈さ、 あ〜ちゃん の思い出語り──3人の結束と「 また戻る 」約束が強く刻まれた。 メリ爺のゲーム万歳 体感時間 : “3時間弱”級のボリューム ながら“過去一...

ニンテンドースイッチでオンラインゲームを遊ぶには?

モンスターハンターライズが発売になって、家族でモンハン楽しみたい人が増えたみたいですね。 某ブログの検索キーワードを調べると、モンハンを家族でやるにはどうしたらいいのか?を調べている人が沢山いるのがわかります。 ※これでも一部  家族で協力するにはSwitch2台、ソフトも2つ購入する必要があります。 1台のスイッチでは遊べませんし、ソフト1つでも遊べません。 でも、1台のスイッチで別々アカウントがあれば交代で遊ぶこともできますよ。セーブデータもしっかり分かれます。 Switchのオンラインゲームを家族で遊ぶ方法については以下の記事にまとめてますのでよろしければ参考にしてみてくださいね。 家族でモンスターハンターライズDL版のオンラインプレーを楽しむ方法