【要約】AIが書いたコードを追跡するOSSを作った話 ── git blameのAI版「aidiff」 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がAIツールを多用する中で、どのコードがAIによるものか判別できないという課題に直面している。AI生成コードを含むプルリクエストは、変更失敗率が約30%高いという調査結果もある。現状では以下の問題が顕在化している。
- ・どのファイルがAI生成か判別不能。
- ・AI生成コードが適切にレビューされているか追跡できない。
- ・チーム全体のAI依存度の推移を把握できない。
// Approach
開発者は、3層の検出アプローチを組み合わせることで、AI生成コードの特定を試みている。単一の手法に頼らず、確実性の高い情報から推測に基づく情報までを統合している。
- ・明示的タグの検出:
# ai-generated等の記述をスコア1.0として扱う。 - ・コミットメッセージ解析:
Co-authored-by: Claude等のパターンを検出する。 - ・ヒューリスティック解析:冗長な変数名、自明なコメント、TODO、長いdocstring等の特徴量でスコアリングする。
- ・クラスターブースト:AIらしい行が連続する場合、周囲のスコアを底上げする。
// Result
利用者は、aidiffを導入することで、AI生成コードの可視化と管理を実現できる。これにより「AI生成だから信用しない」のではなく「AI生成だから重点レビューする」という文化の構築が可能となる。
- ・
aidiff scanによるAIコード率の算出。 - ・
aidiff reportによるHTMLレポートの生成。 - ・GitHub Actionsを用いたCIでの自動閾値チェック。
- ・
pre-commitフックによるコミット時の自動記録。
Senior Engineer Insight
> AI生成コードを「排除」ではなく「重点レビュー」の対象とする思想は極めて合理的だ。CI/CDへの組み込みは、品質管理のガードレールとして機能する。ただし、ヒューリスティックな判定は偽陽性を生むリスクがある。実運用では、プロジェクト固有のパターンを定義できるカスタムルールの精度が、運用の成否を分けるだろう。