프로젝트 소개

ripr는 정적 뮤테이션 노출 분석을 수행하여 테스트가 변경된 동작에 도달함에도 불구하고 결함을 잡아낼 집중적인 단언문(assertion)이 부족한 간극(gap)을 식별합니다. 이 도구는 PR diff를 읽고 인간이나 코딩 에이전트가 처리할 수 있도록 타겟팅된 테스트 전용 수정 경로를 안내합니다. 주요 기능: - 간극 식별: 결함을 감지하기에 테스트가 너무 약한 변경된 동작을 식별하며, 각 간극에 안정적인 정준 ID(canonical ID)를 부여합니다. - 수정 카드 생성: 무엇을 단언해야 하는지, 어디서 해야 하는지, 그리고 현재의 증명이 왜 약한지를 생성합니다. - 경계 지정 패킷 생성: 허용된 파일, 금지된 파일 및 중단 조건을 명시하는 테스트 전용 작업 지시서를 생성합니다. - 검증 명령 제공: 수정을 확인하기 위한 검증 명령(예: cargo test, pytest)을 제공합니다. - 전/후 영수증 기록: 간극이 실제로 메워졌는지 증명하는 기록을 남깁니다. 이 도구는 '간극 → 수정 → 검증' 에이전트 루프를 통해 작동합니다. 기본 명령인 `ripr check`는 변경 사항을 분석하고 선택된 간극과 증거 포인터가 포함된 경계 지정 시작 경로를 반환합니다. 2단계 수정 트랜잭션(`ripr agent repair --phase before/after`)은 증거 배관을 관리하며, 인간이나 외부 에이전트가 테스트 편집을 담당합니다. ripr는 커버리지(라인이 실행되었는가?)와 뮤테이션 테스트(실제 뮤턴트 발생 시 테스트가 실패했는가?) 사이의 위치를 점유합니다. 이 도구는 정적이며 권고적입니다. 즉, 뮤턴트를 실행하거나, 살해/생존 결과를 보고하거나, 커버리지를 대체하거나, 테스트 적절성을 주장하지 않습니다. 언어 지원: Rust/Cargo 간극 수정은 사용 가능한 알파 단계입니다. Python pytest/unittest 수정 라우팅은 사용 가능한 알파 단계입니다. TypeScript는 선택적 프리뷰 단계이며, Perl은 프리뷰/권고 단계입니다. 배포 경로: CLI (cargo install), VS Code 확장 프로그램, Open VSX, `ripr init --ci github`를 통한 CI 통합을 지원합니다. Rust ≥1.95 및 Git이 필요하며 Git 저장소 내부에서 실행해야 합니다. 라이선스는 MIT 또는 Apache-2.0입니다. 본 저장소(ripr-swarm)는 신뢰할 수 있는 에이전트 및 메인테이너 PR을 위한 개발 트렁크이며, EffortlessMetrics/ripr 저장소가 릴리스 및 배포 권한을 가집니다.