# 実行モードと権限 (/ja/docs/verdent-for-vscode/execution-modes/overview)

> さまざまな実行モードと、それぞれの使いどころを理解する



***

Verdent for VS Code は、AI がファイルを操作したりコマンドを実行したりする方法を制御する複数の実行モードを提供します。各モードは、制御性、速度、安全性の間で異なるトレードオフを提供します。

### この章で学べること [#この章で学べること]

* 各実行モードの仕組みと使いどころ
* 権限モデルと安全性に関する考慮事項
* モードの比較と切り替え戦略
* 複雑な推論タスク向けの Think Hard Mode

### 利用できる主なモード [#利用できる主なモード]

<CardGroup cols="2">
  <Card title="Manual Accept Mode" icon="hand">
    保護された操作のたびに権限をリクエストするデフォルトモード。最大限の制御と監視を提供します。
  </Card>

  <Card title="Auto-Run Mode" icon="play">
    ファイル操作は自動、コマンドには権限が必要。速度と安全性のバランスを取ります。
  </Card>

  <Card title="Skip Permission Mode" icon="forward">
    隔離環境向けの完全な自律性。いかなる操作にも権限プロンプトは表示されません。
  </Card>

  <Card title="Plan Mode" icon="clipboard-list">
    読み取り専用の計画モード。実行を開始する前に完全な計画を確認できます。
  </Card>
</CardGroup>

***

## 実行モード [#実行モード]

<Tabs>
  <Tab title="Manual Accept Mode">
    Manual Accept Mode は、ファイルの変更とコマンドの実行を制御できるデフォルトの実行モードです。

    **自動で実行される操作:**

    * ファイルの読み取りとコード解析
    * ディレクトリの参照

    **権限が必要な操作:**

    * ファイル編集（作成、変更、削除）
    * コマンド実行（ターミナルコマンド、テスト、ビルド）

    Verdent が保護された操作を実行する必要がある場合、どのアクションを実行しようとしているか、どのファイル/コマンドが関係しているかを表示します。各操作を **Accept** または **Reject** できます。

    **重要:** 各権限は、その特定の操作のみに適用されます。Manual Accept Mode では、セッションを通じて保護された操作すべてに承認が必要です。

    #### 使いどころ [#使いどころ]

    * Verdent の機能やワークフローのパターンを学ぶとき
    * 慎重な監視が必要な、慣れていないコードベースで作業するとき
    * 本番コードやセキュリティに関わる領域への重要な変更
    * 明示的な承認の記録が必要なコンプライアンス要件

    #### 有効化 [#有効化]

    Manual Accept Mode はデフォルトで有効です。切り替えて戻すには:

    <Steps>
      <Step title="権限メニューを開く">
        入力ボックスの「Switch Permission」ボタンをクリックします
      </Step>

      <Step title="Manual Accept Mode を選択">
        ドロップダウンから「Manual Accept Mode」を選択します
      </Step>

      <Step title="有効化を確認">
        ボタンに「Manual」と表示され、モードが有効であることが確認できます
      </Step>
    </Steps>

    #### 安全性に関する考慮事項 [#安全性に関する考慮事項]

    **利点:**

    * ツールの種類（ファイル編集、コマンド、ツール）ごとに初回使用時の承認
    * アクセスを許可する前にすべてを確認できる
    * 最大限の制御と透明性

    **制限:**

    * あるツールの種類を初回承認した後、それ以降の使用はプロンプトなしで進行する
    * 承認はツールの種類ごとであり、操作ごとではない
    * 重要なコードで作業するときは、新しいセッションを開始してツールの承認をリセットする
  </Tab>

  <Tab title="Auto-Run Mode">
    Auto-Run Mode は、ファイル操作を自動的に承認しつつ、コマンドには権限を要求します。これにより、リスクのある操作の安全性を維持しながら、日常的なファイル作業の権限プロンプトを減らせます。

    **自動で実行される操作:**

    * ワークスペース内でのファイルの読み取り、編集、作成、削除
    * ワークスペース内でのファイルの移動、名前変更、整理
    * ファイルの検索とナビゲーション操作

    **権限が必要な操作:**

    * **現在のワークスペース外のパスを含むあらゆるコマンド**
    * **危険な bash コマンド:** `rm -rf`、`git commit`、`git push` など
    * コマンド実行（ターミナル、スクリプト、ビルド）
    * パッケージのインストールやシステムの変更

    #### 使いどころ [#使いどころ-1]

    | Auto-Run を使う場面                             | 使わない場面                |
    | ------------------------------------------ | --------------------- |
    | バージョン管理された信頼できるコードベース                      | 慣れていないコードベース          |
    | 迅速なプロトタイピングと実験                             | 重要な本番コード              |
    | 複数ファイルのリファクタリング（15 ファイル以上 = 15 回のプロンプトを節約） | バージョン管理によるセーフティネットがない |
    | 中断を最小限に抑えた集中的な開発                           | コンプライアンス要件            |

    #### 有効化 [#有効化-1]

    <Steps>
      <Step title="権限メニューを開く">
        現在のモードを表示している「Switch Permission」ボタンをクリックします
      </Step>

      <Step title="Auto-Run Mode を選択">
        ドロップダウンから「Auto-Run Mode」を選択します
      </Step>

      <Step title="有効化を確認">
        ボタンに「Auto」と表示され、モードが有効であることが確認できます
      </Step>
    </Steps>

    セッションや VS Code の再起動をまたいで保持されます。すべてのワークスペースにグローバルに適用されます。

    #### ワークフローの例 [#ワークフローの例]

    **POST /api/tasks エンドポイントの構築:**

    1. Auto-Run Mode を有効化する
    2. 「カテゴリの存在を検証してデータベースに保存する POST /api/tasks エンドポイントを作成して」と送信する
    3. Verdent が 5 個以上のファイルを読み取り、3 個のファイルを自動で変更する（プロンプトなし）
    4. Source Control パネルで変更を確認する
    5. テストをリクエストする: 「tasks API のテストを実行して」
    6. `npm test` コマンドの権限プロンプトが表示される - Accept
    7. 検証を追加する: 「空のタイトルの検証を追加して」
    8. Verdent が自動で編集する（プロンプトなし）
    9. 再びテストをリクエストする - 権限プロンプト - Accept
    10. 差分を確認し、変更をコミットする

    **結果:** コマンドのプロンプト 3 回、ファイルのプロンプト 0 回。Manual Accept なら、さらに 4 回のファイルプロンプトが必要になります。

    #### 安全性に関する考慮事項 [#安全性に関する考慮事項-1]

    **利点:**

    * 変更が VS Code にすぐに表示される
    * ワークスペースに限定される（システムファイルに影響を与えられない）
    * Git がロールバックの安全性を提供する

    **リスク:**

    * ファイル操作に対する監視がない
    * 予期しない範囲（「User を Account にリネーム」で何十ものファイルが変更される可能性がある）
    * クリーンアップ中にファイルが削除される可能性がある
    * 指示すれば機密ファイルが変更される可能性がある

    **緩和策:**

    * 明確で具体的なプロンプトを使う
    * 完了後に Source Control パネルを確認する
    * クリーンなチェックポイントのために頻繁にコミットする
    * 複雑な操作にはまず Plan Mode を使う
    * .gitignore を設定して機密ファイルを保護する
  </Tab>

  <Tab title="Skip Permission Mode">
    Skip Permission Mode はすべての権限プロンプトをバイパスし、完全な自律性を可能にします。&#x2A;*隔離された使い捨ての環境でのみ使用してください。**

    **すべての操作が自動:**

    * ファイル操作
    * コマンド実行
    * パッケージのインストール
    * システムレベルの操作

    <Warning>
      このモードはすべての安全ガードを取り除きます。ミスが何の影響も及ぼさない、完全に隔離された使い捨ての環境でのみ使用してください。本番環境や、大切にしているコードベースでは絶対に使用しないでください。
    </Warning>

    #### 使いどころ [#使いどころ-2]

    | Skip Permission を使う場面          | 絶対に使わない場面     |
    | ------------------------------ | ------------- |
    | 隔離されたコンテナ内の自動化された CI/CD パイプライン | 本番環境          |
    | 使い捨ての開発コンテナ（実験後に削除される）         | 重要なコードがある開発環境 |
    | 本番接続のないサンドボックス環境               | 大切にしているコードベース |
    | 人間の承認が目的を損なうスクリプト化されたワークフロー    | 共有リポジトリ       |
    |                                | 機密データがある環境    |

    #### 有効化 [#有効化-2]

    <Steps>
      <Step title="権限メニューを開く">
        「Switch Permission」ボタンをクリックします
      </Step>

      <Step title="Skip Permission Mode を選択">
        ドロップダウンから「Skip Permission Mode」を選択します
      </Step>

      <Step title="有効化を確認">
        ボタンに「Skip」と表示され、モードが有効であることが確認できます
      </Step>
    </Steps>

    **有効化する前の安全確認:**

    * これは使い捨てのコンテナまたは VM か？
    * この環境は何の影響もなく削除できるか？
    * ここに本番コードや重要なコードはないか？

    最初の 2 つに「いいえ」、または 3 つ目に「はい」の場合は、有効化しないでください。

    #### 安全に関する警告 [#安全に関する警告]

    **すべての安全ガードが取り除かれます:**

    * コマンドはシステム権限で即座に実行される
    * ファイルが警告なしに変更または削除される可能性がある
    * データベース操作や Git 操作（force push を含む）が承認なしで進行する
    * 悪意のあるパッケージをインストールしたり、認証情報を露出したりする可能性がある

    **安全なのは次の場合のみ:**

    * 環境が完全に使い捨て
    * 重要なコードやデータが存在しない
    * 本番システムへの接続がない
    * 何が破壊されても受け入れられる
  </Tab>
</Tabs>

***

## Plan Mode [#plan-mode]

Plan Mode は読み取り専用の対話モードで、Verdent がコードを解析し、詳細な計画を作成し、確認のための質問をします。ただし、あなたが承認するまでファイルの変更やコマンドの実行はできません。

#### 仕組み [#仕組み]

1. **解析** - ファイルを自動的に読み取る
2. **計画** - todo リスト付きの構造化された計画を作成する
3. **確認** - 不確実性を取り除くための質問をする
4. **承認** - あなたが内容を確認し、進めるかどうかを判断する
5. **実行** - あなたの権限モードに切り替えて実行する

計画には、変更するファイル、実装ステップ、依存関係、検証戦略が示されます。

#### 使いどころ [#使いどころ-3]

* 複雑な複数ファイルの変更（着手する前に範囲を把握する）
* 慣れていないコードベース（リスクなしで安全に探索する）
* アーキテクチャに関する判断（実装前にアプローチを確認する）
* Manual Accept の疲労を避ける（50 回の個別プロンプトの代わりに一度確認する）
* 影響の大きい本番変更（実行前に全体を見渡す）

#### 有効化 [#有効化-3]

<Steps>
  <Step title="モードメニューを開く">
    入力ボックスの「Switch Mode」ボタンをクリックします
  </Step>

  <Step title="Plan Mode を選択">
    ドロップダウンから「Plan Mode」を選択します
  </Step>

  <Step title="有効化を確認">
    モードインジケーターが「Plan」に変わり、モードが有効であることが確認できます
  </Step>
</Steps>

有効な間、Verdent は解析と計画作成を行いますが、あなたが承認するまでファイルの変更やコマンドの実行は行いません。承認後は、デフォルトの権限モード（Manual Accept または Auto-Run）に切り替わります。

#### 安全性に関する考慮事項 [#安全性に関する考慮事項-2]

**利点:**

* 計画中の実行リスクがゼロ
* 着手前に全体を見渡せる
* 対話的な確認で不確実性を取り除ける
* 本番環境の解析でも安全

**制限:**

* 承認しても正しさは保証されない（計画に論理的な誤りが含まれることがある）
* 実行時の安全性は、承認後に選んだ権限モードに依存する
* 計画の質はプロンプトの明確さに依存する

**ベストプラクティス:**

* 論理的な誤りや誤解がないか計画を確認する
* 不明な点があれば追加で質問する
* 実行を承認する前にプロンプトを練り直す
* どの権限モードで実行されるかを考慮する（監視重視なら Manual Accept、速度重視なら Auto-Run）

***

## Think Hard Mode [#think-hard-mode]

Think Hard Mode は、複雑な推論タスクに最大限の計算リソースを割り当てます。モデルは複数のアプローチを検討し、より徹底した解決策を提供します。

**特徴:**

* 推論時間の延長
* 複数の解決アプローチについてのより深い分析
* 複雑なロジック、エッジケース、アーキテクチャに関する判断のより適切な処理
* リクエストあたりのクレジットコストが高くなる

#### 使いどころ [#使いどころ-4]

| Think Hard Mode を使う場面     | 使わない場面           |
| ------------------------- | ---------------- |
| 複数のトレードオフを伴う複雑なアーキテクチャの判断 | 単純で分かりやすいタスク     |
| 複数の潜在的原因がある高度なデバッグ        | 時間に余裕のないリクエスト    |
| 最適化分析が必要なアルゴリズム設計         | クレジット予算が限られている場合 |
| 正しさが最重要な重要なビジネスロジック       | 標準モードで十分な場合      |
| 複雑なボトルネックのパフォーマンス最適化      |                  |

#### 有効化 [#有効化-4]

<Tabs>
  <Tab title="Think Hard ボタン">
    リクエストごとに有効化するには UI ボタンを使います:

    <Steps>
      <Step title="Think Hard を有効化">
        入力ボックスの「Think Hard」ボタン/トグルをクリックします
      </Step>

      <Step title="プロンプトを送信">
        リクエストを入力して送信します
      </Step>

      <Step title="単一リクエストのみ">
        その特定のリクエストにのみ適用されます。永続的ではありません
      </Step>
    </Steps>

    すべての AI プロバイダーで動作します。永続的ではないため、深い推論が必要なリクエストごとに毎回有効化する必要があります。
  </Tab>

  <Tab title="自然言語（Claude）">
    プロンプトに思考のキーワードを含めます:

    ```
    Think: Design the optimal database schema for this multi-tenant SaaS application
    ```

    あるいは、最大限の推論には:

    ```
    Ultrathink: Analyze the trade-offs between different authentication approaches
    ```

    <Note>
      「Think」と「ultrathink」は Claude モデル固有の機能です。これらのキーワードは Claude モデル（Sonnet、Opus）でより深い推論を有効化しますが、他の AI プロバイダー（GPT-5、MiniMax）では動作しない場合があります。
    </Note>

    リクエストごとの有効化のみで、Manual Accept や Auto-Run のように永続的ではありません。
  </Tab>
</Tabs>

***

## モードの比較 [#モードの比較]

| モード                 | 制御      | 速度   | 最適な用途                          | 避けるべき場面             |
| ------------------- | ------- | ---- | ------------------------------ | ------------------- |
| **Manual Accept**   | 最大      | 最も遅い | 学習、慣れていないコード、重要な変更             | 信頼できるプロジェクト、迅速な反復   |
| **Auto-Run**        | 中程度     | 速い   | 信頼できるコードベース、プロトタイピング、複数ファイルの作業 | 慣れていないコード、バージョン管理なし |
| **Skip Permission** | なし      | 最も速い | CI/CD、使い捨てコンテナ、サンドボックス         | 本番環境、重要なコード         |
| **Plan Mode**       | 確認優先    | 該当なし | 複雑な変更、アーキテクチャの判断               | 単純なタスク              |
| **Think Hard**      | リクエストごと | やや遅い | 複雑な推論、アルゴリズム、重要なロジック           | 単純なタスク、時間に余裕がない場合   |

### 各モードの使いどころ [#各モードの使いどころ]

| シナリオ                  | Manual Accept | Auto-Run | Skip Permission | Plan Mode |
| --------------------- | :-----------: | :------: | :-------------: | :-------: |
| Verdent の学習           |       ✓       |          |                 |           |
| 慣れていないコードベース          |       ✓       |          |                 |     ✓     |
| Git で管理された信頼できるコードベース |               |     ✓    |                 |           |
| 重要/本番コード              |       ✓       |          |                 |     ✓     |
| 迅速なプロトタイピング           |               |     ✓    |                 |           |
| 複数ファイルのリファクタリング       |               |     ✓    |                 |           |
| 複雑なアーキテクチャの計画         |               |          |                 |     ✓     |
| CI/CD パイプライン（隔離環境）    |               |          |        ✓        |           |
| 使い捨てコンテナ              |               |          |        ✓        |           |
| コンプライアンス要件            |       ✓       |          |                 |           |

***

## 安全性のベストプラクティス [#安全性のベストプラクティス]

<Accordion title="安全性の階層（安全な順）">
  各モードの安全性のランクを理解することで、さまざまなリスクレベルに応じて適切に選択できます。

  1. **Plan Mode** - 承認するまで読み取り専用。計画中の実行リスクはゼロ。
  2. **Manual Accept Mode** - ツールの種類ごとの初回承認による操作単位の制御。
  3. **Auto-Run Mode** - コマンド承認付きのファイル自律性。Git のセーフティネットが必要。
  4. **Skip Permission Mode** - 完全な自律性。隔離環境専用。

  モードをリスクレベルに合わせましょう。重要なコードには最も安全なモード（Plan、Manual Accept）、信頼できるコードにはより速いモード（Auto-Run）、使い捨て環境には最も速いモード（Skip Permission）を使います。
</Accordion>

<Accordion title="一般的なベストプラクティス">
  どの実行モードを使っていても当てはまる、必須のプラクティスです。

  **すべてのモードで:**

  1. **バージョン管理を使う** - 寛容なモードを使う前に Git を初期化し、頻繁にコミットし、コミット前に差分を確認する
  2. **明確なプロンプトを書く** - 範囲を具体的に示し、ファイルの境界を明示的に指定し、コンテキストには @-mention を使う
  3. **コミット前に確認する** - 完了後に Source Control パネルを確認し、すべての差分を慎重に確認し、変更をテストする
  4. **新しいセッションを始める** - 大きなタスクの間でコンテキストをクリアし、機密性の高い作業ではツールの承認をリセットし、コンテキストの混入を避ける
  5. **モードをリスクに合わせる** - 重要なコード → Manual Accept または Plan Mode、信頼できるコード → Auto-Run、実験 → Git を使った Auto-Run、使い捨て → Skip Permission のみ

  **セキュリティに関する注意:**

  * 機密ファイル（.env、認証情報）は絶対にコミットしない
  * Auto-Run を使う前に .gitignore を設定する
  * コマンドの権限を慎重に確認する
  * セキュリティに影響する変更には Plan Mode を使う
  * 新しいセッションは Manual Accept でツールの承認をリセットする
</Accordion>

<Accordion title="Progressive Permission Model">
  Verdent の権限システムの仕組みを理解することで、効果的に活用できます。

  **仕組み:**

  1. **初回使用** - 各ツールの種類（ファイル編集、コマンド実行、ツールの使用）を初めて使うとき、システムが権限をリクエストする
  2. **以降の使用** - 最初に承認した後は、そのツールの種類はセッションの残りの間プロンプトなしで進行する
  3. **新しいセッション** - 新しいセッションを開始するとすべての承認がリセットされ、最初からやり直せる

  **重要な原則:** このモデルはセキュリティと生産性のバランスを取ります。ツールの種類を一度確認して承認すれば、その承認のコンテキスト内で効率的に作業できます。機密性の高い作業では、新しいセッションを開始して承認をリセットします。

  **承認をリセットするには:** 新しいセッションを開始する
</Accordion>

***

## 関連項目 [#関連項目]

<CardGroup cols="2">
  <Card title="リソース管理" href="/docs/verdent-for-vscode/resource-management/monitoring" icon="chart-line">
    トークン使用量、クレジット、パフォーマンスを監視する
  </Card>

  <Card title="ベストプラクティス: コンテキスト" href="/docs/verdent-for-vscode/best-practices/context" icon="layer-group">
    モードをまたいだコンテキストウィンドウの管理
  </Card>
</CardGroup>
