마이클 리치먼(Michael Richman)은 AI 에이전트에게 코드를 검토하게 하는 대신, 코드가 깨졌다고 가정하고 결함을 입증하게 하는 ‘반증’을 먼저 반복하자고 제안한다. 그는 이 방식이 사람의 검토 부담을 줄일 수 있지만, 설계 검토나 코드 검토를 완전히 대체하지는 않는다고 말한다.

리치먼은 코드 검토 에이전트가 코드를 옳다고 전제하는 경우가 많다고 지적한다. 반면 반증 에이전트는 결함을 찾도록 지시받으며, 문제를 발견하면 주 에이전트가 수정한 뒤 새 커밋 범위로 다시 반증을 수행한다. 그는 간단한 변경이 아닌 경우 첫 반증에서 아무 문제도 찾지 못한 적이 없었다고 경험을 전했다.

반증 결과는 증거가 있어야 인정한다. 실패하는 테스트, 명령과 그 출력, 또는 입력에서 잘못된 결과에 이르는 줄 번호가 포함된 경로가 필요하다. 문제를 찾지 못한 경우에도 어떤 시도를 했는지 밝히면 유효한 결과로 본다. 반증 에이전트에는 요구사항과 커밋 범위, 테스트 명령을 주되 작성자의 추론은 공유하지 않아 사각지대가 반복되는 일을 줄인다.

확인된 결함은 모두 수정하고, 반증 과정에서 만든 실패 테스트는 유지한다. 새 커밋 범위로 새 반증 에이전트를 실행해 문제가 확인되지 않거나 요구사항 밖의 사소한 결함만 남을 때까지 반복한다. 한 차례에서 직전과 같거나 더 많은 결함을 찾거나, 같은 불변 조건이 다른 형태로 다시 깨지거나, 다섯 차례를 넘기면 사람에게 넘긴다. 리치먼은 반복해도 수렴하지 않을 때는 코드보다 설계가 문제일 수 있다고 설명한다.

그는 이 절차와 프롬프트를 Claude Code, Codex, Cursor, Gemini CLI 등에 설치할 수 있는 에이전트 스킬로 공개했다. 전체 프롬프트 템플릿과 실제 사례, cmdctrlai/refute 저장소에서 확인할 수 있다.