rafal-qa/slopo
Embedding-based discovery of duplicated logic for projects too large or messy to maintain reliably
解決する課題
Slopoは、「検出が最も困難な」コードの重複を見つけるために設計されたCLIツールです。具体的には、従来のコピー&ペースト検出器では見逃されてしまう、異なる方法で実装された類似ロジックを特定します。これは、AIコーディングエージェントや人間が、大規模またはメンテナンスが行き届いていないコードベース内に既に存在するソリューションを再実装してしまうという盲点を突くものです。
仕組み
このツールは、埋め込みモデルを使用してコードスニペットの意味をベクトルとして表現します。これらの埋め込み間のコサイン類似度を計算することで、Slopoは構文が異なっていても機能的に類似したコードを識別できます。ソースコードを「コードユニット」(関数やブロック)に分割し、コメントを除去した上で、類似度スコアとコードベース内での距離(離れた場所にあるコードを優先)に基づいて潜在的な重複をランク付けします。
対象ユーザー
大規模または複雑なコードベースで作業しており、既存の実装を見つけるのが困難な開発者、およびAIコーディングエージェント(Claude CodeやCodexなど)を使用して、潜在的な重複のレポートを提供することでトークンコストを削減し精度を向上させたいと考えているユーザーを対象としています。
主な特徴
- 多言語サポート: Python, TypeScript, JavaScript, Java, Kotlin, C, C++, C#, Go, Rust, PHP, Elixir, Ruby, Swiftに対応しています。
- AIエージェント統合: Claude CodeおよびCodex向けの専用スキルが含まれており、重複のレビューとフィルタリングを自動化します。
- 柔軟なモデルサポート: LiteLLMを通じて、Jina AI、Voyage AI、およびOllamaを使用したローカルモデルと互換性があります。
- 距離ベースのランキング: 異なるモジュール内や同じファイル内で離れた場所にある類似コードの優先順位を高め、最も隠れた重複を強調します。
関連
- Dispatch
- プロジェクト
- プロジェクト
- Dispatch
- プロジェクト