【要約】散らばったCLAUDE.mdのうち、どれがズレているのかを出すスクリプトを書いた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が複数のプロジェクトや端末でAIエージェントを利用する際、指示ファイルの内容が徐々に乖離していく問題に直面している。指示内容の不一致は、AIの振る舞いの不整合を招く。具体的には以下の課題がある。
- ・AIエージェント(Claude Code, Cursor等)の指示ファイルが各環境で個別に更新される。
- ・指示内容の不一致により、AIの回答精度や作法に一貫性がなくなる。
- ・単純なファイル名比較では、無関係なプロジェクトのファイルを同一視してしまう。
- ・単語の集合による比較では、語彙の重複により誤検知が発生する。
// Approach
著者は、実データに基づいた試行錯誤を通じて、精度の高いドリフト検出アルゴリズムを構築した。机上の理論ではなく、実測値に基づき手法を改善している。
- ・テキストを5単語の連続句(shingle)に変換し、Jaccard係数を用いて類似度を算出する。
- ・単連結法によるクラスタの膨張を防ぐため、各クラスタの代表(最大ファイル)と直接比較する手法を採用する。
- ・Python 3.8以上で動作する、依存関係のない単一のスクリプトとして実装する。
- ・
--fail-on-driftオプションにより、CI環境での自動検知を可能にする。
// Result
提案手法により、無関係な文書を排除しつつ、同一テンプレートから派生した文書を正確に検出することに成功した。これにより、指示ファイルの管理コストが低減する。
- ・実測値として、派生した文書群を0.53〜0.65の一致度で正しく識別した。
- ・CIに組み込むことで、指示ファイルの乖離をビルド時に即座に検知できる。
- ・根本的な解決策として、指示ファイルの原本を全端末へ自動配布する仕組みの構想も示されている。
Senior Engineer Insight
> AIエージェントの指示ファイル管理は、今後の「プロンプトの構成管理」として重要になる。本スクリプトは、単純な文字列比較ではなく、n-gram(shingle)と代表値比較を用いた実用的なアプローチを取っている点が評価できる。CIへの導入は、開発体験(DX)を損なわずに一貫性を保つための低コストな手段だ。ただし、類似度の閾値設定はプロジェクトの性質に依存するため、運用開始時のチューニングが不可欠である。