Quartet / Quintet

2026-09-10  ·  claudecode · 設定 · json · 個人開発 · devops

プロジェクトの設定に書いたのに、何も起きなかった

.claude/settings.jsonautoMode を書いて、commit して、何も起きませんでした。

JSON は正しい。起動しても警告は出ない。--debug にも何も出ません。 しばらく「意味を取り違えているのだろう」と考えてから、本当の理由に行き当たりました。

そのキーは、そのファイルからは効きません。

設定キーにはスコープがあり、それはファイルに書かれていない

公式の設定リファレンスに、ちゃんと読んでいなかった列があります。 キーごとに「どのファイルから書けば効くか」が書いてあります。数えました。

Any file                  152 個
Managed                    39 個   管理設定からのみ
User or managed            23 個   ~/.claude/settings.json か管理設定
User, local, or managed     3 個   settings.local.json は効くが settings.json は効かない
Global config               6 個   ~/.claude.json からのみ
------------------------------------
                          223 個のうち 71 個がスコープ付き

223個のうち71個。 プロジェクトの .claude/settings.json に書いても、 エラーにならず、警告も出ず、何も起きません。

踏みやすいものを並べます。

autoMode                          user or managed
autoMode.classifyAllShell         user or managed
skipAutoPermissionPrompt          user or managed
useAutoModeDuringPlan             user, local, or managed
spellcheck                        user or managed
sandbox.network.strictAllowlist   user or managed
sandbox.filesystem.disabled       user or managed
diffTool                          ~/.claude.json のみ
autoConnectIde                    ~/.claude.json のみ

並列で走らせると承認の回数が増えます。 だから autoMode を緩めたくなる。 そして緩める場所として自然なのは、いま開いているプロジェクトの設定です。 そこが唯一、効かない場所です。

1行だけ、切り分けに時間を使わせる行がある

User, local, or managed     3 個

settings.local.jsonsettings.json別のスコープです。 この3つは、ローカルからは効いて、共有ファイルからは効きません。

つまり。settings.local.json に書いて、効く。 あとでチームに配るために共有ファイルへ移すと、静かに止まります。

変わったのは、どのファイルに置いたかだけです。

これは人工的に作られた「自分の環境では動く」で、しかも 書いた本人にだけ効くという珍しい形をしています。

入れ子のキーは、点つなぎの完全な名前でスコープが決まる

ドキュメントは、JSON の書き方ではなくパスの書き方でキーを呼びます。

sandbox.network.strictAllowlist        ← スコープが付いているのはこちら
sandbox                                ← こちらではない

探しに行くときに効きます。私はこれを検査する道具を書いて、 設定オブジェクトの最上位しか見ていませんでした。 だからこれが、

{ "sandbox": { "network": { "strictAllowlist": true } } }

1件も出ませんでした。 点つなぎのキー20件(うち sandbox.* が12件)が 見えていませんでした。

どのくらい間違っていたか

この一覧を、ドキュメントから手で写して持っていました。 自分で書いたコメントが付いています。

/** そのファイルからは効かないスコープのキー(一部。確実なものだけ) */

「一部」と書いた時点で、全部でないことは知っていました。 どのくらい一部なのかを知りませんでした。

                 実際   持っていた分
Managed            39         14
User or managed    23          0     ← 行ごと
Global config       6          6

User or managed の23件が、行ごと落ちていました。 autoMode を含めて。この記事の発端になったキーです。

表を分類して読んでいたのが原因でした。 Managed は組織がポリシーを配る話で、自分には関係ない。だから読み飛ばした。 その隣にあった行を、同じ枠で見ていました。

実際は「あなた自身の ~/.claude/settings.json からは効く」という意味で、 いちばん必要な行でした。

1行ずつ見ていれば分かりました。分類して読んだのが失敗でした。

いまは生成しています。スコープ列から機械的に抜いて、 検査ツールが読むのと同じ場所から件数が出ます。

自分の設定を見る

npx @quintetkit/ccheck
warn  .claude/settings.json:63
      `autoMode` applies from user or managed settings only. It has no effect from this file.
      why: https://code.claude.com/docs/en/settings-reference

1つ、2回目で気づいたことがあります。 ~/.claude/settings.json はユーザ設定そのものです。

パスの見た目だけで「このキーはここでは効かない」と判定すると、 正しく置かれた autoMode を誤検出します。 このマシンの ~/.claude/settings.json には実際に autoMode が入っているので、 ccheck ~ を走らせた人に嘘をつくことになります。

だからスコープは、走査しているディレクトリがホームかどうかで分けています。 パスの形では分けていません。

71個の全一覧と、この文章を信用せずに検算するための JSON はこちらです。

https://quintetkit.github.io/reference/claude-code-settings-scope.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人格・スクリプト・ガイド全文)の配布はこちらです。

https://quartet-dev.booth.pm/items/8807156

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

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

無料版を見る 製品ページ