Claude Code上級テクニック|CLAUDE.md・hooks・マルチファイル編集を使いこなす

AI・自動化
スポンサーリンク

📋 Claude Code コマンド指示書(クリックで展開)

.claude/commands/ に保存して /コマンド で実行

---
description: "Claude Code上級テクニック|CLAUDE.md・hooks・マルチファイル編集を使いこなす"
---

# Claude Code上級テクニック|CLAUDE.md・hooks・マルチファイル編集を使いこなす

この指示書は https://akahara-vlab.com/claude-code-advanced/ の内容をClaude Codeコマンドとして実行するためのものです。

## 概要

Claude Codeの上級機能を解説。CLAUDE.mdのプロジェクト設定、hooksによる自動化、Permission modes、マルチファイル編集、subagent、GitHub連携まで実運用テクニックを紹介。

## 使い方

1. このテキストを `.claude/commands/claude-code-advanced.md` に保存
2. Claude Codeで `/claude-code-advanced` と入力して実行

## 指示

上記の記事の知識をもとに、ユーザーの質問に回答してください。
記事URL: https://akahara-vlab.com/claude-code-advanced/

※ 平文なので中身を確認してから使ってください。安全性は目視で確認できます。

わさびです。

Claude Codeの基本は使えるようになった。でも「もっと効率よく使えるはず」と感じている人は多いと思う。

この記事では、Claude Codeの公式ドキュメント(英語のみ)に書かれている上級機能を日本語でまとめる。CLAUDE.md、hooks、Permission modes、subagent、GitHub連携。全部実際に使っているものだけ紹介する。

スポンサーリンク

CLAUDE.mdを書く

CLAUDE.mdはClaude Codeの「プロジェクト設定ファイル」。プロジェクトのルートに置くと、Claude Codeが毎回自動で読み込む。

置ける場所と優先順位

CLAUDE.mdは複数の場所に置ける。すべてが読み込まれ、組み合わせて適用される。

ファイル適用範囲用途
~/.claude/CLAUDE.md全プロジェクト共通自分のグローバル設定
プロジェクトルート/CLAUDE.mdそのプロジェクト全体チーム共有のルール(gitに入れる)
各ディレクトリ/CLAUDE.mdそのディレクトリ以下サブプロジェクト固有のルール

何を書くべきか

CLAUDE.mdに書くと効果が高いもの:

  • ビルド・テスト・リントのコマンド(pytest src/tests/npm run lint等)
  • コーディング規約(命名規則、インデント、コメントルール)
  • プロジェクト固有の制約(「src/以下のみ変更可」「mainブランチに直push禁止」等)
  • アーキテクチャの概要(ディレクトリ構成、主要モジュールの役割)

逆に書かなくていいもの:

  • Claude Codeが自分で読み取れる情報(package.jsonの内容等)
  • 一般的なプログラミング知識
  • 長すぎる文章(コンテキストウィンドウを圧迫する)

実例

# プロジェクトルール

## コマンド
-テスト: pytest src/tests/ -v
-リント: ruff check src/
-ビルド: npm run build

## コーディング規約
-Python 3.13、型ヒント必須
-コミットメッセージは日本語
-未使用importは即削除

## 構成
-src/ — アプリケーションコード
-config/ — 設定ファイル(変更注意)
-tests/ — テスト(pytestで実行)

短く、具体的に。これがCLAUDE.mdのコツ。

メモリ機能

Claude Codeにはメモリ機能がある。会話中に「これを覚えておいて」と言うと、その情報がCLAUDE.mdに自動追記される。

> このプロジェクトではSQLAlchemy 2.0の新構文を使うこと。覚えておいて。

これで次回以降のセッションでも、SQLAlchemy 2.0の新構文を前提に動いてくれる。

ただし自動追記されるので、たまにCLAUDE.mdを確認して整理するのがおすすめ。不要な記述が溜まると読み込み時のトークンが増える。

hooks(フック)

hooksはClaude Codeのツール実行前後に自動で走るスクリプト。.claude/settings.jsonで設定する。

hook の種類

hookタイミング用途
PreToolUseツール実行前バリデーション、承認制御
PostToolUseツール実行後自動フォーマット、通知
Notification通知発生時外部通知連携
Stop応答完了時後処理

設定例

.claude/settings.json:

{
 "hooks":{
   "PostToolUse":[
     {
       "matcher":"Write|Edit",
       "command":"ruff check --fix $CLAUDE_FILE_PATH"
     }
   ]
 }
}

この設定だと、Claude Codeがファイルを書き込む/編集するたびに、自動でruffのリントが走る。人間が後から「リント通してなかった」と気づくミスを防げる。

hookで渡される環境変数

hookのcommandでは以下の環境変数が使える:

  • $CLAUDE_FILE_PATH — 操作対象のファイルパス
  • $CLAUDE_TOOL_NAME — 実行されたツール名
  • $CLAUDE_PROJECT_DIR — プロジェクトルートのパス

Permission modes

Claude Codeには3つの権限モードがある。

モード動作用途
default危険な操作は毎回確認を求める通常使用
allowlist許可リストに載った操作のみ自動実行チーム運用
yolo(–dangerously-skip-permissions)全操作を自動実行CI/CD、信頼できる環境

defaultモードでも、セッション中に一度許可した操作は記憶される。「常に許可」を選べば、.claude/settings.jsonに保存されて次回以降も聞かれない。

yoloモードはCI/CDパイプラインで使うことが想定されている。ローカル開発で使うのは自己責任。

マルチファイル同時編集のコツ

Claude Codeが得意なのは、複数ファイルにまたがる変更。でもうまく使うにはコツがある。

1. 変更範囲を明示する

> src/api/routes.pyとsrc/api/handlers.pyに新しいエンドポイントを追加して。
> GETで/api/v2/users、レスポンスはUserSchemaのリスト。

「何を」「どこに」「どういう仕様で」を具体的に伝える。曖昧な指示だとClaude Codeが推測で動いて、意図しない変更が入る。

2. 関連ファイルを先に読ませる

> まずsrc/api/routes.pyとsrc/models/user.pyを読んで。その上で変更案を提示して。

Claude Codeは賢いので大体は自分で必要なファイルを見つける。でも確実に参照してほしいファイルがあるなら、先に指示したほうが精度が上がる。

3. 段階的に進める

大きな変更は一気にやらせず、段階的に進める。

> まずモデルを追加して。
(確認)
> 次にルーティングを追加して。
(確認)
> 最後にテストを書いて。

一回の指示で10ファイル以上変えると、レビューが大変になる。

/slash commands

Claude Codeには組み込みのスラッシュコマンドがある。よく使うもの:

コマンド機能
/initCLAUDE.mdを自動生成
/compact会話を要約してコンテキストを節約
/clear会話履歴をリセット
/cost現在のセッションのトークン消費量を表示
/model使用モデルを切り替え

カスタムスラッシュコマンド

.claude/commands/ディレクトリにMarkdownファイルを置くと、カスタムコマンドとして使える。

.claude/commands/deploy.md:

以下の手順でデプロイを実行:
1. テストを全件実行
2. 失敗がなければgit push
3. SSH経由でサーバーに接続してgit pull

これで /deploy と打つだけでデプロイ手順が走る。チーム内で手順を共有するのに便利。

プロジェクトのルートの.claude/commands/に置いたコマンドはチーム全体で共有できる(gitにコミットする)。~/.claude/commands/に置いたコマンドは自分専用。

subagent(Task tool)

Claude Codeは内部で「subagent」と呼ばれるサブタスク機能を持っている。大きなタスクを分解して、サブエージェントに委譲する。

例えば「このプロジェクトのテストカバレッジを80%以上にして」という指示を出すと:

  1. メインのClaude Codeがタスクを分析
  2. 「モジュールAのテスト追加」「モジュールBのテスト追加」等のサブタスクに分解
  3. 各サブタスクをsubagentに委譲
  4. 結果を統合

subagentは独立したコンテキストで動くので、メインの会話のコンテキストウィンドウを圧迫しない。

人間が明示的に使う機能ではなく、Claude Codeが必要に応じて自動的に使う。ただし、大きなタスクを依頼するときは「サブタスクに分けて並行で進めて」と指示すると、より効率的にsubagentが活用される。

GitHub連携

Claude CodeはGitHub CLIと連携して、PR作成やIssue操作ができる。

PR作成

> 今の変更でPRを作って。ベースブランチはmain。

Claude Codeが差分を分析して、タイトルと説明文を生成し、gh pr createを実行してくれる。

Issue操作

> Issue #42の内容を確認して、対応するコードを書いて、PRを作って。

Issueを読む → コード変更 → PR作成まで一気通貫。

PRレビュー

> gh pr view 123のdiffを見て、レビューコメントをつけて。

コードレビューの下書きとしても使える。

実運用Tips

コンテキストウィンドウの管理

Claude Codeの会話が長くなると、コンテキストウィンドウが埋まって応答が遅くなる。/compactで要約するか、/clearでリセットする。

目安として、1タスクが終わったら/compact、別の作業に移るなら/clear

ワンショットモード

claude -p "テストを実行して結果を報告して" のように、-pフラグで対話なしの一発実行ができる。CI/CDやcronジョブで使う。

パイプ入力

caterror.log|claude-p"このエラーログを分析して"

標準入力からデータを渡せる。ログ分析やデータ変換に便利。

複数セッション

ターミナルを複数開いて、それぞれでClaude Codeを起動できる。フロントエンドとバックエンドを別セッションで同時に開発、といった使い方ができる。

ただし同じファイルを複数セッションで同時に編集するとコンフリクトするので注意。

まとめ

Claude Codeの上級機能は、全部「繰り返しの手間を減らす」ためにある。

  • CLAUDE.md → 毎回同じ説明をしなくていい
  • hooks → 毎回リントを手動で走らせなくていい
  • カスタムコマンド → 毎回手順を思い出さなくていい
  • GitHub連携 → ブラウザとターミナルを行き来しなくていい

最初は全部使おうとせず、CLAUDE.mdから始めるのがおすすめ。それだけで体感が変わる。

甲羅に篭って考えた結果、CLAUDE.mdは短いほど強い、という結論に至った。

あわせて読みたい

見てもらえるだけで応援になります

このブログはアフィリエイトリンクで運営されています。以下のリンクから気になるサービスをチェックしてもらえると、僕たちの活動の支えになります。


この記事を書いたのは わさび(ニホンイシガメ / 3歳 / VTuberあかはら。の家族)です。

あかはらVラボ — Claude特化の情報を発信中。

この記事が参考になったら|以下のリンクから見てもらえるだけで、ブログ運営の応援になります。




  • AI開発環境やブログ運営に。初期費用無料、月額296円から。
  • NordVPN

    AI活用時のデータ保護に。VPNで通信を暗号化。

コメント

タイトルとURLをコピーしました