---
task_id: task-2076
type: checklist
scope: task
created: 2026-04-22
updated: 2026-04-22
status: completed
---

# 체크리스트: task-2076

**task**: task-2076

---

## Phase 1 — 진단 (이참나/팀장)

- [x] A. 환경변수 확인 (OPENAI_API_KEY 존재/유효성)
- [x] B. codex-companion.mjs 직접 실행 테스트
- [x] C. codex_gate_check.py 직접 실행하여 폴백 경로 확인
- [x] D. subprocess 환경변수 전달 여부 확인
- [x] E. 근본 원인 특정 (API 키 무효 + env 미전달 + 폴백 사유 미기록)

## Phase 2 — 테스트 선행 작성 (카마소츠/테스터)

- [x] A. TestApiKeyValidation 클래스 추가 (API 키 사전 검증)
- [x] B. TestSubprocessEnvPassing 클래스 추가 (env 전달 검증)
- [x] C. TestFallbackReason 클래스 추가 (폴백 사유 필드 검증)
- [x] D. TDD RED 상태 확인 (5/6 테스트 실패)

## Phase 3 — 구현 (쿠쿨칸/백엔드)

- [x] A. _ensure_env_keys_loaded() 함수 추가 (env_loader 폴백)
- [x] B. subprocess.run에 env=os.environ.copy() 전달
- [x] C. _maat_fallback_check에 fallback_reason 파라미터 추가
- [x] D. codex_gate_check()에서 API 키 미설정 시 즉시 폴백
- [x] E. 성공/실패 결과 모두에 fallback_reason 필드 추가
- [x] F. 에러 로깅 강화

## 검증

- [x] 테스트 54개 PASS 확인
- [x] L1 스모크테스트: 직접 실행으로 동작 확인
- [x] grep 검증: 모든 변경 반영 확인
- [x] QC 검증 완료
- [x] 최종 보고
