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を開き、何が足りないかを判定できる状態を目指します。
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つに絞ることです。ファイルを増やしすぎると、どれが正本か分からなくなります。
06最初の設定でつまずきやすい5つの落とし穴
- CLAUDE.mdに書けば止まると思い込む:CLAUDE.mdは指示であって強制ではありません。権限ルールはClaude Codeが機械的に適用しますが、CLAUDE.mdの指示はClaudeの判断に委ねられます(出典: Claude Code公式ドキュメント)。止めたいと決めた操作は、PreToolUseフックか権限のdenyルールに書きます。
- curlのURL制限を文字列一致で書く:オプション位置やリダイレクトで簡単にすり抜けます(出典: Claude Code公式ドキュメント)。確実に止めるなら、curl自体をdenyし
WebFetch(domain:許可ドメイン)で絞ります。 - allowルールを書いたのに効かない:プロジェクトの
.claude/settings.jsonにあるallowルールには条件があります。そのフォルダのworkspace trustダイアログを承認するまで、ルールは適用されません(出典: Claude Code公式ドキュメント)。初回起動時のダイアログを見落としていないか確認します。 Write(docs/**)でファイルを保護したつもり:実際には効きません。ファイル権限のチェックはEdit(path)とRead(path)のルールしか見ないためです(出典: Claude Code公式ドキュメント)。保護したい対象はEdit(パス)で書き直します。- modelを設定ファイルで変えてすぐ使えると思う:
permissionsとhooksはホットリロードされます。一方modelとoutputStyleは、セッション再起動まで反映されません(出典: Claude Code公式ドキュメント)。設定を変えた直後に動きが変わらなくても、壊れているわけではありません。
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など一部の設定は再起動後に反映される点だけ覚えておきます。