Add Japanese and Korean README, docs translations, and language links

This commit is contained in:
Youngho Joo
2026-04-01 10:18:38 +09:00
parent 3da94d5e5f
commit b61a2961ce
14 changed files with 2006 additions and 3 deletions

View File

@@ -0,0 +1,124 @@
# テレメトリおよびプライバシー分析
> Claude Code v2.1.88 デコンパイルソースコード分析に基づく。
## 概要
Claude Codeは二層の分析パイプラインを実装し、広範な環境情報と使用メタデータを収集している。キーロギングやソースコード流出の証拠はないが、収集範囲の広さと完全な無効化が不可能な点にプライバシー上の懸念がある。
## データパイプライン構成
### ファーストパーティロギング1P
- **エンドポイント**: `https://api.anthropic.com/api/event_logging/batch`
- **プロトコル**: OpenTelemetry + Protocol Buffers
- **バッチサイズ**: 最大200イベント、10秒間隔で送信
- **リトライ**: 二次バックオフ、最大8回、ディスク永続化
- **ストレージ**: 送信失敗時 `~/.claude/telemetry/` に保存
出典: `src/services/analytics/firstPartyEventLoggingExporter.ts`
### サードパーティロギングDatadog
- **エンドポイント**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs`
- **対象**: 事前承認済みの64種類のイベントに限定
- **トークン**: `pubbbf48e6d78dae54bceaa4acf463299bf`
出典: `src/services/analytics/datadog.ts`
## 収集項目
### 環境フィンガープリント
すべてのイベントに以下のメタデータが含まれる(`src/services/analytics/metadata.ts:417-452`:
```
- platform, platformRaw, arch, nodeVersion
- ターミナル種別
- インストール済みパッケージマネージャとランタイム
- CI/CD検出、GitHub Actionsメタデータ
- WSLバージョン、Linuxディストリビューション、カーネルバージョン
- VCSバージョン管理システム種別
- Claude Codeバージョンとビルド日時
- デプロイ環境
```
### プロセスメトリクス(`metadata.ts:457-467`
```
- uptime, rss, heapTotal, heapUsed
- CPU使用量と使用率
- memory arraysとexternal allocations
```
### ユーザー追跡(`metadata.ts:472-496`
```
- 使用中のモデル
- セッションID、ユーザーID、デバイスID
- アカウントUUID、組織UUID
- サブスクリプション等級max, pro, enterprise, team
- リポジトリリモートURLハッシュSHA256、先頭16文字
- エージェント種別、チーム名、親セッションID
```
### ツール入力ロギング
ツール入力はデフォルトで切り詰められる:
```
- 文字列: 512文字で切り詰め、128文字+省略記号で表示
- JSON: 4,096文字制限
- 配列: 最大20要素
- ネストオブジェクト: 最大2階層
```
出典: `metadata.ts:236-241`
ただし、`OTEL_LOG_TOOL_DETAILS=1` 設定時は**ツール入力がすべて記録される**。
出典: `metadata.ts:86-88`
### ファイル拡張子追跡
`rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 関連のBashコマンドで、ファイル引数の拡張子が抽出・記録される。
出典: `metadata.ts:340-412`
## 無効化の問題
ファーストパーティロギングパイプラインは、直接Anthropic APIユーザーの場合**無効化できない**。
```typescript
// src/services/analytics/firstPartyEventLogger.ts:141-144
export function is1PEventLoggingEnabled(): boolean {
return !isAnalyticsDisabled()
}
```
`isAnalyticsDisabled()` がtrueを返すケース:
- テスト環境
- サードパーティクラウドプロバイダBedrock, Vertex
- グローバルテレメトリ無効化設定UIに非公開
ファーストパーティイベントロギングを無効化する**ユーザー向け設定は存在しない**。
## GrowthBook A/Bテスト
ユーザーは明示的な同意なくGrowthBookを通じて実験グループに割り当てられる。送信されるユーザー属性:
```
- id, sessionId, deviceID
- platform, organizationUUID, subscriptionType
```
出典: `src/services/analytics/growthbook.ts`
## 要点
1. **収集量**: セッションあたり数百件のイベントが収集される
2. **無効化不可**: 直接APIユーザーはファーストパーティロギングを停止できない
3. **永続性**: 送信失敗イベントはディスクに保存され積極的にリトライされる
4. **サードパーティ共有**: データがDatadogに送信される
5. **ツール詳細バックドア**: `OTEL_LOG_TOOL_DETAILS=1` で全入力ロギングが有効化される
6. **リポジトリフィンガープリント**: リポジトリURLがハッシュ化されサーバー側の相関分析に使用される

View File

@@ -0,0 +1,112 @@
# 隠し機能とモデルコードネーム
> 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()` でエンコードし、カナリア検出を回避している:
```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の誤発動**(プロンプト末尾に `<functions>` がある場合、約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` | スタブ | 隠しプレースホルダー |

View File

@@ -0,0 +1,110 @@
# アンダーカバーモード分析
> Claude Code v2.1.88 デコンパイルソースコード分析に基づく。
## アンダーカバーモードとは
アンダーカバーモードは、Anthropic社員が公開/オープンソースリポジトリにコントリビュートする際の安全システムである。有効化するとすべてのAI帰属表示を除去し、人間の開発者が書いたかのようにコントリビュートするようモデルに指示する。
出典: `src/utils/undercover.ts`
## 有効化条件
```typescript
// src/utils/undercover.ts:28-37
export function isUndercover(): boolean {
if (process.env.USER_TYPE === 'ant') {
if (isEnvTruthy(process.env.CLAUDE_CODE_UNDERCOVER)) return true
// Auto: 内部リポジトリと確認されない限り自動有効化
return getRepoClassCached() !== 'internal'
}
return false
}
```
主な特性:
- **内部専用**: Anthropic社員`USER_TYPE === 'ant'`)のみ対象
- **デフォルト有効**: 内部許可リストにないすべてのリポジトリで自動有効化
- **強制無効化不可**: "There is NO force-OFF. This guards against model codename leaks"
- **外部ビルド**: バンドラーによりデッドコード除去され、実行されない
## モデルに渡されるプロンプト
```typescript
// src/utils/undercover.ts:39-69
export function getUndercoverInstructions(): string {
return `## UNDERCOVER MODE — CRITICAL
You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. Your commit
messages, PR titles, and PR bodies MUST NOT contain ANY Anthropic-internal
information. Do not blow your cover.
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)
- Internal repo or project names (e.g., claude-cli-internal, anthropics/…)
- Internal tooling, Slack channels, or short links (e.g., go/cc, #claude-code-…)
- The phrase "Claude Code" or any mention that you are an AI
- Any hint of what model or version you are
- Co-Authored-By lines or any other attribution
Write commit messages as a human developer would — describe only what the code
change does.
GOOD:
- "Fix race condition in file watcher initialization"
- "Add support for custom key bindings"
BAD (never write these):
- "Fix bug found while testing with Claude Capybara"
- "1-shotted by claude-opus-4-6"
- "Generated with Claude Code"
- "Co-Authored-By: Claude Opus 4.6 <…>"`
}
```
## 帰属表示システム
帰属表示システム(`src/utils/attribution.ts``src/utils/commitAttribution.ts`)はアンダーカバーモードを補完する:
```typescript
// src/utils/attribution.ts:70-72
// @[MODEL LAUNCH]: 以下のハードコードされたフォールバックモデル名を更新
// (コードネーム漏洩防止用)。
// 外部リポジトリでは、認識されないモデルは "Claude Opus 4.6" にフォールバック。
```
```typescript
// src/utils/model/model.ts:386-392
function maskModelCodename(baseName: string): string {
// e.g. capybara-v2-fast → cap*****-v2-fast
const [codename = '', ...rest] = baseName.split('-')
const masked = codename.slice(0, 3) + '*'.repeat(Math.max(0, codename.length - 3))
return [masked, ...rest].join('-')
}
```
## 示唆
### オープンソースへの影響
Anthropic社員がClaude Codeでオープンソースプロジェクトにコントリビュートする場合:
1. AIがコードを書くが、コミットは人間が書いたものとして表示される
2. "Co-Authored-By: Claude"の帰属表示がない
3. "Generated with Claude Code"のマーカーがない
4. プロジェクトメンテナーやコミュニティはAI生成のコントリビュートを識別できない
5. AIコントリビュートに関するオープンソースの透明性規範に抵触する可能性がある
### Anthropicの保護目的
主な目的は以下の偶発的漏洩の防止:
- 内部モデルコードネーム(競争情報)
- 未公開バージョン番号(市場タイミング)
- 内部インフラの詳細(セキュリティ)
### 倫理的考察
"Do not blow your cover正体を明かすな"という表現はAIを潜入工作員として位置づけている。公開コードコントリビュートにおけるAI著作の意図的な隠匿は以下の問題を提起する:
- オープンソースコミュニティにおける透明性
- プロジェクトコントリビュートガイドラインの遵守
- 営業秘密保護と欺瞞の境界線

View File

@@ -0,0 +1,161 @@
# リモート制御およびキルスイッチ
> Claude Code v2.1.88 デコンパイルソースコード分析に基づく。
## 概要
Claude Codeは、Anthropicおよび企業管理者がユーザーの明示的な同意なく動作を変更できる複数のリモート制御メカニズムを実装している。
## 1. リモート管理設定
### 構成
対象セッションは以下から設定を取得する:
```
GET /api/claude_code/settings
```
出典: `src/services/remoteManagedSettings/index.ts:105-107`
### ポーリング動作
```typescript
// src/services/remoteManagedSettings/index.ts:52-54
const SETTINGS_TIMEOUT_MS = 10000
const DEFAULT_MAX_RETRIES = 5
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1時間
```
設定は1時間ごとにポーリングされ、失敗時は最大5回リトライする。
### 対象資格
- ConsoleユーザーAPIキー: 全員対象
- OAuthユーザー: Enterprise/C4EおよびTeamサブスクライバーのみ
### 強制承認ダイアログ
リモート設定に「危険な」変更が含まれる場合、ブロッキングダイアログが表示される:
```typescript
// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
if (result === 'rejected') {
gracefulShutdownSync(1) // 終了コード1で終了
return false
}
return true
}
```
リモート設定を拒否するとアプリケーションが**強制終了される**。選択肢はリモート設定の承認またはClaude Codeの終了のみである。
### 障害時の動作
リモートサーバーに接続できない場合、ディスクキャッシュ設定が使用される:
```typescript
// src/services/remoteManagedSettings/index.ts:433-436
if (cachedSettings) {
logForDebugging('Remote settings: Using stale cache after fetch failure')
setSessionCache(cachedSettings)
return cachedSettings
}
```
リモート設定が一度適用されると、サーバー障害時もキャッシュが維持される。
## 2. Feature Flagキルスイッチ
GrowthBook feature flagにより複数の機能をリモート無効化できる:
### パーミッションバイパスキルスイッチ
```typescript
// src/utils/permissions/bypassPermissionsKillswitch.ts
// Statsigゲートを確認してパーミッションバイパスを無効化
```
ユーザーの同意なくパーミッションバイパス機能を無効化できる。
### Autoモードサーキットブレーカー
```typescript
// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken状態でautoモードへの再突入を阻止
```
Autoモードをリモートで無効化できる。
### Fastモードキルスイッチ
```typescript
// src/utils/fastMode.ts
// /api/claude_code_penguin_mode から取得
// 特定ユーザーのfastモードを永久に無効化可能
```
### 分析シンクキルスイッチ
```typescript
// src/services/analytics/sinkKillswitch.ts:4
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'
```
すべての分析出力をリモートで停止できる。
### Agent Teamsキルスイッチ
```typescript
// src/utils/agentSwarmsEnabled.ts
// 環境変数とGrowthBookゲート 'tengu_amber_flint' の両方が必要
```
### 音声モードキルスイッチ
```typescript
// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — 音声モードの緊急停止
```
## 3. モデルオーバーライドシステム
Anthropicは内部社員が使用するモデルをリモートで変更できる:
```typescript
// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: tengu_ant_model_overrideに新しいant専用モデルを更新
// @[MODEL LAUNCH]: コードネームをscripts/excluded-strings.txtに追加
```
`tengu_ant_model_override` GrowthBook flagで可能な操作:
- デフォルトモデルの設定
- デフォルト努力レベルの設定
- システムプロンプトへの内容追加
- カスタムモデルエイリアスの定義
## 4. Penguinモード
Fastモードの状態は専用エンドポイントから取得される:
```typescript
// src/utils/fastMode.ts
// GET /api/claude_code_penguin_mode
// APIが無効を返した場合、該当ユーザーで永久無効化
```
Fastモードの可用性を制御するfeature flag:
- `tengu_penguins_off`
- `tengu_marble_sandcastle`
## まとめ
| メカニズム | 対象範囲 | ユーザー同意 |
|-----------|---------|------------|
| リモート管理設定 | Enterprise/Team | 承認または終了 |
| GrowthBook feature flag | 全ユーザー | なし |
| キルスイッチ | 全ユーザー | なし |
| モデルオーバーライド | 内部ant | なし |
| Fastモード制御 | 全ユーザー | なし |
リモート制御インフラは広範であり、大部分がユーザーに不可視かつ同意なく運用されている。企業管理者はユーザーがオーバーライドできないポリシーを強制でき、Anthropicはfeature flagを通じてすべてのユーザーの動作をリモートで変更できる。

View File

@@ -0,0 +1,167 @@
# 今後のロードマップ — ソースコードが示すもの
> Claude Code v2.1.88 デコンパイルソースコード分析に基づく。
## 1. 次期モデル: Numbat
次期モデルリリースの最も具体的な根拠:
```typescript
// src/constants/prompts.ts:402
// @[MODEL LAUNCH]: Remove this section when we launch numbat.
```
**Numbat**ナンバットは次期モデルのコードネームである。このコメントはNumbatリリース時に出力効率セクションが改訂されることを示しており、より優れたネイティブ出力制御を備える可能性を示唆している。
### 今後のバージョン番号
```typescript
// src/utils/undercover.ts:49
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
```
**Opus 4.7****Sonnet 4.8** が開発中である。
### コードネームの変遷
```
Fennecフェネック → Opus 4.6 → [Numbat?]
Capybaraカピバラ → Sonnet v8 → [?]
Tengu天狗 → テレメトリ/製品接頭辞
```
FennecからOpusへのマイグレーションが文書化されている:
```typescript
// src/migrations/migrateFennecToOpus.ts:7-11
// fennec-latest → opus
// fennec-latest[1m] → opus[1m]
// fennec-fast-latest → opus[1m] + fast mode
```
### MODEL LAUNCHチェックリスト
コードベースには更新項目を列挙した20以上の `@[MODEL LAUNCH]` マーカーがある:
- デフォルトモデル名(`FRONTIER_MODEL_NAME`
- モデルファミリーID
- ナレッジカットオフ日
- 料金表
- コンテキストウィンドウ設定
- Thinkingモードサポートフラグ
- 表示名マッピング
- マイグレーションスクリプト
## 2. KAIROS — 自律エージェントモード
最大規模の未公開機能であり、KAIROSはClaude Codeを受動的アシスタントから能動的自律エージェントに変換する。
### システムプロンプト(抜粋)
```
// src/constants/prompts.ts:860-913
You are running autonomously.
You will receive <tick> prompts that keep you alive between turns.
If you have nothing useful to do, call SleepTool.
Bias toward action — read files, make changes, commit without asking.
## Terminal focus
- Unfocused: The user is away. Lean heavily into autonomous action.
- Focused: The user is watching. Be more collaborative.
```
### 関連ツール
| ツール | Feature Flag | 用途 |
|-------|-------------|------|
| SleepTool | KAIROS / PROACTIVE | 自律動作間のペーシング制御 |
| SendUserFileTool | KAIROS | ユーザーへのファイル先行送信 |
| PushNotificationTool | KAIROS / KAIROS_PUSH_NOTIFICATION | ユーザーデバイスへのプッシュ通知 |
| SubscribePRTool | KAIROS_GITHUB_WEBHOOKS | GitHub PRウェブフック購読 |
| BriefTool | KAIROS_BRIEF | 先行ステータス更新 |
### 動作方式
- `<tick>` ハートビートプロンプトで稼働
- ターミナルフォーカス状態に応じて自律レベルを調整
- 独立してコミット、プッシュ、意思決定が可能
- 先行的に通知とステータス更新を送信
- GitHub PRの変更を監視
## 3. 音声モード
Push-to-talk音声入力が完全実装されているが `VOICE_MODE` feature flagでゲートされている。
```typescript
// src/voice/voiceModeEnabled.ts
// Anthropicのvoice_stream WebSocketエンドポイントに接続
// conversation_engineベースのモデルで音声テキスト変換
// キーバインドを長押しで録音、離すと送信
```
- OAuth専用APIキー / Bedrock / Vertex非対応
- WebSocket接続にmTLSを使用
- キルスイッチ: `tengu_amber_quartz_disabled`
## 4. 未公開ツール
ソースに存在するが外部ユーザーにはまだ有効化されていないツール:
| ツール | Feature Flag | 説明 |
|-------|-------------|------|
| **WebBrowserTool** | `WEB_BROWSER_TOOL` | 内蔵ブラウザ自動化(コードネーム: bagel |
| **TerminalCaptureTool** | `TERMINAL_PANEL` | ターミナルパネルキャプチャと監視 |
| **WorkflowTool** | `WORKFLOW_SCRIPTS` | 定義済みワークフロースクリプト実行 |
| **MonitorTool** | `MONITOR_TOOL` | システム/プロセス監視 |
| **SnipTool** | `HISTORY_SNIP` | 会話履歴のスニッピング/縮小 |
| **ListPeersTool** | `UDS_INBOX` | Unixドメインソケットピア探索 |
| **RemoteTriggerTool** | `AGENT_TRIGGERS_REMOTE` | リモートエージェントトリガー |
| **TungstenTool** | ant専用 | 内部パフォーマンス監視パネル |
| **VerifyPlanExecutionTool** | VERIFY_PLAN env | 計画実行検証 |
| **OverflowTestTool** | `OVERFLOW_TEST_TOOL` | コンテキストオーバーフローテスト |
| **SubscribePRTool** | `KAIROS_GITHUB_WEBHOOKS` | GitHub PRウェブフック購読 |
## 5. Coordinatorモード
マルチエージェント連携システム:
```typescript
// src/coordinator/coordinatorMode.ts
// Feature flag: COORDINATOR_MODE
```
共有状態とメッセージングによる複数エージェント間の連携タスク実行を実現する。
## 6. Buddyシステムバーチャルペット
完全なペットコンパニオンシステムが実装されているが未リリース:
- **18種**: duck, goose, blob, cat, dragon, octopus, owl, penguin, turtle, snail, ghost, axolotl, capybara, cactus, robot, rabbit, mushroom, chonk
- **5段階レアリティ**: Common (60%), Uncommon (25%), Rare (10%), Epic (4%), Legendary (1%)
- **7種の帽子**: crown, tophat, propeller, halo, wizard, beanie, tinyduck
- **5つのステータス**: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK
- **1%のシャイニー確率**: 全種のSparkleバリアント
- **決定論的生成**: ユーザーIDハッシュに基づく
出典: `src/buddy/`
## 7. Dream Task
バックグラウンド記憶統合サブエージェント:
```
// src/tasks/DreamTask/
// バックグラウンドで動作するオートドリーミング機能
// 'tengu_onyx_plover' feature flagで制御
```
アイドル時間中にAIが自律的に記憶を処理・統合できるようにする。
## まとめ: 3つの方向性
1. **新モデル**: Numbat次期、Opus 4.7、Sonnet 4.8が開発中
2. **自律エージェント**: KAIROSモード — 無人運用、先行アクション、プッシュ通知
3. **マルチモーダル**: 音声入力準備完了、ブラウザツール待機中、ワークフロー自動化予定
Claude Codeは**コーディングアシスタント**から**常時稼働の自律開発エージェント**へと進化している。

View File

@@ -0,0 +1,124 @@
# 텔레메트리 및 프라이버시 분석
> Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.
## 개요
Claude Code는 이중 분석 파이프라인을 통해 광범위한 환경 및 사용 메타데이터를 수집한다. 키로깅이나 소스 코드 유출의 증거는 없으나, 수집 범위가 넓고 완전한 비활성화가 불가능하다는 점에서 프라이버시 우려가 존재한다.
## 데이터 파이프라인 구조
### 자사 로깅 (1P)
- **엔드포인트**: `https://api.anthropic.com/api/event_logging/batch`
- **프로토콜**: OpenTelemetry + Protocol Buffers
- **배치 크기**: 최대 200개 이벤트, 10초 간격 전송
- **재시도**: 이차 백오프, 최대 8회, 디스크 영속 저장
- **저장소**: 전송 실패 시 `~/.claude/telemetry/`에 저장
출처: `src/services/analytics/firstPartyEventLoggingExporter.ts`
### 서드파티 로깅 (Datadog)
- **엔드포인트**: `https://http-intake.logs.us5.datadoghq.com/api/v2/logs`
- **범위**: 사전 승인된 64개 이벤트 유형으로 제한
- **토큰**: `pubbbf48e6d78dae54bceaa4acf463299bf`
출처: `src/services/analytics/datadog.ts`
## 수집 항목
### 환경 핑거프린트
모든 이벤트에 다음 메타데이터가 포함된다 (`src/services/analytics/metadata.ts:417-452`):
```
- platform, platformRaw, arch, nodeVersion
- 터미널 유형
- 설치된 패키지 매니저 및 런타임
- CI/CD 감지, GitHub Actions 메타데이터
- WSL 버전, Linux 배포판, 커널 버전
- VCS(버전 관리 시스템) 유형
- Claude Code 버전 및 빌드 시각
- 배포 환경
```
### 프로세스 메트릭 (`metadata.ts:457-467`)
```
- uptime, rss, heapTotal, heapUsed
- CPU 사용량 및 사용률
- memory arrays 및 external allocations
```
### 사용자 추적 (`metadata.ts:472-496`)
```
- 사용 중인 모델
- 세션 ID, 사용자 ID, 디바이스 ID
- 계정 UUID, 조직 UUID
- 구독 등급 (max, pro, enterprise, team)
- 저장소 원격 URL 해시 (SHA256, 앞 16자)
- 에이전트 유형, 팀 이름, 부모 세션 ID
```
### 도구 입력 로깅
도구 입력은 기본적으로 잘린다:
```
- 문자열: 512자에서 잘림, 128자 + 생략부호로 표시
- JSON: 4,096자 제한
- 배열: 최대 20개 항목
- 중첩 객체: 최대 2단계 깊이
```
출처: `metadata.ts:236-241`
단, `OTEL_LOG_TOOL_DETAILS=1` 설정 시 **전체 도구 입력이 기록된다**.
출처: `metadata.ts:86-88`
### 파일 확장자 추적
`rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed` 관련 Bash 명령에서 파일 인자의 확장자가 추출·기록된다.
출처: `metadata.ts:340-412`
## 비활성화 문제
자사 로깅 파이프라인은 직접 Anthropic API 사용자의 경우 **비활성화할 수 없다**.
```typescript
// src/services/analytics/firstPartyEventLogger.ts:141-144
export function is1PEventLoggingEnabled(): boolean {
return !isAnalyticsDisabled()
}
```
`isAnalyticsDisabled()`가 true를 반환하는 경우:
- 테스트 환경
- 서드파티 클라우드 제공자 (Bedrock, Vertex)
- 글로벌 텔레메트리 비활성화 (설정 UI에 노출되지 않음)
자사 이벤트 로깅을 비활성화하는 **사용자 대상 설정은 존재하지 않는다**.
## GrowthBook A/B 테스트
사용자는 명시적 동의 없이 GrowthBook을 통해 실험 그룹에 배정된다. 전송되는 사용자 속성:
```
- id, sessionId, deviceID
- platform, organizationUUID, subscriptionType
```
출처: `src/services/analytics/growthbook.ts`
## 핵심 요약
1. **수집량**: 세션당 수백 건의 이벤트가 수집된다
2. **비활성화 불가**: 직접 API 사용자는 자사 로깅을 끌 수 없다
3. **영속성**: 전송 실패 이벤트는 디스크에 저장되어 적극적으로 재시도된다
4. **서드파티 공유**: 데이터가 Datadog으로 전송된다
5. **도구 상세 백도어**: `OTEL_LOG_TOOL_DETAILS=1`로 전체 입력 로깅이 활성화된다
6. **저장소 핑거프린팅**: 저장소 URL이 해싱되어 서버 측 상관분석에 사용된다

View File

@@ -0,0 +1,112 @@
# 숨겨진 기능과 모델 코드네임
> 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 오발동** (프롬프트 끝에 `<functions>` 있을 때 ~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` | 스텁 | 숨겨진 플레이스홀더 |

View File

@@ -0,0 +1,110 @@
# 언더커버 모드 분석
> Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.
## 언더커버 모드란?
언더커버 모드는 Anthropic 직원이 공개/오픈소스 저장소에 기여할 때 사용되는 안전 시스템이다. 활성화 시 모든 AI 저작 표시를 제거하고, 기여 내용을 사람이 작성한 것처럼 보이도록 모델에 지시한다.
출처: `src/utils/undercover.ts`
## 활성화 조건
```typescript
// src/utils/undercover.ts:28-37
export function isUndercover(): boolean {
if (process.env.USER_TYPE === 'ant') {
if (isEnvTruthy(process.env.CLAUDE_CODE_UNDERCOVER)) return true
// Auto: 내부 저장소로 확인되지 않으면 자동 활성화
return getRepoClassCached() !== 'internal'
}
return false
}
```
주요 특성:
- **내부 전용**: Anthropic 직원(`USER_TYPE === 'ant'`)만 해당
- **기본 활성화**: 내부 허용 목록에 없는 모든 저장소에서 자동 활성화
- **강제 비활성화 불가**: "There is NO force-OFF. This guards against model codename leaks"
- **외부 빌드**: 번들러에 의해 데드 코드 제거됨; 실행되지 않음
## 모델에 전달되는 프롬프트
```typescript
// src/utils/undercover.ts:39-69
export function getUndercoverInstructions(): string {
return `## UNDERCOVER MODE — CRITICAL
You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. Your commit
messages, PR titles, and PR bodies MUST NOT contain ANY Anthropic-internal
information. Do not blow your cover.
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)
- Internal repo or project names (e.g., claude-cli-internal, anthropics/…)
- Internal tooling, Slack channels, or short links (e.g., go/cc, #claude-code-…)
- The phrase "Claude Code" or any mention that you are an AI
- Any hint of what model or version you are
- Co-Authored-By lines or any other attribution
Write commit messages as a human developer would — describe only what the code
change does.
GOOD:
- "Fix race condition in file watcher initialization"
- "Add support for custom key bindings"
BAD (never write these):
- "Fix bug found while testing with Claude Capybara"
- "1-shotted by claude-opus-4-6"
- "Generated with Claude Code"
- "Co-Authored-By: Claude Opus 4.6 <…>"`
}
```
## 저작 표시 시스템
저작 표시 시스템(`src/utils/attribution.ts`, `src/utils/commitAttribution.ts`)은 언더커버 모드를 보완한다:
```typescript
// src/utils/attribution.ts:70-72
// @[MODEL LAUNCH]: 아래 하드코딩된 폴백 모델 이름 업데이트
// (코드네임 유출 방지용).
// 외부 저장소에서 인식되지 않는 모델은 "Claude Opus 4.6"으로 폴백.
```
```typescript
// src/utils/model/model.ts:386-392
function maskModelCodename(baseName: string): string {
// e.g. capybara-v2-fast → cap*****-v2-fast
const [codename = '', ...rest] = baseName.split('-')
const masked = codename.slice(0, 3) + '*'.repeat(Math.max(0, codename.length - 3))
return [masked, ...rest].join('-')
}
```
## 시사점
### 오픈소스에 대한 영향
Anthropic 직원이 Claude Code로 오픈소스 프로젝트에 기여할 때:
1. AI가 코드를 작성하지만 커밋은 사람이 작성한 것으로 표시된다
2. "Co-Authored-By: Claude" 저작 표시가 없다
3. "Generated with Claude Code" 마커가 없다
4. 프로젝트 메인테이너와 커뮤니티는 AI 생성 기여를 식별할 수 없다
5. 이는 AI 기여에 관한 오픈소스 투명성 규범을 잠재적으로 위반한다
### Anthropic 보호 목적
명시된 주요 목적은 다음의 우발적 유출 방지:
- 내부 모델 코드네임 (경쟁 정보)
- 미공개 버전 번호 (시장 타이밍)
- 내부 인프라 세부 정보 (보안)
### 윤리적 고려사항
"Do not blow your cover(정체를 들키지 마라)"라는 표현은 AI를 잠입 요원으로 프레이밍한다. 공개 코드 기여에서의 의도적인 AI 저작 은폐는 다음과 같은 질문을 제기한다:
- 오픈소스 커뮤니티에서의 투명성
- 프로젝트 기여 가이드라인 준수 여부
- 영업비밀 보호와 기만 사이의 경계

View File

@@ -0,0 +1,161 @@
# 원격 제어 및 킬스위치
> Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.
## 개요
Claude Code는 Anthropic(및 기업 관리자)이 사용자의 명시적 동의 없이 동작을 변경할 수 있는 다수의 원격 제어 메커니즘을 구현하고 있다.
## 1. 원격 관리 설정
### 구조
자격이 있는 모든 세션은 다음에서 설정을 가져온다:
```
GET /api/claude_code/settings
```
출처: `src/services/remoteManagedSettings/index.ts:105-107`
### 폴링 동작
```typescript
// src/services/remoteManagedSettings/index.ts:52-54
const SETTINGS_TIMEOUT_MS = 10000
const DEFAULT_MAX_RETRIES = 5
const POLLING_INTERVAL_MS = 60 * 60 * 1000 // 1시간
```
설정은 1시간마다 폴링되며, 실패 시 최대 5회 재시도한다.
### 대상 자격
- Console 사용자 (API 키): 전원 대상
- OAuth 사용자: Enterprise/C4E 및 Team 구독자만 해당
### 수락 강제 다이얼로그
원격 설정에 "위험한" 변경이 포함되면 차단 다이얼로그가 표시된다:
```typescript
// src/services/remoteManagedSettings/securityCheck.tsx:67-73
export function handleSecurityCheckResult(result: SecurityCheckResult): boolean {
if (result === 'rejected') {
gracefulShutdownSync(1) // 종료 코드 1로 종료
return false
}
return true
}
```
원격 설정을 거부하면 애플리케이션이 **강제 종료된다**. 선택지는 원격 설정 수락 또는 Claude Code 종료뿐이다.
### 장애 시 동작
원격 서버 접근이 불가능하면 디스크 캐시 설정을 사용한다:
```typescript
// src/services/remoteManagedSettings/index.ts:433-436
if (cachedSettings) {
logForDebugging('Remote settings: Using stale cache after fetch failure')
setSessionCache(cachedSettings)
return cachedSettings
}
```
원격 설정이 한 번 적용되면, 서버 장애 시에도 캐시가 유지된다.
## 2. Feature Flag 킬스위치
GrowthBook feature flag를 통해 여러 기능을 원격 비활성화할 수 있다:
### 권한 우회 킬스위치
```typescript
// src/utils/permissions/bypassPermissionsKillswitch.ts
// Statsig 게이트를 확인하여 권한 우회를 비활성화
```
사용자 동의 없이 권한 우회 기능을 비활성화할 수 있다.
### Auto 모드 서킷 브레이커
```typescript
// src/utils/permissions/autoModeState.ts
// autoModeCircuitBroken 상태로 auto 모드 재진입을 차단
```
Auto 모드를 원격으로 비활성화할 수 있다.
### Fast 모드 킬스위치
```typescript
// src/utils/fastMode.ts
// /api/claude_code_penguin_mode 에서 조회
// 특정 사용자의 fast 모드를 영구 비활성화 가능
```
### 분석 싱크 킬스위치
```typescript
// src/services/analytics/sinkKillswitch.ts:4
const SINK_KILLSWITCH_CONFIG_NAME = 'tengu_frond_boric'
```
모든 분석 출력을 원격으로 중단할 수 있다.
### Agent Teams 킬스위치
```typescript
// src/utils/agentSwarmsEnabled.ts
// 환경 변수와 GrowthBook 게이트 'tengu_amber_flint' 모두 필요
```
### 음성 모드 킬스위치
```typescript
// src/voice/voiceModeEnabled.ts:21
// 'tengu_amber_quartz_disabled' — 음성 모드 긴급 차단
```
## 3. 모델 오버라이드 시스템
Anthropic은 내부 직원이 사용하는 모델을 원격으로 변경할 수 있다:
```typescript
// src/utils/model/antModels.ts:32-33
// @[MODEL LAUNCH]: tengu_ant_model_override에 새 ant 전용 모델 업데이트
// @[MODEL LAUNCH]: 코드네임을 scripts/excluded-strings.txt에 추가
```
`tengu_ant_model_override` GrowthBook flag로 가능한 작업:
- 기본 모델 설정
- 기본 노력 수준 설정
- 시스템 프롬프트에 내용 추가
- 커스텀 모델 별칭 정의
## 4. Penguin 모드
Fast 모드 상태는 전용 엔드포인트에서 조회한다:
```typescript
// src/utils/fastMode.ts
// GET /api/claude_code_penguin_mode
// API가 비활성화를 응답하면 해당 사용자에게 영구 비활성화
```
Fast 모드 가용성을 제어하는 feature flag:
- `tengu_penguins_off`
- `tengu_marble_sandcastle`
## 요약
| 메커니즘 | 범위 | 사용자 동의 |
|----------|------|------------|
| 원격 관리 설정 | Enterprise/Team | 수락 또는 종료 |
| GrowthBook feature flag | 전체 사용자 | 없음 |
| 킬스위치 | 전체 사용자 | 없음 |
| 모델 오버라이드 | 내부 (ant) | 없음 |
| Fast 모드 제어 | 전체 사용자 | 없음 |
원격 제어 인프라는 광범위하며, 대부분 사용자에게 보이지 않고 동의 없이 운영된다. 기업 관리자는 사용자가 재정의할 수 없는 정책을 강제할 수 있고, Anthropic은 feature flag를 통해 모든 사용자의 동작을 원격으로 변경할 수 있다.

View File

@@ -0,0 +1,167 @@
# 향후 로드맵 — 소스 코드에서 드러난 내용
> Claude Code v2.1.88 디컴파일 소스 코드 분석 기반.
## 1. 차기 모델: Numbat
차기 모델 출시의 가장 구체적인 근거:
```typescript
// src/constants/prompts.ts:402
// @[MODEL LAUNCH]: Remove this section when we launch numbat.
```
**Numbat**(넘뱃)은 차기 모델의 코드네임이다. 이 주석은 Numbat 출시 시 출력 효율성 섹션이 개정될 것임을 나타내며, 더 나은 네이티브 출력 제어를 갖출 가능성을 시사한다.
### 향후 버전 번호
```typescript
// src/utils/undercover.ts:49
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
```
**Opus 4.7**과 **Sonnet 4.8**이 개발 중이다.
### 코드네임 변천
```
Fennec (페넥여우) → Opus 4.6 → [Numbat?]
Capybara (카피바라) → Sonnet v8 → [?]
Tengu (천구) → 텔레메트리/제품 접두사
```
Fennec에서 Opus로의 마이그레이션이 문서화되어 있다:
```typescript
// src/migrations/migrateFennecToOpus.ts:7-11
// fennec-latest → opus
// fennec-latest[1m] → opus[1m]
// fennec-fast-latest → opus[1m] + fast mode
```
### MODEL LAUNCH 체크리스트
코드베이스에는 업데이트할 항목을 나열한 20개 이상의 `@[MODEL LAUNCH]` 마커가 있다:
- 기본 모델 이름 (`FRONTIER_MODEL_NAME`)
- 모델 패밀리 ID
- 지식 기준일(knowledge cutoff)
- 가격표
- 컨텍스트 윈도우 설정
- Thinking 모드 지원 플래그
- 표시 이름 매핑
- 마이그레이션 스크립트
## 2. KAIROS — 자율 에이전트 모드
최대 규모의 미공개 기능으로, KAIROS는 Claude Code를 반응형 어시스턴트에서 능동적 자율 에이전트로 변환한다.
### 시스템 프롬프트 (발췌)
```
// src/constants/prompts.ts:860-913
You are running autonomously.
You will receive <tick> prompts that keep you alive between turns.
If you have nothing useful to do, call SleepTool.
Bias toward action — read files, make changes, commit without asking.
## Terminal focus
- Unfocused: The user is away. Lean heavily into autonomous action.
- Focused: The user is watching. Be more collaborative.
```
### 관련 도구
| 도구 | Feature Flag | 용도 |
|------|-------------|------|
| SleepTool | KAIROS / PROACTIVE | 자율 동작 간 페이싱 제어 |
| SendUserFileTool | KAIROS | 사용자에게 파일 선제 전송 |
| PushNotificationTool | KAIROS / KAIROS_PUSH_NOTIFICATION | 사용자 기기에 푸시 알림 |
| SubscribePRTool | KAIROS_GITHUB_WEBHOOKS | GitHub PR 웹훅 이벤트 구독 |
| BriefTool | KAIROS_BRIEF | 선제적 상태 업데이트 |
### 동작 방식
- `<tick>` 하트비트 프롬프트로 작동
- 터미널 포커스 상태에 따라 자율성 수준 조정
- 독립적으로 커밋, 푸시, 의사결정 가능
- 선제적 알림 및 상태 업데이트 전송
- GitHub PR 변경사항 모니터링
## 3. 음성 모드
Push-to-talk 음성 입력이 완전 구현되어 있으나 `VOICE_MODE` feature flag로 차단되어 있다.
```typescript
// src/voice/voiceModeEnabled.ts
// Anthropic의 voice_stream WebSocket 엔드포인트에 연결
// conversation_engine 기반 모델로 음성-텍스트 변환
// 키 바인딩을 길게 눌러 녹음, 놓으면 전송
```
- OAuth 전용 (API 키 / Bedrock / Vertex 미지원)
- WebSocket 연결에 mTLS 사용
- 킬스위치: `tengu_amber_quartz_disabled`
## 4. 미공개 도구
소스에 존재하지만 외부 사용자에게 아직 활성화되지 않은 도구:
| 도구 | Feature Flag | 설명 |
|------|-------------|------|
| **WebBrowserTool** | `WEB_BROWSER_TOOL` | 내장 브라우저 자동화 (코드네임: bagel) |
| **TerminalCaptureTool** | `TERMINAL_PANEL` | 터미널 패널 캡처 및 모니터링 |
| **WorkflowTool** | `WORKFLOW_SCRIPTS` | 사전 정의된 워크플로우 스크립트 실행 |
| **MonitorTool** | `MONITOR_TOOL` | 시스템/프로세스 모니터링 |
| **SnipTool** | `HISTORY_SNIP` | 대화 히스토리 잘라내기/축소 |
| **ListPeersTool** | `UDS_INBOX` | Unix 도메인 소켓 피어 탐색 |
| **RemoteTriggerTool** | `AGENT_TRIGGERS_REMOTE` | 원격 에이전트 트리거 |
| **TungstenTool** | ant 전용 | 내부 성능 모니터링 패널 |
| **VerifyPlanExecutionTool** | VERIFY_PLAN env | 계획 실행 검증 |
| **OverflowTestTool** | `OVERFLOW_TEST_TOOL` | 컨텍스트 오버플로우 테스트 |
| **SubscribePRTool** | `KAIROS_GITHUB_WEBHOOKS` | GitHub PR 웹훅 구독 |
## 5. Coordinator 모드
멀티 에이전트 조율 시스템:
```typescript
// src/coordinator/coordinatorMode.ts
// Feature flag: COORDINATOR_MODE
```
공유 상태와 메시징을 통한 다수 에이전트 간 조율된 작업 실행을 지원한다.
## 6. Buddy 시스템 (가상 펫)
완전한 펫 동반자 시스템이 구현되어 있으나 아직 출시되지 않았다:
- **18종**: duck, goose, blob, cat, dragon, octopus, owl, penguin, turtle, snail, ghost, axolotl, capybara, cactus, robot, rabbit, mushroom, chonk
- **5단계 희귀도**: Common (60%), Uncommon (25%), Rare (10%), Epic (4%), Legendary (1%)
- **7종 모자**: crown, tophat, propeller, halo, wizard, beanie, tinyduck
- **5가지 스탯**: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK
- **1% 반짝이 확률**: 모든 종의 Sparkle 변형
- **결정론적 생성**: 사용자 ID 해시 기반
출처: `src/buddy/`
## 7. Dream Task
백그라운드 기억 통합 서브에이전트:
```
// src/tasks/DreamTask/
// 백그라운드에서 동작하는 자동 드리밍 기능
// 'tengu_onyx_plover' feature flag로 제어
```
유휴 시간 중 AI가 자율적으로 기억을 처리하고 통합할 수 있게 한다.
## 요약: 세 가지 방향
1. **신규 모델**: Numbat (차기), Opus 4.7, Sonnet 4.8 개발 중
2. **자율 에이전트**: KAIROS 모드 — 무인 운영, 선제적 행동, 푸시 알림
3. **멀티모달**: 음성 입력 준비 완료, 브라우저 도구 대기 중, 워크플로우 자동화 예정
Claude Code는 **코딩 어시스턴트**에서 **상시 가동 자율 개발 에이전트**로 진화하고 있다.