KEEL
AI品質安定化調査

第3章:プログラマ向け活用

実装品質、単体テスト、自己レビューを安定させる手順。

プログラマ向け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章
判定 A/B のみ 3.3 → 3.4 → 3.7 へ。C/D は実装に入らない。プロンプト: 第10章 10.8 · テンプレ: 第14章 14.4

研修 — 開発者コース(確認テスト・演習)

所要: テスト 5分 + 演習は bonus_kit 演習1 と併用。4/5 以上で知識確認完了。

確認テスト(5問)

#正解の要点
1AIは実装の下書き。採否は人間
2実装とレビューは別モデルが望ましい
3仕様不明点をAIに勝手に確定させない
4PRテンプレにAI利用・採否理由を残す
5本番変更・顧客影響は Human Gate
演習: $ai-quality-pr-review → 指摘を採用/保留/不採用に分類(期待結果は bonus_kit README)。

3.1 目的

3.2 実績として使える事例

事例概要提案への使い方
Mercedes-Benz5,000人以上の開発者がGitHub Copilot/Copilot Chatを利用し、大規模にAI支援コードを受け入れた事例。大企業におけるAIコーディング支援の大規模導入例として使う。
DuolingoGitHub事例で、開発速度、PR数、レビュー効率の改善が示されている。PRフロー全体の効率化事例として使う。
Accenture/GitHub開発者体験や満足度改善の企業調査。反復作業の負担軽減、開発者体験向上の根拠として使う。
NECソリューションイノベータCopilot利用で効果がある一方、AI提案を鵜呑みにすると品質改善に直結しない点を示す。AI利用には人間レビューとルールが必要という根拠にする。
Diffblue CoverJava単体テスト作成の高速化事例。テスト生成は品質安定化に使いやすいという根拠にする。
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活用手順

  1. チケット、設計書、関連コードを準備する。
  2. AIに変更目的、入力、出力、DB更新、外部連携を整理させる。
  3. 曖昧点と確認事項を抽出する。
  4. 実装案を2〜3案出させる。
  5. 変更量、保守性、テストしやすさで比較する。
  6. 採用案を人間が決める。

実装前確認プロンプト

あなたは保守開発の上級SE兼コードレビュアーです。
以下のチケット、設計情報、既存コードを読み、実装前に確認すべき事項を整理してください。

出力形式:
1. この変更の目的
2. 入力・出力・DB更新・外部連携の整理
3. 既存処理への影響範囲
4. 仕様上の曖昧点
5. 実装前に確認すべき質問
6. 単体テストで必ず確認すべき観点
7. 回帰テストで確認すべき観点

注意:
- 不明点を勝手に補完しない
- 仕様に書かれていないことは「未記載」と明示する
- 既存コードに依存する推測は「推測」と明示する

実装案比較プロンプト

以下の仕様変更に対して、実装方針を3案出してください。

評価軸:
- 変更量
- 既存処理への影響
- テストしやすさ
- 障害時の切り戻しやすさ
- 保守性
- 実装難易度
- 推奨案

出力は表形式にしてください。

3.4 AI生成コードの扱い

チェック内容
理解確認なぜこの実装になったか担当者が説明できるか
コンパイルビルドエラーがないか
静的解析Lint、SonarQube、CodeQL、IDE警告
単体テスト正常系、異常系、境界値
仕様整合チケット・設計書と一致しているか
セキュリティ入力検証、認可、SQL、XSS、ログ
保守性命名、責務分離、重複、複雑度

禁止:AI生成コードを理解しないまま貼り付けること。AIが出したコードは候補であり、成果物責任は担当者にある。

3.5 単体テスト生成の手順

  1. 対象クラス・関数を選ぶ。
  2. 現行仕様をAIに要約させる。
  3. 正常系・異常系・境界値を洗い出す。
  4. テストケース表を作成する。
  5. テストコードを生成する。
  6. 実行して失敗した箇所を修正する。
  7. カバレッジを確認する。
  8. 意味のあるテストか人間が確認する。

単体テスト生成プロンプト

あなたは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段階(実務評価)
評価意味すり抜け例位置づけ
5かなり止められるルール未定義の業務仕様ミス、設計意図の読み違い程度品質ゲートの主軸
4多くを止められる複雑な文脈依存バグ、プロジェクト固有設計違反CI強制に向く
3基本的な違反は止められる設計違反、セキュリティ文脈、横断的品質劣化補助ツール
2限定範囲なら止められる型・設計・依存関係・脆弱性など広範な問題単体では不足
1ほぼ人間/AIレビュー依存ほとんどの規約違反・バグ・設計違反品質保証には使えない
前提:単一ツールで完封はできない。SAST には偽陽性・偽陰性があり、ルール差・設定差で盲点が残る。静的解析・型チェック・テスト・CI品質ゲート・MCP連携を複数レイヤーで組み合わせる。

PG向けチェック拡張(3.4 補足)

チェック推奨ツールすり抜けCI必須
フォーマット・LintESLint/Ruff/Checkstyle 等4はい
横断品質ゲートSonarQube5はい
社内禁止パターンSemgrep4はい
AIセルフレビュー別モデル + 第10章プロンプト2いいえ(補助)

Java案件(受託で多い)

Java案件 — レイヤー別推奨(規約・バグ臭・品質ゲートを分離)
レイヤー推奨防げるものすり抜け
フォーマットgoogle-java-format / Spotless整形ゆれ5
規約Checkstyle命名・import・Javadoc3
バグ臭SpotBugs / PMD / Error ProneNull・リソース・複雑度4
品質ゲートSonarQube保守性・信頼性・セキュリティ・重複5
社内禁止ルールSemgrep直呼び禁止・SQL結合・独自例外違反4
PR可視化reviewdog / GitHub Checksローカル実行忘れ・見落とし3
AI修正支援SonarQube MCP / GitHub MCP / Semgrep MCPCI失敗理由の読み取り・修正方針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に載せると再発抑制が安定する。

詳細: dev_docs_guide 第4章 · 第7章 DevSecOps

KEEL