CLAUDE LABEN
RELEASE — Claude Code v2.1.246 が8月26日に公開されました。Bash の allow ルールでサブコマンドの前にワイルドカードを置いた書き方に、起動時警告が出ますPERMISSIONS — /permissions に Auto モードタブが加わりました。既定が auto になった後、どの操作が自動で通りどこで止まるかを一箇所で確認できますMEMORY — 長い対話セッションでメモリが際限なく増える問題が修正されました。サブエージェントのツール結果が、直近の表示ウィンドウを外れた時点で解放されますMCP — headless とリモートのセッションで、受信メッセージに割り込まれたツール呼び出しが「完了・出力なし」ではなく明示的な interrupted エラーとして報告されますRUNNER — claude self-hosted-runner に --proxy-authorization-command と --proxy-authorization-file が追加されました。接続ごとに認証ヘッダを発行する egress プロキシ向けですLIMITS — 週次上限50%増の延長は8月31日までです。Pro・Max・Team とシート課金の Enterprise が対象で、残り4日となりましたRELEASE — Claude Code v2.1.246 が8月26日に公開されました。Bash の allow ルールでサブコマンドの前にワイルドカードを置いた書き方に、起動時警告が出ますPERMISSIONS — /permissions に Auto モードタブが加わりました。既定が auto になった後、どの操作が自動で通りどこで止まるかを一箇所で確認できますMEMORY — 長い対話セッションでメモリが際限なく増える問題が修正されました。サブエージェントのツール結果が、直近の表示ウィンドウを外れた時点で解放されますMCP — headless とリモートのセッションで、受信メッセージに割り込まれたツール呼び出しが「完了・出力なし」ではなく明示的な interrupted エラーとして報告されますRUNNER — claude self-hosted-runner に --proxy-authorization-command と --proxy-authorization-file が追加されました。接続ごとに認証ヘッダを発行する egress プロキシ向けですLIMITS — 週次上限50%増の延長は8月31日までです。Pro・Max・Team とシート課金の Enterprise が対象で、残り4日となりました
記事一覧/Claude Code
Claude Code/2026-08-27中級

リポジトリに置いた allow を信じるか、環境側の信頼登録に寄せるか

使い捨ての実行環境で Claude Code を非対話で走らせると、リポジトリ内の permissions.allow が信頼待ちのまま落ちます。何が落ちて何が残るのかを 2.1.246 で確かめ、許可設定の置き場所を決め、起動前に検出するプリフライトを用意します。

Claude Code237permissions4settings.json8CI5自動化81

プレミアム記事

朝、いつもどおり実行ログを開いたら、いちばん上に見慣れない行が乗っていました。

Ignoring 2 permissions.allow entries from .claude/settings.json: this workspace has not been trusted.

その日のジョブは失敗していません。成果物も出ています。ただ、リポジトリに commit してあるはずの許可設定が、2件とも読まれていませんでした。

私は個人でアプリと複数のサイトを保守していて、そのうちの定型作業を毎晩まっさらな実行環境に投げています。環境は毎回作り直され、リポジトリはそのつど clone されます。許可設定はリポジトリの .claude/settings.json に入れて、環境を選ばずに同じ挙動になるようにしていました。その前提が崩れていた、という話です。

結論から書きます。使い捨ての環境では、リポジトリ内の permissions.allow は「効いたら儲けもの」の扱いにするのが正しいと判断しました。止めたい操作は deny に置き、通したい操作は環境側の信頼登録で担保し、起動前にプリフライトで検出する。以下は、その判断に至るまでに Claude Code 2.1.246 で確かめたことです。

「this workspace has not been trusted」で落ちるのは、どのキーか

まず、どの設定が落ちてどれが残るのかを一つずつ確かめました。手順は単純です。

  1. 空のディレクトリを作り、.claude/settings.json に検査したいキーを1つだけ書く
  2. 非対話モード(-p)で1回だけ起動する
  3. 起動時に出た Ignoring 行を数える

1キーずつ分けるのがこつです。まとめて書くと、どのキーが落ちたのかを警告文から読み分けることになり、単複の揺れで数え間違えます。

mkdir -p /tmp/probe/.claude && cd /tmp/probe
 
probe() {
  printf '%s' "$2" > .claude/settings.json
  echo "--- $1 ---"
  claude -p "hi" < /dev/null 2>&1 | grep '^Ignoring ' | sed 's/ Run Claude Code.*//'
}
 
probe "allow"                 '{"permissions":{"allow":["Bash(git *)"]}}'
probe "deny"                  '{"permissions":{"deny":["Bash(rm *)"]}}'
probe "ask"                   '{"permissions":{"ask":["Bash(git push *)"]}}'
probe "additionalDirectories" '{"permissions":{"additionalDirectories":["/tmp/other"]}}'
probe "hooks"                 '{"hooks":{"PreToolUse":[{"matcher":"Bash","hooks":[{"type":"command","command":"echo hi"}]}]}}'

< /dev/null は必ず付けてください。付けないと標準入力を数秒待ってから進むので、10回試すだけで待ち時間が積み上がります。

手元での結果です。

設定キー未信頼のとき起動時の表示
permissions.allow無視されるIgnoring N permissions.allow entries…
permissions.additionalDirectories無視されるIgnoring N permissions.additionalDirectories entries…
permissions.denyそのまま表示なし
permissions.askそのまま表示なし
hooks / env / statusLine / modelそのまま表示なし

落ちるのは、信頼していない相手が書いたときに危険側に倒れるキーだけです。allow は「これは確認なしで実行してよい」という宣言、additionalDirectories は「ここも触ってよい」という宣言なので、素性の分からないリポジトリから拾ったものをそのまま採用したら危ない。逆に denyask は、拾ったものを採用しても厳しくなるだけなので落とす理由がありません。

設計として筋は通っています。ただ、この非対称性を知らないまま「permissions は settings.json に書けば効く」と思っていると、緩める方向の設定だけが静かに消えている状態になります。

なお、複数のキーが同時に落ちた場合は行が分かれて出ます。1件なら entry、2件以上なら entries と単複が変わるので、行数で数えるほうが確実です。

放っておいても、いつかは信頼される、ということはありません

私が最初に想定していたのは「初回は警告が出るが、何度か走らせるうちに登録されるのだろう」でした。これは外れていました。

未信頼のまま非対話で1回走らせたあと、ユーザー設定を覗いてみます。

claude -p "hi" < /dev/null > /dev/null 2>&1
python3 -c "import json,os;print(json.load(open(os.path.expanduser('~/.claude.json'))).get('projects',{}))"

出力は {} でした。未信頼の非対話実行では、そのディレクトリの項目そのものが作られません。 信頼フラグが false で作られるのではなく、記録が残らないのです。

つまり、放置しても状態は前に進みません。毎晩の実行は、毎晩まったく同じところで許可設定を落とし続けます。しかも成果物は出るので、ログを1行目まで遡らない限り気づけません。

ここが、この件でいちばん厄介なところだと感じています。壊れているなら止まってくれるのですが、これは能力が一段落ちた状態で完走する類の失敗です。設定キーのタイポが何も言われずに無視される件と性質がよく似ています(settings.json のキー名を1文字間違えても、Claude Code は何も言わずに無視します)。違いは、こちらは1行だけ手がかりを残してくれることです。その1行を機械で拾えるかどうかが分かれ目になります。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
リポジトリに置いた許可設定が本当に効いているのかを、起動1回分の出力だけで判定できるようになります
使い捨ての実行環境で許可設定が黙って落ちたまま何日も走り続ける状態を、公開前のプリフライトで防げるようになります
allow と deny のどちらが信頼待ちで落ちるかを踏まえて、止めたい操作の書き場所を選べるようになります
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

Claude Code2026-08-25
settings.json のキー名を1文字間違えても、Claude Code は何も言わずに無視します
キー名を書き間違えた settings.json と正しい settings.json で claude doctor の出力を比べたところ、差分はゼロでした。何が検証され何が素通りするかを5通りで測り、書き間違いを自分で落とす検査を用意します。
Claude Code2026-08-21
Claude Code の read deny が許可フォルダの内側まで届いていなかった話
秘密ファイルとソースが同じツリーに同居する個人開発環境で、permissions.deny の Read ルールが実際にどのファイルまで届いているかを数え直した記録です。棚卸し用のスクリプトつき。
Claude Code2026-08-27
使うモデルだけを /model に並べる modelPicker の設定と、置き換えで消える行
Claude Code v2.1.242 で入った modelPicker で、/model のピッカーに自分の行を並べる方法をまとめました。追加と置き換えの違い、プロジェクト設定では読まれない理由、availableModels と重ねたときに選択肢が狭まる境目までを扱います。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →