
성공 주장은 증거를 동반해야 한다
요약
코딩 에이전트가 검증 가능한 증거 없이 성공을 주장하며 턴을 종료하는 문제를 해결하기 위한 도구인 ProofKit을 소개합니다. Claude Code의 Stop hook을 활용하여 에이전트가 주장을 입증할 때까지 프로세스를 강제로 유지합니다.
핵심 포인트
- 에이전트의 근거 없는 성공 주장을 방지하는 강제 집행 도구
- Claude Code의 Stop hook을 사용하여 검증 가능한 증거 요구
- node --test를 통한 높은 테스트 커버리지 확보
- 간편한 설치 및 기존 설정에 영향을 주지 않는 안전한 설계
코딩 에이전트가 '테스트 통과' 또는 '수정 완료'와 같은 메시지로 턴을 종료할 때, 사용자는 이를 사실로 받아들입니다. 배포하고, 탭을 닫고, 관찰을 멈춥니다. 그리고 자신감 넘치는 추측은 마치 검증된 사실처럼 보입니다. 단어도, 어조도 같습니다. 차이는 나중에, 되돌아가서 추적하는 데 비용이 많이 들 때만 드러납니다.
대부분의 '훅(hook) 팩'은 모델에게 특정 행동을 요청하는 프롬프트를 제공합니다. 프롬프트는 복사하기 쉽고 무시하기도 쉽습니다. 저는 요청이 아니라 강제적인 집행(enforcement)을 원했습니다.
ProofKit은 Claude Code Stop hook입니다. 이 도구는 에이전트의 최종 메시지를 읽어보고, 그 메시지가 검증 가능한 증거 없이 성공을 주장할 경우 턴을 차단합니다. 따라서 에이전트는 주장을 입증하거나 철회하기 전까지 턴을 종료할 수 없습니다.
실제로 테스트된 것과 그렇지 않은 것이 있습니다. ProofKit은 자체 규칙을 지키기 때문에, 여기 기록 장부(ledger)가 있습니다: 이 감지기(detector)와 훅(hook)은 실행 가능한 스위트(runnable suite)로 커버됩니다 (제 기계에서 node --test로 88/88). 이는 양방향을 모두 주장합니다. 즉, 주장은 작동시키고 정직하거나 부정을 담은 산문에는 침묵합니다. bash와 PowerShell 모두에서 동일하게 실행됩니다. 실제로 포착된 Claude Code Stop 페이로드(payload)가 이를 통해 재현됩니다. 자동 테스트되지 않은 부분은 다음과 같습니다: 실제 세션에서 Claude Code가 이 차단 기능을 준수하는지 여부입니다. 이는 개발 과정에서 관찰되었으며, 설치 후 한 번 확인해야 할 유일한 게이트입니다.
설치는 하나의 명령어(node install.mjs)로 끝납니다. 이는 settings.json에 병합되고, 백업되며, 다른 훅에는 절대 영향을 주지 않습니다. 의존성(dependency)은 없고 MIT 라이선스입니다.
이것은 신탁(oracle)이 아니라 경고장치(tripwire)입니다. 성공을 주장하고 턴을 종료하는 반사적인 행동에 비용을 지불하게 만듭니다. 그것이 바로 핵심 목적입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기