2026-09-10 · claudecode · 設定 · security · 個人開発 · devops
allow から消したのに、権限が残っていた
あるコマンドの自動承認をやめたくて、~/.claude/settings.json の
permissions.allow から、その行を消しました。
まだ自動承認されました。
キャッシュでも古い状態でもありません。同じ行がプロジェクトの
.claude/settings.json にもあって、リストのキーは上書きではなく合成されるからです。
リストは合成される。他のファイルの項目は誰も消せない
同じリストのキーが複数の設定ファイルにあるとき、Claude Code は両方を合わせます。
// ~/.claude/settings.json
"permissions": { "allow": ["Bash(npm run *)"] }
// .claude/settings.json(リポジトリに commit されているもの)
"permissions": { "allow": ["Bash(git commit *)"] }
// → 両方効く
文書化されている意図は「各ファイルが、他のファイルのものを消さずに追加できる」こと。 妥当な設計で、そしてはっきり書いておく価値のある帰結があります。
どの設定ファイルも、他のファイルから引き算できません。 下の段でも、上の段でも。 自分の行を消すと、消えるのは自分の行だけです。
本当に止めたいなら deny を使うか、追加している側のファイルを直します。
私はしばらく、キャッシュのバグを探していました。
段の順と、実際に役に立つ1行
上から。
1 管理設定 (組織のポリシー)
2 コマンドライン (--settings、そのセッションだけ)
3 .claude/settings.local.json
4 .claude/settings.json (commit されている共有設定)
5 ~/.claude/settings.json
3 が 4 より上です。これは予想していませんでしたが、いまは頼っています。
チームが共有ファイルで決めた値を、settings.local.json で自分だけ戻せます。
全員が使うファイルを書き換えずに。
管理設定には勝てません。--settings でも勝てず、
--model も組織が許したモデルの中からしか選べません。
環境変数は段ではない
そもそも段に入っていません。そしてどちらが勝つかはキーごとに決まります。
ANTHROPIC_MODEL どのファイルの model にも勝つ
ANTHROPIC_DEFAULT_MODEL どのファイルも model を設定していないときだけ
同じ「モデルを決める変数」で、片方は勝ち、片方は譲ります。 一般則として覚えられるものはありません。 対になっているキーごとに確かめます。
設定ファイルの中に書いた env ブロックは、ふつうのキーとして5段に従います。
下の段が管理設定に勝つキーが7つ
安全に関わる7つのキーでは、より厳しい値を、
本来なら管理設定に勝てないスコープから拾います。
プロジェクトのファイルから remoteControlAtStartup や crossSessionInbound を、
組織のポリシーに対してでも締められます。
一方向にだけ効きます。 remoteControlAtStartup にプロジェクトから
true を書いても無視されます。下から締められて、緩められない。
そして enableArtifact は戻せません — 一度どこかで false になったら、
管理設定からでも復活しません。
モデル関係の4キーも合成の規則から外れ、1つのファイルから値をまるごと採ります。 どちらの一覧も参照ページにあります。頭に入れておく価値があるのは、 例外の向きが対称ではないということです。
これを書き留めている理由
どれも、同じ経験を作ります。ファイルを変えた。挙動は変わらない。理由はどこにも出ない。
原因は違います。スコープ、合成、優先順位、環境変数。症状だけが同じ。
そして、これに限っては検査ツールが助けになりません。 どのファイルが読まれるかは実行時に決まるので、 手元のファイルだけでは優先順位が分かりません。
/status は実際に読まれたものを見せます。これに使う道具はそちら。
/status # どのファイルが読まれたか
claude doctor # 解決後の設定と、スキップされたルール
5段・合成の例外・7つのキーを1枚にしたものはこちらです。
https://quintetkit.github.io/reference/claude-code-settings-precedence.html
Claude Code に設計・実装・レビューを別々の人格として分担させ、GitHub Issue と
ブランチを軸に並列開発を回すための設定一式を MIT で公開しています。
コピーして ./setup.sh を叩けば動きます。技術スタックには依存しません。
https://github.com/quintetkit/quartet
このワークフローだけで実際にツールを 1 つ作りました。Issue の分割から PR、 レビュー、マージまで記録が全部残っています。うまくいかなかった箇所も消していません。
https://github.com/quintetkit/mdlinkcheck
UI 設計人格・レビュー基準・Issue 単位の並列実行スクリプト・実践ガイド 11 章を 足したものは製品ページにあります。
実践ガイド全 11 章は Zenn Book で読めます(¥1,500・2章まで無料)。
https://zenn.dev/quintetkit/books/claude-code-parallel-workflow
設定一式(5人格・スクリプト・ガイド全文)の配布はこちらです。