# リモート制御およびキルスイッチ

> 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を通じてすべてのユーザーの動作をリモートで変更できる。
