TL;DR
- Claude Code 2.1.200(2026-07-03リリース)で「permission mode の
defaultがManualに変わった」と話題になったが、公式ドキュメントを読み込み自分の環境で検証したところ、変わったのは表示ラベルだけで、設定値(default)も実際の挙動も一切変わっていなかった - 一方で見過ごされがちだが、同じ2.1.195〜2.1.200の間に auto mode(自動承認モード)側は実質的にブロック対象が拡張 されている。こちらは正真正銘の挙動変更
- 本記事はこのリポジトリの
.claude/settings.jsonとclaude --versionを実際に確認しながら、「名前が変わっただけの変更」と「中身が変わった変更」を切り分ける
Manual化の"噂"の出どころ
2026-07-03、Claude Code 2.1.200 がリリースされた。公式Changelogを要約する X(旧Twitter)の @ClaudeCodeLog アカウントは「17 CLI changes」として以下のように投稿した。
Permission mode changed to Manual across CLI, VS Code, JetBrains and --help; commands need manual approval
この文面だけを見ると「これまで自動で進んでいた処理が、今後は毎回手動承認が必要になった」という 挙動変更 に読める。実際、SNS上ではこの投稿を引用して「デフォルトの権限モードが厳しくなった」という受け止め方も見かけた。
筆者はこの記事のためにClaude Code公式ドキュメント(/en/permission-modes)を一次情報として読み込んだ。結論から言うと、この理解は不正確だった。
公式ドキュメントで確認した実態
code.claude.com/docs/en/permission-modes には次の記述がある(原文引用)。
The mode that reviews every action is named Manual in the CLI, in
claude --help, and in the VS Code and JetBrains extensions. Its config value isdefault, which is what hooks and SDK integrations use. The CLI acceptsmanualas an alias wherever you type the value... The Manual label and themanualalias require Claude Code v2.1.200 or later.
つまり変わったのは以下の2点のみ:
-
表示ラベル: CLIの
--helpや VS Code/JetBrainsのモードインジケーターで、これまでdefaultと表示されていたのがManualと表示されるようになった -
設定値のエイリアス追加:
--permission-mode manualや"defaultMode": "manual"という書き方がdefaultと同じ意味の別名として使えるようになった(hooksやSDK連携が参照する内部の値は引き続きdefaultのまま)
モードが実際に許可する操作の範囲(読み取りのみ・ファイル編集や新規シェルコマンドはプロンプト・protected pathsへの書き込みは常にプロンプト)は、2.1.200の前後で1つも変わっていない。
自分のリポジトリで検証した
このブログの執筆パイプラインを動かしている本リポジトリの .claude/settings.json を確認すると、permissions.defaultMode は明示的に設定されていない。
{
"permissions": {
"allow": ["mcp__kinako-mocchi__generate_image", "mcp__kinako-mocchi__check_status"],
"deny": ["Read(.env)", "Read(.env.*)", "..."]
}
}
defaultMode を明示していない場合、Claude Codeはそのまま既定モード(default = 表示上は「Manual」)で動く。つまり2.1.200へのアップグレードでこのリポジトリの権限挙動は何も変わらない。実際、このセッションは claude --version で確認すると 2.1.201(2.1.200の翌日リリース)で稼働しており、権限プロンプトの出方に変化は感じられなかった。
さらに、このプロジェクトの CLAUDE.md には以前からの運用方針として次の記載がある。
settings.jsonのbypassPermissionsと自動承認フックは安全分類器によりブロックされるため設定していない。権限はインタラクティブ承認のまま運用する
つまり本プロジェクトはもともと「Manual」相当(default)で運用しており、今回のラベル変更は実務上ゼロインパクトだった。「名前が変わった」というニュースだけを見て、.claude/settings.json を慌てて書き換える必要はない。
見過ごされがちな"本当の変更": auto modeのブロック対象拡張
一方で、同じ2.1.195〜2.1.200のリリースの間に、auto モード(分類器が安全性を判定して自動承認するモード)の「デフォルトでブロックする操作」は明確に拡張されている。これは表示名の変更ではなく実際の挙動変更で、auto modeを使っている・使う予定のあるユーザーは把握しておく価値がある。
公式ドキュメントに記載された2.1.200時点での追加ブロック項目(抜粋):
| リリース | 新たにブロックされるようになった操作 |
|---|---|
| v2.1.195 | シークレットマネージャへの書き込み・DNS/TLSレコード変更、未承認PRのマージ・自分のPRの自己承認・CIチェック無効化、本番フィーチャーフラグの切替、保護対象IaCスコープへの適用 |
| v2.1.198 |
/tmp 等の共有スクラッチ領域のワイルドカード削除、送信先が未承認の機密情報を含むアウトバウンドコンテンツ(PR/Issue本文・コミットメッセージも対象) |
| v2.1.200 | セキュリティ系テスト(認証・アクセス制御・入力検証・サンドボックス)のコメントアウト/削除/強制パス、セッション外で作成されたステートフルリソースの削除、APIベースURL/プロキシ/webhookの無断向け替え、git remote set-url/git remote add の無断変更、公開リポジトリへのシークレットpush、他リポジトリ/組織への無断PR作成 |
このリストを見ると分かる通り、Anthropicは「AIエージェントが自律実行する中でやらかしがちな失敗パターン」を継続的に収集し、auto modeの防御ルールへ反映し続けている。特に v2.1.200 の「セキュリティテストのコメントアウト・強制パス」のブロックは、AIエージェントによる自動化開発で実際に起きた事故(テストを通すためにテスト自体を無効化する)を踏まえた対策とみられる。
著者視点の発見ポイント
このリポジトリはClaude Cloudのスケジュール実行でAIエージェントが自律的にコミット・PR作成・マージまで行う運用をしている。だからこそ、「AIエージェントが何を自動でやってよいか」の境界線がどこで動いているかは他人事ではない。
今回調べて分かったのは、ニュースの見出し(「Manualに変わった」)と実際の一次情報(表示名のみの変更)の間にズレがあるケースは珍しくない ということだ。SNSの要約だけを見て設定を変える前に、一次情報(公式ドキュメント)まで降りて自分の環境で確認する一手間が、無駄な設定変更や誤解に基づく運用ルール変更を防ぐ。特に自律実行の比重が大きいプロジェクトほど、この検証コストは省略すべきではないと感じた。
実践的なチェックリスト
Claude Codeを2.1.200以降にアップグレードした場合、以下だけ確認すれば十分。
-
.claude/settings.json/~/.claude/settings.jsonに"defaultMode": "default"を明示していないか → 明示していれば"manual"にリネームしても意味は同じ(エイリアスなので動作は不変) -
hooksやAgent SDK連携のコードで
permissionMode === "default"のような文字列比較をしていないか → 内部値はdefaultのまま変わっていないため、既存コードの修正は不要 - auto modeを使っている場合は、上表の新規ブロック項目に依存したワークフロー(例: CIチェックの無効化・保護IaCスコープへの適用)がないか確認する
結論と次のアクション
- Claude Code 2.1.200の「Manual化」は表示ラベルの変更のみで、
.claude/settings.jsonの書き換えは不要 - auto modeを使う場合は、v2.1.195〜2.1.200で拡張されたブロックルールを
claude auto-mode defaultsコマンドで一度確認しておくと安心