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:一个验证工具,执行编译器、linter 和测试,只重新检查可证明受影响的部分。
  • MCP 支持:将其能力作为工具提供给使用模型上下文协议的代理。
  • Promises:允许用户通过 tree-sitter 查询定义代码形状规则,以确保架构约束得以维持。

相关

  • Dispatch
  • 项目
  • 项目
  • 项目
  • 项目