---
task_id: task-1941
type: context
scope: task
created: 2026-04-18
updated: 2026-04-18
status: completed
---

# 맥락 노트: task-1941

**task**: task-1941

---

## 결정 근거

### 3단계 캐스케이드 (companion → exec → maat)
- codex-companion.mjs는 플러그인 인프라 공식 경로이며 JSON 결과 반환 지원
- codex exec는 --skip-git-repo-check + -C workspace 옵션으로 git repo 외부 실행 가능
- 현재 ChatGPT 계정 문제로 두 방식 모두 실패하므로, API 정상화 시 즉시 동작하는 구조가 중요
- 대안(API 직접 호출): OpenAI API 키 관리 + 구현 복잡성 증가 → 기각

### stdin 전달 방식
- 프롬프트에 코드 내용을 포함하면 OS 커맨드라인 인자 길이 제한(128KB~256KB) 초과
- codex exec는 "-" 인자로 stdin 읽기 지원 확인 (--help 문서)
- L1 스모크테스트에서 Errno 7 (Argument list too long) 실제 발생하여 발견

### 마아트 폴백 강화
- 기존: 파일 존재 여부만 확인 → 너무 약함
- 추가 1: 변경 범위 6개+ 파일 → high 경고
- 추가 2: AST 의존성 분석 → 호출자 10곳+ 파일 → high 경고
- 추가 3: 보안 민감 키워드 감지 → medium 경고

## 3 Step Why

**1st Why**: "왜 이 설계가 필요한가?"
→ codex exec가 (1) trusted directory 체크 실패 (2) ChatGPT 계정 미지원으로 100% 마아트 폴백.

**2nd Why**: "왜 codex-companion.mjs 연동이 최선인가?"
→ 플러그인 공식 경로 + 향후 MCP 통합 시 마이그레이션 비용 최소. 단, API 계정 문제는 별도 해결 필요하므로 폴백 강화가 더 중요.

**3rd Why**: "왜 이 접근이 대안보다 나은가?"
→ 대안1(플래그만 추가): 계정 문제 해결 안됨. 대안2(API 직접 호출): 복잡성 증가. 선택: 3단계 캐스케이드로 API 정상화 시 자동 동작 + 강화된 마아트로 의미 있는 검증.

## 참조 자료

- codex-companion.mjs: `/home/jay/.claude/plugins/cache/openai-codex/codex/1.0.3/scripts/codex-companion.mjs`
- 시스템 context-notes: `memory/plans/cross-verification-workflow/context-notes.md`
- 아틀라스 분석 (섹션 4.3): "codex-plugin-cc = CLIRunner subprocess, MCP 통합 미구현"

## 주의사항

- ChatGPT 계정 → API 키 전환이 완료되면 companion/exec가 자동으로 동작 시작
- AST 스크립트(ast_dependency_map.py)가 대형 파일에서 30초 타임아웃 발생 (기존 문제, 이번 범위 외)
- source 필드가 "codex" → "codex_companion"/"codex_exec"로 세분화됨
