AI 코딩 에이전트의 쉘 명령어 종료 상태 감지 워크플로우
Codex 후크 사용 시 테스트 실패를 성공으로 오인하는 문제를 쉘 재작성으로 해결하는 기법.
요약
Codex의 PostToolUse 페이로드는 셸 명령 실행 시 종료 상태값(exit status)을 반환하지 않아, 성공(0)과 실패(3)를 구분할 수 없는 문제가 발생한다. 이를 해결하기 위해 PreToolUse 훅에서 pytest, pnpm test, tsc 등 80여 개 러너의 명령어를 재작성하여 실행 결과와 종료 상태값을 별도 로그로 기록하도록 구현했다. 이 방식은 Codex가 허용한(allow decision) 검증 명령어에만 적용된다. 이후 툴은 모든 실행을 영수증 형태로 기록하고 에디트 이력을 추적한다. 만약 에이전트가 최신 편집 이전을 참조하거나, 테스트에 실패했거나, 결과가 숨겨진 상태에서 '모든 테스트 통과'를 선언하면, 시스템은 중단 대신 재실행을 유도하는 프롬프트를 생성한다.
AI가 원문을 요약한 내용으로, 부정확할 수 있습니다.
원문 제목 Codex hooks give you no exit status for a shell command. Here is how I record it anyway and block "done" on stale test results.
원문 보기 ↗