定義と結論
AI支援開発のチームルールとは、AIへ入力できる情報、許可する操作、変更範囲、検証、承認、記録、責任をチームで合意した運用基準です。特定ツールの使い方ではなく、生成から採用までの品質管理を決めます。
結論は、AIが生成したかどうかにかかわらず、採用した人とチームがコードの説明、検証、運用に責任を持つことです。その上で、AI特有のデータ露出、もっともらしい誤り、過大な差分、自律操作のリスクへ追加の境界を設けます。
なぜチームルールが必要か
個人利用では便利でも、チームでは入力した顧客情報、秘密鍵、未公開コードの扱いが問題になります。生成物が既存設計を無視したり、存在しないAPIを使ったり、依存を無断追加したりすれば、レビュー負荷は作成時間以上に増えます。
担当者ごとに許容範囲が異なると、同じリポジトリで品質と監査可能性が揺れます。ツール名を許可するだけではなく、どのデータを、どの設定で、どの操作に使えるかを決めます。 ルールは利用を妨げるためではなく、安全に任せられる範囲を広げるための共通契約です。
登場人物と対象
- 利用者: 目的と入力範囲を決め、生成物を検証する
- レビュアー: 仕様、設計、セキュリティ、テストを独立に確認する
- リポジトリ所有者: 書き込み、実行、デプロイ権限を管理する
- セキュリティ・法務担当: 契約、保持、学習利用、規制対象データを確認する
- ツール提供者: モデル、保存設定、監査ログ、管理機能を提供する
- 組織: インシデント報告、例外承認、教育を整える
対象はチャットだけでなく、IDE補完、エージェント、コードレビューbot、CI内の生成、MCPや外部コネクタも含みます。
ルールを作る流れ

1. 利用ケースとデータを分類する
公開コードの説明、社内コードの修正、顧客データを含む障害調査ではリスクが異なります。個人情報、認証情報、契約上共有禁止のコードは入力禁止または承認制にします。
2. 権限と操作境界を決める
読み取り、編集、テスト、依存追加、ネットワーク、DB変更、デプロイを分けます。削除、秘密情報の取得、本番変更など不可逆または高影響な操作は人の明示承認を必須にします。
3. 変更の単位を決める
目的、変更対象、非対象、完了条件を依頼へ含めます。一つの目的ごとに小さな差分へし、生成した本人が説明できない変更を採用しません。
4. 検証と承認を定義する
lint、型検査、テスト、ビルドに加え、認証、決済、個人情報、インフラは知識のある別担当が確認します。AI自身の自己レビューだけを独立確認とは数えません。
5. 記録と見直しを行う
必要に応じて利用ツール、主要な生成範囲、検証結果、依存追加理由をPull Requestへ残します。インシデントや誤検知からルールを更新します。
比較と主要パターン
| 運用 | 利点 | リスク |
|---|---|---|
| 補完のみ | 差分が小さく追いやすい | 局所的でも誤りはあり得る |
| 対話型の提案 | 設計比較や説明に使える | 入力データの選別が必要 |
| リポジトリ編集 | 実装が速い | 範囲逸脱とレビュー過多 |
| 自律実行 | 調査から検証まで連続できる | 権限、外部通信、破壊操作の制御が重要 |
| CIレビューbot | 全差分へ一定観点を適用 | 誤検知と機密コード送信を管理する |
自律性が高いほど、許可範囲、停止条件、監査ログ、人の承認点を具体的にします。
具体例: 問い合わせフォーム修正
依頼は「フォームを改善して」ではなく、目的を「送信失敗時に再試行可能なメッセージを表示する」、対象をフォーム部品と既存テスト、非対象をAPI仕様と依存関係とします。400、500、通信切断の期待表示を完了条件へ含めます。
AIが新しい通知ライブラリを提案しても、既存部品で実現できるなら依存を追加しません。生成後は差分を読み、ユーザー入力の表示、ログへの個人情報、二重送信、キーボード操作を確認します。関連テストとビルドを実行し、別のレビュアーが仕様を確認します。
よくある誤解
AI利用を申告すれば品質責任が軽くなることはありません。採用されたコードは通常のコードと同じ基準で扱います。
全面禁止だけが安全とも限りません。非公式な利用を招く可能性があります。許可できる用途と禁止データを明確にし、相談経路を用意します。
出力を人が眺めればレビュー済みでもありません。動作、失敗時、権限境界、依存、ライセンスなど、確認項目と証拠が必要です。
注意点とベストプラクティス
- 契約、データ保持、学習利用、保管地域、管理者設定を確認する
.env、token、Cookie、顧客データを入力しない- 対象外ファイルと禁止操作を依頼へ明記する
- 新規依存は必要性、保守状況、ライセンスを確認する
- 生成コードへ手書きコードと同じ静的解析とテストを適用する
- 高リスク領域は専門知識を持つ別担当が承認する
- 問題発生時の停止、報告、入力漏えい対応を決める
秘密情報を後から伏せるのではなく、最初からAIへ渡らないデータ経路を設計します。
デバッグと確認方法
ケーススタディ: 認証処理の生成コードを採用するか
新人がAIへ「ログインAPIを追加して」と依頼し、動く実装が生成されたとします。悪い運用は、テストが通ったことだけを根拠に通常の小修正と同じレビューでマージすることです。認証は入力情報、セッション、権限、監査ログを横断し、もっともらしい実装でも既存の失効規則やレート制限を外すと被害が大きくなります。
チームの判断手順は、変更領域を先に分類し、機密性と影響範囲に応じて人の確認を増やすことです。この例では、入力した文脈に秘密情報がないか、既存の認証ライブラリを再利用しているか、成功経路だけでなく期限切れ・無効化・権限不足を試したか、依存追加の出所とライセンスを確認したかを記録します。良い例は、AIをテスト候補や定型コードの下書きに使い、所有者が差分を説明し、セキュリティ担当をレビューへ加える運用です。悪い例は「AI製」とだけラベルを付け、誰も設計判断を説明できない状態です。
ルールの有効性は、AI利用回数ではなく、レビューで見つかった重大欠陥、差し戻し理由、生成依存の追加数、入力禁止情報の報告、マージ後の手戻りで観測します。差し戻しが同じ理由で続くなら、注意喚起ではなくテンプレートやCIへ確認を移します。ルールが重すぎて利用が非公式経路へ逃げる場合も失敗なので、例外申請の件数と所要時間を見て、低リスク変更と高リスク変更の境界を調整します。
ルールが機能しているかは、文書の有無ではなく実際の変更で確認します。Pull Requestを抽出し、目的と範囲が説明され、必要なテストが実行され、生成した本人が変更を説明できるかを監査します。禁止データを検出するsecret scan、依存監査、branch protectionも組み合わせます。
ルール違反が起きた時は個人の注意不足だけで終えず、入力経路、権限、テンプレート、教育のどこで防げたかを調べます。例外承認が増えるなら、ルールが現実の作業に合うか見直します。検証できない生成物は、速く作れた成果ではなく未完了の作業です。
まとめ
チームのAI支援開発は、入力データ、権限、差分、検証、承認、記録、責任を共通化して初めて持続します。通常の品質基準を維持しつつ、AI固有の露出と自律操作へ境界を追加します。小さな差分、独立レビュー、実行証拠を基本に、事故と実績からルールを更新します。
参考リソース
- OWASP Top 10 for LLM Applications
- NIST AI Risk Management Framework
- GitHub Docs: Responsible use of GitHub Copilot code review