원문 캡처 · github.com
원문 캡처 · github.com

Grip은 Git 푸시 전에 변경 사항에 관한 질문을 내고 답변을 채점하는 도구다. 팀이 정한 통과 점수에 미치지 못하면 푸시를 보류한다.

Grip은 코드 자체가 아니라 개발자가 변경 내용을 설명할 수 있는지를 확인한다고 소개한다. diff를 바탕으로 설계 이유와 실패 가능성, 악의적인 호출자가 할 수 있는 일, 작동 여부를 확인한 방법 등을 묻는다. 질문은 터미널에서 답하거나 브라우저의 화이트보드 화면에서 변경 내용을 보며 답할 수 있다.

Git 훅을 설치하지 않아도 fake 제공자로 미리 체험할 수 있다. 이 방식은 계정이나 API 키 없이 오프라인에서 스크립트 질문을 실행한다. 실제 푸시를 막으려면 저장소에서 grip init을 실행해 사전 푸시 훅을 설치해야 한다.

text
pipx install grip-hook # or: uv tool install grip-hook

Python 3.11 이상이 필요하며 Linux, macOS, Windows에서 사용할 수 있다. grip init은 설치된 경우 Claude Code, Codex 또는 Gemini CLI를 모델로 선택한다. 그 밖에는 ANTHROPIC_API_KEY를 설정하거나 제공자 안내를 참고할 수 있다. 프로젝트 설명에 따르면 Anthropic, OpenAI 호환 API, 로컬 Ollama도 지원한다.

저장소 루트의 .grip.toml에서 통과 점수와 난이도, 제공자를 설정할 수 있다. 예시의 통과 점수는 0~100 범위이며 기본 설정은 70이다.

text
passing_score = 70 # 0-100
difficulty = "normal" # easy | normal | hard
provider = "claude-code" # auto | anthropic | claude-code | codex | gemini | openai | ollama

Grip은 변경 사항에 관한 질문 다섯 개를 내고 숨겨진 채점 기준으로 100점 만점의 점수를 산출한다. 통과한 diff는 기억하며, 재시도 때는 질문을 재사용해 채점 호출만 발생한다고 설명한다. grip skip으로 다음 푸시를 한 번 통과시킬 수 있고, CI 및 비대화형 실행은 건너뛴다.

설치와 사용법은 Grip 저장소와 문서에서 확인할 수 있다. 문서에는 점수가 측정하는 것과 측정하지 않는 것에 관한 설명도 있다.