공식 참고 자료: Best Practices · Review · Sandboxing
커리큘럼 흐름
- Codex 시작하기 — 설치, 첫 작업, 체크포인트까지 — 입문 루프
- Codex 지시문 — AGENTS.md를 진짜 쓸모 있게 만드는 법 — 저장소 규칙
- Codex 샌드박싱 — 권한, 승인, 클라우드 환경 이해하기 — 권한과 승인
- Codex 작업 설계 — 소원 말고 이슈처럼 프롬프트 쓰기 — 좋은 task shape 만들기
- Codex Skills — 반복 프롬프트를 재사용 가능한 워크플로우로 바꾸기 — 반복 워크플로우를 재사용 자산으로 만들기
- Codex 서브에이전트 — 병렬 실행과 위임 패턴 — 병렬 실행과 위임
- Codex MCP — 외부 컨텍스트를 복붙 대신 연결하기 — 외부 시스템 연결
- Codex 리뷰와 자동화 — /review, worktree, 반복 엔지니어링 운영하기 — 반복 작업 운영
- Codex Worktrees — 브랜치 충돌 없이 병렬 실행하기
- Codex 핸드오프 — 병렬 레인을 머지 가능한 결과로 연결하기
- Codex 검증 루프 — 머지 전에 동작을 증명하기 ← 현재 문서
- Codex 릴리스 준비도 — 프로덕션 전 최종 게이트
- Codex 첫날 안전 루프 — 초반 실수를 줄이는 입문 워크플로우
- Codex 팀 딜리버리 플레이북 — 중급 레인 운영
- Codex 고위험 변경 거버넌스 — 크리티컬 릴리스를 위한 고급 통제
- Codex 운영 매뉴얼 — 팀의 일/주/릴리스 리듬 정렬하기
- Codex 사고 복구 플레이북 — 프로덕션 압박 상황에서의 결정론적 대응
- Codex 사고 후 하드닝 루프 — 복구를 내구성 있는 통제로 전환하기
- Codex 카오스 복원력 드릴 — 실패가 오기 전에 리허설하기
- Codex 복원력 지표와 SLO — 실패 전에 신뢰성을 측정하기
- Codex Ralph 지속 루프 — 긴 작업을 검증 가능한 완료까지 가져가기
이 문서에서 참고한 공식 문서
- 명시적 done criteria 기반의 작업 프레이밍 — Best Practices
- diff 범위 기반 review 체크포인트 — Review
- 권한 경계와 안전한 실행 기대치 — Sandboxing
왜 검증 루프가 중요한가
Codex는 빠르게 결과를 만듭니다. 그 결과를 신뢰할 수 있는지 결정하는 것은 검증 루프입니다.
명시적 루프가 없으면 팀은 확신형 표현으로 배포합니다.
- "문제 없어 보임"
- "아마 통과할 듯"
- "대체로 안전할 것"
이건 근거가 아닙니다.
done 계약: claim -> command -> output
완료 주장은 반드시 구체적 검증과 연결되어야 합니다.
- Claim: 무엇이 사실이라고 말하는가
- Command: 무엇으로 증명하는가
- Output: 실제로 확인한 결과가 무엇인가
셋 중 하나라도 빠지면 완료 주장은 불완전합니다.
리스크 티어별 검증 강도
| 리스크 티어 | 대표 변경 | 최소 루프 | 권장 루프 |
|---|---|---|---|
| Low | 문서/copy/UI 미세 수정 | lint + 대상 체크 | lint + build + quick review snapshot |
| Medium | 리팩토링 + 로직 수정 | lint + tests + build | lint + tests + build + 리뷰어 점검 |
| High | auth/billing/security/migration | lint + 전체 tests + build | lint + 전체 tests + build + 검증 레인 + 롤백 리허설 |
검증 강도는 개발자의 자신감이 아니라 영향 범위에 맞춰야 합니다.
기본 커맨드 팩(예시)
npm run lint
npm run test
npm run build스택 특화 검증(마이그레이션 테스트, 스모크 스크립트, 계약 테스트)을 추가하세요. 기본 팩은 천장(ceiling)이 아니라 바닥(floor)입니다.
근거 신선도 규칙
오래된 테스트 출력은 새 변경의 근거가 될 수 없습니다.
다음 규칙을 지키세요.
- 마지막 의미 있는 수정 뒤에 재실행
- 현재 diff와 연결된 출력 첨부
- 생략한 체크는 이유를 명시
- 충돌 해결 후 핵심 체크 재실행
신선한 근거가 과신을 줄입니다.
검증 핸드오프 템플릿
### Verification Summary
- Scope: <무엇을 검증했는지>
- Commands run:
- <command>: <pass/fail>
- Key outputs:
- <핵심 결과>
- Skipped checks:
- <none 또는 사유>
- Residual risks:
- <none 또는 목록>
- Verdict:
- pass | rework required짧게 써도 좋지만 모호하면 안 됩니다.
병렬 검증 레인
중간/고위험 작업은 구현과 검증을 분리하세요.
- 구현 레인: 코드 작성
- 검증 레인: 체크 재실행 + diff 감사 + 가정 반박
- 리뷰 레인: 머지 가능 여부 결정
한 레인이 자기 숙제를 스스로 채점하지 않게 만드는 구조입니다.
실패 트리아지 프로토콜
체크가 실패하면:
- 실패 분류: 기존 이슈 vs 신규 회귀
- 실패 커맨드 출력 첨부
- 최소 수정 범위 격리
- 관련 quick check 재실행
- 머지 전 전체 게이트 재실행
빠른 루프는 좋습니다. 최종 게이트 생략은 아닙니다.
머지 전 증명 체크리스트
머지 전에 확인:
- 검증 커맨드가 현재 diff 기준으로 실행되었는가
- 실패가 해결되었거나 명시적으로 수용되었는가
- review 범위가 주장한 변경 범위와 일치하는가
- 잔여 리스크가 문서화되었는가
- 비사소한 변경에 롤백 경로가 있는가
피해야 할 안티패턴
lint 통과를 전체 품질 증명으로 간주
lint는 필요조건이지 충분조건이 아닙니다.
오래된 커밋의 CI 출력을 재사용
근거는 현재 상태와 일치해야 합니다.
생략한 체크를 숨김
생략은 사유를 밝힐 때만 허용됩니다.
최종 검증 오너 없이 머지 진행
최종 검증 책임자가 없다면 프로세스는 이미 깨진 상태입니다.
빠른 체크리스트
핸드오프 전에:
- claim-command-output 체인 완성
- 근거 신선도 확인
- 생략 체크 명시
머지 전에:
- 게이트 커맨드 통과
- reviewer/verifier verdict 기록
- 잔여 리스크 + 롤백 문서화
Codex의 속도는 빠른 이동을 돕습니다. 검증 루프는 안전한 이동을 보장합니다. 최종 프로덕션 의사결정을 명확히 하려면 Codex 릴리스 준비도로 이어서 보세요.