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.

解決する問題

sem は、行ベースの差分をエンティティレベルの差分に置き換えるセマンティックバージョン管理ツールです。どの行が変更されたかを表示する代わりに、どの関数、クラス、メソッドが変更、追加、削除されたかを正確に特定し、コードレビューと変更追跡を人間と AI エージェントの両方にとってより直感的にします。

仕組み

Git の上にレイヤーとして動作し、tree-sitter を使用してソースコードを解析し、エンティティを抽出します。コードベースの依存関係と参照を追跡するために、ディスク上にクエリインデックスを構築します。これにより、呼び出し元と呼び出し先の特定、変更の「影響」の計算(影響を受けるテストや依存関係)、構造変更を要約したコミット範囲の「証明書」の生成などのセマンティック分析が可能になります。

対象ユーザー

  • AI エージェント: 構造化された JSON 互換インターフェース(MCP サポートを含む)を提供し、エージェントがコードベースの変更をナビゲート、理解、検証するのを支援します。
  • 開発者: コード変更をレビューするより意味のある方法を提供し、従来の差分の行ごとの苦労を回避します。
  • CI/CD パイプライン: 変更によって意味的に影響を受けるテストのみを実行することで、よりスマートなテスト選択を可能にします。

ハイライト

  • エンティティレベル差分: テキスト行ではなく関数とクラスに焦点を当てます。
  • 影響分析: 特定の変更が影響するテストと依存エンティティを正確に特定します。
  • sem check: コンパイラ、リンター、テストを実行し、証明可能な影響を受けるものだけを再チェックする検証ツールです。
  • MCP サポート: モデルコンテキストプロトコルを話すエージェントにツールとして機能を提供します。
  • Promises: ユーザーが tree-sitter クエリを使用してコードシェイプのルールを定義し、アーキテクチャの制約が維持されることを保証できます。

関連

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