Claude Codeを業務に入れる初日、どこまで設定すれば安全かで迷う担当者は少なくありません。Claude Codeの初期設定は、権限・フック・ルールファイル・記録という4つの観点を最初に固めれば、あとからの作り直しを防げます。本記事は各観点の設定例と、抜けを自分で点検できるチェックリストを、公式ドキュメント5件と自社の実測記録から整理します。

01結論:Claude Codeの初期設定は、権限・フック・ルールファイル・記録の4点で固まる

Claude Codeの初期設定でまず決めるべきは、次の4つです。権限(許可・確認・拒否をどう配分するか)とフック(実行の直前直後に挟む自動チェック)です。ルールファイル(CLAUDE.mdなど、AIに最初に読ませる文書)と記録(案件と作業ログのつなぎ方)も、初日のうちに枠だけ決めます。

観点決めること効き方
権限allow・ask・denyの配分Claude Codeが機械的に適用する
フックどのタイミングで何を挟むかツール呼び出しの前後で強制的に走る
ルールファイルAIに何を読ませるか判断材料になるが強制はしない
記録案件と作業ログのつなぎ方セッションが落ちても再開できる

公式ドキュメントは、権限ルールをallow・ask・denyの3種類に分けています。評価順序は「deny→ask→allow」の固定順です(出典: Claude Code公式ドキュメント)。フックはPreToolUseなど複数のタイミングで発火し、settings.jsonのどのスコープに書くかで適用範囲が変わります。

この4つを初日に決めておく理由は単純です。あとから足すと、既に動かした操作の後始末が先に来て、設計を考える時間が取れなくなります。

この記事では4観点それぞれの設定例と、実際にWEBMARKSが使っている構成の一部を示します。読み終えたときに、自分の環境のsettings.jsonとCLAUDE.mdを開き、何が足りないかを判定できる状態を目指します。

Claude Codeの初期設定は4観点、初日に固定する範囲はどこまでか 権限・フック・ルールファイル・記録の4観点について、初日に固定すべき範囲と、運用しながら調整してよい範囲の比率を横棒で示す図。権限とフックは拒否・遮断の範囲を先に固定する比率が高い。ルールファイルは骨格だけを先に固定し、内容は運用で育てる比率が高い。記録は案件IDの採番ルールだけを先に固定する。下部の結論は、先に固定するのは拒否と骨格で、許可と文面はあとから調整できるという内容。 SETUP 初期設定は4観点|初日に固定する範囲 初日に固定 運用しながら調整 権限 先に固定:rm -rf・force push・.envのdeny フック 先に固定:PreToolUse(Bash)の危険操作を遮断 ルールファイル 先に固定:CLAUDE.mdの章立て骨格のみ 記録 先に固定:案件IDの採番ルールのみ 先に固定するのは拒否と骨格。許可と文面はあとから調整できる。
Claude Code初期設定の4観点マトリクス

02権限の初期設定|allowとdenyのどちらから書くか

Claude Codeの権限は、許可(allow)・確認(ask)・拒否(deny)の3種類のルールで構成されます。評価順序は常にdeny→ask→allowの固定順です。ルールの詳しさが順序を変えることはありません(出典: Claude Code公式ドキュメント)。

ツールの種類承認の要否
読み取り専用ファイル読み込み・Grep作業ディレクトリ内なら不要
Bashコマンドシェル実行必要(組み込みの読み取り専用コマンドを除く)
ファイル編集Edit・Write必要

広いdenyルールは、一致する狭いallowルールがあっても優先してブロックします(出典: Claude Code公式ドキュメント)。denyルールにallowの例外を混ぜることはできない、という意味です。

自社のsettings.jsonでは、denyにBash(rm -rf*)Bash(git push --force*)Read(**/.env)を置いています。askにはBash(git push*)Edit(CLAUDE.md)を置いています。Write(00_intake/**)も同様にaskへ置いています(2026-07-28時点の設定ファイルを確認)。

{
  "permissions": {
    "deny": ["Bash(rm -rf*)", "Bash(git push --force*)", "Read(**/.env)"],
    "ask": ["Bash(git push*)", "Edit(CLAUDE.md)", "Write(00_intake/**)"],
    "allow": ["Bash(mdfind *)", "Bash(launchctl list *)"]
  }
}

取り返しがつかない操作と、正本ファイルへの書き込みを、最初からこの2段で分けています。allowは繰り返し使うのに安全な操作だけを並べ、denyの見直しを後回しにしないようにします。

03フックの初期設定|危険な操作の手前に置く一行

Claude Codeのフックは、発火するタイミングで3つの頻度に分かれます(出典: Claude Code公式ドキュメント)。

頻度イベント主な用途
セッションに1回SessionStart・SessionEnd起動時の文脈読み込み・終了時の記録
ターンに1回UserPromptSubmit・Stop応答の前後で挟むチェック
ツール呼び出しのたびに1回PreToolUse・PostToolUse危険操作の遮断・実行後の記録

危険な操作を止めるならPreToolUseを使います。設定はsettings.jsonのhooksキーに、matcher(対象ツール名)と実行するコマンドを書きます。公式ドキュメントの例は、Bashコマンドの中身を読んでrm -rfを検知したらdenyを返すスクリプトです。

{
  "hookSpecificOutput": {
    "hookEventName": "PreToolUse",
    "permissionDecision": "deny",
    "permissionDecisionReason": "Destructive rm -rf blocked"
  }
}

判定はallow(通す)・deny(止める)・ask(人に聞く)・defer(意見を持たず通常の権限フローへ戻す)の4通りです(出典: Claude Code公式ドキュメント)。フック側でdenyにしても、残りの操作は通常の権限設定に従うため、自動で進めたい操作は別途allowに書きます。

自社のPreToolUse(Bash)フックは、機密ファイルの中身表示や外部サービスへの送信を判定して止めます。正本フォルダへの直接コピーや強制pushも同様に止めます(2026-07-28時点のフックコードを確認)。フックはCLAUDE.mdの指示より確実に効くため、確実に止めたい操作はここに書きます。

04ルールファイルの初期設定|Claude Codeに何を読ませ、何を読ませないか

CLAUDE.mdは、セッション開始のたびにClaude Codeが読み込むMarkdownファイルです。置き場所は4段階に分かれ、この順で読み込まれます(出典: Claude Code公式ドキュメント)。

スコープ置き場所対象範囲
管理ポリシーOS別の固定パス(組織管理者用)組織の全ユーザー・全リポジトリ
ユーザー~/.claude/CLAUDE.md個人の全プロジェクト共通
プロジェクト./CLAUDE.md または ./.claude/CLAUDE.mdチームで共有・バージョン管理下
ローカル./CLAUDE.local.md個人のプロジェクト固有設定

自社のCLAUDE.mdは15章構成(§0〜§14)です。Vaultのフォルダ構造、秘匿性の3段階管理、成果物の振り分けルール、送信や公開を止める人間ゲートまでを章立てにしています。公式ドキュメントは、200行を超えるとコンテキスト消費が増え、指示への追従が下がると明記しています。長いルールは.claude/rules/へパスごとに分割する設計を勧めています(出典: Claude Code公式ドキュメント)。

CLAUDE.mdと似た役割にauto memoryがありますが、書き手が違います。CLAUDE.mdは人間が書く指示、auto memoryはClaudeが訂正から学んで書く覚え書きです。初期設定の段階では、まずCLAUDE.mdに「毎回説明し直したくないルール」を書き、auto memoryは運用しながら育つのに任せます。

既存のAGENTS.mdを併用している場合、Claude CodeはAGENTS.mdを直接読みません。CLAUDE.mdから@AGENTS.mdという書き方でインポートすれば、二重管理をせずに済みます(出典: Claude Code公式ドキュメント)。

05記録の初期設定|案件IDで作業ログをひとつなぎにする

設定ファイルや権限を固めても、セッションが途中で落ちれば「どこまで終わっていたか」が分からなくなります。Claude CodeはSessionStartフックで再開時に文脈を渡せるため、記録の置き場をここに接続するのが定石です(出典: Claude Code公式ドキュメント)。

自社では、作業の状態を1つの台帳ファイルに書き、案件ごとにIDを振っています。着手時に「進行中」、人の判断待ちに来たら「人間ゲート待ち」、完了したら「完了」と状態を更新します。SessionStartフックが起動のたびにこの台帳を自動で読み、セッションがクラッシュや再起動で途中終了しても、次のセッションが状態から再開できる設計です。

記録を「あとで書く」運用にすると、途中で終わったセッションの分だけ記録が抜けます。作業の節目ごとに台帳を更新する運用にすれば、抜けは起動時のフックが機械的に検知します。

初期設定の段階でやることは2つだけです。案件を識別するIDの採番ルールを決めることと、状態を書く場所を1つに絞ることです。ファイルを増やしすぎると、どれが正本か分からなくなります。

初期設定4観点は、1回の操作の中でいつ働くのかを示す実行順マップ Claude Codeが1回の操作を処理する流れを縦に並べた図。①SessionStartでCLAUDE.mdと台帳を読み込み、②指示を受け、③PreToolUseで権限判定が走る。deny・ask・allowの3方向に分岐し、denyは実行されず、askは承認待ちで一時停止する。allowのときだけ④フックの追加チェックを経て⑤ツールが実行され記録が走り、⑥SessionEndで終わる。権限とフックは③④で強制的に働き、ルールファイルは②より前の判断材料に留まる。 SETUP 初期設定4観点|1操作の中でいつ働くか ① SessionStart CLAUDE.md読込/台帳読込 ② ユーザーが指示を出す ③ PreToolUse:権限判定 deny:拒否して止まる ツールは実行されない ask:人に確認する 承認が来るまで一時停止 allow:進む ④へ続く ④ フックの追加チェック ⑤ ツール実行→記録 ⑥ SessionEnd:終了処理 権限とフックは③④で強制的に働く。 ルールファイルは②より前の判断材料に留まる。
起動から1操作までの実行順マップ

06最初の設定でつまずきやすい5つの落とし穴

  1. CLAUDE.mdに書けば止まると思い込む:CLAUDE.mdは指示であって強制ではありません。権限ルールはClaude Codeが機械的に適用しますが、CLAUDE.mdの指示はClaudeの判断に委ねられます(出典: Claude Code公式ドキュメント)。止めたいと決めた操作は、PreToolUseフックか権限のdenyルールに書きます。
  2. curlのURL制限を文字列一致で書く:オプション位置やリダイレクトで簡単にすり抜けます(出典: Claude Code公式ドキュメント)。確実に止めるなら、curl自体をdenyしWebFetch(domain:許可ドメイン)で絞ります。
  3. allowルールを書いたのに効かない:プロジェクトの.claude/settings.jsonにあるallowルールには条件があります。そのフォルダのworkspace trustダイアログを承認するまで、ルールは適用されません(出典: Claude Code公式ドキュメント)。初回起動時のダイアログを見落としていないか確認します。
  4. Write(docs/**)でファイルを保護したつもり:実際には効きません。ファイル権限のチェックはEdit(path)Read(path)のルールしか見ないためです(出典: Claude Code公式ドキュメント)。保護したい対象はEdit(パス)で書き直します。
  5. modelを設定ファイルで変えてすぐ使えると思うpermissionshooksはホットリロードされます。一方modeloutputStyleは、セッション再起動まで反映されません(出典: Claude Code公式ドキュメント)。設定を変えた直後に動きが変わらなくても、壊れているわけではありません。
権限ルールの内訳と、5つの落とし穴の権限関連比率はどう対応するか 自社settings.json例の権限ルールをdeny3件・ask3件・allow2件の横棒グラフで示す。右側は初期設定でつまずきやすい5つの落とし穴のうち、curlのURL制限を文字列一致で書く・allowルールを書いたのに効かない・Write(docs/**)で保護したつもりの3件が権限がらみであることを、3/5の円グラフで示す。両者を矢印で結び、権限設定の甘さが5つの落とし穴の過半数を占めるという対応関係を結論として置く。 COMPARE 権限ルール8件の内訳と、5つの落とし穴に占める権限関連の割合 ①権限ルール3種の内訳(settings.json例) ②5つの落とし穴に占める権限関連 deny(拒否) 3件 ask(確認) 3件 allow(許可) 2件 計8件(deny3・ask3・allow2) 3/5 が権限関連 権限関連:②③④(3件) その他の観点:①⑤(2件) 権限がらみの見落としが、5つの落とし穴の過半数(3/5)を占める
権限ルールの内訳と落とし穴の対応を示す数値図

07初期設定チェックリスト|7項目で今日から点検する

  • 権限:denyに「取り返しがつかない操作」を先に列挙したか(rm -rf・force push・.env読み取り等)
  • 権限:askに「正本ファイルへの書き込み」を列挙したか
  • フック:PreToolUse(Bash)で、CLAUDE.mdに書いただけの禁止事項をコードでも止めているか
  • フック:どのスコープ(ユーザー・プロジェクト・ローカル)に登録したか意図通りか
  • ルールファイル:CLAUDE.mdが200行を超えていないか、超えているなら.claude/rules/へ分割したか
  • ルールファイル:/contextでCLAUDE.mdが実際に読み込まれているか確認したか
  • 記録:案件を識別するIDの採番ルールを決めたか
  • 記録:作業状態を書く「正本」を1つに絞ったか(増やしすぎていないか)

08FAQ

Claude Codeの初期設定はどれくらいの時間がかかりますか

権限のdeny・askを書くだけなら30分程度です。フックのスクリプトを自作する場合は、対象を絞っても半日はかかります。

初期設定は個人開発でも必要ですか、チーム前提の話ですか

個人開発でも権限のdenyだけは書く価値があります。rm -rfやforce pushの誤爆は、1人で使っていても起こります。

settings.jsonとCLAUDE.mdはどちらを先に書くべきですか

先にsettings.jsonのdenyを書きます。CLAUDE.mdは指示であって強制ではないため、止める仕組みを先に用意してから、読ませる文章を整えます。

初期設定を後から変更しても問題ありませんか

permissionsとhooksはホットリロードされるため、随時見直せます。modelなど一部の設定は再起動後に反映される点だけ覚えておきます。