Quartet / Quintet

Claude Code で、正しく書いたのに何も起きない設定の全一覧

.claude/ の設定でいちばん時間を取られるのは、間違いが画面に出ないことです。

JSON は正しい。キー名も合っている。起動しても警告が出ず、--debug にも出ません。

ただ動きません。

公式ドキュメントが「無視される」「スキップされる」「効かない」と明記している 場所を、数えて並べました。推測は入れていません。

どこ 何件 何が起きるか
hook の matcher イベント 33 種のうち 10 種 matcher が黙って無視され、毎回走る
hook の if 評価されるのは 5 種だけ それ以外に書くと、そのハンドラは一度も走らない
設定キーのスコープ 223 個のうち 71 個 書いた場所によっては何もしない
非推奨の設定キー 4 個 うち1つは真偽が反転している
権限ルール 5 通り 読み込まれて、そのまま何もしない
サブエージェントのファイル 5 条件 ファイルごと飛ばされ、セッションには出ない
.mcp.json 2 か所 type の無い url は stdio 扱いで飛ばされ、timeout: 500約28時間になる

共通しているのは、失敗がこちら側に返ってこないことです。 返ってくるものが無いので、手元でいくら実験しても届きません。

hook

matcher を書いても黙って無視されるイベントが10種あります。 エラーになりません。絞ったつもりで、毎回走ります。

CwdChanged      UserPromptSubmit   PostToolBatch   Stop         TeammateIdle
TaskCreated     TaskCompleted      WorktreeCreate  WorktreeRemove  MessageDisplay

if は逆の失敗をします。評価されるのはツール系の5種だけです。

PreToolUse  PostToolUse  PostToolUseFailure  PermissionRequest  PermissionDenied

それ以外のイベントに if を書くと、そのハンドラは一度も走りません。 matcher は広すぎる方へ、if は動かない方へ。どちらも静かに。

イベント33種ごとの対照表はこちらです。

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

設定キー

設定キーにはどのファイルから書けば効くかが決まっています。

スコープ 件数 効く場所
Managed 39 組織が配る管理設定からのみ
User or managed 23 ~/.claude/settings.json か管理設定からのみ
User, local, or managed 3 settings.local.json からは効くが、settings.json からは効かない
Global config 6 ~/.claude.json からのみ
71
Any file 152 どこに書いても効く

3行目が厄介です。 settings.local.json に書いた本人には効いて、 共有した settings.json に移すと効かなくなります。 「自分の環境では動く」の正体がこれになりえます。

入れ子のキーは、点つなぎの完全な名前でスコープが決まります。 制限されているのは sandbox.network.strictAllowlist で、sandbox ではありません。 上の階層だけ見ていると、点つなぎの20個(うち sandbox.* が12個)を丸ごと見落とします。

71個の全一覧はこちらです。

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

非推奨のキーは4つ

書いてあるもの 置き換え先
ignorePatterns permissions.deny
includeCoAuthoredBy attribution
disableArtifact enableArtifact
voiceEnabled voice.enabled

disableArtifact は真偽が反転します。 disableArtifact: falseenableArtifact: false は逆の意味です。名前を置き換えるだけだと、設定が反転します。

権限ルール

permissions に書いても、エラーにならず何もしない書き方が5通りあります。

書き方 何が起きるか
"*" / "B*" / "mcp__*"allow スキップされ、何も自動承認しない
Write(...) NotebookEdit(...) Glob(...) MultiEdit(...) のパス指定 受け付けられるが参照されない
Bash(command:...) のように本体の入力をパラメータ指定 無視される(9ツールが該当)
括弧つきの mcp__ ルール 読み込み時にスキップ
allow で * のうしろに字が続く 効くが、見た目より広く許可する

最後のものが一番危ないです。

Bash(git log *)    → git log から始まるコマンド
Bash(git * main)   → git の全サブコマンド。git push origin main も、git -c も
Bash(* --version)  → あらゆるプログラム

git -cgit に別のプログラムを起動させます。 「1つのコマンドを許した」つもりの1行が、そこまで開きます。

詳細はこちらです。

https://quintetkit.github.io/reference/claude-code-permission-rules.html

サブエージェントのファイル

.claude/agents/*.md は、frontmatter に問題があると飛ばされます。 そしてセッションには何も出ません。 理由はデバッグログにだけ出ます。

書ける18項目と、cacheTtl の置き場所(experimental の中)はこちらです。

https://quintetkit.github.io/reference/claude-code-subagent-frontmatter.html

.mcp.json

type を書き忘れた url は、http の既定になるのではなく stdio サーバとして読まれます。 stdio には command が要るので、そのサーバは飛ばされます。

そして timeout1000 未満の値が無視されます。 無視されたあとは MCP_TOOL_TIMEOUT に落ち、それも未設定なら その既定である約28時間になります。

"timeout": 500      // 500ms ではない。約28時間

短くしたつもりが、事実上の無制限になります。

トランスポート別の必須項目、sse が非推奨であること、 untrusted なフォルダでは承認設定が無視されることはこちらです。

https://quintetkit.github.io/reference/claude-code-mcp-json.html

まとめて検査する

上の全部を機械で見つけられます。

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件出した時点で、出力ごと読まれなくなります。 区別できないものは、区別できないと言って通します。

出典

数はすべて 2026-09-04 に取得したスナップショットから数えたものです。

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

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

無料版を見る 製品ページ