Claude한테 짜게 시키고 Codex한테 까게 시키기 — 두 에이전트를 한 레포에서 분담시키는 실무 패턴

4 hours ago 2

요즘 X·디스코드에서 "Claude Code랑 Codex 같이 쓴다"는 글이 부쩍 늘어, 다들 좋다는데 진짜 그런지 한 달 정도 두 도구를 한 레포에 같이 깔고 굴려봤습니다. 막상 도입하려고 보니 어디서부터 셋업해야 하는지, 두 도구를 어떻게 분담시켜야 충돌이 안 나는지, AGENTS.md와 CLAUDE.md를 똑같이 채워도 되는지 결정 포인트가 한 트럭이라, 같은 고민으로 시작 못 하고 계신 분들이 시행착오를 줄일 수 있게 8챕터짜리 커리큘럼 형태로 정리해 두었습니다.

이중 에이전트 워크플로우는 단순합니다. 같은 모델에게 자기 코드 자기 리뷰를 시키면 자기가 쓴 가정을 그대로 받아들여 빈틈이 안 잡히니, 다른 모델을 advisory(차단 X) 리뷰어로 옆에 두는 구조입니다. Claude Code는 메인 작성자, Codex는 advisory 리뷰어. 어느 쪽이 더 똑똑하냐가 아니라 모델이 다르다는 점이 핵심이고, 둘이 서로의 게이트가 되는 순간 워크플로우가 깨지므로 advisory를 절대 차단으로 만들지 않는 것이 가장 큰 룰이 됩니다.

배경 — 정리하면서 다시 짚어본 변화

• 예전 질문: "어떤 AI 코딩 도구가 가장 좋은가"
• 지금 질문: "두 개 이상의 도구를 어떻게 분담시킬 것인가", "한 도구의 사각지대를 다른 도구로 어떻게 메울 것인가"
• Claude Code의 슬래시 커맨드·서브에이전트, Codex의 review/exec 분리, AGENTS.md 같은 컨텍스트 파일이 갖춰지면서 이중 구조를 워크플로우에 박는 것이 처음으로 현실적인 옵션이 된 시점

이중 구조 패턴의 핵심 (한 달 굴리면서 인상 깊었던 부분)

• advisory는 절대 차단이 아니다 — Codex가 CRITICAL을 잡아도 push는 통과. 차단으로 한 번 변하면 모델 다운에 작업 전체가 멈추고, false positive 한 번에 사용자가 --no-verify로 hook을 통째 우회하기 시작
• CLAUDE.md / AGENTS.md를 같은 내용으로 채우지 않는다 — 작성자에게는 "어떻게 만드는지", 리뷰어에게는 "무엇을 의심해야 하는지". 80% 이상 겹치면 분담이 사실상 안 되고 있다는 신호
• codex review --base vs codex exec는 유즈케이스로 나눈다 — review는 git을 직접 읽어 깔끔하지만 큰 PR에서 토큰 폭주, exec는 prompt에 diff를 직접 넣어 비용 통제 가능. 100파일 넘는 변경은 exec로 갈아타는 패턴
• pre-push hook의 시크릿 두 단계 방어선 — 파일 패턴(.env, *.pem, secrets/)은 push abort, 인라인 정규식(sk-, ghp_, AKIA…)은 경고만. advisory의 "never block"은 모델 출력 룰이고 시크릿 파일 push는 별개의 보안 사고라 차단이 정답
• graceful degradation 래퍼 한 개로 흡수 — JSON envelope 기본 + --raw Markdown, bash-native 타임아웃, 항상 exit 0. 호출자는 status만 보고 분기

한 달 써보고 달라진 점

• 머지 직전에 잡히는 버그가 늘어남. Claude가 "잘 짰다"고 자신만만한 부분에서 Codex가 race condition·누락된 null 체크를 짚어내는 케이스가 꽤 자주 발생
• PR 올린 다음 날 다시 열어보며 "어 이거 왜 이렇게 짰지" 하는 일이 거의 사라짐. 다른 시점이 한 번 들어간 뒤라 회귀 검토 비용이 줄어듦
• 자기 코드 자기가 들여다보는 셀프 리뷰 피로가 확연히 줄어듦. 사람 리뷰어 한 명을 더 붙인 효과
• 마이그레이션 SQL·결제 흐름처럼 되돌리기 어려운 변경 직전에 다른 모델이 한 번 더 본다는 점이 심리적으로 가장 큰 차이

커리큘럼 구성 (8챕터, 5파트)

• Part 1 두 에이전트 병용 사고법 · 1챕터 — 단일 에이전트의 사각지대, 비용 정당화 기준
• Part 2 환경과 컨텍스트 · 2챕터 — VSCode + Claude Code + Codex CLI 베이스 셋업, AGENTS.md vs CLAUDE.md 분담
• Part 3 리뷰 자동화 패턴 · 3챕터 — advisory 래퍼 스크립트, 슬래시 커맨드 멀티페이즈 파이프라인, pre-push hook 자동화
• Part 4 운영 가이드 · 1챕터 — 작업 유형별 도구 선택 트리, 비용·모델 가이드, Security & Privacy 섹션
• Part 5 보일러플레이트 · 1챕터 — 본인 레포에 그대로 깔 수 있는 래퍼·hook·CLAUDE.md/AGENTS.md 템플릿 한 묶음

정리하면서 들었던 생각

• 이중 구조의 진짜 가치는 "두 도구가 서로의 게이트가 되지 않는 것"이라는 점. 차단 한 번 허용하면 한쪽 다운에 작업이 멈추고, false positive 한 번에 사용자가 hook을 통째 우회하기 시작해 hook 자체가 무력화됨
• AI 도구가 빨라질수록 "어떤 도구를 쓰느냐"보다 "여러 도구의 사각지대를 어떻게 겹쳐 덮느냐"가 결정적인 변수가 되는 듯한 느낌. 사람 코드 리뷰를 둘 이상에게 받는 이유와 같은 구조
• AI 코딩 도구로 작업하면서 자기 코드를 자기가 다시 검토하는 것이 미덥지 않으셨던 분들, Claude Code와 Codex를 같이 깔까 말까 미루고 계신 분들이 같이 보면 좋을 것 같아 공유합니다. 잘못 이해하고 정리한 부분이 있으면 댓글로 알려주시면 반영하겠습니다.

Read Entire Article