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 段階マッチングプロセスで比較されます:
- 完全一致 ID マッチ
- 構造ハッシュ(空白やコメントを無視してリネーム/移動を検出)
- トークン重複に基づくファジー類似度
リポジトリ外部に SQLite エンティティキャッシュを保持し、パフォーマンスを高く保ちます。非常に大規模な monorepo 向けに、事前構築されたコードベースグラフを提供するオプションのクラウドアクセラレーションサービスも用意しています。
Who it’s for
- 開発者:より意味のある diff と変更のインパクト分析を求める方。
- AI コーディングエージェント:ファイル全体を読むのではなく、正確でトークン効率の高いコンテキスト(MCP サーバー経由)が必要な方。
- DevOps / CI パイプライン:プルリクエストでエンティティレベルの変更追跡が必要な方。
Highlights
- エンティティレベル diff:特定の関数、クラス、メソッドの変更を識別。
- インパクト分析:ファイル横断の依存グラフで、特定エンティティを変更した際に何が壊れるかを示す。
- MCP サーバー:AI エージェント(Claude Code や Cursor など)と統合し、
impact、context、diffクエリを提供。 - 広範な言語サポート:Rust、Python、Go、TypeScript、Java など 32 言語に対応。
- Git 連携:
sem setupでデフォルトのgit diff出力に設定可能。 - GitHub Action:プルリクエストにエンティティレベルの変更サマリーを自動で追加。