ClOr

ClOr

백엔드 실무 트러블슈팅과 AI 에이전트 구조 분석을 기록합니다.

Claude Code 해부학 (완결)

51만 줄 소스코드를 19편에 걸쳐 분석한 완결 시리즈

전체 시리즈 보기 →

백엔드 트러블슈팅

실무에서 겪은 장애와 해결 과정 기록

전체 시리즈 보기 →

최신 글

article thumbnail

2026년 3월 31일, Anthropic이 @anthropic-ai/claude-code npm 패키지 v2.1.88에 59.8MB 소스맵 파일을 실수로 포함시켰다. .npmignore*.map을 추가하지 않은 것이다. 이로 인해 512,000줄, 1,900개 TypeScript 파일 — Claude Code의 전체 소스가 노출됐다.

내부 프로젝트 코드네임은 Tengu(텐구). 여기서 발견된 피처 플래그는 32개 컴파일타임 + 다수의 런타임 플래그다. KAIROS 하위 플래그를 포함하면 44개 이상이다.

이 글은 그 전체 목록과 각 플래그의 의미를 정리한 것이다.

목차

  • 피처 플래그는 어떻게 동작하는가
  • 32개 컴파일타임 피처 플래그
    • 에이전트 & 자율 실행
    • 플래닝 & 원격 실행
    • 컨텍스트 & 메모리 관리
    • UI & 인터페이스
    • 에이전트 인프라
    • 자동화 & 템플릿
    • 디버깅 & 테스트
  • KAIROS 하위 플래그 (5개)
  • 주요 런타임 플래그 (tengu_ 접두사)
  • Coordinator Mode — 멀티 에이전트 오케스트레이션
  • 26개 히든 슬래시 커맨드
  • 120+ 환경변수
  • 기타 발견물
    • Anti-Distillation 방어
    • 좌절 감지 Regex
    • 내부 모델 코드네임
  • 요약

피처 플래그는 어떻게 동작하는가

Claude Code의 피처 플래그는 이중 레이어 시스템이다.

1. 컴파일타임 플래그 — Bun의 feature() 매크로

비활성 피처는 빌드 시 데드코드 제거(dead code elimination)로 완전히 삭제된다. 런타임에서는 흔적도 없다. 외부 사용자가 npm 패키지를 뜯어봐도 비활성 코드는 존재하지 않는다. 이번에 소스맵이 유출되면서 빌드 전 원본이 드러난 것이다.

2. 런타임 플래그 — GrowthBook A/B 실험 플랫폼

tengu_ 접두사로 네임스페이스를 관리한다. getFeatureValue_CACHED_MAY_BE_STALE()로 메인 루프를 블로킹하지 않는다. 이름 그대로 스테일 데이터를 허용하는데, 피처 게이트 수준에서는 충분하다는 판단이다.

체크 패턴 예시 (Coordinator Mode):

isCoordinatorMode()
→ feature('COORDINATOR_MODE') 컴파일타임 체크
→ 존재하면 process.env.CLAUDE_CODE_COORDINATOR_MODE 런타임 읽기

컴파일타임 + 런타임 이중 게이트를 통과해야 기능이 활성화된다.

32개 컴파일타임 피처 플래그

소스코드에서 확인된 컴파일타임 플래그 전체 목록이다. 모두 외부 빌드에서는 false로 컴파일되어 있다.

에이전트 & 자율 실행

# 플래그 기능 비고
1 KAIROS 24/7 자율 백그라운드 데몬 에이전트 소스 내 150+ 참조, 최다
2 PROACTIVE 사용자 요청 없이 먼저 태스크 시작 KAIROS의 tick loop 기반
3 DAEMON 백그라운드 서비스 모드 세션 슈퍼바이저
4 BG_SESSIONS 백그라운드 세션 관리 claude --bg 명령어
5 COORDINATOR_MODE 멀티 에이전트 오케스트레이터 워커 스폰 + Mailbox 시스템

플래닝 & 원격 실행

# 플래그 기능 비고
6 ULTRAPLAN 30분 클라우드 플래닝 CCR + Opus 4.6
7 CCR_AUTO Cloud Container Runtime 자동화 ULTRAPLAN 인프라
8 BYOC_RUNNER Bring Your Own Compute 러너 자체 컴퓨트 연결
9 SELF_HOSTED 셀프 호스팅 모드 온프레미스 실행

컨텍스트 & 메모리 관리

# 플래그 기능 비고
10 REACTIVE_COMPACT 리액티브 컨텍스트 압축 실시간 압축
11 CONTEXT_COLLAPSE 컨텍스트 축소 전략 긴 대화 최적화
12 HISTORY_SNIP 히스토리 스니핑 불필요한 히스토리 제거
13 CACHED_MICROCOMPACT 캐시된 마이크로 압축 세밀한 압축 단위
14 TOKEN_BUDGET 대화 인식 토큰 예산 관리 동적 토큰 할당
15 EXTRACT_MEMORIES 메모리 자동 추출 autoDream 관련

UI & 인터페이스

# 플래그 기능 비고
16 BUDDY 타마고치형 터미널 AI 펫 18종 species, 5등급
17 TERMINAL_PANEL 터미널 패널 UI 확장된 UI
18 BRIDGE_MODE 폰/브라우저 원격 제어 실시간 동기화
19 VOICE_MODE 음성 명령 (push-to-talk) OAuth 기반

에이전트 인프라

# 플래그 기능 비고
20 FORK_SUBAGENT 포크형 서브에이전트 에이전트 분기 실행
21 UDS_INBOX 크로스 세션 IPC Claude 인스턴스 간 메시지
22 CHICAGO_MCP Computer-use MCP 통합 화면 제어
23 WEB_BROWSER CLI 내장 브라우저 (Playwright) 웹 탐색
24 MONITOR_TOOL 모니터링 도구 상태 감시
25 SKILL_SEARCH 스킬/도구 검색 최적화 출시됨

자동화 & 템플릿

# 플래그 기능 비고
26 WORKFLOW_SCRIPTS 워크플로우 스크립트 자동화 반복 작업
27 TEMPLATES 템플릿 시스템 프로젝트 스캐폴딩
28 TORCH 용도 미상 플래그만 존재

디버깅 & 테스트

# 플래그 기능 비고
29 DUMP_SYS_PROMPT 시스템 프롬프트 덤프 디버깅 전용
30 ABLATION_BASE 어블레이션 베이스라인 A/B 테스트 기준선
31 OVERFLOW_TEST 오버플로우 테스트 스트레스 테스트
32 MEM_SHAPE_TEL 메모리 형상 텔레메트리 메모리 사용 분석

KAIROS 하위 플래그 (5개)

KAIROS는 자체 하위 플래그를 가지고 있다.

플래그 기능
KAIROS_CHANNELS 채널 기반 통신
KAIROS_GITHUB_WEBHOOKS 실시간 GitHub 이벤트
KAIROS_PUSH_NOTIFICATION 모바일 푸시 알림
KAIROS_BRIEF Brief 출력 모드
KAIROS_DREAM autoDream 메모리 통합

주요 런타임 플래그 (tengu_ 접두사)

GrowthBook으로 관리되는 런타임 A/B 플래그 중 흥미로운 것들이다.

플래그 기능
tengu_anti_distill_fake_tool_injection Anti-distillation 가짜 도구 주입
tengu_attribution_header Co-Authored-By 어트리뷰션 킬스위치
tengu_penguins_off Fast Mode 킬스위치
tengu_ultraplan_model ULTRAPLAN 사용 모델 지정
tengu_pewter_ledger 플랜 출력 장황도 조절 (4변형)
tengu_onyx_plover autoDream 서버사이드 게이트
tengu_kairos KAIROS 서버사이드 활성화
tengu_startup_telemetry 시작 시간 텔레메트리

Coordinator Mode — 멀티 에이전트 오케스트레이션

32개 플래그 중 아키텍처적으로 가장 흥미로운 건 Coordinator Mode다.

CLAUDE_CODE_COORDINATOR_MODE=1로 활성화하면, 코디네이터 Claude가 직접 파일시스템/쉘 접근을 포기하고, 워커 라이프사이클 관리만 수행한다.

핵심 메커니즘:

  • 워커는 subagent_type: "worker"로 스폰
  • Mailbox 시스템: SendMessageTool로 에이전트 간 비동기 메시지 라우팅
  • Permission Bridge: 위험한 작업은 코디네이터에게 승인 요청 버블업
  • 워커 결과는 <task-notification> XML로 보고

코디네이터가 직접 코드를 건드리지 않는다는 게 핵심이다. 명령만 내리고, 실행은 워커가 한다. 군대의 지휘관-병사 구조와 같다.

26개 히든 슬래시 커맨드

피처 플래그 외에 소스코드에서 발견된 숨겨진 슬래시 커맨드도 있다.

분류 커맨드
에이전트 /ultraplan, /subscribe-pr, /autofix-pr, /dream
디버깅 /ctx-viz, /debug-tool-call, /perf-issue, /ant-trace
세션 /teleport, /share, /summary, /backfill-sessions
시스템 /bridge-kick, /break-cache, /oauth-refresh, /env
기타 /btw, /good-claude, /bughunter, /force-snip, /mock-limits, /agents-platform, /onboarding, /reset-limits, /version, /init-verifiers

/good-claude가 뭘 하는지는 소스에서도 명확하지 않다. 내부 팀용 이스터에그일 가능성이 있다.

120+ 환경변수

피처 플래그와 별도로 120개 이상의 시크릿 환경변수가 발견됐다.

주요 예시:

  • CLAUDE_CODE_PERFETTO_TRACE — 성능 프로파일링
  • CLAUDE_CODE_VCR_RECORD — API 요청 녹화/재생
  • CLAUDE_CODE_OVERRIDE_DATE — 날짜 오버라이드
  • MAX_THINKING_TOKENS — 최대 사고 토큰 수 제한
  • DISABLE_COMMAND_INJECTION_CHECK — 명령 주입 검사 비활성화 (위험)
  • DISABLE_INTERLEAVED_THINKING — 인터리브 사고 비활성화

DISABLE_COMMAND_INJECTION_CHECK처럼 보안 가드를 끄는 변수도 존재한다. 내부 테스트용이겠지만, 이런 게 존재한다는 것 자체가 흥미롭다.

기타 발견물

Anti-Distillation 방어

경쟁사가 API 트래픽을 녹화해서 훈련 데이터로 쓰는 걸 막기 위한 메커니즘이 있다.

1차 방어: API 요청에 anti_distillation: ['fake_tools']를 전송하면, 서버가 시스템 프롬프트에 가짜 도구 정의를 주입한다. 녹화해서 학습하면 오염된 스키마를 배우게 된다.

2차 방어: 서버 측에서 도구 호출 사이의 어시스턴트 응답을 버퍼링하고, 암호화 서명된 요약만 반환한다. 추론 체인 전체가 숨겨진다.

좌절 감지 Regex

사용자가 좌절한 상태를 감지하는 regex가 있다.

/\b(wtf|wth|ffs|shit(ty)?|horrible|awful|
what the (fuck|hell)|fucking? (broken|useless)|
so frustrating|this sucks|damn it)\b/

추론 기반 감정 분석보다 빠르고 저렴하다. 감지되면 대응 톤을 조절하는 것으로 추정된다.

내부 모델 코드네임

소스에서 발견된 내부 모델 코드네임:

  • Capybara/Mythos: 1M 컨텍스트, "fast mode" 관련
  • Numbat: 미출시 모델 (출시 윈도우가 소스에 포함)
  • Fennec: Opus 4.6로 추정
  • Tengu: Claude Code 프로젝트 자체의 코드네임

요약

  • Claude Code 소스 유출에서 32개 컴파일타임 + 다수 런타임 피처 플래그가 발견됐다
  • 이중 레이어 시스템: 컴파일타임(Bun)으로 코드 자체를 제거하고, 런타임(GrowthBook)으로 A/B 테스트
  • KAIROS(자율 에이전트), ULTRAPLAN(클라우드 플래닝), Coordinator Mode(멀티 에이전트)가 가장 큰 기능
  • 26개 히든 슬래시 커맨드120+ 환경변수도 발견
  • Anti-Distillation 방어, 좌절 감지 regex 등 보안/UX 메커니즘도 포함
  • 대부분 미출시지만, Boris Cherny가 KAIROS 등을 "곧 출시"로 언급한 바 있다

관련글:

profile

ClOr

@ClOr

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

ClOr · 백엔드 트러블슈팅과 AI 에이전트 구조 분석을 기록합니다.