プログラマ向けAI活用の本命は、単なるコード生成ではなく、仕様理解、実装方針比較、単体テスト生成、PR前セルフレビューである。
3.0c AIチケット起点開発ループ(PoC向け)
第3章 3.3 の「実装前確認」は既存チケットが渡された後の手順。本節はその前段 — チケット起票・整理・品質確認まで含む入口運用。定着フェーズの正本は dev_docs_guide 第4章。
| メニュー | PoCでの使い方 | 第3章との接続 |
|---|---|---|
| 既存チケット対応 | 事例P-1 の前に A/B/C/D 判定 | 3.3 実装前確認プロンプト |
| 新規起票 | 曖昧要望 → 受入条件付きチケット | 3.6 運用ルール |
| 再整理 | 混在チケットの分割 | 第11章 PoC スコープ調整 |
| PR指摘対応 | must/should/nits 分類 | 3.7 別モデルレビュー · 第6章 |
研修 — 開発者コース(確認テスト・演習)
所要: テスト 5分 + 演習は bonus_kit 演習1 と併用。4/5 以上で知識確認完了。
確認テスト(5問)
| # | 正解の要点 |
|---|---|
| 1 | AIは実装の下書き。採否は人間 |
| 2 | 実装とレビューは別モデルが望ましい |
| 3 | 仕様不明点をAIに勝手に確定させない |
| 4 | PRテンプレにAI利用・採否理由を残す |
| 5 | 本番変更・顧客影響は Human Gate |
演習:
$ai-quality-pr-review → 指摘を採用/保留/不採用に分類(期待結果は bonus_kit README)。3.1 目的
- 仕様理解の早期化
- 実装案の比較による手戻り削減
- 単純ミスの削減
- 単体テストの増強
- 若手・中堅の品質底上げ
- レビュー前品質の向上
3.2 実績として使える事例
| 事例 | 概要 | 提案への使い方 |
|---|---|---|
| Mercedes-Benz | 5,000人以上の開発者がGitHub Copilot/Copilot Chatを利用し、大規模にAI支援コードを受け入れた事例。 | 大企業におけるAIコーディング支援の大規模導入例として使う。 |
| Duolingo | GitHub事例で、開発速度、PR数、レビュー効率の改善が示されている。 | PRフロー全体の効率化事例として使う。 |
| Accenture/GitHub | 開発者体験や満足度改善の企業調査。 | 反復作業の負担軽減、開発者体験向上の根拠として使う。 |
| NECソリューションイノベータ | Copilot利用で効果がある一方、AI提案を鵜呑みにすると品質改善に直結しない点を示す。 | AI利用には人間レビューとルールが必要という根拠にする。 |
| Diffblue Cover | Java単体テスト作成の高速化事例。 | テスト生成は品質安定化に使いやすいという根拠にする。 |
Before / After 事例(PoC想定・匿名)
事例P-1:保守チケット実装+PR前セルフレビュー
| 項目 | Before(AIなし) | After(2か月PoC) |
|---|---|---|
| 人間レビュー指摘(重大) | PR平均 2.1件 | PR平均 0.8件 |
| Null・境界値漏れ | 月3件流出 | 月1件 |
| 単体テスト追加数 | チケットあたり0.5本 | 2.3本(AI生成→人間採否) |
| レビュー待ち時間 | 中央値 1.8日 | 中央値 1.1日 |
使ったスキル:test-driven-development(superpowers)、requesting-code-review + 第10章セルフレビュープロンプト
学び:AI生成コードそのものより「実装前の曖昧点抽出」と「PR前チェック」が効いた。NEC事例どおり、鵜呑みにすると効果が半減する。
3.3 実装前のAI活用手順
- チケット、設計書、関連コードを準備する。
- AIに変更目的、入力、出力、DB更新、外部連携を整理させる。
- 曖昧点と確認事項を抽出する。
- 実装案を2〜3案出させる。
- 変更量、保守性、テストしやすさで比較する。
- 採用案を人間が決める。
実装前確認プロンプト
あなたは保守開発の上級SE兼コードレビュアーです。
以下のチケット、設計情報、既存コードを読み、実装前に確認すべき事項を整理してください。
出力形式:
1. この変更の目的
2. 入力・出力・DB更新・外部連携の整理
3. 既存処理への影響範囲
4. 仕様上の曖昧点
5. 実装前に確認すべき質問
6. 単体テストで必ず確認すべき観点
7. 回帰テストで確認すべき観点
注意:
- 不明点を勝手に補完しない
- 仕様に書かれていないことは「未記載」と明示する
- 既存コードに依存する推測は「推測」と明示する
実装案比較プロンプト
以下の仕様変更に対して、実装方針を3案出してください。
評価軸:
- 変更量
- 既存処理への影響
- テストしやすさ
- 障害時の切り戻しやすさ
- 保守性
- 実装難易度
- 推奨案
出力は表形式にしてください。
3.4 AI生成コードの扱い
| チェック | 内容 |
|---|---|
| 理解確認 | なぜこの実装になったか担当者が説明できるか |
| コンパイル | ビルドエラーがないか |
| 静的解析 | Lint、SonarQube、CodeQL、IDE警告 |
| 単体テスト | 正常系、異常系、境界値 |
| 仕様整合 | チケット・設計書と一致しているか |
| セキュリティ | 入力検証、認可、SQL、XSS、ログ |
| 保守性 | 命名、責務分離、重複、複雑度 |
禁止:AI生成コードを理解しないまま貼り付けること。AIが出したコードは候補であり、成果物責任は担当者にある。
3.5 単体テスト生成の手順
- 対象クラス・関数を選ぶ。
- 現行仕様をAIに要約させる。
- 正常系・異常系・境界値を洗い出す。
- テストケース表を作成する。
- テストコードを生成する。
- 実行して失敗した箇所を修正する。
- カバレッジを確認する。
- 意味のあるテストか人間が確認する。
単体テスト生成プロンプト
あなたはJUnitのテスト設計に強いシニアエンジニアです。
以下のJavaクラスに対して、単体テスト観点を作成してください。
出力形式:
1. テスト対象メソッド一覧
2. 正常系
3. 異常系
4. 境界値
5. null/空文字/0件/最大件数
6. 外部依存のモック方針
7. テストデータ
8. JUnitコード例
注意:
- カバレッジを上げるだけの無意味なテストは避ける
- 仕様上の期待値が不明な場合は、不明と明記する
- privateメソッドを直接テスト対象にしない
3.6 プログラマ向け運用ルール
| 項目 | ルール |
|---|---|
| 実装前 | AIで仕様要約と影響範囲確認を行う |
| 実装中 | AI提案は候補として扱い、既存規約に合わせる |
| 実装後 | AIセルフレビューを実施する |
| PR作成時 | AI利用範囲と人間確認内容を記録する |
| テスト | AI生成テストをCIで実行し、期待値を人間が確認する |
| レビュー | AI指摘の採否を説明できるようにする |
3.7 PoC向け:実装とレビューの役割分離
第1章の結論どおり、PG領域では生成よりレビュー・テストにAIを寄せる。PoCテーマ「PR前セルフレビュー / TDD支援」(第11章)では、実装起草と一次レビューを別ツール・別モデルに分けると、自己肯定バイアスを減らしやすい(参考)。
| 工程 | AIの役割 | 人間が必ずやること | KPI(第12章) |
|---|---|---|---|
| 実装 | 案の比較・下書き | 仕様理解・採否・既存規約への適合 | 手戻り、バグ |
| 単体テスト | 観点・ケース草案 | 期待値確認・CI通過 | テスト数、漏れ指摘 |
| PR前 | 別モデルセルフレビュー | 業務仕様判断・証跡記録(第13章) | レビュー時間、採用率 |
記録様式・スキル試行: PoC試行キット · 公開スキル例は 第17章(TDD・requesting-code-review 等)。
3.8 コーディング品質ツール — PGが押さえる多層防御
第3章 3.4 の静的解析チェックを、すり抜けしないレベルで運用するためのツール選定。AI生成コードは候補であり、機械ゲートを通らないコードはマージしない(第1章 結論2)。
| 評価 | 意味 | すり抜け例 | 位置づけ |
|---|---|---|---|
| 5 | かなり止められる | ルール未定義の業務仕様ミス、設計意図の読み違い程度 | 品質ゲートの主軸 |
| 4 | 多くを止められる | 複雑な文脈依存バグ、プロジェクト固有設計違反 | CI強制に向く |
| 3 | 基本的な違反は止められる | 設計違反、セキュリティ文脈、横断的品質劣化 | 補助ツール |
| 2 | 限定範囲なら止められる | 型・設計・依存関係・脆弱性など広範な問題 | 単体では不足 |
| 1 | ほぼ人間/AIレビュー依存 | ほとんどの規約違反・バグ・設計違反 | 品質保証には使えない |
前提:単一ツールで完封はできない。SAST には偽陽性・偽陰性があり、ルール差・設定差で盲点が残る。静的解析・型チェック・テスト・CI品質ゲート・MCP連携を複数レイヤーで組み合わせる。
PG向けチェック拡張(3.4 補足)
| チェック | 推奨ツール | すり抜け | CI必須 |
|---|---|---|---|
| フォーマット・Lint | ESLint/Ruff/Checkstyle 等 | 4 | はい |
| 横断品質ゲート | SonarQube | 5 | はい |
| 社内禁止パターン | Semgrep | 4 | はい |
| AIセルフレビュー | 別モデル + 第10章プロンプト | 2 | いいえ(補助) |
Java案件(受託で多い)
| レイヤー | 推奨 | 防げるもの | すり抜け |
|---|---|---|---|
| フォーマット | google-java-format / Spotless | 整形ゆれ | 5 |
| 規約 | Checkstyle | 命名・import・Javadoc | 3 |
| バグ臭 | SpotBugs / PMD / Error Prone | Null・リソース・複雑度 | 4 |
| 品質ゲート | SonarQube | 保守性・信頼性・セキュリティ・重複 | 5 |
| 社内禁止ルール | Semgrep | 直呼び禁止・SQL結合・独自例外違反 | 4 |
| PR可視化 | reviewdog / GitHub Checks | ローカル実行忘れ・見落とし | 3 |
| AI修正支援 | SonarQube MCP / GitHub MCP / Semgrep MCP | CI失敗理由の読み取り・修正方針 | 3 |
推奨パイプライン: Formatter → Checkstyle → SpotBugs/PMD/Error Prone → Unit/Integration Test → Semgrep → SonarQube Quality Gate → PRレビュー → MCP経由でAI修正支援
事例P-1(本章3.2)の効果はPR前チェック+テスト増が主因。Lint/SonarQube をCIに載せると再発抑制が安定する。