Quartet / Quintet

同じ設定を2か所に書いたとき、どれが勝つか

同じキーを2か所に書いたとき、どちらが効くか。

上書きされると思っていると外すものが2つあります。 リストは合成されることと、下の段が勝つキーがあることです。

段は5つ

上から順に。上の段が、同じキーを下の段より優先します。

どこ
1 管理設定 組織が配る managed-settings.json / MDM / サーバ管理設定
2 コマンドライン --settings などの起動時のフラグ。そのセッションだけ
3 .claude/settings.local.json そのプロジェクトの、あなた個人の設定
4 .claude/settings.json そのプロジェクトの、チームで共有する設定
5 ~/.claude/settings.json 全プロジェクトに効く、あなた個人の設定

3 が 4 より上なのが要点です。 チームの共有設定で決められた値は、settings.local.json で自分だけ戻せます。 チームの設定を書き換えずに済みます。

管理設定には勝てません。--settings でも勝てませんし、 --model組織が許したモデルの中からしか選べません。

リストは上書きされない。合成される

permissions.allow のようなリストのキーは、 複数のファイルに書くと、どれか1つが選ばれるのではなく足し算になります。

// ~/.claude/settings.json
"permissions": { "allow": ["Bash(npm run *)"] }

// .claude/settings.json(チームの共有設定)
"permissions": { "allow": ["Bash(git commit *)"] }

// → 実際に効くのは両方

これは「消せない」ということでもあります。 下の段のファイルから、上の段が足したエントリを取り除くことはできません。 外したいなら deny を使うか、そのファイルを直します。

例外が4つ

モデル関係の4キーは合成されません。

キー どうなるか
fallbackModel 順序に意味があるので、定義した最上位のファイルの値をそのまま採る
modelPicker 行を混ぜない。管理設定 / --settings / ユーザ設定の最上位から採り、プロジェクトとローカルでは無視
availableModels 管理設定が定義していればそのまま適用し、下の追加は無視。管理設定どうしでも合成しない
modelSettings モデル1つずつ解決する(effortLevel と一緒に)

環境変数は段ではない

環境変数はこの5段に入りません。 キーごとに、どちらが読まれるかが決まっています。

ANTHROPIC_MODEL どのファイルの model よりも優先
ANTHROPIC_DEFAULT_MODEL どのファイルも model を設定していないときだけ

同じ「モデルを決める変数」でも、片方は勝ち、片方は譲ります。 対になっているキーごとに確かめてください。

設定ファイルの中に書いた env ブロックは、ふつうのキーとして5段に従います。

下の段が管理設定に勝つキーが7つある

安全に関わるキーでは、より厳しい値を下の段から拾います。

キー 拾われる値
disableClaudeAiConnectors どの段からでも true
enableArtifact どの段からでも falsedisableArtifact: true も同様)
isolatePeerMachines どの段からでも true
remoteControlAtStartup .claude/settings.jsonsettings.local.json からの false
crossSessionInbound accept < hold < refuseより厳しい側(プロジェクト / ローカルから)
useAutoModeDuringPlan 管理設定 / --settings / ユーザ設定 / ローカルからの false
syncClaudeAiSkills 同上

方向が1つではありません。 ゆるめる方向には効かないので、 remoteControlAtStartup にプロジェクトから true を書いても無視されます。 useAutoModeDuringPlansyncClaudeAiSkills は、 共有の .claude/settings.json からの false だけ無視されます(ローカルからは効く)。

enableArtifact戻せません。 一度どこかで false になったら、 管理設定からでも Artifact は戻りません。

効かないときに見るところ

/status        # どのファイルが読まれたか
claude doctor  # 解決後の設定と、スキップされたルール

原因は3つに分かれます。

3つ目の全一覧はこちらです。

https://quintetkit.github.io/reference/claude-code-settings-scope.html

検査する

「そのファイルからは効かないキー」は機械で見つけられます。

npx @quintetkit/ccheck
warn  .claude/settings.json:12
      `defaultMode: bypassPermissions` does not take effect from project or local settings.
      why: https://code.claude.com/docs/en/settings-reference

優先順位そのものは検査していません。 どのファイルが読まれるかは実行時に決まり、 手元のファイルだけでは分からないからです。分からないものは判定しません。

出典

https://code.claude.com/docs/en/settings

2026-09-04 に取得したスナップショットを元にしています。

この運用そのものを配っています

4 人格版 Quartet は MIT で無料公開しています。UI 設計人格・レビュー基準・ Issue 単位の並列実行スクリプト・実践ガイド 10 章を足した Quintet は有料版です。

無料版を見る 製品ページ