バイブコーディング実践編 — Claude Code を中心に AIで安全に作る力 / 生成コード読解とレビュー — 5層チェックリスト
Intent / Integration の見抜き方
読了目安 6 分
学習のねらい
前レッスンで、Intent (意図) と Integration (統合) の確認がレビューの初期段階で非常に重要であることを学びました。 しかし、AIが生成したコードの中から、それらの問題を見抜くのは簡単ではありません。 このレッスンでは、AI生成コードにおける意図のズレや統合不良の具体的なサインを学び、実際のコード例を通じて見抜き方を習得します。
Intent (意図) のズレを見抜くサイン
意図のズレとは、AIがあなたの指示を誤解したり、指示に含まれていない余計な機能を追加したり、あるいは必要な機能が欠けていたりする状態を指します。
-
仕様逸脱のサイン:
- 指示にない機能の追加: 例えば、「ユーザーリストを表示する」と指示したのに、勝手に「ユーザー追加機能」まで実装されている場合。これは一見親切に見えますが、意図しない複雑性や潜在的なバグの原因になります。
- 指示された機能の欠落: 必要な認証チェックやバリデーション(入力値の検証)が抜けている、特定の例外処理が考慮されていないなど。
- 要件と異なるロジック: 「昇順でソート」と指示したのに降順でソートされている、特定の条件分岐が逆になっている、など。
見抜き方: AIへの元々の指示(プロンプト)と、生成されたコードの機能を一行ずつ照らし合わせる「プロンプトとの差分チェック」が有効です。
-
副作用の混入:
- 意図しないグローバル変数の変更: 関数内で予期せずグローバルな状態を変更してしまうなど。
- データベースへの不必要な書き込み: 読み取り専用の処理であるべきなのに、なぜかデータが更新されている。
- 外部サービスの呼び出し: ログ出力やメトリクス収集以外の、指示にない外部APIへのアクセス。
見抜き方: 変更されるべきでない変数が変更されていないか、想定外のI/O(入力/出力)操作がないか、コードの「影響範囲」を意識して読み解きましょう。
Integration (統合) 不良を見抜くサイン
統合不良とは、AIが生成したコードが既存のシステムやライブラリ、他のモジュールと適切に連携できない状態を指します。
-
不適切なimport (インポート) 過多 / 不足:
- import過多: 実際に使われていないライブラリやモジュールが多数インポートされている場合。これはコードの肥大化や、依存関係の複雑化を招きます。
- import不足: 必要なライブラリがインポートされておらず、実行時にエラーとなる場合。
- 間違ったパスからのimport: 既存モジュールが期待するパスと異なる場所からインポートしようとしている。
見抜き方: lintツール(例: PythonのRuff、JavaScriptのESLint)が未使用importを警告してくれることが多いです。また、プロジェクトの既存コードのimport規約と照らし合わせることも重要です。
-
データ形式の不一致:
- APIの期待値と異なる引数: 既存のAPIが
{"id": 1, "name": "Alice"}のようなJSON形式を期待しているのに、AIが("id", 1, "name", "Alice")のようなタプルを渡そうとしている。 - 返り値の不一致: 既存のコードが特定のデータ型(例:
intやstr)を期待しているのに、AIがNoneや異なる型の値を返している。
見抜き方: 既存コードの関数シグネチャ(引数と返り値の型情報)やAPIドキュメントと、AI生成コードの呼び出し部分を比較します。型ヒント(Type Hinting)が書かれている場合は、その情報が非常に役立ちます。
- APIの期待値と異なる引数: 既存のAPIが
-
命名規則やコーディング規約の不一致:
- キャメルケースとスネークケースの混在: Pythonでは
snake_caseが一般的ですが、AIがcamelCaseを使っている場合など。 - 既存の定数や関数名との重複: 既存コードと衝突する名前をAIが使ってしまうと、予期せぬ挙動を引き起こします。
見抜き方: プロジェクトのコーディング規約(lint設定など)と照らし合わせます。特に、AI生成コードが既存のファイルに追記される場合、周囲のコードとの統一感を意識して確認しましょう。
- キャメルケースとスネークケースの混在: Pythonでは
まとめ
AI生成コードのIntentとIntegrationの問題は、見た目の動作だけでは見抜きにくいことがあります。 しかし、「プロンプトとの差分チェック」「影響範囲の意識」「lintツールの活用」「型ヒントや規約との比較」といった具体的なサインと見抜き方を知ることで、これらの問題を早期に発見し、手戻りを最小限に抑えることができます。 次の演習では、具体的なPRを使ってこれらの見抜き方を実践してみましょう。