# 숨겨진 기능과 모델 코드네임 > 인터넷에 공개된 자료와 커뮤니티 토론을 바탕으로 정리된 Claude Code v2.1.88 분석 보고서. ## 모델 코드네임 체계 Anthropic은 내부 모델 코드네임으로 **동물 이름**을 사용한다. 외부 빌드로의 유출을 적극적으로 차단하고 있다. ### 알려진 코드네임 | 코드네임 | 역할 | 근거 | |----------|------|------| | **Tengu** (천구) | 제품/텔레메트리 접두사, 모델일 가능성 있음 | 250개 이상의 분석 이벤트 및 feature flag에 `tengu_*` 접두사로 사용 | | **Capybara** (카피바라) | Sonnet 계열 모델, 현재 v8 | `capybara-v2-fast[1m]`, v8 동작 문제 패치 존재 | | **Fennec** (페넥여우) | Opus 4.6 이전 모델 | 마이그레이션: `fennec-latest` → `opus` | | **Numbat** (넘뱃) | 차기 모델 출시 예정 | 주석: "Remove this section when we launch numbat" | ### 코드네임 보호 `undercover` 모드에서 보호 대상 코드네임이 명시적으로 나열되어 있다: ```typescript // src/utils/undercover.ts:48-49 NEVER include in commit messages or PR descriptions: - Internal model codenames (animal names like Capybara, Tengu, etc.) - Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8) ``` 빌드 시스템은 `scripts/excluded-strings.txt`를 사용하여 유출된 코드네임을 검출한다. Buddy 시스템의 종(species)은 `String.fromCharCode()`로 인코딩하여 canary 검출을 우회한다: ```typescript // src/buddy/types.ts:10-13 // One species name collides with a model-codename canary in excluded-strings.txt. // The check greps build output (not source), so runtime-constructing the value keeps // the literal out of the bundle while the check stays armed for the actual codename. ``` 충돌하는 종은 **capybara** — 펫 종이자 모델 코드네임이다. ### Capybara 동작 이슈 (v8) 아키텍처에서 Capybara v8의 구체적 동작 문제가 확인된다: 1. **Stop sequence 오발동** (프롬프트 끝에 `` 있을 때 ~10% 발생) - 출처: `src/utils/messages.ts:2141` 2. **빈 tool_result 시 출력 없음** - 출처: `src/utils/toolResultStorage.ts:281` 3. **과도한 주석 삽입** — 전용 주석 방지 프롬프트 패치 필요 - 출처: `src/constants/prompts.ts:204` 4. **높은 허위 주장 비율**: v8은 29-30%, v4는 16.7% - 출처: `src/constants/prompts.ts:237` 5. **불충분한 검증** — "철저함 보정값(thoroughness counterweight)" 필요 - 출처: `src/constants/prompts.ts:210` ## Feature Flag 명명 규칙 모든 feature flag는 `tengu_` 접두사에 **무작위 단어 조합**을 사용하여 목적을 난독화한다: | Flag | 용도 | |------|------| | `tengu_onyx_plover` | Auto Dream (백그라운드 기억 통합) | | `tengu_coral_fern` | memdir 기능 | | `tengu_moth_copse` | memdir 추가 스위치 | | `tengu_herring_clock` | Team memory | | `tengu_passport_quail` | Path 기능 | | `tengu_slate_thimble` | memdir 추가 스위치 | | `tengu_sedge_lantern` | Away Summary | | `tengu_frond_boric` | 분석 킬스위치 | | `tengu_amber_quartz_disabled` | 음성 모드 킬스위치 | | `tengu_amber_flint` | Agent teams | | `tengu_hive_evidence` | 검증 에이전트 | 무작위 단어 패턴(형용사/재질 + 자연/사물)은 외부 관찰자가 flag 이름만으로 기능 목적을 추론하는 것을 방지한다. ## 내부 사용자와 외부 사용자 차이 Anthropic 직원(`USER_TYPE === 'ant'`)은 상당히 다른 대우를 받는다: ### 프롬프트 차이 (`src/constants/prompts.ts`) | 항목 | 외부 사용자 | 내부 사용자 (ant) | |------|------------|------------------| | 출력 스타일 | "Be extra concise" (극도로 간결하게) | "Err on the side of more explanation" (설명을 더 하는 쪽으로) | | 허위 주장 대응 | 없음 | 전용 Capybara v8 패치 적용 | | 수치적 길이 기준 | 없음 | "도구 사이 ≤25단어, 최종 답변 ≤100단어" | | 검증 에이전트 | 없음 | 비자명한 변경에 필수 적용 | | 주석 가이드 | 일반적 | 전용 과잉 주석 방지 프롬프트 | | 선제적 교정 | 없음 | "사용자에게 오해가 있으면 지적" | ### 도구 접근 내부 사용자만 접근 가능한 도구: - `REPLTool` — REPL 모드 - `SuggestBackgroundPRTool` — 백그라운드 PR 제안 - `TungstenTool` — 성능 모니터링 패널 - `VerifyPlanExecutionTool` — 계획 실행 검증 - Agent 중첩 (에이전트가 에이전트를 생성) ## 숨겨진 명령어 | 명령어 | 상태 | 설명 | |--------|------|------| | `/btw` | 활성 | 작업 중단 없이 곁다리 질문 | | `/stickers` | 활성 | Claude Code 스티커 주문 (브라우저 열림) | | `/thinkback` | 활성 | 2025 연말 회고 | | `/effort` | 활성 | 모델 노력 수준 설정 | | `/good-claude` | 스텁 | 숨겨진 플레이스홀더 | | `/bughunter` | 스텁 | 숨겨진 플레이스홀더 |