Ataraxy-Labs/sem

Semantic version control => entity-level diffs, blame, and impact analysis on top of git. 28 languages via tree-sitter. Built for coding agents.

What it solves

sem は Git 上に構築されたセマンティックバージョン管理ツールで、行ベースの diff をエンティティレベルの変更に置き換えます。どの行が変わったかを見る代わりに、どの関数・クラス・メソッドが変更、リネーム、移動されたかが分かるため、コードベースの実際のロジック変更を理解しやすくなります。

How it works

このツールは tree‑sitter を使用して 32 種類のプログラミング言語と構造化データ形式を解析し、関数やクラスといったエンティティを抽出します。抽出したエンティティは、次の 3 段階マッチングプロセスで比較されます:

  1. 完全一致 ID マッチ
  2. 構造ハッシュ(空白やコメントを無視してリネーム/移動を検出)
  3. トークン重複に基づくファジー類似度

リポジトリ外部に SQLite エンティティキャッシュを保持し、パフォーマンスを高く保ちます。非常に大規模な monorepo 向けに、事前構築されたコードベースグラフを提供するオプションのクラウドアクセラレーションサービスも用意しています。

Who it’s for

  • 開発者:より意味のある diff と変更のインパクト分析を求める方。
  • AI コーディングエージェント:ファイル全体を読むのではなく、正確でトークン効率の高いコンテキスト(MCP サーバー経由)が必要な方。
  • DevOps / CI パイプライン:プルリクエストでエンティティレベルの変更追跡が必要な方。

Highlights

  • エンティティレベル diff:特定の関数、クラス、メソッドの変更を識別。
  • インパクト分析:ファイル横断の依存グラフで、特定エンティティを変更した際に何が壊れるかを示す。
  • MCP サーバー:AI エージェント(Claude Code や Cursor など)と統合し、impactcontextdiff クエリを提供。
  • 広範な言語サポート:Rust、Python、Go、TypeScript、Java など 32 言語に対応。
  • Git 連携sem setup でデフォルトの git diff 出力に設定可能。
  • GitHub Action:プルリクエストにエンティティレベルの変更サマリーを自動で追加。