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 は、行ベースの diff をエンティティ単位の変更に置き換えるセマンティック・バージョン・コントロール・ツールです。どのコード行が変更されたかを見るのではなく、関数、メソッド、クラスなどの特定のエンティティの変更を特定し、空白やフォーマットなどの見た目上の変更をフィルタリングして、実際のロジックの変更に焦点を当てます。

How it works

tree-sitter を使用して 32 種類のプログラミング言語と構造化データ形式を解析します。エンティティ(関数、クラスなど)を抽出し、3 段階のプロセス(完全一致、構造的ハッシュ、およびファジー・シミラリティ)を使用して、バージョン間でエンティティを照合します。

Who it’s for

  • Developers:コードレビューや Git 履歴の監査を、より明確に理解したい開発者。

  • AI Coding Agents:ファイル全体を読み込むことなく、正確でトークン効率の良いコンテキスト(例:依存関係の特定や特定の関数のソースコード)が必要な AI エージェント。

  • CI/CD Pipelines:影響分析を自動化したり、エンティティ単位の PR サマリーを

Highlights

  • Entity-Level Diffing:どの関数やクラスが変更、リネーム、または移動されたかを正確に特定します。

  • Impact Analysis:ファイル間の依存関係グラフを提供し、特定のエンティティが変更された場合に何が壊れるかを示します。

  • MCP Server:Model Context Protocol を実装しており、AI エージェントが sem_impactsem_context などのツールを使用して、決定論的なコードナビゲーションを行えるようにします。

  • Broad Language Support:tree-sitter を介して TypeScript, Python, Rust, Go, Java など 32 種類の言語をサポートします。

  • Git Integrationsem setup を通じて、デフォルトの git diff 出力として設定可能です。

  • Cloud Acceleration:大規模な monorepo の場合、オプションのクラウドバックエンドのグラフを使用して、ローカルでの依存関係グラフの再構築を回避できます。

関連

  • Dispatch
  • プロジェクト
  • プロジェクト
  • Dispatch
  • プロジェクト