mirror of
https://github.com/sanbuphy/claude-code-source-code.git
synced 2026-04-03 11:34:54 +08:00
4.9 KiB
4.9 KiB
숨겨진 기능과 모델 코드네임
인터넷에 공개된 자료와 커뮤니티 토론을 바탕으로 정리된 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 모드에서 보호 대상 코드네임이 명시적으로 나열되어 있다:
// 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 검출을 우회한다:
// 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의 구체적 동작 문제가 확인된다:
-
Stop sequence 오발동 (프롬프트 끝에
<functions>있을 때 ~10% 발생)- 출처:
src/utils/messages.ts:2141
- 출처:
-
빈 tool_result 시 출력 없음
- 출처:
src/utils/toolResultStorage.ts:281
- 출처:
-
과도한 주석 삽입 — 전용 주석 방지 프롬프트 패치 필요
- 출처:
src/constants/prompts.ts:204
- 출처:
-
높은 허위 주장 비율: v8은 29-30%, v4는 16.7%
- 출처:
src/constants/prompts.ts:237
- 출처:
-
불충분한 검증 — "철저함 보정값(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 |
스텁 | 숨겨진 플레이스홀더 |