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 지원 포함)를 제공하여 에이전트가 코드베이스의 변경 사항을 탐색, 이해, 검증하도록 돕습니다.
- 개발자: 코드 변경을 검토하는 더 의미 있는 방법을 제공하고 전통적인 diff의 줄 단위 노동을 피합니다.
- CI/CD 파이프라인: 변경에 의해 의미적으로 영향을 받는 테스트만 실행하여 더 스마트한 테스트 선택을 가능하게 합니다.
주요 기능
- 엔터티 수준 diff: 텍스트 줄이 아닌 함수와 클래스에 초점을 맞춥니다.
- 영향 분석: 특정 변경이 영향을 미치는 테스트와 종속 엔터티를 정확히 식별합니다.
- sem check: 컴파일러, 린터, 테스트를 실행하고 증명 가능한 영향을 받는 것만 다시 확인하는 검증 도구입니다.
- MCP 지원: 모델 컨텍스트 프로토콜을 사용하는 에이전트에게 도구로 기능을 제공합니다.
- Promises: 사용자가 tree-sitter 쿼리를 통해 코드 형태 규칙을 정의하여 아키텍처 제약이 유지되도록 할 수 있습니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트