Claude Code 逆引きコマンド大全【第2章:応用編】MCP・カスタムコマンド・Hooks実践ガイド

Claude Code 逆引きコマンド大全 AI
この記事は約30分で読めます。
  1. はじめに
  2. 1. メモリ・CLAUDE.md管理
    1. 1.1 CLAUDE.mdとは
    2. 1.2 CLAUDE.mdを作成したい
    3. 1.3 CLAUDE.mdの配置場所と優先順位
    4. 1.4 効果的なCLAUDE.mdの書き方
    5. 1.5 会話中にルールを追記したい
    6. 1.6 他のファイルの内容をCLAUDE.mdにインポートしたい
    7. 1.7 参照中のメモリファイルを確認したい
    8. 1.8 CLAUDE.mdのベストプラクティス
  3. 2. Git操作
    1. 2.1 基本的なGit操作
    2. 2.2 gh CLIのセットアップ
    3. 2.3 自分の変更をClaude Codeにコミットさせたい
    4. 2.4 高度なGit操作
    5. 2.5 Git操作の自動化例
  4. 3. カスタムスラッシュコマンド
    1. 3.1 カスタムコマンドの基本
    2. 3.2 シンプルなカスタムコマンドの作成
    3. 3.3 引数を受け取るコマンド
    4. 3.4 複数引数を使うコマンド
    5. 3.5 フロントマターによる高度な設定
    6. 3.6 コマンド内でBash実行結果を使う
    7. 3.7 ファイル参照を含むコマンド
    8. 3.8 カスタムコマンドのベストプラクティス
  5. 4. MCP(Model Context Protocol)
    1. 4.1 MCPとは
    2. 4.2 MCPの設定方法
    3. 4.3 Playwright MCPの活用
    4. 4.4 MCPサーバーの状態確認
    5. 4.5 MCPツールの手動使用
    6. 4.6 MCPスラッシュコマンド
    7. 4.7 MCPの権限管理
    8. 4.8 よく使われるMCPサーバー
  6. 5. サブエージェント
    1. 5.1 サブエージェントとは
    2. 5.2 サブエージェントの定義
    3. 5.3 サブエージェントの使用例
    4. 5.4 CLIからのサブエージェント定義
    5. 5.5 サブエージェントの自動呼び出し
  7. 6. Hooks(フック)
    1. 6.1 Hooksとは
    2. 6.2 Hooksの設定方法
    3. 6.3 Hookの種類
    4. 6.4 実用的なHook設定例
    5. 6.5 Hookのデバッグ
  8. 7. Skills(スキル)
    1. 7.1 Skillsとは
    2. 7.2 Skillの定義
    3. 7.3 Skillの活用例
  9. 8. 効率的な使い方のコツ
    1. 8.1 計画を先に立てさせる
    2. 8.2 拡張思考モード(合言葉)
    3. 8.3 こまめに /clear する
    4. 8.4 作業リストで消し込み作業
    5. 8.5 具体的で明確な指示を出す
    6. 8.6 TDD(テスト駆動開発)の活用
    7. 8.7 並行作業にはGit worktreesを活用
  10. 9. 実践的なワークフロー例
    1. 9.1 新機能開発ワークフロー
    2. 9.2 バグ修正ワークフロー
    3. 9.3 コードレビュー対応ワークフロー
    4. 9.4 リファクタリングワークフロー
    5. 9.5 ドキュメント作成ワークフロー
  11. 10. トラブルシューティング
    1. 10.1 インストール・接続の問題
    2. 10.2 パフォーマンスの問題
    3. 10.3 出力の問題
    4. 10.4 権限の問題
    5. 10.5 バグ報告
  12. 11. 参考文献・リソース
    1. 公式ドキュメント
    2. 動画・チュートリアル
    3. コミュニティリソース
  13. おわりに

はじめに

第1章では、Claude Codeの基本的な操作方法について解説しました。第2章では、より高度な機能や実践的なワークフローについて詳しく説明します。

本章で扱う内容を習得することで、Claude Codeを使った開発効率が飛躍的に向上します。特に、CLAUDE.mdの活用、カスタムコマンドの作成、MCPによる機能拡張は、プロフェッショナルな開発者にとって必須の知識です。


1. メモリ・CLAUDE.md管理

1.1 CLAUDE.mdとは

CLAUDE.mdは、Claude Codeにプロジェクト固有の知識や指示を伝えるためのファイルです。このファイルを適切に設定することで、Claude Codeはあなたのプロジェクトをより深く理解し、的確な支援を提供できるようになります。

CLAUDE.mdの役割

  • プロジェクトのアーキテクチャや構造の説明
  • コーディング規約やスタイルガイド
  • 使用するツールやフレームワークの情報
  • よくある操作パターンやベストプラクティス
  • プロジェクト固有の用語の定義

1.2 CLAUDE.mdを作成したい

最も簡単な方法は、Claude Codeに自動生成させることです:

/init

このコマンドを実行すると、Claude Codeがプロジェクトを分析し、適切なCLAUDE.mdを生成します。

日本語で作成する場合

/init 日本語で作成してください

手動で作成する場合

プロジェクトルートに CLAUDE.md ファイルを作成し、必要な情報を記述します。

1.3 CLAUDE.mdの配置場所と優先順位

CLAUDE.mdは複数の場所に配置でき、それぞれ異なるスコープを持ちます:

場所 スコープ 用途
~/.claude/CLAUDE.md 全プロジェクト共通 個人の好みやスタイル
./CLAUDE.md プロジェクトルート プロジェクト全体の設定
./src/CLAUDE.md 特定ディレクトリ モジュール固有の情報
./src/auth/CLAUDE.md サブディレクトリ 機能固有の詳細

読み込み順序

Claude Codeは、カレントディレクトリから親ディレクトリに向かってCLAUDE.mdを探し、すべてを読み込みます。より具体的な(深い階層の)設定が優先されます。

1.4 効果的なCLAUDE.mdの書き方

基本テンプレート

# プロジェクト概要

このプロジェクトは、XXXを目的としたYYYアプリケーションです。

## 技術スタック

- Frontend: Next.js 14 (App Router) + TypeScript
- Backend: Node.js + Express
- Database: PostgreSQL + Prisma
- State: Zustand
- Testing: Jest + React Testing Library

## ディレクトリ構造

- `src/app/` - Next.js App Routerのページ
- `src/components/` - 再利用可能なUIコンポーネント
- `src/lib/` - ユーティリティ関数
- `src/hooks/` - カスタムフック
- `src/types/` - TypeScript型定義

## コーディング規約

- 新しいコードはすべてTypeScriptで記述する
- コンポーネントは関数コンポーネント + Hooksを使用
- CSSはTailwind CSSを使用
- テストはコンポーネントと同じディレクトリに `.test.tsx` で配置

## よく使うコマンド

- `npm run dev` - 開発サーバー起動
- `npm run build` - プロダクションビルド
- `npm run test` - テスト実行
- `npm run lint` - リンター実行

## 重要な注意事項

- `.env.local` は絶対にコミットしないこと
- APIキーはすべて環境変数で管理
- データベースマイグレーションは `npx prisma migrate dev` で実行

高度な設定例

# 認証モジュール (src/auth/CLAUDE.md)

## 概要

JWTベースの認証システムを実装しています。

## 主要ファイル

- `middleware.ts` - 認証ミドルウェア
- `login.ts` - ログイン処理
- `logout.ts` - ログアウト処理
- `refresh.ts` - トークンリフレッシュ

## セキュリティ要件

- アクセストークンの有効期限: 15分
- リフレッシュトークンの有効期限: 7日
- パスワードはbcryptでハッシュ化(ソルトラウンド: 10)

## テスト時の注意

- モックユーザーは `__mocks__/users.ts` を使用
- JWTシークレットはテスト用の固定値を使用

1.5 会話中にルールを追記したい

会話中に新しいルールを発見した場合、# を先頭につけて入力すると、CLAUDE.mdに自動追記されます:

# テストを書くときは必ずdescribeブロックでグループ化すること
# APIレスポンスは必ずtry-catchでエラーハンドリングすること

この機能を使うと、作業しながらベストプラクティスを蓄積できます。

1.6 他のファイルの内容をCLAUDE.mdにインポートしたい

CLAUDE.md内で @ 構文を使用すると、他のファイルの内容を参照できます:

# プロジェクト概要

プロジェクトの詳細は @README.md を参照してください。

## 利用可能なコマンド

@package.json のscriptsセクションを参照。

## Git ワークフロー

@docs/git-workflow.md

## API仕様

@docs/api-specification.md

パスの指定方法

  • 相対パス: @docs/guide.md
  • 絶対パス: @/home/user/global-rules.md

再帰的なインポート

インポートしたファイルがさらに他のファイルをインポートしている場合、最大5ホップまで再帰的に読み込まれます。

1.7 参照中のメモリファイルを確認したい

現在Claude Codeが読み込んでいるメモリファイルを確認するには:

/memory

このコマンドは以下を表示します:

  • 読み込まれているCLAUDE.mdファイルの一覧
  • インポートされているファイル
  • 各ファイルのパス

1.8 CLAUDE.mdのベストプラクティス

1. 簡潔に保つ

CLAUDE.mdはコンテキストウィンドウを消費します。本当に必要な情報だけを含めてください。

2. 定期的に更新する

プロジェクトの進化に合わせてCLAUDE.mdも更新しましょう。Claude Codeに更新を依頼することもできます:

大きな機能を実装し終わったので、CLAUDE.mdを更新して

3. 階層的に整理する

グローバルな設定は ~/.claude/CLAUDE.md に、プロジェクト固有の設定はプロジェクトルートに、モジュール固有の設定はそのディレクトリに配置します。

4. チームで共有する

プロジェクトのCLAUDE.mdはGitリポジトリにコミットして、チームで共有しましょう。


2. Git操作

Claude CodeはGit操作に非常に習熟しています。基本的なコマンドは単語を入力するだけで実行してくれます。

2.1 基本的なGit操作

ブランチを作成したい

feature/user-auth ブランチを作って
新しいブランチを作成して、名前は fix/login-bug で

コミットしたい

commit

または詳細に指示:

変更をコミットして。コミットメッセージは日本語で書いて。

プッシュしたい

push

PRを作成したい

pr

2.2 gh CLIのセットアップ

PRの作成やIssueの操作には、GitHub CLI (gh) をインストールしておくとスムーズです:

# macOS
brew install gh

# Ubuntu/Debian
sudo apt install gh

# Windows
winget install GitHub.cli

# 認証設定(共通)
gh auth login

認証後は、Claude Codeから直接PRを作成したり、Issueを参照したりできます。

2.3 自分の変更をClaude Codeにコミットさせたい

自分でコードを書いた後、Claude Codeにコミットだけを任せたい場合:

claude commit

このコマンドは、ステージングされた変更を分析し、適切なコミットメッセージを生成してコミットします。

2.4 高度なGit操作

変更内容を説明してもらう

git diffを見て、今回の変更内容を詳しく説明して

コンフリクトを解決してもらう

マージコンフリクトが発生しているので解決して

履歴を分析してもらう

最近10件のコミット履歴を分析して、開発の傾向を教えて

特定のコミットを調査

このバグが入ったコミットを git bisect で特定して

2.5 Git操作の自動化例

PRレビュー用のスクリプト

#!/bin/bash
# 差分を取得してClaude Codeにレビューさせる
git diff HEAD~1 | claude -p "このコード変更をレビューして、問題点があれば指摘して" > review.md

コミットメッセージの自動生成

#!/bin/bash
# ステージングされた変更からコミットメッセージを生成
git diff --staged | claude -p "この差分に対する適切なコミットメッセージを生成して(日本語、Conventional Commits形式)"

チェンジログの自動生成

#!/bin/bash
# 最近のコミットからチェンジログを生成
git log --oneline -20 | claude -p "これらのコミットからリリースノートを作成して"

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

カスタムスラッシュコマンドは、よく使うプロンプトを再利用可能なコマンドとして定義する機能です。これにより、繰り返し作業を大幅に効率化できます。

3.1 カスタムコマンドの基本

配置場所

場所 スコープ 用途
~/.claude/commands/ 全プロジェクト共通 個人用の汎用コマンド
.claude/commands/ プロジェクト固有 チームで共有するコマンド

ファイル名がコマンド名になる

  • ~/.claude/commands/review.md/review
  • .claude/commands/fix-issue.md/fix-issue

3.2 シンプルなカスタムコマンドの作成

例1: コードレビューコマンド

~/.claude/commands/review.md:

このコードをレビューしてください。以下の観点でチェックしてください:

1. バグや潜在的な問題
2. パフォーマンスの問題
3. セキュリティの問題
4. コードの可読性
5. ベストプラクティスへの準拠

問題が見つかった場合は、具体的な修正案も提示してください。

使用方法:

/review @src/auth/login.ts

例2: テスト作成コマンド

~/.claude/commands/test.md:

このコードに対するユニットテストを作成してください。

要件:
- Jest + React Testing Libraryを使用
- 正常系と異常系の両方をカバー
- エッジケースも考慮
- モックは必要最小限に
- 日本語でテストケースの説明を書く

3.3 引数を受け取るコマンド

$ARGUMENTS プレースホルダーを使用して、コマンドに引数を渡せます:

例: GitHub Issue解決コマンド

~/.claude/commands/fix-issue.md:

以下の手順に従って、GitHub Issue #$ARGUMENTS を解決してください。

## 手順

1. `gh issue view $ARGUMENTS` を使用してIssueの詳細を取得する
2. Issueに記載されている問題を理解する
3. 関連するファイルをコードベースから検索する
4. Issueを修正するために必要な変更を実装する
5. 修正を検証するためのテストを作成し実行する
6. コードがlintとtype checkをpassすることを確認する
7. 丁寧な説明と共にコミットメッセージを作成する
8. プッシュしてPRを作成する

## 注意事項

- GitHubに関連するすべてのタスクには、GitHub CLI(`gh`)を使用してください
- 既存のコードスタイルに従ってください
- テストは必ず書いてください

使用方法:

/fix-issue 1234

3.4 複数引数を使うコマンド

位置引数 $1, $2, $3 を使用して複数の引数を受け取れます:

~/.claude/commands/pr-review.md:

---
argument-hint: [pr-number] [priority] [assignee]
description: PRをレビューして優先度とアサインを設定
---

PR #$1 をレビューしてください。

- 優先度: $2
- アサイン先: $3

以下の観点でレビューしてください:
1. セキュリティ
2. パフォーマンス
3. コードスタイル

レビューが完了したら、コメントを追加してください。

使用方法:

/pr-review 456 high john

3.5 フロントマターによる高度な設定

コマンドファイルの先頭にYAMLフロントマターを追加することで、詳細な設定が可能です:

---
description: セキュリティ脆弱性スキャンを実行
allowed-tools: Read, Grep, Glob
model: claude-opus-4-1-20250805
argument-hint: [target-directory]
disable-model-invocation: true
---

# セキュリティスキャン

$ARGUMENTS ディレクトリを対象にセキュリティ脆弱性をスキャンしてください。

## チェック項目

- SQLインジェクション
- XSS脆弱性
- 認証情報のハードコーディング
- 安全でない暗号化
- CSRF脆弱性

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

オプション 説明
description コマンドの説明(/helpで表示)
allowed-tools 使用を許可するツール
model 使用するモデル
argument-hint 引数のヒント
disable-model-invocation Claudeによる自動実行を禁止

3.6 コマンド内でBash実行結果を使う

! 構文を使うと、Bashコマンドの結果をコンテキストに含められます:

~/.claude/commands/commit-smart.md:

---
allowed-tools: Bash(git add:*), Bash(git status:*), Bash(git commit:*)
argument-hint: [message]
description: スマートコミット
---

## 現在の状態

- Git状態: !`git status --short`
- 現在のdiff: !`git diff HEAD`
- 現在のブランチ: !`git branch --show-current`
- 最近のコミット: !`git log --oneline -5`

## 指示

上記の情報を踏まえて、適切なコミットメッセージを生成してコミットしてください。

ユーザーからのヒント: $ARGUMENTS

3.7 ファイル参照を含むコマンド

@ 構文でファイル内容を含められます:

~/.claude/commands/implement.md:

---
description: 設計ドキュメントに基づいて実装
---

## 設計ドキュメント

@docs/design.md

## タスク

上記の設計ドキュメントに基づいて、$ARGUMENTS を実装してください。

実装の際は以下に注意してください:
- 設計ドキュメントの仕様に厳密に従う
- エラーハンドリングを適切に行う
- テストも併せて作成する

3.8 カスタムコマンドのベストプラクティス

1. 具体的な指示を書く

曖昧な指示ではなく、ステップバイステップで具体的に書きましょう。

2. チェックリストを含める

Claude Codeが何を確認すべきか、明確にリストアップしましょう。

3. 成功条件を明示する

タスク完了の条件を明確に定義しましょう。

4. チームで共有する

プロジェクト固有のコマンドは .claude/commands/ に配置してGitで管理しましょう。


4. MCP(Model Context Protocol)

MCPは、Claude Codeの機能を外部ツールやサービスと統合するためのプロトコルです。これにより、ブラウザ操作、データベースアクセス、各種APIとの連携が可能になります。

4.1 MCPとは

MCPサーバーは、Claude Codeに追加の能力を提供するプラグインのようなものです。例えば:

  • Playwright MCP: ブラウザ操作、スクリーンショット
  • GitHub MCP: Issue管理、PR操作
  • Database MCP: データベースクエリ
  • Filesystem MCP: 拡張ファイル操作

4.2 MCPの設定方法

方法1: .mcp.json ファイル

プロジェクトルートに .mcp.json を作成:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    },
    "github": {
      "command": "npx",
      "args": ["@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"
      }
    }
  }
}

方法2: CLIフラグ

claude --mcp-config ./mcp.json

方法3: 設定ファイル

.claude/settings.json:

{
  "enableAllProjectMcpServers": true,
  "enabledMcpjsonServers": ["playwright", "github"]
}

4.3 Playwright MCPの活用

Playwright MCPを使うと、Claude Codeにブラウザ操作をさせられます。

設定

.mcp.json:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["@playwright/mcp@latest"]
    }
  }
}

使用例

http://localhost:3000 を開いてスクリーンショットを撮って

ログインページに移動して、ユーザー名とパスワードを入力してログインして

現在の画面のスクリーンショットを撮って、UIの問題点を指摘して

UI開発での活用

  1. 実装する
  2. Claude Codeにスクリーンショットを撮らせる
  3. デザインとの差異を指摘させる
  4. 修正を実装する
  5. 繰り返す

この「実装→確認→修正」のループを自動化できます。

4.4 MCPサーバーの状態確認

/mcp

このコマンドで以下を確認できます:

  • 接続されているサーバー一覧
  • 各サーバーの状態
  • 利用可能なツール

4.5 MCPツールの手動使用

/mcp

View tools を選択
→ 使いたいツールを選択
→ コマンドと使用方法が表示される

4.6 MCPスラッシュコマンド

MCPサーバーが提供するコマンドは、スラッシュコマンドとして使用できます:

/mcp__playwright__browser_navigate http://localhost:3000
/mcp__playwright__browser_take_screenshot
/mcp__github__list_prs
/mcp__github__pr_review 456

形式: /mcp__[サーバー名]__[コマンド名]

4.7 MCPの権限管理

.claude/settings.json でMCPツールの権限を細かく制御できます:

{
  "permissions": {
    "allow": [
      "mcp__playwright__browser_navigate",
      "mcp__playwright__browser_take_screenshot",
      "mcp__github__list_prs"
    ],
    "deny": [
      "mcp__playwright__browser_fill_form"
    ]
  }
}

ワイルドカード構文

{
  "permissions": {
    "allow": [
      "mcp__playwright__*",
      "mcp__github__*"
    ]
  }
}

4.8 よく使われるMCPサーバー

サーバー 用途 インストール
Playwright ブラウザ操作 npx @playwright/mcp@latest
GitHub Issue/PR管理 npx @modelcontextprotocol/server-github
Filesystem 拡張ファイル操作 npx @modelcontextprotocol/server-filesystem
Memory 永続メモリ npx @modelcontextprotocol/server-memory
Brave Search Web検索 npx @anthropics/brave-search-mcp

5. サブエージェント

サブエージェントは、特定のタスクに特化した「専門家」のようなClaude インスタンスです。独自の指示、コンテキスト、ツール権限を持ちます。

5.1 サブエージェントとは

通常のClaude Codeは汎用的な能力を持っていますが、サブエージェントを使うと:

  • 特定の領域に特化した専門家を定義できる
  • 各サブエージェントは独自のコンテキストウィンドウを持つ
  • メインの会話から必要に応じて呼び出される
  • トークンを効率的に使用できる

5.2 サブエージェントの定義

配置場所

場所 優先度 スコープ
.claude/agents/ プロジェクト固有(チーム共有)
~/.claude/agents/ 個人用(全プロジェクト共通)

ファイル形式

.claude/agents/code-reviewer.md:

---
name: code-reviewer
description: コードレビュースペシャリスト。コード変更後に自動的に使用されます。
model: sonnet
color: orange
---

あなたはエキスパートコードレビュアーです。

## レビュー観点

1. **バグ・ロジックエラー**: 潜在的なバグやロジックの問題
2. **セキュリティ**: セキュリティ脆弱性
3. **パフォーマンス**: パフォーマンスの問題
4. **可読性**: コードの可読性と保守性
5. **ベストプラクティス**: 言語・フレームワークのベストプラクティス

## 出力形式

問題を発見した場合は、以下の形式で報告してください:

- **問題**: 問題の説明
- **場所**: ファイル名と行番号
- **重大度**: Critical / High / Medium / Low
- **修正案**: 具体的な修正コード

5.3 サブエージェントの使用例

コードレビュアー

---
name: reviewer
description: コードレビュー専門家
model: sonnet
---

あなたは厳格なシニアエンジニアです。コードの品質、セキュリティ、パフォーマンスを重視します。

デバッガー

---
name: debugger
description: デバッグスペシャリスト。エラーやテスト失敗時に使用。
model: opus
---

あなたはデバッグの専門家です。エラーの根本原因を特定し、修正案を提供します。

## アプローチ

1. エラーメッセージを注意深く読む
2. スタックトレースを分析する
3. 関連するコードを調査する
4. 仮説を立てて検証する
5. 修正を提案する

アーキテクト

---
name: architect
description: システム設計の専門家。アーキテクチャに関する質問時に使用。
model: opus
---

あなたはシステムアーキテクトです。スケーラビリティ、保守性、拡張性を考慮した設計を行います。

5.4 CLIからのサブエージェント定義

起動時にJSONでサブエージェントを定義することもできます:

claude --agents '{
  "code-reviewer": {
    "description": "コードレビュー専門家。コード変更後に使用。",
    "prompt": "あなたはシニアコードレビュアーです。品質、セキュリティ、ベストプラクティスに注目してください。",
    "tools": ["Read", "Grep", "Glob", "Bash"],
    "model": "sonnet"
  },
  "debugger": {
    "description": "デバッグスペシャリスト。エラー時に使用。",
    "prompt": "あなたはデバッグの専門家です。エラーを分析し、根本原因を特定し、修正を提供してください。",
    "model": "opus"
  },
  "test-writer": {
    "description": "テスト作成専門家。テスト作成時に使用。",
    "prompt": "あなたはテストエンジニアです。高品質で網羅的なテストを作成してください。",
    "tools": ["Read", "Edit", "Bash"],
    "model": "sonnet"
  }
}'

5.5 サブエージェントの自動呼び出し

Claude Codeは、タスクの内容に応じて適切なサブエージェントを自動的に呼び出します。description フィールドが重要で、どのような状況でサブエージェントを使うべきかを明確に記述してください。

良いdescriptionの例

  • ✅ “コードレビュー専門家。コード変更後に自動的に使用。”
  • ✅ “デバッグスペシャリスト。エラーやテスト失敗時に使用。”
  • ✅ “テスト作成専門家。新機能実装後やテスト追加依頼時に使用。”

悪いdescriptionの例

  • ❌ “レビュアー” (曖昧すぎる)
  • ❌ “いろいろできるエージェント” (具体性がない)

6. Hooks(フック)

Hooksは、Claude Codeのライフサイクルの特定のポイントで自動実行されるシェルコマンドです。コード品質を自動的に維持するのに役立ちます。

6.1 Hooksとは

Hooksを使うと、以下のようなことが自動化できます:

  • ファイル編集後にフォーマッターを実行
  • コミット前にリンターを実行
  • テスト実行後にカバレッジレポートを生成

6.2 Hooksの設定方法

方法1: インタラクティブ設定

/hooks

メニューから設定できます。

方法2: 設定ファイル

.claude/settings.json:

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "command": "echo 'ファイル編集を開始します'"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Edit",
        "command": "prettier --write $FILE"
      }
    ]
  }
}

6.3 Hookの種類

Hook タイミング
PreToolUse ツール実行前
PostToolUse ツール実行後(成功時)

6.4 実用的なHook設定例

編集後にPrettierを実行

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit(*.ts)",
        "command": "prettier --write $FILE"
      },
      {
        "matcher": "Edit(*.tsx)",
        "command": "prettier --write $FILE"
      },
      {
        "matcher": "Edit(*.js)",
        "command": "prettier --write $FILE"
      }
    ]
  }
}

編集後に型チェック

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit(*.ts)",
        "command": "npx tsc --noEmit"
      }
    ]
  }
}

編集後にESLint

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit(*.ts)",
        "command": "npx eslint --fix $FILE"
      }
    ]
  }
}

複合的な設定

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit(*.ts)",
        "command": "prettier --write $FILE && npx eslint --fix $FILE"
      },
      {
        "matcher": "Edit(*.css)",
        "command": "prettier --write $FILE"
      },
      {
        "matcher": "Edit(*.md)",
        "command": "prettier --write $FILE"
      }
    ]
  }
}

6.5 Hookのデバッグ

Hookが期待通りに動作しない場合:

claude --debug "hooks"

これでHookの実行状況を確認できます。


7. Skills(スキル)

Skillsは、スラッシュコマンドとは異なり、自然言語で呼び出される「知識」のようなものです。

7.1 Skillsとは

  • スラッシュコマンド: ユーザーが明示的に /command で呼び出す
  • Skills: Claude Codeが必要に応じて自動的に参照する

7.2 Skillの定義

.claude/skills/ ディレクトリにMarkdownファイルを作成します:

~/.claude/skills/commit-messages/SKILL.md:

---
name: generating-commit-messages
description: 明確なコミットメッセージを生成します。コミットメッセージ作成時やステージングされた変更のレビュー時に使用。
---

# コミットメッセージ生成

## 指示

1. `git diff --staged` を実行して変更内容を確認
2. 以下の形式でコミットメッセージを提案:
   - 50文字以内のサマリー
   - 空行
   - 詳細な説明
   - 影響を受けるコンポーネント

## ベストプラクティス

- 現在形を使用("Add feature" not "Added feature")
- 何を、なぜ変更したかを説明(どうやってではなく)
- Conventional Commits形式を推奨(feat:, fix:, docs:, etc.)

7.3 Skillの活用例

コードレビュースキル

---
name: code-reviewer
description: コード品質、ベストプラクティス、潜在的な問題をレビュー
allowed-tools: Read, Grep, Glob
---

# コードレビュー

## チェックリスト

1. コードの構成と構造
2. エラーハンドリング
3. パフォーマンス考慮
4. セキュリティ懸念
5. テストカバレッジ

8. 効率的な使い方のコツ

8.1 計画を先に立てさせる

複雑なタスクでは、いきなりコードを書かせるのではなく、まず計画を立てさせることが重要です。

Plan Modeの使用

Shift+Tab でPlan Modeに切り替えると、Claude Codeはコードを書かずに計画のみを立てます。

明示的に計画を依頼

このタスクの実装計画を立てて。まだコードは書かないで。
どのファイルを変更する必要があるか、どの順番で実装するか教えて。

8.2 拡張思考モード(合言葉)

Claude Codeには「拡張思考モード」を起動する合言葉があります。これは公式のベストプラクティスに記載されている機能です。

合言葉(英語) 合言葉(日本語) 思考の深さ
think 考えて 浅い
think hard もっと考えて 普通
think harder しっかり考えて 深い
ultrathink 最も深い

使用例

このアーキテクチャについて ultrathink して改善案を出して
このバグの原因を think harder して特定して

注意点

  • 思考が深いほど、レスポンス時間が長くなります
  • 簡単なタスクには使わず、複雑な問題にのみ使用しましょう
  • 最初は “think” から始めて、必要に応じてレベルを上げましょう

8.3 こまめに /clear する

新しいタスクを始める前に、会話履歴をクリアすることを強くお勧めします。

/clear

クリアすべきタイミング

  • 新しい機能の実装を始めるとき
  • 別の問題に取り組むとき
  • Claude Codeが混乱した回答をし始めたとき
  • セッションが長くなってきたとき

なぜクリアが重要か

  1. トークン消費を抑える
  2. 古い情報による混乱を防ぐ
  3. レスポンス速度を維持する
  4. 文脈の整合性を保つ

8.4 作業リストで消し込み作業

大量の修正が必要な場合、リストを作って消し込みながら作業させると効果的です。

例: Lintエラーの修正

npm run lint を実行して、結果を lint-errors.md に保存して

@lint-errors.md のエラーを上から順番に修正して。
修正したエラーはリストから削除して。
1つ修正するごとに確認して。

8.5 具体的で明確な指示を出す

Claude Codeは意図を推測できますが、具体的な指示ほど良い結果が得られます。

悪い例

認証を追加して

良い例

src/routes/api.ts にJWTベースの認証ミドルウェアを追加して。

要件:
- jsonwebtokenライブラリを使用
- トークンはAuthorizationヘッダーのBearer形式で受け取る
- 検証失敗時は401エラーを返す
- 検証成功時はreq.userにデコード結果を設定
- 環境変数JWT_SECRETを使用

8.6 TDD(テスト駆動開発)の活用

まずテストを書いて、それからテストが通るように実装して

Claude Codeは明確な目標がある方が良い結果を出します。テストという形で成功条件を定義することで、より正確な実装が得られます。

8.7 並行作業にはGit worktreesを活用

複数のタスクを並行して進めたい場合:

# ワークツリーを作成
git worktree add ../project-feature1 -b feature/feature1 main
git worktree add ../project-feature2 -b feature/feature2 main

# 別々のターミナルで起動
cd ../project-feature1 && claude
cd ../project-feature2 && claude

各ワークツリーは独立したClaude Codeセッションで作業できます。


9. 実践的なワークフロー例

9.1 新機能開発ワークフロー

# 1. 新しいブランチを作成
cd /path/to/project
git checkout -b feature/user-profile

# 2. Claude Codeを起動
claude

# 3. 計画を立てさせる
ユーザープロフィール機能を実装したい。
まず実装計画を立てて。まだコードは書かないで。

要件:
- ユーザーはプロフィール画像、名前、自己紹介を設定できる
- 画像はS3にアップロード
- データはPostgreSQLに保存
# 4. 計画を確認後、実装を依頼
計画を確認した。実装を始めて。
まずデータベーススキーマから。
# 5. 段階的に実装
次にAPIエンドポイントを実装して。

フロントエンドのコンポーネントを実装して。

テストを書いて。
# 6. コミット&PR
commit

push

pr

9.2 バグ修正ワークフロー

/clear

GitHub Issue #123 を修正したい。
まずIssueの内容を確認して。
原因を特定して。think harder。
修正を実装して。
テストも追加して、バグが再発しないようにして。
commit
Issue #123: [バグの説明]を修正

9.3 コードレビュー対応ワークフロー

/clear

PR #456 でレビューコメントをもらった。
以下の指摘に対応して:

1. エラーハンドリングが不十分
2. 変数名が分かりにくい
3. テストケースが足りない

9.4 リファクタリングワークフロー

/clear

src/utils/helpers.ts をリファクタリングしたい。
まず現在のコードを分析して、問題点を洗い出して。
段階的にリファクタリングして。
1つの変更ごとにテストを実行して、壊れていないことを確認して。

9.5 ドキュメント作成ワークフロー

/clear

このプロジェクトのAPIドキュメントを作成して。
src/routes/ ディレクトリのエンドポイントを全て文書化して。

形式はMarkdownで、以下を含めて:
- エンドポイントURL
- HTTPメソッド
- リクエストパラメータ
- レスポンス形式
- 使用例

10. トラブルシューティング

10.1 インストール・接続の問題

問題: Claude Codeが起動しない

/doctor

を実行して診断情報を確認。

問題: 接続エラーが発生する

/status

で接続状態を確認。

問題: MCPサーバーが動作しない

  1. /mcp でサーバー状態を確認
  2. claude --debug "mcp" でデバッグログを確認
  3. .mcp.json の設定を確認

10.2 パフォーマンスの問題

問題: レスポンスが遅い

  1. /context でコンテキスト使用量を確認
  2. 使用量が高い場合は /clear または /compact
  3. Verboseモードを無効にする

問題: トークン消費が激しい

  1. /cost で使用量を確認
  2. /clear を頻繁に使う
  3. 必要なファイルだけを参照する

10.3 出力の問題

問題: Claude Codeが間違った回答をする

  1. より具体的で明確な指示を出す
  2. ultrathink で深く考えさせる
  3. /clear してやり直す

問題: Claude Codeが同じ間違いを繰り返す

  1. CLAUDE.mdに正しい方法を記載する
  2. # でルールを追加する
  3. カスタムコマンドで正しいプロセスを定義する

問題: 出力が途中で切れる

続きを出力して

または会話を分割して、小さなタスクに分ける。

10.4 権限の問題

問題: ツールの実行が拒否される

/permissions

で権限設定を確認し、必要なツールを Allow に追加。

問題: 毎回確認が求められてうざい

.claude/settings.json で許可ルールを設定:

{
  "permissions": {
    "allow": [
      "Bash(npm run:*)",
      "Bash(git:*)",
      "Read",
      "Edit"
    ]
  }
}

10.5 バグ報告

Claude Code自体のバグを見つけた場合:

/bug

会話内容と共にAnthropicに送信されます。


11. 参考文献・リソース

公式ドキュメント

動画・チュートリアル

コミュニティリソース


おわりに

Claude Codeは、AIコーディングアシスタントの中でも特に強力なツールです。本記事で紹介した機能を活用することで、開発効率を大幅に向上させることができます。

特に重要なポイント

  1. CLAUDE.mdを整備する – プロジェクト固有の知識を教える
  2. /clear を頻繁に使う – コンテキストをクリーンに保つ
  3. 計画を先に立てさせる – Plan Modeや拡張思考モードを活用
  4. カスタムコマンドを活用する – 繰り返し作業を効率化
  5. MCPで機能を拡張する – 外部ツールとの連携
  6. サブエージェントを定義する – 専門家を作る
  7. Hooksで品質を維持する – 自動化でミスを防ぐ

Claude Codeの機能は日々進化しています。最新情報は /help コマンドや公式ドキュメントで確認してください。

コメント

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