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
  • プロジェクト