これを読めば分かるClaude Code 完全攻略ガイド
対象読者: Claude Code をこれから使い始めたい人、すでに使っているがもっと活用したい人
前提知識: ターミナル操作の基本、Git の基本操作
この記事で学べること: インストールから CLAUDE.md・カスタムエージェント・MCP活用まで、現場で通用する使いこなし術をこれ1本に
目次
- Claude Code とは
- インストールとセットアップ
- 基本的な使い方
- コンテキスト管理
- 会話制御(ホットキー・コマンド)
- Plan Mode と Thinking Mode
.claudeディレクトリの全体像- CLAUDE.md の書き方ノウハウ
- カスタムエージェント・コマンドの活用
- Skills で機能を拡張する
- MCP で外部ツール連携
- Hooks でワークフローを自動化
- GitHub 連携と CI/CD 自動化
- エージェント機能(並列処理)
- まとめ・次のステップ
1. Claude Code とは
Claude Code は Anthropic が提供する エージェント型コーディングアシスタント です。単なるコード補完ツールではなく、以下の特徴を持ちます。
- コードベース全体を理解 — プロジェクトのファイル構造、依存関係、規約を把握した上でコードを生成・修正する
- ファイル編集とコマンド実行 — 自然言語の指示だけで、複数ファイルの編集、テスト実行、Git 操作まで自律的に行う
- カスタマイズ可能 — プロジェクト固有の規約やワークフローを教えることで、チーム全体の開発品質を底上げできる
2. インストールとセットアップ
インストール
# macOS / Linux / WSL(推奨)
curl -fsSL https://claude.ai/install.sh | bash
# Homebrew
brew install --cask claude-code
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
起動
cd your-project # プロジェクトディレクトリに移動
claude # Claude Code を起動
初回起動時に Claude サブスクリプションまたは Anthropic Console アカウントでのログインを求められます。
利用環境
| 環境 | 特徴 |
|---|---|
| ターミナル CLI | 最も機能豊富。ファイル編集・コマンド実行・MCP 全対応 |
| VS Code 拡張 | エディタ内で直接利用。コード補完と並行して使える |
| JetBrains プラグイン | IntelliJ / WebStorm / PyCharm ユーザー向け |
| デスクトップアプリ | セッション管理・スケジュール実行に便利 |
3. 基本的な使い方
Claude Code はターミナル上で 自然言語で指示するだけ で動作します。
よくある使い方の例
# コードの生成
> UserRepository を Repository パターンで実装して
# バグ修正
> この例外を修正して。スタックトレースは...
# リファクタリング
> この Service の認知的複雑度を15以下にリファクタして
# Git 操作
> 変更内容をコミットして。コミットメッセージも考えて
# テスト作成
> この Service のユニットテストを書いて
# PR 作成
> 今の変更で PR を作成して。説明文も書いて
ポイント
- 具体的に指示する — 「きれいにして」ではなく「認知的複雑度を15以下にリファクタして」
- コンテキストを与える — 「Repository インターフェースを継承して」のように、プロジェクト固有の情報を含める
- 段階的に進める — 大きなタスクは分割して指示するとミスが減る
4. コンテキスト管理
Claude Code を効果的に使う上で最も重要なのが コンテキストウィンドウの管理 です。コンテキストウィンドウには会話全体、読み込んだファイル、コマンド出力がすべて格納されます。いっぱいになると、Claude は以前の指示を「忘れる」ことがあります。
/init でプロジェクトを初期化する
claude
> /init
プロジェクトのルートで /init を実行すると、ビルドシステム・テストフレームワーク・コードパターンを自動検出して スターター CLAUDE.md を生成します。ゼロから書くのが面倒な場合、まずこれで雛形を作り、そこから改善するのが最短ルートです。
@ メンションでファイルを直接参照する
> @src/auth/login.py のセッション管理を説明して
> @package.json にあるスクリプトを一覧して
@ファイルパス と書くと、Claude はそのファイルを即座に読み込みます。「src/auth の中にあるファイルを見て」と説明するより正確で、余計なファイル読み込みが減るためコンテキストを節約できます。
/compact でコンテキストを圧縮する
> /compact # 自動要約
> /compact API の変更点に集中して # 指示付き要約
長い会話でコンテキストが溜まったとき、/compact を実行すると重要な情報(コードパターン、ファイル状態、決定事項)を保持しつつ不要な履歴を圧縮します。CLAUDE.md に "コンパクション時に変更ファイル一覧とテストコマンドを必ず保持する" と書いておくと、圧縮時に大事な情報が失われません。
/clear でリセットする
> /clear
関連のないタスクに移るときは /clear でコンテキストを完全にリセットします。1つのセッションで無関係なタスクを混ぜると、古いコンテキストが邪魔になりパフォーマンスが低下します。
その他のコンテキスト提供方法
| 方法 | 用途 |
|---|---|
@ファイルパス |
特定ファイルの直接参照 |
| 画像の貼り付け | スクリーンショット・UI デザインの共有 |
cat error.log | claude |
ログ・データのパイプ入力 |
| URL 指定 | ドキュメント・API リファレンスの参照 |
5. 会話制御(ホットキー・コマンド)
Claude Code にはセッションを効率的に操作するためのホットキーとスラッシュコマンドが多数用意されています。
主要ホットキー
| キー | 動作 |
|---|---|
Esc |
Claude の実行を途中停止(コンテキストは保持) |
Esc × 2 |
巻き戻しメニューを開く(チェックポイントへの復元) |
Shift+Tab |
権限モードの切り替え(default → acceptEdits → plan) |
/plan [説明] |
Plan Mode に直接切り替え(説明付きで即タスク開始も可能) |
主要スラッシュコマンド
| コマンド | 説明 |
|---|---|
/init |
CLAUDE.md の自動生成 |
/clear |
コンテキストの完全リセット |
/compact [指示] |
コンテキストの圧縮(指示付きで要約をカスタマイズ) |
/rewind |
チェックポイントへの巻き戻し |
/permissions |
ツール・コマンドの許可設定 |
/mcp |
MCP サーバーのステータス確認 |
/goal [条件] |
セッション全体の検証条件を設定 |
/btw [質問] |
コンテキストを消費しないサイド質問 |
/agents |
サブエージェントの管理 |
/hooks |
フック設定の確認 |
/sandbox |
OS レベルのサンドボックス分離 |
セッション管理
claude --continue # 最新のセッションを再開
claude --resume # セッション一覧から選んで再開
セッション内で /rename oauth-migration のように名前をつけておくと、後から探しやすくなります。
チェックポイントと巻き戻し
Claude に送信する各プロンプトが自動的にチェックポイントになります。Esc を2回押すか /rewind を実行して巻き戻しメニューを開き、会話のみ・コードのみ・両方を以前の状態に復元できます。
実践的な使い方: 危険な実験を Claude に指示する前にチェックポイントの存在を意識する。失敗したら巻き戻して別のアプローチを試す。
6. Plan Mode と Thinking Mode
Plan Mode
Shift+Tab(または /plan)で Plan Mode に切り替えると、Claude は ファイルの読み取りのみ で変更を加えません。複雑なタスクでは「探索 → 計画 → 実装 → コミット」の4フェーズで進めると精度が上がります。
# 1. 探索(Plan Mode)
> /plan src/auth を読んでセッション管理とログインの仕組みを理解して
claude (plan mode)
> src/auth のセッション管理とログインの仕組みを理解して
# 2. 計画(Plan Mode のまま)
claude (plan mode)
> Google OAuth を追加したい。どのファイルを変更する必要がある?計画を作って
# 3. 実装(通常モードに戻す: Shift+Tab)
claude (default mode)
> 計画に従って OAuth フローを実装して。コールバックハンドラーのテストも書いて
# 4. コミット
claude (default mode)
> 説明的なメッセージでコミットして PR を作成して
Plan Mode を使うべきとき:
- アプローチが不確実なとき
- 複数ファイルにまたがる変更
- 不慣れなコードベースでの作業
スキップしてよいとき:
- タイプミス修正、変数名変更など小さな修正
- 差分を1文で説明できるタスク
Thinking Mode(拡張思考)
Thinking Mode を有効にすると、Claude は回答前に 内部的な推論ステップ を実行します。通常の回答より時間はかかりますが、複雑なデバッグ・設計判断・アルゴリズム実装で精度が向上します。
> think hard about this: このレースコンディションの原因を特定して修正案を出して
think(軽い思考)、think hard(深い思考)、ultrathink(最大限の思考)のように指示の強度を調整できます。
7. .claude ディレクトリの全体像
Claude Code のカスタマイズは、特定のディレクトリ構成に基づいて行います。まずは全体像を把握しましょう。
ディレクトリ構成
~/.claude/ # ← グローバル設定(全プロジェクト共通)
├── CLAUDE.md # グローバル指示ファイル
├── settings.json # 権限設定・MCP サーバー定義
├── agents/ # カスタムエージェント(全プロジェクト共通)
│ ├── architecture-validator.md
│ ├── code-reviewer.md
│ └── ...
├── commands/ # カスタムコマンド(スキルと連携して独自コマンドを追加)
│ └── review.md
└── skills/ # 個人スキル(全プロジェクト共通)
└── my-skill/
└── SKILL.md
<プロジェクトルート>/
├── CLAUDE.md # ← プロジェクト固有の指示ファイル
├── .claude/
│ ├── settings.json # プロジェクト固有の権限設定
│ ├── settings.local.json # ローカル設定(.gitignore推奨)
│ └── skills/ # プロジェクトスキル(チーム共有)
│ └── deploy/
│ └── SKILL.md
└── .mcp.json # MCP サーバー設定(チーム共有)
スコープの階層(優先順位)
| スコープ | 場所 | 用途 | 共有範囲 |
|---|---|---|---|
| グローバル | ~/.claude/ |
個人の好み・全PJ共通ルール | 自分のみ |
| プロジェクト | <project>/.claude/ |
PJ固有の規約・スキル | チーム全員(Git管理) |
| ローカル | settings.local.json |
個人のPJ固有設定 | 自分のみ |
覚え方: グローバル → プロジェクト → ローカル の順に優先度が上がる。同じ設定がある場合、より狭いスコープが勝つ。
8. CLAUDE.md の書き方ノウハウ
CLAUDE.md とは
CLAUDE.md は Claude Code に対する 永続的な指示ファイル です。セッションを跨いで常に読み込まれるため、プロジェクトの規約・アーキテクチャ・コーディングルールを記述しておくと、毎回指示し直す必要がなくなります。
推奨される量と構成
| 項目 | 推奨 |
|---|---|
| 行数 | 100〜300行 |
| 長すぎると | コンテキストウィンドウを圧迫し、他の作業に使える余白が減る |
| 短すぎると | AI の判断が曖昧になり、規約違反のコードが生成される |
構成テンプレート
# プロジェクト指示
## 基本設定
- 日本語で回答すること
- コードコメントは既存スタイルに合わせる
## 技術スタック
- 言語: Python 3.12
- フレームワーク: FastAPI
- アーキテクチャ: Clean Architecture(4層)
- ORM: SQLAlchemy
- DI: dependency-injector
- ...(使用技術を列挙)
## アーキテクチャ規約
- レイヤー依存方向のルール
- 各レイヤーの責務定義
- Repository パターンの実装規約
## 命名規約
- 型別のルール(変数/定数/関数/クラス)
- 具体的なプレフィックス・サフィックス
## コーディング規約
- フォーマッター・リンター設定
- 禁止事項(ワイルドカードimport禁止 等)
- 複雑度の上限
## セキュリティ
- 認証・認可方針
- ログ出力の制約(PII禁止)
- DB アクセスのルール
## テスト
- テスト関数の命名規則
- モック・Fake 方針
書き方のコツ(実践知)
① AI が判断分岐できるレベルまで具体化する
# ❌ 曖昧(AI が判断できない)
- 適切な命名をすること
# ✅ 具体的(AI が即座に適用できる) ← naming.md から抽出
- 変数: snake_case(例: user_id, item_count)
- 定数: UPPER_SNAKE_CASE(例: API_TIMEOUT_SECONDS, MAX_RETRY_COUNT)
- Boolean: is_ / has_ / can_ プレフィックス(例: is_active, has_permission)
- 関数: snake_case + 動詞始まり(例: get_user_by_id, save_order)
- クラス: PascalCase + レイヤーサフィックス(Service / Repository / Router)
- 非同期関数への _async サフィックス禁止(async def が非同期を示す)
② レイヤー依存を ASCII 図で表現する
### レイヤー構成と依存方向 ← architecture.md から抽出
API層 (Router / Controller)
↓
Application層 (Service)
↓
Domain層 (Entity / Repository Interface)
↓
Infrastructure層 (Repository実装 / DB / 外部API)
- 依存方向は上から下への一方向のみ
- Domain層はフレームワーク非依存の純粋な Python のみ
- Infrastructure層は Repository パターンでデータソースを抽象化
このように書いておくと、Claude Code は「Service は Repository インターフェース経由でのみデータアクセスする」「Domain層に外部ライブラリの import がないか」といったルールを自動で適用します。
③ コーディング規約の具体ルールを書く
## コーディング規約 ← coding-rules.md から抽出
- インデント: スペース4つ(タブ禁止)
- 1行の最大文字数: 120文字
- ワイルドカードインポート禁止(テストファイルを除く)
- ネストは3階層以内(Early Return パターンを活用)
- 認知的複雑度: 目標5以下、最大15
- 素の Exception を except するのは最上位のエラーハンドラーのみ
- except 節を空にしない(必ずログ出力かエラーレイジングを行う)
④ 禁止事項は明示的に書く
## 禁止事項
- Domain層にフレームワーク依存を持ち込まない
- ワイルドカードインポート禁止(テスト時を除く)
- 非同期関数への _async サフィックス禁止
- ハードコードされた認証情報禁止
- ログに PII(個人情報)を含めない
- API層にビジネスロジックを書かない
アンチパターン
| アンチパターン | 問題 | 対策 |
|---|---|---|
| CLAUDE.md が 500行超 | コンテキスト圧迫 | 詳細は Skills に分離 |
| 「きれいに書いて」等の曖昧な指示 | AI が判断できない | 具体ルールに分解 |
| タスク手順を CLAUDE.md に書く | 常にロードされて無駄 | Skills に移動 |
| 全技術情報を網羅 | 情報過多 | 「常に適用すべきルール」のみ |
9. カスタムエージェント・コマンドの活用
エージェントとコマンドの違い
| 種類 | 場所 | 用途 |
|---|---|---|
| エージェント |
~/.claude/agents/ または .claude/agents/
|
特定の役割を持つ AI ペルソナ |
| コマンド |
~/.claude/commands/ または .claude/commands/
|
特定のタスク手順(Skills で独自コマンドも作成可能) |
カスタムエージェントの作り方
~/.claude/agents/ に Markdown ファイルを配置するだけです。
# アーキテクチャバリデーター エージェント
あなたはプロジェクトの**アーキテクト**です。
Clean Architecture の原則に基づき、アーキテクチャの健全性を検証します。
## 役割
- プロジェクト全体のアーキテクチャ整合性を検証する
- 依存方向違反やレイヤー責務違反を検出する
- 改善のための具体的なリファクタリング提案を行う
## 検証観点
### 1. レイヤー依存方向
- API → Application → Domain → Infrastructure の一方向依存が守られているか
- Domain層にフレームワーク依存がないか
### 2. レイヤー責務
- Router: HTTPリクエスト/レスポンスのみ。ビジネスロジックを含まないか
- Service: 単一責務か。Repository インターフェース経由のアクセスか
- Domain: 純粋な言語コードか。外部ライブラリの import がないか
- Repository: インターフェースベースか。テスト時に差し替え可能か
### 3. DI(依存性注入)
- コンストラクタインジェクションを使っているか
- 具体クラスへの直接参照がないか
## 出力フォーマット
### 検証結果
- 🔴 Critical: ...
- 🟡 Warning: ...
- 🟢 Good: ...
実践例: 専門エージェント + スキル + Instruction の体制
プロジェクトでは、人間のチーム運営と同じ構造 をエージェントで再現しています。
┌───────────────────────┐
│ 開発者の指示 │
└───────────┬───────────┘
│
┌──────────┬─────────|────────┬──────────┐
▼ ▼ ▼ ▼ ▼
Reviewer Architect Analyzer Tester (必要に応じて拡張)
| 構成要素 | 役割 |
|---|---|
| Agent | 役割定義(レビュー、設計検証、影響分析、テスト等) |
| Skill | ドメイン知識(命名規約, アーキテクチャ, セキュリティ等) |
| Instruction | プロジェクトルール、過去の失敗からの学び |
おすすめのエージェント構成:
| エージェント名 | 役割 | 主な検証観点 |
|---|---|---|
architecture-validator |
アーキテクチャ検証 | レイヤー依存方向・責務分離・DI スコープ |
code-reviewer |
コードレビュー | 規約違反・セキュリティ・認知的複雑度 |
impact-analyzer |
影響範囲分析 | ビルド影響・ランタイム影響・テスト影響 |
test-writer |
テスト自動生成 | 正常系・異常系・境界値の網羅 |
これらは ~/.claude/agents/ にそれぞれの .md ファイルを置くだけで機能します。プロジェクトの成長に応じてエージェントを追加していくのがおすすめです。
失敗するたびにルールを追記し、同じ間違いを繰り返さない。
Instruction ファイルに過去の失敗事例から抽出したルールを蓄積し、エージェントが参照することで、チーム全体が学習する仕組みを作れます。
エージェント + スキル + Instruction の関係
Agent(誰が) → 役割と振る舞いを定義
Skill(何を知って)→ ドメイン知識を段階的に提供
Instruction(どう動く)→ 共通ルール・過去の教訓を常時適用
例えば code-reviewer エージェントが起動すると:
- Instruction ファイルから共通ルールをロード
- 変更内容に応じて関連する Skill(命名規約 Skill、セキュリティ Skill 等)を自動トリガー
- エージェント定義に基づいてレビュー実行
書き方のコツ
- 検証観点を箇条書きで明確に — AI が曖昧に判断しないよう、チェック項目を列挙する
- 出力フォーマットを指定する — レポート形式(Critical/Warning/Good 等)で統一
-
規約の参照先を埋め込む —
参照: /path/to/guideline.mdのように書くと、規約更新時に自動追従 - 失敗からルールを追記する — レビューで見逃した問題は Instruction に追加し、二度と同じミスをしない
## 検証手順
1. 構造把握: モジュール構成・依存関係を俯瞰する
2. 規約参照: 以下のガイドラインを確認する
- architecture.md(レイヤー依存・責務)
- coding-rules.md(コーディング規約)
- naming.md(命名規約)
3. 検証実施: 上記の検証観点でチェック
4. 結果出力: 違反と改善案をまとめて報告
10. Skills で機能を拡張する
Skills とは
Skills は Claude Code に「特定の仕事の進め方」を教える仕組みです。CLAUDE.md と異なり、必要なときだけロードされるため、コンテキストウィンドウを圧迫しません。
Progressive Disclosure(段階的開示)
1. Skill名と description だけ確認する(トリガー判定)
↓ 関連する場合のみ
2. SKILL.md の本文をロードする(実行指示)
↓ 必要なときだけ
3. references/ 内のファイルにアクセスする(補足情報)
20個の Skills がインストールされていても、実際にロードされるのは1〜2個。これが CLAUDE.md との最大の違いです。
SKILL.md の構造
my-skill/
├── SKILL.md # 必須: メタデータ + 指示
├── references/ # 任意: 詳細な参考資料
├── templates/ # 任意: テンプレート
└── scripts/ # 任意: 自動化スクリプト
---
description: 記事の下書きを生成する。「記事を書いて」「下書きして」で発火
disable-model-invocation: false
---
## 手順
1. テーマを確認する
2. 構成を考える
3. 下書きを生成する
-
---で囲まれた部分が YAML フロントマター(メタデータ) - それ以降が マークダウン本文(実行指示)
-
descriptionが自動トリガーの判定に使われる
CLAUDE.md との使い分け
| 基準 | CLAUDE.md | Skills |
|---|---|---|
| いつロードされるか | 常に | 必要なときだけ |
| 適した内容 | 常に適用すべきルール | 特定タスクの手順 |
| 例 | 命名規約、レイヤー依存ルール | デプロイ手順、PR レビュー手順 |
| 推奨サイズ | 100〜300行 | 制限なし(段階的開示) |
配置場所
| 場所 | 利用範囲 |
|---|---|
~/.claude/skills/<name>/SKILL.md |
全プロジェクト(個人) |
.claude/skills/<name>/SKILL.md |
このプロジェクトのみ(チーム共有) |
設計パターン
パターン1: ワークフロー自動化型
---
description: PRレビューを実行するとき。コード変更後に発火
disable-model-invocation: true
---
## PRレビュー手順
1. 変更ファイルを確認
2. アーキテクチャ規約を参照
3. 命名規約を確認
4. レビュー結果を出力
パターン2: サブエージェント分離型
---
description: 深い調査が必要なとき
context: fork
agent: Explore
---
$ARGUMENTS を徹底的に調査し、結果を要約してください。
context: fork を指定すると、メインの会話とは別のコンテキストで実行されます。大量のファイルを読み込む調査タスクに最適です。
description の書き方が重要
# ❌ 曖昧(自動トリガーされない)
description: 便利なユーティリティ
# ✅ 具体的(適切にトリガーされる)
description: TypeScriptのユニットテストを作成する必要があるとき。「テスト書いて」「テスト追加」で発火
11. MCP で外部ツール連携
MCP(Model Context Protocol)とは
MCP は AI ツール統合のためのオープンソース標準プロトコルです。MCP サーバーを接続すると、Claude Code が外部のツール・データベース・API に直接アクセスできるようになります。
できること
- GitHub — PR レビュー、Issue 管理、コード検索
- Sentry — エラー監視・デバッグ
- データベース — 自然言語でクエリ
- Slack / Notion — メッセージ送信・ドキュメント参照
- ファイルシステム — 特定ディレクトリへのアクセス
サーバーの追加方法
HTTP サーバー(推奨: クラウドサービス向け)
# GitHub に接続
claude mcp add --transport http github https://api.githubcopilot.com/mcp/ \
--header "Authorization: Bearer YOUR_GITHUB_PAT"
# Sentry に接続
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
stdio サーバー(ローカル実行向け)
# ファイルシステムアクセス
claude mcp add --transport stdio filesystem \
-- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
# メモリサーバー
claude mcp add --transport stdio memory \
-- npx -y @modelcontextprotocol/server-memory
スコープの使い分け
| スコープ | コマンド | 用途 |
|---|---|---|
| ローカル |
--scope local(デフォルト) |
個人の開発サーバー |
| プロジェクト | --scope project |
チーム共有(.mcp.json に保存) |
| ユーザー | --scope user |
全プロジェクトで使う個人ツール |
.mcp.json でチーム共有
プロジェクトルートに .mcp.json を配置し Git 管理すると、チーム全員が同じ MCP サーバーを利用できます。
{
"mcpServers": {
"github": {
"type": "http",
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer ${GITHUB_TOKEN}"
}
}
}
}
${GITHUB_TOKEN} のように環境変数を使えば、認証情報をリポジトリにコミットせずに済みます。
管理コマンド
claude mcp list # 一覧表示
claude mcp get github # 詳細確認
claude mcp remove github # 削除
セッション内では /mcp コマンドでステータス確認・認証ができます。
12. Hooks でワークフローを自動化
Hooks とは
Hooks は Claude Code のワークフロー内の特定のポイントで 自動的にスクリプトを実行する 仕組みです。CLAUDE.md の指示とは異なり、Hooks は 決定論的 であり、指定したアクションが確実に実行されます。
CLAUDE.md との違い
| 特性 | CLAUDE.md | Hooks |
|---|---|---|
| 実行保証 | AI が判断して適用(忘れることがある) | 必ず実行される(決定論的) |
| 用途 | ガイドライン・規約 | 例外なく毎回実行すべきアクション |
| 例 | 「テスト後にリンターを実行して」 | ファイル編集後に自動で ESLint 実行 |
主なフックポイント
| フックポイント | タイミング | 使用例 |
|---|---|---|
PreToolUse |
ツール実行前 | 特定ディレクトリへの書き込みをブロック |
PostToolUse |
ツール実行後 | ファイル編集後に自動フォーマット・リント |
Stop |
Claude がターン終了時 | テスト実行→不合格なら作業継続を強制 |
Notification |
通知送信時 | カスタム通知の送信 |
設定方法
Claude に自然言語で依頼するだけで Hooks を作成できます:
> すべてのファイル編集後に ruff format を実行するフックを書いて
> migrations フォルダへの書き込みをブロックするフックを書いて
.claude/settings.json に保存され、/hooks コマンドで確認できます。
設定例
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"command": "ruff format $CLAUDE_FILE_PATH"
}
],
"PreToolUse": [
{
"matcher": "Edit|Write",
"command": "if echo $CLAUDE_FILE_PATH | grep -q 'migrations/'; then echo 'BLOCK: migrations ディレクトリへの直接編集は禁止です' && exit 1; fi"
}
],
"Stop": [
{
"command": "python -m pytest tests/ -x -q 2>&1 | tail -5"
}
]
}
}
Hooks の使いどころ
-
コードフォーマット: 編集後に自動で
black/ruff/prettierを実行 - リント: 変更ファイルに対して自動リントチェック
- 保護: 特定ファイル(マイグレーション、設定ファイル等)への書き込みをブロック
- 検証ゲート: Stop フックでテストを実行し、合格するまで作業を継続させる
Stop フックが連続でブロックし続けた場合、一定回数で自動的にターンを終了します(無限ループ防止のため)。
13. GitHub 連携と CI/CD 自動化
CLI ツール(gh)による基本連携
GitHub CLI(gh)がインストールされていれば、Claude Code は直接 Issue 作成・PR オープン・コメント読み取りなどを実行できます。
# gh CLI のインストール
brew install gh
gh auth login
# Claude Code セッション内
> gh issue #42 の内容を確認して、修正を実装して
> テストが通ったら PR を作成して
GitHub Actions による自動 PR レビュー
Claude Code を GitHub Actions に組み込むと、PR が作成されるたびに自動でコードレビューを実行できます。
# .github/workflows/claude-review.yml
name: Claude Code Review
on:
pull_request:
types: [opened, synchronize]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Claude Code
run: curl -fsSL https://claude.ai/install.sh | bash
- name: Run review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
claude -p "この PR の変更をレビューして。
アーキテクチャ規約・命名規約・セキュリティの観点でチェックし、
問題があればコメントして。" \
--output-format json
GitHub Code Review 連携
公式の GitHub Code Review 機能を使うと、すべての PR に対して自動的にレビューコメントが付きます。設定方法は 公式ドキュメント を参照してください。
Issue の自動トリアージ
# Issue が作成されたら自動で分類・優先度付け
on:
issues:
types: [opened]
steps:
- run: |
claude -p "GitHub Issue #${{ github.event.issue.number }} を読んで、
ラベル(bug/feature/docs)と優先度(high/medium/low)を判定して、
gh コマンドでラベルを付与して。" \
--allowedTools "Bash(gh *)"
非対話型モード(claude -p)
CI/CD やスクリプトから Claude Code を実行するには -p フラグを使います:
# 一発質問
claude -p "このプロジェクトの構造を説明して"
# JSON 出力(スクリプト連携用)
claude -p "API エンドポイントを一覧して" --output-format json
# ストリーミング出力(リアルタイム処理用)
claude -p "ログファイルを分析して" --output-format stream-json --verbose
# auto mode で自律実行
claude --permission-mode auto -p "すべての lint エラーを修正して"
14. エージェント機能(並列処理)
Claude Code は複数のタスクを並列に実行する仕組みを備えています。
4つのアプローチ
| アプローチ | 調整者 | 通信 | 用途 |
|---|---|---|---|
| サブエージェント | Claude(1セッション内) | 結果を返すのみ | サイドタスクの委任(調査・分析) |
| エージェントビュー | ユーザー | 各自独立 | 独立タスクを並行実行し後で確認 |
| エージェントチーム | Claude(リーダー) | タスクリスト共有 | 大規模タスクの分割・協調(実験的) |
| 動的ワークフロー | スクリプト | スクリプト制御 | 大規模な自動化(500ファイルの移行等) |
選び方
- 「調査してまとめて」→ サブエージェント(
context: forkの Skill) - 「3つのバグを並行で直して」→ エージェントビュー(
claude agents) - 「このリファクタリングを計画して実行して」→ エージェントチーム
確認コマンド
claude agents # エージェントビューを開く(バックグラウンドセッション管理)
セッション内:
/agents # サブエージェントの管理
/tasks # バックグラウンドタスクの確認
15. まとめ・次のステップ
おすすめの始め方(3ステップ)
-
インストールして触ってみる —
curl -fsSL https://claude.ai/install.sh | bash→claude - CLAUDE.md を書く — まずは技術スタック + 命名規約 + アーキテクチャ規約(50行程度から)
- カスタムエージェントを1つ作る — コードレビュー用が最も効果を実感しやすい
最後まで読んでいただきありがとうございます!いいねいただけると励みになります!
参考文献
| # | タイトル | URL |
|---|---|---|
| 1 | Claude Code 公式ドキュメント | https://code.claude.com/docs/en/overview |
| 2 | Anthropic 公式サイト | https://www.anthropic.com/ |