# task-2076: Codex 게이트 실제 AI 리뷰 동작 보장

## 문제
codex_gate_check.py의 Codex 게이트가 설계대로 Codex AI 리뷰를 실행하지 않고,
마아트 폴백(규칙 기반 파일 존재 체크)으로 통과하고 있음. 사실상 형식적 PASS.

## 원인 (추정)
1. 봇 세션 환경에서 OPENAI_API_KEY가 로드되지 않음
2. codex-companion.mjs 실행 시 환경변수 전달 실패
3. codex-companion.mjs 자체 에러로 즉시 폴백 전환

## ★ 먼저 확인할 것

### 1. 환경변수 확인
```bash
# .env.keys에 OPENAI_API_KEY 존재 확인
grep "OPENAI_API_KEY" /home/jay/workspace/.env.keys | head -1
# 값 앞 10자리만 확인
source /home/jay/workspace/.env.keys && echo "${OPENAI_API_KEY:0:10}..."
```

### 2. codex-companion.mjs 직접 실행 테스트
```bash
source /home/jay/workspace/.env.keys
echo '{"risks":[],"suggestions":[]}' | node /home/jay/.claude/plugins/cache/openai-codex/codex/1.0.3/scripts/codex-companion.mjs "테스트 프롬프트" 2>&1
```

### 3. codex_gate_check.py 직접 실행
```bash
cd /home/jay/workspace
source .env.keys
python3 scripts/codex_gate_check.py --task-id task-test --task-file memory/tasks/task-2072.md 2>&1
```
→ 로그에서 "Codex companion 호출 시도..." 후 "codex-companion 성공" vs "마아트 폴백" 확인

### 4. subprocess 환경변수 전달 확인
`_run_codex_companion()` 함수에서 subprocess.run에 `env=os.environ` 전달 여부 확인
```bash
grep -A10 "def _run_codex_companion" /home/jay/workspace/scripts/codex_gate_check.py
```

## 수정 방향

### A. OPENAI_API_KEY 로드 보장
- codex_gate_check.py 시작 시 .env.keys 로드 확인
- subprocess.run에 현재 프로세스 환경변수 명시적 전달

### B. codex-companion 에러 핸들링 강화
- companion 실행 실패 시 에러 메시지 상세 로깅 (현재는 조용히 폴백)
- 로그에 "PASS (codex)" vs "PASS (maat_fallback)" 명확 구분

### C. 봇 프롬프트에 env.keys 소싱 지시
- DIRECT-WORKFLOW.md에 Codex 게이트 실행 전 `source .env.keys` 단계 추가
- 또는 codex_gate_check.py 내부에서 자동 소싱

### D. 보고서에 게이트 소스 명시
- 봇 보고서에 "Codex 게이트 PASS (source: codex_companion)" vs "(source: maat_fallback)" 구분 표시

## 완료 시그니처
- codex_gate_check.py 직접 실행 시 "codex-companion 성공" 로그 확인
- 또는 companion 실패 원인 특정 + 수정
- 봇 보고서에 게이트 소스 명시

## 검증 시나리오
1. `python3 scripts/codex_gate_check.py --task-id task-test --task-file memory/tasks/task-2072.md` → "codex_companion" 소스로 PASS
2. 마아트 폴백 시 명확한 에러 로그 출력
3. 기존 pytest PASS

## 레벨
- critical

## 프로젝트
- dev-system