상위: 08_00_MOC

실패모드 × 공식기능 매핑표

챕터 08을 종합하는 노트다. 다섯 가지 컨텍스트 실패모드를 Claude Code와 Codex의 공식 문서에 명시된 기능에 1:1로 매핑한다.


종합 매핑표

실패모드정의Claude Code 공식 대응Codex 공식 대응관련 노트
오염 (Pollution)무관한 이전 작업 잔재가 현재 판단 오염서브에이전트 격리 (sub-agents), /clear, Hooks updatedToolOutput 요약서버사이드 컴팩션 (compact_threshold), compaction item 이전 항목 제거01 오염
산만 (Distraction)과다 정보로 핵심 지시 희석Path-scoped Rules (매칭 시만 로드), Skills 온디맨드, MCP deferred 로드, Hooks grep 필터AGENTS.md 디렉토리 특화, 32KiB 크기 한도02 산만
혼란 (Confusion)모호·불완전 지시로 오추론/init 자동 생성, 구체적 지시 원칙(“Use 2-space indentation” > “format code”), InstructionsLoaded 훅 디버깅AGENTS.md 피드백 루프 ("correct them in AGENTS.md"), 매 실행 재구성으로 교정 즉시 반영03 혼란
충돌 (Conflict)복수 지시 파일 간 모순claudeMdExcludes, 주기적 규칙 감사, permissions.deny, PreToolUse 훅 강제 차단AGENTS.md 우선순위 계층 (override > closer file), 모순 시 나중 파일 우선04 충돌
부패 (Decay)과거 정보가 현재 상태와 불일치Auto Memory /memory 감사, /compact 재주입, CLAUDE.md 유효성 정기 관리Memories 비동기 업데이트 + 비밀값 마스킹, 매 실행 재구성으로 구조적 부패 방지05 부패

핵심 대립 구조: “부탁” vs “강제”

graph LR
    subgraph instruction["지시 (Instruction) — 부탁"]
        A["CLAUDE.md<br/>AGENTS.md"]
    end
    subgraph enforcement["강제 (Enforcement) — 코드"]
        B["PreToolUse Hook<br/>permissions.deny"]
    end

    A -->|"컨텍스트로 주입<br/>준수 보장 없음"| M["모델 판단"]
    B -->|"결정론적 실행<br/>판단 우회"| ACT["동작 차단/변형"]
    M -.->|"모호·충돌 시<br/>임의 선택"| FAIL["실패모드 발생"]
    B ==> ACT

    style A fill:#fff3cd
    style B fill:#d4edda
    style FAIL fill:#f8d7da

실패모드별 상세 매핑

오염 (Pollution) → 01 오염

문제: 이전 작업의 파일·로그·검색 결과가 메인 컨텍스트에 남아 현재 판단을 오염.

flowchart LR
    PROB["오염: 10,000줄 로그가<br/>메인 컨텍스트에 적재"]
    CC1["서브에이전트 격리<br/>→ 로그는 서브에이전트 컨텍스트에"]
    CC2["PostToolUse Hook<br/>updatedToolOutput으로 요약 반환"]
    CC3["/clear<br/>→ 컨텍스트 완전 초기화"]
    CX1["Responses API compaction<br/>→ compaction item 이전 제거"]
    PROB --> CC1 & CC2 & CC3 & CX1

공식 근거:

“Use one when a side task would flood your main conversation with search results, logs, or file contents you won’t reference again.” — Create custom subagents, Anthropic


산만 (Distraction) → 02 산만

문제: 항상 로드되는 과다 지시·도구 목록이 핵심 지시를 희석.

Claude Code 대응:

  • Path-scoped Rules: 필요한 파일 경로를 읽을 때만 로드 → 평소엔 컨텍스트 없음
  • Skills 온디맨드: 호출 시에만 로드, 설명 목록만 상시 존재 (450토큰 수준)
  • MCP deferred: 도구 이름만 컨텍스트에, 스키마는 사용 시 로드

Codex 대응:

  • AGENTS.md 디렉토리 특화: 현재 디렉토리에 가까운 파일이 우선 → 필요한 지시만 활성화
  • 32KiB 하드 한도: 구조적으로 무제한 팽창 방지

혼란 (Confusion) → 03 혼란

문제: 모호하거나 불완전한 지시로 모델이 잘못된 추론.

Claude Code 대응:

  • /init: 코드베이스를 분석해 빌드 명령·컨벤션을 자동으로 CLAUDE.md에 생성
  • 구체성 원칙 (공식 문서 명시):
모호 ❌구체 ✅
“Format code properly""Use 2-space indentation"
"Test your changes""Run npm test before committing"
"Keep files organized""API handlers live in src/api/handlers/

Codex 대응:

  • 피드백 루프: 잘못된 가정 발견 → AGENTS.md에 교정 추가 → 다음 실행부터 즉시 반영 (매 실행 재구성이므로)

충돌 (Conflict) → 04 충돌

문제: 여러 지시 파일이 서로 어긋나는 규칙을 담고 있을 때.

Claude Code 대응:

  • claudeMdExcludes: 모노레포에서 관련 없는 팀의 CLAUDE.md 제외
  • permissions.deny: 모순 없는 결정론적 규칙 강제 (모델 판단 우회)
  • PreToolUse 훅: CLAUDE.md의 “금지 규칙” 대신 코드로 확실히 차단
  • 주기적 감사: /memory로 로드된 파일 목록 확인, 중복·모순 제거

Codex 대응:

  • 우선순위 계층: override > 글로벌 > 가까운 디렉토리 순 — 충돌 시 명확한 승자
  • “가까운 파일 나중 배치” 원칙으로 프로젝트별 규칙이 글로벌 규칙을 오버라이드

부패 (Decay) → 05 부패

문제: 과거에 기록된 정보가 현재 상태와 어긋나 오래된 전제로 작동.

Claude Code 대응:

  • Auto Memory 정기 감사: /memory → 파일 열기 → 낡은 항목 삭제
  • /compact 후 CLAUDE.md 재주입: 루트 CLAUDE.md 최신 상태 보장
  • CLAUDE.md 명시적 유효성 관리: 아키텍처 변경 시 수동 업데이트

Codex 대응 (구조적 우위):

  • 매 실행 AGENTS.md 재구성: 파일을 수정하면 다음 실행부터 즉시 반영
  • Memories 비동기 갱신: 진행 중인 작업 섣부른 요약 방지
  • 비밀값 자동 마스킹: 민감 정보가 Memories에 고착되는 것 방지

미해결 문제와 한계

문제Claude CodeCodex
지시 준수 보장없음 (“context, not config”)없음 (마찬가지로 컨텍스트)
컴팩션 블랙박스/compact 요약 내용 검증 불가compaction item “opaque and not human-interpretable”
Auto Memory 품질기억할 가치 판단 기준 불투명Memories 업데이트 타이밍 불투명
자동 감사정기 /memory 감사 수동 필수자동화 수단 없음
Chronicle 리스크해당 없음프롬프트 인젝션 + 미암호화 로컬 저장

참고문헌

관련 노트