第6章 · Claude Code Advanced

Settings.json と Permissions の詳細

Settings & Permissions
→ で次のスライド · F でフルスクリーン · N で講師ノート · Esc で終了

重要キーワード

settings.json
設定ファイル
Claude Code の挙動を JSON で設定
Permissions
権限ルール
ツールごとに許可/拒否/確認を細かく指定
Statusline
ステータスライン
ターミナル下部の状態表示。カスタム可
Local vs Shared
個人 vs 共有
settings.local.json と settings.json の使い分け

Settings.json: Claude Code の中央管制

.claude/settings.json (プロジェクト用) と ~/.claude/settings.json (グローバル) で Claude Code のあらゆる挙動を設定できます。

階層と優先順位

wzxhzdk:0

下の階層が上書き優先。API キーやトークンは local に書くのが安全。

主なトップレベル項目

wzxhzdk:1

Permissions の書き方

ツールごとに allow / ask / deny をルールで指定できます。

wzxhzdk:2

マッチャ構文

  • Read(*) ... 任意の引数で許可
  • Bash(pytest *) ... 引数のプレフィックスマッチ
  • Edit(.env) ... 完全一致

移行戦略

  • 最初は ask を多めに → 慣れたら allow に移す
  • 危険操作は 常に deny に固定 (rm -rf, git push --force, .env 編集)

Statusline をカスタマイズ

wzxhzdk:0

ブランチ名や残トークンなどを常時表示できます。

env で環境変数を固定

セッション内で常時有効な環境変数。秘匿情報は 絶対に書かない こと (commit 漏れ事故を防ぐ)。

Plugin

カスタムスキル + コマンド + MCP を 1 パッケージで配布できる仕組み。

wzxhzdk:1

設定の確認

wzxhzdk:2

よくある失敗

  • settings.json に API キーを書いて commit
  • allowBash(*) を許可してしまう (危険)
  • deny を使わず権限制御を諦める
  • settings.jsonチームで共有する固定ルール, settings.local.json で個別設定

試す

設定の改善案を Claude に提案させましょう。

▶ 設定レビュー
次の `.claude/settings.json` の安全性を評価してください。問題点と改善案を箇条書きで。 ```json { "permissions": { "allow": ["Bash(*)", "Edit(*)"], "deny": [] } } ```

チーム標準 settings.json テンプレ (コピペ用)

新規プロジェクトに置く デフォルト として:

wzxhzdk:2

読み取りはほぼ自由 / 編集は対象ディレクトリだけ / 危険コマンドと秘密ファイルは絶対 deny。 新人がリポジトリを clone してすぐ Claude Code を使い始めても安全。

個人 (settings.local.json) のテンプレ

.gitignoresettings.local.json を必ず追加してから:

wzxhzdk:3

→ 個人の API キー・好みの追加コマンドはここに。チーム共有 settings.json と統合される。

Hands-on Exercise

演習: 安全な permissions 雛形を書く

Python プロジェクト用に、安全で実用的な .claude/settings.json を作成してください。

要件: - Read / Glob / Grep / Edit (一般ファイル) は allow - pytest, ruff, git status/diff/log は allow - git push, git commit -a は ask - rm -rf, .env 編集, curl/wget は deny

▶ Playground を開いて実行

理解度チェック

3 問のクイズで理解度を確認しましょう。

クイズを開く
🎉

まとめ

お疲れ様でした!