Show HN: Sphinx – A hook that quizzes you on your AI's code before shipping
AI가 작성한 코드에 대해 푸시 전에 사용자에게 퀴즈를 내는 Git 훅, Sphinx
Sphinx는 AI 코딩 에이전트가 만든 변경 사항을 푸시하기 전에 질문을 내는 Git 훅입니다. 사용자가 코드의 동작과 예외 상황을 설명하면 푸시를 허용하며, 개발자가 이해하지 못한 채 코드를 배포하는 일을 줄이려는 도구입니다.
- 주제
에디터 노트
퀴즈가 확인하는 것은 개발자가 변경 내용을 설명할 수 있는지이지, diff 자체가 올바른지는 아닙니다. 웹훅 예시는 이벤트 ID를 결제 전에 저장하는 순서가 재시도 결과를 바꾸는 상황을 짚습니다. 이런 질문은 단순히 코드를 읽는 것보다 실패 경로를 의식하게 하지만, 디버그 출력이나 잘못된 패키지처럼 diff에서 직접 찾아야 하는 결함까지 걸러내지는 못합니다. 댓글에서도 퀴즈가 PR 이해를 도울 수 있다는 의견과 이미 아는 내용을 묻거나 확인 피로를 더한다는 반응이 맞섭니다. Sphinx를 필수 관문으로 쓰면 작업 방식에 따라 불필요한 마찰이 생길 수 있고, 선택 기능으로 두면 질문이 필요한 변경을 골라 활용할 여지가 있습니다. 다만 제공된 설명에는 질문의 정확도를 검증하는 절차나 코드 검토를 대체하는 범위가 제시되지 않았습니다.
AI 요약
Sphinx는 에이전트 보조 개발을 위한 Git 훅입니다. 보호 대상으로 설정한 브랜치에 푸시하면 변경 내용을 읽고 질문을 냅니다. 질문에는 코드가 실패하거나 재시도될 때 벌어지는 상황도 포함됩니다. 예를 들어 웹훅 처리기가 결제 전에 이벤트 ID를 저장하면, 결제가 실패한 뒤 재시도에서 이미 처리한 이벤트로 판단해 결제를 건너뛸 수 있습니다. Sphinx는 사용자가 이런 동작을 설명하도록 유도합니다. 답이 틀리면 이유와 새로운 시나리오를 제시하고, 맞히면 푸시를 진행합니다.
설치와 지원 환경
Node 22.19 이상에서 macOS, Linux, WSL을 지원합니다. npm으로 전역 설치한 뒤 sphinx install을 실행하면 Git과 코딩 에이전트를 연결하고 검토에 쓸 모델을 선택합니다. Codex, Claude Code, Cursor, OpenCode, Pi와 일반 Git에서 사용할 수 있으며, OpenRouter나 OpenAI 호환 엔드포인트도 지원합니다. 제작자는 토큰 사용량을 낮게 설계했다고 설명합니다. 사용자의 답변은 코딩 에이전트에 전달하지 않으며 .env 파일과 키를 열지 않는다고 안내합니다. sphinx yolo를 실행하면 질문을 건너뛰고 푸시할 수 있고, 건너뛴 기록은 남습니다.
Hacker News 반응
- @jamienk — AI가 만든 코드를 더 잘 이해하고 싶다는 동기는 알겠지만, 이 방식이 효과가 있을지는 모르겠습니다. 확인 절차에 지친 뒤에는 에이전트가 Sphinx에도 대신 답하게 될 겁니다.
- @sshah03 — PR 시각 요약과 퀴즈를 제공하는 앱을 오픈소스 프로젝트용으로 만들까 생각했지만, 강제 관문보다는 원하는 사람이 쓰는 선택 기능이 낫다고 판단했습니다. PR이 늘면서 선택 기능을 쓰는 일조차 부담이 커지고 있습니다.
- @alyssassan — PR이 무엇을 하는지 이해하는 것과 잘못된 부분을 찾아내는 것은 다를 수 있습니다. 퀴즈는 전자를 확인하지만, 후자는 검토에서 더 중요할 때가 많습니다. 변경이 의존하는 가정 하나와 구체적인 테스트 방법을 찾게 한다면 유용할 수 있습니다.
- @hypfer — 저는 코드를 중요하게 여길 때는 직접 읽고 제 생각에 맞게 수정합니다. 대략 요구사항에 맞는 해결책이면 코드를 읽지 않습니다. 이 훅은 제가 이미 아는 걸 묻거나 관심 없는 내용을 묻게 될 것 같습니다. 작업 방식에 따라 다르겠지만요.
- @nkmnz — 코드를 이해하지 못한 채 복사하거나 엣지 케이스를 놓치는 문제는 AI 이전에도 있었습니다. 이런 도구는 개발자가 놓친 부분을 알려주는 경고 장치가 될 수 있습니다.
- @princejain756 — 퀴즈는 diff가 아니라 사람을 검사합니다. 답을 잘해도 디버그 출력, 약해진 assertion, 존재하지 않는 패키지 import 같은 문제는 놓칠 수 있습니다. 저는 코드를 설명할 수 있었는데도 논블로킹 파이프에서 깨지는 stdin 읽기를 배포했습니다. 두 방식은 서로 다른 문제를 잡습니다.
- @jan_m_savage — AI가 만든 도구로 AI가 작성한 코드를 검사하는 셈입니다. 검사 중 AI가 환각을 일으키면 어떻게 하나요?
- @hatch_q — 검토도 AI가 맡게 됩니다. 모두 같은 환각을 내야 문제가 되는데, 그렇다면 처음 요구사항이 잘못된 겁니다.
- @sailorganymede — 비슷한 프로젝트를 만들어 PR 단계에서 병합을 막습니다. AI가 만든 코드를 이해하지 못한 채 보내는 팀이 있고, 문화를 바꾸기는 어렵기 때문에 이런 도구가 작업을 늦추는 데 도움이 될 수 있습니다.
- @compounding-err — 참신한 아이디어지만 실용성은 낮아 보입니다. AI를 효과적으로 쓰는 사람에게는 필요 없고, 그렇지 않은 사람에게는 원치 않는 마찰이 됩니다. 누가 필요로 하나요?
- @fwlr — 프로덕션 푸시 전보다 다른 사람의 시간과 주의를 요청하기 전에 막는 편이 낫겠습니다. PR 제출이나 업데이트를 제한하면 낭비를 줄일 수 있습니다.
원문: Hacker News / 번역·요약: Trawling