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
32개의 프로그래밍 언어와 구조화된 데이터 형식을 tree-sitter를 사용하여 파싱합니다. 엔티티(함수, 클래스 등)를 추출하고 3단계 프로세스(정확한 ID 매칭, 구조적 해싱, 퍼지 유사도)를 사용하여 버전 간의 엔티티를 매칭합니다.
Who it’s for
- Developers:코드 리뷰나 Git 히스토리 감사 시 코드베이스의 무엇이 변경되었는지 더 명확하게하게 이해하고 싶은 개발자.
- AI Coding Agents:파일 전체를 읽지 않고도 정확하고 토큰 효율적인 컨텍스트(예: 의존성 식별 또는 특정 함수 소스 코드)가 필요한 AI 코딩 에이전트.
- CI/CD Pipelines:영향 분석을 자동화하거나 엔티티 단위의 PR 요약을 생성하고 싶은 CI/CD 파이프라인.
Highlights
- Entity-Level Diffing:정확히 어떤 함수나 클래스가 수정, 이름 변경 또는 이동되었는지 식별합니다.
- Impact Analysis:파일 간 의존성 그래프를 제공하여 특정 엔티티가 변경될 경우 무엇이 깨지는지 보여줍니다.
- MCP Server:Model Context Protocol을 구현하여, AI 에이전트가
sem_impact및sem_context도구를 사용하여 결정론적인 코드 탐색을 수행할 수 있게 합니다. - Broad Language Support:tree-sitter를 통해 TypeScript, Python, Rust, Go, Java를 포함한 32개 언어를 지원합니다.
- Git Integration:
sem setup을 통해 기본git diff출력으로 설정할 수 있습니다. - Cloud Acceleration:대규모 monorepo의 경우, 로컬에서 의존성 그래프를 재구축하는 것을 피하기 위해 선택적으로 클라우드 기반 그래프를 사용할 수 있습니다.
관련
- Dispatch
- 프로젝트
- 프로젝트
- Dispatch
- 프로젝트