本文へスキップ
やす研究所 AI Lab
戻る

Claude Code Auto Mode実践2026:permission自動化と安全運用設計

Claude Code Auto Mode実践2026:permission自動化と安全運用設計

Claude Code を毎日触っていると、一番のストレスはコード生成の精度じゃなくて、permission プロンプトが止まりまくることだったりします。

私も --dangerously-skip-permissions に逃げて、後で git log を見て青ざめた経験があります。Auto Mode はその中間を埋めるための機能で、2026年3月に研究プレビューが出てから、6月のアップデートで Bedrock/Vertex/Foundry にも降りてきました。

この記事では、Auto Mode の挙動・設定・3週間使って詰まったポイント・安全に運用するための CLAUDE.md 設計まで、実際の設定ファイル付きでまとめます。

結論:Auto Mode は「全承認」と「全スキップ」の間を埋める分類器

先に結論から書きます。Auto Mode は Sonnet 4.6 ベースの safety classifier が、Claude Code の各アクションを「安全 → そのまま実行 / リスクあり → ブロック」に振り分ける仕組みです。

2026年3月の研究プレビューでは、Anthropic 公式が「全承認と --dangerously-skip-permissions の中間」と説明していました。つまり、lscat のような明らかに安全なコマンドは自動で通し、rm -rf や外部 API への書き込みなど、リスクが高いものは停止して人間に承認を求める設計です。

6月のアップデートで、この Auto Mode が Amazon Bedrock、Google Vertex AI、Azure Foundry の Opus 4.7 / 4.8 でも動くようになりました。これでチーム導入の障壁が一気に下がった感覚があります。

Auto Mode を有効化する最短手順

手順は拍子抜けするほど短いです。私が最初にやったときは2分で済みました。

# Claude Code 本体を最新化(2.1.170 以降推奨)
claude update

# Auto Mode で起動
claude --mode auto

セッション内で切り替える場合は、スラッシュコマンドで /mode auto を打てば即座に切り替わります。元に戻すなら /mode default

設定を永続化したい場合は、プロジェクト直下の .claude/settings.json にこう書きます。

{
  "defaultMode": "auto",
  "autoMode": {
    "classifier": "sonnet-4.6",
    "verboseDecisions": true
  }
}

verboseDecisions: true を入れておくと、classifier がなぜ「許可」「ブロック」と判定したかが画面に出るので、最初の1週間は必ず ON にしておくのをおすすめします。

Bedrock / Vertex / Foundry で動かす場合の差分

2026年6月のリリースノートによると、Auto Mode は Opus 4.7 と Opus 4.8 限定で third-party provider に対応しました。手元の Claude Code から Bedrock を叩く場合、~/.aws の region 設定が読まれるようになっているので、AWS_REGION を環境変数で別途立てる必要はありません。/status で「region がどこから来たか」が表示されます。

3週間運用して見えた、Auto Mode が「効くタスク」と「効かないタスク」

正直に書きます。Auto Mode は万能ではないです。私の体感では、用途を分けたほうがストレスが減ります。

効くタスク

効かないというか、警戒したほうがいいタスク

後者は classifier がだいたい止めてくれますが、「だいたい」なので過信は禁物です。私は最初の週、Auto Mode 中に Claude が migration スクリプトを走らせかけて肝を冷やしました。幸い dry-run フラグが付いていて事故にはならなかったんですが。

CLAUDE.md と deny rules で Auto Mode を「鍛える」

Auto Mode を素のまま使うのは、安全装置のないフォーミュラカーで街乗りするようなものです。CLAUDE.md と deny rules を組み合わせて、自分の環境に合わせた境界線を引く必要があります。

まず .claude/settings.jsonpermissions.deny に glob でブロック対象を書けます。2026年のアップデートで、tool 名の位置に glob が使えるようになりました。"*" で全ツールを deny する書き方もできます。

{
  "permissions": {
    "deny": [
      "Bash(rm -rf *)",
      "Bash(git push --force*)",
      "Bash(npm publish*)",
      "Bash(*production*)",
      "Write(.env*)"
    ],
    "allow": [
      "Bash(npm test*)",
      "Bash(pytest*)",
      "Read(*)",
      "Grep(*)"
    ]
  }
}

次に CLAUDE.md。Auto Mode の classifier は CLAUDE.md の文脈を読みます。なので、危険な操作の「文脈ヒント」を明示しておくと、判定精度が体感で上がります。

## このリポジトリのリスクゾーン

- `scripts/migrate.py` は本番 DB に書き込む。必ず手動承認すること。
- `infra/` 配下の terraform は plan までは自動、apply は人間承認。
- `.env.production` は読み書きとも禁止。

これを入れる前と入れた後で、私の環境では「無駄に止まる回数」がざっくり4割ほど減りました(N=1の体感値なので参考程度に)。

Auto Mode + Hooks の二段構えで事故を防ぐ

Auto Mode は確率的な分類器なので、決定論的なガードがもう一段欲しくなります。そこで Hooks の PreToolUse と組み合わせる設計が個人的にはしっくり来ました。

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "command": "node .claude/hooks/guard.js",
        "async": false
      }
    ]
  }
}

guard.js 側で、コマンド文字列を正規表現で検査して、危険パターンなら exit code 2 で返す。これで分類器が見落としたケースも止まります。逆に言うと、Hooks がない状態で Auto Mode に全幅の信頼を置くのは、シートベルトなしで autopilot を使うのと同じ感覚です。

scheduled task と webhook を Auto Mode で使うときの罠

ここは見落としがちなんですが、2026年6月の修正で、scheduled task や webhook trigger からのデリバリーが「キーボード入力扱いされてセッションタイトルを書き換える」バグが直りました。今は task notification として分類され、Auto Mode 中の pending action を承認できないようになっています。

つまり、cron で Claude Code を回している人は、Auto Mode に頼り切ると pending な承認が一生消化されない状態になり得ます。私は最初これに気付かず、夜中に走らせていたバッチが2日間 stuck していたことがありました。

対策はシンプルで、--max-turns を切ってタイムアウトを明示するか、scheduled 用には別の settings ファイルを切って defaultMode: bypassPermissions をスコープ限定で使うことです。

まとめ:今日からやる4つのアクション

長くなったので、明日から手を動かすぶんだけ絞ります。

  1. claude update で 2.1.170 以降に上げて、claude --mode auto を1日触ってみる
  2. .claude/settings.json に最低限の permissions.deny を書く(rm -rf、force push、.env 書き換え)
  3. CLAUDE.md に「このリポジトリのリスクゾーン」セクションを追記する
  4. PreToolUse Hook で正規表現ベースの guard を1つ仕込む

Auto Mode は、permission プロンプトに疲れた人にとっては素直に便利な機能です。ただ、確率的な分類器であることを忘れて全任せにすると、痛い目を見ます。Hooks と deny rules で「決定論的な土台」を作ってから、その上で Auto Mode を走らせる。この順番だけ守れば、開発体験はかなり変わるはずです。

参考リンク


この記事をシェア:

次の記事
Claude Codeサブエージェント設計を副業にする方法|2026年の新ニッチ職種