Claude Codeを本当に使いこなすための設定ガイド——CLAUDE.md・Hooks・Skills・便利ツールまとめ

Claude Codeをインストールして、ターミナルで claude と打って使い始める。それだけで十分に便利なのだが、実は設定ファイルをほとんど触らずに使っている人が大多数だ。

CLAUDE.md、settings.json、Hooks、Skills——これらをきちんと設定すると、毎回同じ指示を繰り返す必要がなくなり、よく使う作業がワンコマンドになり、ミスを自動で防げるようになる。この記事では入門〜中級者向けに、Claude Codeの設定機能を一通り解説する。

CLAUDE.md——プロジェクトの「憲法」を書く

CLAUDE.mdはClaude Codeが毎回のセッション開始時に自動で読み込む指示書だ。「このプロジェクトではどう動くべきか」をあらかじめ書いておくことで、毎回同じことを伝える手間がなくなる。

どこに置くか

ファイルスコープ用途
~/.claude/CLAUDE.md全プロジェクト共通個人の基本方針・言語設定など
./CLAUDE.mdプロジェクト全体チーム共有(git管理推奨)
./CLAUDE.local.mdプロジェクト個人個人用の上書き(.gitignore推奨)

この3つはすべて読み込まれ、積み重ねで適用される(上書きではない)。プロジェクトルートに置いたCLAUDE.mdはチームで共有でき、CLAUDE.local.mdで個人用の設定を上乗せできる。

何を書くべきか

書くべき内容:

  • プロジェクト固有のビルド・テストコマンド(php artisan test など)
  • デフォルトと違うコードスタイルルール
  • ブランチ命名規則・PR運用ルール
  • 触ってはいけないファイル・ディレクトリ
  • よくある落とし穴(例:「マイグレーションファイルは直接編集禁止」)

書かないべき内容:

  • コードを読めばわかること
  • Claudeが元々知っている標準的な言語規則
  • 「クリーンなコードを書く」など自明なこと

テンプレート例

# プロジェクト概要
Laravel + Vue 3 のWebアプリ。決済にStripe API使用。

# ビルド・テストコマンド
- `php artisan test` でテスト実行
- `npm run dev` でVite起動
- `php artisan migrate:fresh --seed` でDB初期化

# コーディング規則
- PHP: PSR-12準拠
- JS/TS: ESモジュール形式(requireは使わない)
- コミットメッセージ: 日本語OK、先頭に [fix] [feat] 等

# 重要な注意事項
- .envファイルは絶対に変更しない(IMPORTANT)
- マイグレーションファイルは直接編集禁止(IMPORTANT)
- PRはdevelopブランチへ

# コンパクション時の保持事項
変更済みファイルの完全なリストと実行中のテストコマンドを必ず保持すること。

まず /init コマンドを実行するとプロジェクト構造を解析してCLAUDE.mdの雛形を自動生成してくれる。そこから不要な部分を削ぎ落とすのが効率的だ。目安は60〜80行以内。長くなりすぎるとClaude側が無視し始める。

settings.json + Hooks——繰り返し作業を自動化する

settings.jsonの場所

ファイルスコープ
~/.claude/settings.jsonユーザー全体
.claude/settings.jsonプロジェクト(git管理可)
.claude/settings.local.jsonプロジェクト個人用

基本的な設定例:

{
  "model": "claude-sonnet-4-6",
  "language": "japanese",
  "permissions": {
    "allow": ["Bash(npm run lint)", "Bash(git commit *)", "Bash(git diff *)"],
    "deny": ["Read(./.env)"],
    "defaultMode": "acceptEdits"
  }
}

Hooks——イベント駆動の自動化

Hooksは「ツール実行の前後」などのタイミングでシェルコマンドを自動実行する機能だ。使いこなすと開発フローが大きく変わる。

主なHookイベント:

  • PreToolUse — ツール実行前(exitコード2でブロック可能)
  • PostToolUse — ツール成功後
  • Stop — Claudeの応答完了時
  • Notification — Claude待機通知時
  • SessionStart / SessionEnd — セッション開始・終了時

実用例①:編集後にPrettierを自動実行

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
      }]
    }]
  }
}

実用例②:.envの書き換えをブロック

{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{
        "type": "command",
        "command": "FILE=$(cat | jq -r '.tool_input.file_path'); echo $FILE | grep -q '\.env' && (echo 'Protected file' >&2; exit 2) || exit 0"
      }]
    }]
  }
}

実用例③:macOSで入力待ちを通知

{
  "hooks": {
    "Notification": [{
      "matcher": "",
      "hooks": [{
        "type": "command",
        "command": "osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'"
      }]
    }]
  }
}

Hooksの設定は /hooks コマンドで現在の設定を確認できる。また update-config スキルを使うと自然言語で設定を追加・変更することも可能だ。

Skills(スラッシュコマンド)——よく使う手順をワンコマンドに

Skillsは自分でカスタムのスラッシュコマンドを作れる機能だ。「PRレビュー」「デプロイ」「Issue修正」など、毎回同じ手順で行う作業をSkillとして定義しておくと、/pr-review のように呼び出すだけで一連の作業が走る。

ファイル構造

~/.claude/skills/          # 個人(全プロジェクト)
  pr-review/
    SKILL.md               # 必須(指示内容を記述)
    examples/              # 出力例(任意)

.claude/skills/            # プロジェクト固有(git管理可)
  deploy/
    SKILL.md

SKILL.md の書き方

---
name: fix-issue
description: GitHubイシューを修正する
allowed-tools: Bash(gh *) Read Edit Bash(git *)
---
GitHubイシュー $ARGUMENTS を修正してください。

1. `gh issue view $ARGUMENTS` でイシュー詳細を取得
2. 問題を理解して関連ファイルを調査
3. 修正を実装してテストを書く
4. コミットしてPRを作成

フロントマターの主なオプション:

  • description — Claudeが自動呼び出し判断に使う説明文
  • allowed-tools — このSkillで使えるツールを限定
  • disable-model-invocation: true — 手動呼び出しのみ(自動起動しない)
  • context: fork — サブエージェントとして実行
  • model: haiku — 使用モデルをSkillごとに指定

skill-creator——Skillの自動生成ツール

Skillを一から書くのが面倒なら、Anthropic公式の skill-creator が便利だ。「新しいSkillを作ってほしい」と指示するだけで、SKILL.mdの構造・スキーマ・バリデーションまで一式を自動生成してくれるメタSkillだ。

使い方はシンプルで、リポジトリをクローンして .claude/skills/skill-creator/ に配置するだけ。あとはClaudeに「〇〇というSkillを作って」と指示すれば動く。

さらに本格的に使いたいなら、コミュニティ製の claude-code-skill-factoryGitHub)もある。対話式でSkill / Agent / Hook / Slash Commandを一式生成してくれ、/build skill のようなコマンドで作業が進む。

カスタムサブエージェント——専門家を育てる

Claude Codeには「サブエージェント」として別のAIエージェントを呼び出す機能がある。自分でカスタムエージェントを定義すると、「セキュリティレビュー専門」「テスト生成専門」といった役割を持ったエージェントを作れる。

---
name: security-reviewer
description: セキュリティ脆弱性レビュー専門エージェント。コード変更後に使用。
tools: Read, Grep, Glob
model: opus
color: red
---
あなたはシニアセキュリティエンジニアです。以下の観点でコードをレビューします:
- SQLインジェクション・XSS・コマンドインジェクション
- 認証・認可の欠陥
- シークレットや認証情報のハードコーディング

具体的な行番号と修正案を提示してください。

このファイルを ~/.claude/agents/security-reviewer.md または .claude/agents/security-reviewer.md に置くだけで /agents コマンドから呼び出せるようになる。

知っておくと便利なコマンド・Tips

コマンド用途
/initプロジェクト構造を解析してCLAUDE.mdの雛形を自動生成
/compact会話履歴を要約してコンテキストを解放(トークン節約)
/compact <指示>特定情報を優先して圧縮(例: /compact APIの変更点に集中
/clearコンテキストを完全リセット(無関係なタスクへの切り替え時)
/btwサイドクエリ(会話履歴に残らない一時的な質問)
/hooks設定済みhookの一覧確認
/agentsサブエージェント管理UI
/permissionsツール許可・拒否ルール管理
/rewindチェックポイントに戻る(Esc+Escでも可)

トークン節約のコツ:

  • コンテキストメーターが70%になったら /compact でプロアクティブに圧縮する
  • 不要なMCPサーバーは切断する(接続しているだけで1リクエストあたり数千〜数万トークン消費)
  • 毎回繰り返す指示はCLAUDE.mdに書いておく
  • 無関係なタスクへの切り替え時は /clear でリセットする

コミュニティリソース

Skills・Hooks・エージェントを一から作るのが大変なら、コミュニティの資産を活用しよう。

  • awesome-claude-code — Skills / Hooks / Slash Commands を厳選したキュレーションリスト
  • awesome-claude-code-toolkit — 135エージェント・35 Skills・42コマンドなどを収録した最大規模のツールキット
  • claude-skills — 232以上のSkillを収録。エンジニアリング・マーケティングなど幅広いジャンルをカバー
  • awesomeclaude.ai — ディレクトリ形式でブラウズできるClaudeリソース集
  • anthropics/skills(公式) — Anthropic公式のSkillリポジトリ(skill-creator含む)

まとめ

Claude Codeの設定は「やらなくても使える」が、「やると別物になる」領域だ。まず試してほしい順番を挙げるとすれば:

  1. /init でCLAUDE.mdを生成して、プロジェクトのルールを書く
  2. よく繰り返す作業を1つSkillとして作ってみる(skill-creatorに任せてもいい)
  3. 編集後の自動フォーマットなどシンプルなHookを1つ追加する

この3つだけで日常の開発体験がかなり変わるはずだ。慣れてきたらカスタムエージェントやworktreeを使った並列作業にも挑戦してみてほしい。